Windows Mobile程序中如果要使用http或socket连接服务器,需要先连接网络。可以使用ConnMgrEstablishConnectionSync函数来连接。
DWORD dwStatus = 0;
HANDLE hConnection = NULL;
CONNMGR_CONNECTIONINFO sConInfo;
memset(&sConInfo, 0 ,sizeof(CONNMGR_CONNECTIONINFO));
sConInfo.cbSize = sizeof(CONNMGR_CONNECTIONINFO);
sConInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
sConInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
sConInfo.dwFlags = CONNMGR_FLAG_PROXY_HTTP
|CONNMGR_FLAG_PROXY_WAP
|CONNMGR_FLAG_PROXY_SOCKS4
|CONNMGR_FLAG_PROXY_SOCKS5;
sConInfo.bExclusive = FALSE;
sConInfo.bDisabled = FALSE;
sConInfo.guidDestNet = IID_DestNetWAP;
ConnMgrEstablishConnectionSync(&sConInfo, &hConnection, 15000, &dwStatus);
如
果知道一个接入点的名称,则可以通过ConnMgrEnumDestinations得到相应接入点的guidDestNet。然后可以使用底层的
INET接口连接HTTP了。完了吗?没有。还有个问题:代理服务器。我们都知道,移动的CMNET不需要代理,CMWAP则需要。接入点中可能含有代理
服务器信息,而且接入类型包括HTTP、WAP、安全WAP、Socks等等,每一种都可能需要不同的代理。不要奢望ConnMgrEnumDestinations函数可以得到这么多的东东。
事实上,微软是提供了一个函数的,这就是传说中的ConnMgrProviderMessage。怎么样,这下总该圆满了吧?...还没完,接着往下走。
我测的结果,在真机上,这个函数从来没有成功过,Never。郁闷之极。与签名有关吗?未可知。
正
面强攻不行。打枪的不要,悄悄的进村。我们来看看手机的注册表。在HKEY_LOCAL_MACHINECommConnMgr项下,有详细的接入点的信
息。Destinations子项下列出了手机所有的接入点,相应的键值有DestId这一项。我们的目光再跳到与ConnMgr平级的
Providers项,也有很多信息,其中一子项{EF097F4C-DC4B-4c98-8FF6-AEF805DC0E8E},快接近我们要的宝贝
了。该项有很多子项,我们遍历每一项,直到找到一个键值SrcId与我们上面说的DestId相等。看到了吧,与SrcId平级的键值有很多,不过我们目
前需要的就那么两项,Type和Proxy。Type就是上面说的接入类型(HTTP、WAP、安全WAP、Socks等),而Proxy正是我们凄凄惨惨戚戚寻寻觅觅的一串字符。
以上是Windows Mobile5.0的结果。在Pocket
PC2003和Smartphone2003中,HKEY_LOCAL_MACHINECommConnMgr对应为
HKEY_LOCAL_MACHINESOFTWAREMicrosoftConnMgr。
分享到:
相关推荐
windows mobile GPRS连接网络设置
Windows Mobile 6 中GPRS连接代码例子
用连接管理器API可以对Windows Mobile的GPRS连接进行管理,由程序发起连接GPRS请求完成连接的建立,但是有时候不那么幸运,Internet设置里多了一些其他无效的连接或者是复位后所有连接都丢失了,那我们应该主动创建...
Windows Mobile 下的GPRS连接实现类,测试通过可以使用
window mobile gprs 连接参考代码
有关GPRS、CDMA开发的文章网上已经有不少,但是由于Windows Mobile SDK提供的GPRS、CDMA连接操作的库只有C++版本的(即Connection Manager API),网上的文章大多数都是C++版本的,尽管也有C#编写的但是大多封装的...
Windows Mobile中如何建立GPRS连接以便Socket能正常通信详细过程和源代码 更多资源请访问http://www.59186618.com
商业编程-源码-Windows Mobile中如何建立GPRS连接以便Socket能正常通信.zip
c++ c# 两个wincewindowsmobile2003 gprs网络连接 GPRSConnection GPRSDemo 在wince 编程中使用网络资源 必须先 连接网络,然后您的程序才能正常发送udp tcp包 此程序包含连接网络 源代码,包含c++ 和c#的两份源代码
这个是已封装好的一个windows mobile 网络连接源码。所用语言c++。
手机开通GPRS以后,我们的socket 程序还不能直接建立网络连接,需要用连接管理器来获取当前...源代码中封装了一个连接管理的类和测试代码,可以清楚地看到Windows Mobile 在socket 编程之前到底需要做什么样的操作。
自己写的一个在windows mobile win32下使用connmgr的拨号函数。自己真机测试没有问题。函数原理是枚举所有连接,选择最佳连接自动拨号。。
此源码实现了C# 下 Windowsmobile pda开发中的GPRS的调用和关闭,有本人测试过,可行直接可以拿来用 完全可以使用在项目中
C#拨号代码,先拨CMWAP,再拨CMNET,也不会弹出正在拨号的对话框。 调用方法非常简单: Record1("在上传之前提前拨号:ConnectManager... //未能建立GPRS连接! } else { return true; //成功建立GPRS连接! } }
wince下手动创建GPRS连接源代码(C++)版本 创建的是CMWAP拨号方式
用 Windows Mobile 来做通信处理,将手机端的数据通过GPRS传送至公网上的一个服务器,数据传输采用的是socket。
windowsMobile GPRS自动连接,包含连接字段设置,都集成了类库,及guid设置
自己写的,怕忘记了,这边放着,大家想用的可以参考一下!
本程序是在VS2005下开发的,并用Windows Mobile 6 Professional SDK (ARMV4I)及配套中文模拟器调试通过。 PS:本程序为本人根据谢红伟童鞋在EVC下编写的源代码修改而来 原文链接为:...