分类: WINDOWS
2005-10-17 16:00:30
第三节:加入一个网络连接
加入一个网络连接是由NETRESOURCE结构描述,应用程序可调用WNetAddConnection2函数
在调用此函数时,结构NETRESOURCE较重要的成员是dwType,lpLocalName,lpRemoteName,lpProvider
等四个成员.
DWORD dwResult; //返回结果
NETRESOURCE nr; 枚举后的结构
dwResult = WNetAddConnection2(&nr, // NETRESOURCE 来自于枚举
(LPSTR) NULL, // 口令
(LPSTR) NULL, // 登录的用户名
CONNECT_UPDATE_PROFILE); // 此标志代表下次登录时自动连接
if (dwResult == ERROR_ALREADY_ASSIGNED) //有错,代表已经连接
{
TextOut(hdc, 10, 10, "早期已经建立连接.", 40);
return FALSE;
}
else if (dwResult == ERROR_DEVICE_ALREADY_REMEMBERED)
{
TextOut(hdc, 10, 10,
"在用户的注册文件中已经有记录.", 44);
return FALSE;
}
else if (dwResult == ERROR_ACCESS_DENIED)
{
TextOut(hdc, 10, 10,
"访问被拒绝.", 14);
return FALS
}
else if (dwResult == ERROR_BAD_DEV_TYPE)
{
TextOut(hdc, 10, 10,
"本地设备类型与网络类型不匹配.", 44);
return FALS
}
else if (dwResult == ERROR_BAD_DEVICE)
{
TextOut(hdc, 10, 10,
"结构成员lpLocalName(本地名称)不可用.", 44);
return FALS
}
else if (dwResult == ERROR_BAD_NET_NAME)
{
TextOut(hdc, 10, 10,
"结构成员lpRemoteName(远程名称)不可用,即资源名称不可用或不能定位.", 66);
return FALS
}
else if (dwResult ==ERROR_INVALID_PASSWORD)
{
TextOut(hdc, 10, 10,
"错误的口令.", 14);
return FALS
}
else if (dwResult ==ERROR_NO_NET_OR_BAD_PATH)
{
TextOut(hdc, 10, 10,
"某一网络组件未开始或指定的名称无句柄.", 44);
return FALS
}
else if (dwResult ==ERROR_NO_NETWORK)
{
TextOut(hdc, 10, 10,
"网络不可用.", 14);
return FALS
}
else if(dwResult != NO_ERROR)
{
//其他的网络错误
NetErrorHandler(hwnd, dwResult, (LPSTR)"WNetAddConnection2");
return FALSE;
}
TextOut(hdc, 10, 10, "成功的连接到指定的资源.", 32);
;---------------MASM32描述见第四节---------------