Windows Mobile中GPRS串連網路

來源:互聯網
上載者:User

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了。完了嗎?沒有。還有個問題:Proxy 伺服器。我們都知道,移動的CMNET不需要代理,CMWAP則需要。存取點中可能含有Proxy 伺服器資訊,而且接入類型包括HTTP、WAP、安全WAP、Socks等等,每一種都可能需要不同的代理。不要奢望ConnMgrEnumDestinations函數可以得到這麼多的東東。

事實上,微軟是提供了一個函數的,這就是傳說中的ConnMgrProviderMessage。怎麼樣,這下總該圓滿了吧?...還沒完,接著往下走。

我測的結果,在真機上,這個函數從來沒有成功過,Never。鬱悶之極。與簽名有關嗎?未可知。

正面強攻不行。打槍的不要,悄悄的進村。我們來看看手機的註冊表。在HKEY_LOCAL_MACHINE/Comm/ConnMgr項下,有詳細的存取點的資訊。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_MACHINE/Comm/ConnMgr對應為HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/ConnMgr。

至此,尋寶經曆告一段落。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.