1. 增加新的网络连接配置
1.1 ——RasSetEntryProperties和RasSetEntryDialParams添加网络配置。但是此时还无法在连接管理器里面看到这个新加的配置。
注意:RasSetEntryProperties最后两个参数LPBYTE lpb, DWORD dwSize 这两个设备配置参数,必须严格填写。否则在程序中不会提示错误,但是无法使用新建的这个链接。dwSize=436.可以参考RasGetEntryProperties返回的参数。LPWSTR szEntry是新增的配置名字。
1.2 ——添加注册表:HKEY_LOCAL_MACHINE/Comm/ConnMgr/Providers/{7C4B7A38-5FF7-4bc1-80F6-5DA7870BB1AA}/Connections/新增配置名字
1.3 ——VALUE:Enabled——当前配置是否可用。
1.4 ——VALUE:ConnectionGUID——可以用CoCreateGuid生成GUID,然后
_snwprintf(lpGUID, dwGUID, L"{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}",
guid.Data1, guid.Data2, guid.Data3,
guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3],
guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]);
注意:如果用的是UNICODE编码的话,ConnectionGUID和DestId需要指定为宽字节类型,传入的时候强制指定为LPBYTE类型就可以了。否则写入注册表里面的会是乱码。
1.5 ——VALUE:DestId——WAP:{18AD9FBD-F716-ACB6-FD8A-1965DB95B814};NET:{ADB0B001-10B5-3F39-27C6-9742E785FCD4}——可以根据注册表里面的值来修改。
2. 建立连接和断开连接
2.1 ——Connection Manager API能够很好的管理连接。
(http://msdn.microsoft.com/zh-cn/magazine/dd263096.aspx)
- 调用元网络要连接的 ConnMgrMapUrl。
- 准备 CONNMGR_CONNECTIONINFO 结构,此结构描述了您希望连接管理器执行的操作。
- 调用 ConnMgrEstablishConnection(还具有此 API 的同步版本)以创建请求。
- 监视连接管理器消息并跟踪任何可能发生的状态更改。
- 完成连接后,调用 ConnMgrReleaseConnection to 以关闭请求,并允许对资源进行重新分配。
2.2 ——可以RAS枚举当前连接的方式断开已经建立的网络连接:RasEnumConnections和RasHangUp。