1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| function TfmMain.GetUNCName(const LocalPath: string): string;
var
BufferSize: DWord;
DummyBuffer: Byte;
Buffer: Pointer;
Error: DWord;
begin
BufferSize := 1;
WNetGetUniversalName(PChar(LocalPath), UNIVERSAL_NAME_INFO_LEVEL, @DummyBuffer, BufferSize);
Buffer := AllocMem(BufferSize);
try
Error := WNetGetUniversalName(PChar(LocalPath), UNIVERSAL_NAME_INFO_LEVEL, Buffer, BufferSize);
if Error <> NO_ERROR then
begin
SetLastError(Error);
RaiseLastWin32Error;
end;
Result := PUniversalNameInfo(Buffer)^.lpUniversalName
finally
FreeMem(Buffer);
end;
end; |
Partager