WNetGetUniversalName
От: Ильин Игорь Андреевич Ниоткуда  
Дата: 09.09.03 11:33
Оценка:
Господа,у меня образовалась небольшая проблема.
Необходимо из локального имени ресурса получить его сетевое.
Один из вариантов — это использовать функцию 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'. Причем, при любом локальном пути.
Может, я что-нибудь с указателями напутал, не знаю.
From nomshar
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.