Господа,у меня образовалась небольшая проблема.
Необходимо из локального имени ресурса получить его сетевое.
Один из вариантов — это использовать функцию WNetGetUniversalName.
Использую...
function GetName(LocalName: string): string;
var
buffer: TUniversalNameInfo;
Pbuffer: ^TUniversalNameInfo;
bufferSize: DWord;
funcResult: string;
begin
Pbuffer:= @buffer;
bufferSize:= SizeOf(TUniversalNameInfo);
if (WNetGetUniversalName(PChar(LocalName), UNIVERSAL_NAME_INFO_LEVEL, Pbuffer, bufferSize) > 0) then
case GetLastError of
ERROR_BAD_DEVICE : funcResult := 'ERROR_BAD_DEVICE';
ERROR_CONNECTION_UNAVAIL: funcResult := 'ERROR_CONNECTION_UNAVAIL';
ERROR_EXTENDED_ERROR : funcResult := 'ERROR_EXTENDED_ERROR';
ERROR_MORE_DATA : funcResult := 'ERROR_MORE_DATA';
ERROR_NOT_SUPPORTED : funcResult := 'ERROR_NOT_SUPPORTED';
ERROR_NO_NET_OR_BAD_PATH: funcResult := 'ERROR_NO_NET_OR_BAD_PATH';
ERROR_NO_NETWORK : funcResult := 'ERROR_NO_NETWORK';
ERROR_NOT_CONNECTED : funcResult := 'ERROR_NOT_CONNECTED';
end
else
msg := buf.lpUniversalName;
Result := msg;
end;
Результат — 'ERROR_NOT_CONNECTED'. Причем, при любом локальном пути.
Может, я что-нибудь с указателями напутал, не знаю.