У меня странная проблема с кодом, который вызывает WNetGetUniversalName. Когда я вызываю функцию, я всегда получаю ошибку 67 (ERROR_BAD_NET_NAME). Но сетевое соединение действительно существует.
Так что с нуля. Я пишу расширение оболочки Windows, которое должно делать некоторые вещи с текстовыми файлами, которые расположены на указанном сетевом диске. Поэтому, когда вызывается метод IShellExtInit :: Initialize, я сохраняю перетаскиваемый файл и затем получаю имя соединения с помощью метода WNetGetUniversalName.
Так что я действительно могу быть уверен, что сетевой диск существует (как это исходит от метода DragQueryFile).
Вот код:Проблема с WNetGetUniversalName
char buffer[4096];
REMOTE_NAME_INFO *info = (REMOTE_NAME_INFO*)buffer;
DWORD length = 4096;
info->lpConnectionName = NULL;
info->lpRemainingPath = NULL;
info->lpUniversalName = NULL;
DWORD error = WNetGetUniversalName(file, REMOTE_NAME_INFO_LEVEL, info, &length);
файл является ATL :: CString, который исходит от метода DragQueryFile и ошибок всегда 67.
Странным является то, что она работает несколько дней назад, но не больше, и я не изменил ни один из этих кодов.
Вы подтвердили, что содержимое 'file' - это то, что вы думаете? (Через отладки/Log?) – Ruddy
Да, я также пробовал его жестко закодированным с помощью: DWORD dwError = WNetGetUniversalName (_T («Z: \\ test.txt»), REMOTE_NAME_INFO_LEVEL, info и dwLength); и DWORD dwError = WNetGetUniversalName (_T ("Z:"), REMOTE_NAME_INFO_LEVEL, info и dwLength); Все тот же результат. –