我对一些调用 WNetGetUniversalName 的代码有一个奇怪的问题。当我调用该函数时,我总是收到错误 67 (ERROR_BAD_NET_NAME)。但是网络连接确实存在。
所以从头开始。我正在编写一个 Windows shell 扩展,它将对位于指定网络驱动器上的文本文件做一些事情。因此,当调用 IShellExtInit::Initialize 方法时,我会存储拖动的文件,然后使用 WNetGetUniversalName 方法获取连接名称。
所以我可以确定网络驱动器确实存在(因为它来自 DragQueryFile 方法)。
这是一些代码:
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);
file 是来自 DragQueryFile 方法的 ATL::CString ,错误始终为 67。
奇怪的是它在几天前确实有效但现在不再有效,而且我没有更改发布的任何代码。