Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

WNetGetUniversalName   Найти похожие ветки 

 
mich   (2004-04-15 16:04) [0]

Доброго времени суток, знатоки!
Пытаюсь сделать так:

var LocalName: PChar;
   iType: DWORD;
   Buffer: REMOTE_NAME_INFO;
   BufSize: DWORD;
...
LocalName:= Edit1.Text; //"O:"
iType:= REMOTE_NAME_INFO_LEVEL;
BufSize:= MAX_PATH*MAX_PATH*MAX_PATH;
WNetGetUniversalName(LocalName, iType, @Buffer, BufSize);
...


Работает. В полях переменной Buffer возвращаются искомые значения, НО: сразу после этого программа вылетает с ошибкой "Access violation...". Не могу понять из-за чего. Прошу помощи. Спасибо.


 
VMcL ©   (2004-04-15 16:15) [1]

>>mich  (15.04.04 16:04)

>LocalName:= Edit1.Text;
Тут вообще ошибка вомпилятора.

>BufSize:= MAX_PATH*MAX_PATH*MAX_PATH;
Долго думал? А справку читал?

var
 LocalName: PChar;
 iType: DWORD;
 Buffer: REMOTE_NAME_INFO;
 BufSize: DWORD;
...
LocalName:= PChar(Edit1.Text); //"O:"
iType:= REMOTE_NAME_INFO_LEVEL;
BufSize:= SizeOf(Buffer);
WNetGetUniversalName(LocalName, iType, @Buffer, BufSize);


 
VMcL ©   (2004-04-15 16:23) [2]

+ Нужен анализ результата вызова функции.


 
mich   (2004-04-15 16:30) [3]

2 VMcL:
LocalName:= PChar(Edit1.Text) - очепятался.
А относительно MAX_PATH^3 - три поля REMOTE_NAME_INFO, в которых возвращаются пути.
Значение, которое она возвращает - 0 (NO_ERROR). А как сделать анализ?


 
VMcL ©   (2004-04-15 16:34) [4]

Вот пример, но на С:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wnet/wnet/determining_the_location_of_a_share.asp


 
Игорь Шевченко ©   (2004-04-15 16:41) [5]


> А относительно MAX_PATH^3 - три поля REMOTE_NAME_INFO, в
> которых возвращаются пути


Может быть, MAX_PATH * 3 ? :)))


 
VMcL ©   (2004-04-15 16:51) [6]

2 mich

procedure TForm1.Button1Click(Sender: TObject);
var
 LocalName: PChar;
 iType: DWORD;
 Buffer: array [0 .. 3 * MAX_PATH + 2] of Char;
 BufSize: DWORD;
 Res: DWORD;
begin
 Memo1.Clear;
 LocalName := PChar(Edit1.Text); //"O:"
 iType := REMOTE_NAME_INFO_LEVEL;
 BufSize := SizeOf(Buffer);
 Res := WNetGetUniversalName(LocalName, iType, @Buffer[0], BufSize);
 if Res <> NO_ERROR then RaiseLastOSError;
 Memo1.Lines.Add(PRemoteNameInfo(@Buffer)^.lpUniversalName);
 Memo1.Lines.Add(PRemoteNameInfo(@Buffer)^.lpConnectionName);
 Memo1.Lines.Add(PRemoteNameInfo(@Buffer)^.lpRemainingPath);
end;



Страницы: 1 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.057 c
3-1083509571
Крутыш
2004-05-02 18:52
2004.05.30
Какой лучше использовать протокол


1-1084220459
kiote
2004-05-11 00:20
2004.05.30
Richedit и динамически создаваемые компоненты


1-1084966802
DN
2004-05-19 15:40
2004.05.30
УКАЗАТЕЛИ...


3-1083805692
Slavik_v
2004-05-06 05:08
2004.05.30
Как организовать сортировку по двум полям?


9-1074649900
Barlok
2004-01-21 04:51
2004.05.30
экспорт из 3d studio max?