![]() |
登录 用户中心() [退出] 后台管理 注册 |
热门搜索: |
您的位置:首页 >> 马上代码 >> 马上代码 >> 主题: [wince/ppc/sdk]连接 gprs |
标题 | [wince/ppc/sdk]连接 gprs |
clq |
浏览(2057)
2008-10-04 17:35:47 发表
编辑
关键字: [wince/ppc/sdk]连接 gprs //gprs begin //#include #include #include //gprs end 附加依赖库 cellcore.lib -------------------------------------------------- //连接 gprs void ConnectNet() { int CONN_WAP = 0; int CONN_INTERNET = 1; int conntype = 0; HANDLE m_hConnection; int hResult; //-------------------------------------------------- CONNMGR_CONNECTIONINFO ConnInfo; memset( &ConnInfo, 0, sizeof(ConnInfo)); ConnInfo.cbSize = sizeof(ConnInfo); ConnInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET; ConnInfo.dwPriority = CONNMGR_PRIORITY_HIPRIBKGND; //给你一个例子,我多年的总结,适用于PPC和smartphone手机 // ConnInfo.dwFlags=CONNMGR_FLAG_PROXY_WAP|CONNMGR_FLAG_PROXY_HTTP|CONNMGR_FLAG_PROXY_SOCKS4|CONNMGR_FLAG_PROXY_SOCKS5; if(conntype == CONN_WAP) { ConnInfo.dwFlags=CONNMGR_FLAG_PROXY_WAP|CONNMGR_FLAG_PROXY_HTTP|CONNMGR_FLAG_PROXY_SOCKS4|CONNMGR_FLAG_PROXY_SOCKS5; } else { ConnInfo.dwFlags=0; } #ifdef POCKETPC ConnInfo.guidDestNet = conntype==CONN_INTERNET?IID_DestNetInternet:IID_DestNetCorp; #else ConnInfo.guidDestNet = conntype==CONN_INTERNET?IID_DestNetInternet:IID_DestNetWAP; #endif //ConnInfo.hWnd = m_hEventWnd; //ConnInfo.uMsg = m_nWM_CMEVENT; // lpConnection->WM_CMEVENT; DWORD dwStatus; hResult = ConnMgrEstablishConnectionSync(&ConnInfo, &m_hConnection,30000, &dwStatus); if (hResult == S_OK) { ::MessageBox(0, L"ok", L"", 0); } else { ::MessageBox(0, L"fail", L"", 0); } } |
clq |
2008-10-4 17:40:39 发表
编辑
据 http://www.codeguru.com/cpp/w-p/ce/pocketpc/article.php/c7355/ 说,好象以前的程序大多使用 RAS 进行连接。 |
clq |
2008-10-4 17:48:30 发表
编辑
一般来说是要在一个线程中不停地检查连接是否是连上的,断开了的话要再连接,所以要有检查函数 BOOL CConnectManager::WaitForConnected ( int nTimeoutSec, DWORD *pdwStatus/*=NULL*/ ) { DWORD dwStartTime = GetTickCount (); BOOL bRet = FALSE; while ( GetTickCount ()-dwStartTime < (DWORD)nTimeoutSec * 1000 ) { if ( m_hConnection ) { DWORD dwStatus = 0; HRESULT hr = ConnMgrConnectionStatus ( m_hConnection, &dwStatus ); if ( pdwStatus ) *pdwStatus = dwStatus; if ( SUCCEEDED(hr) ) { if ( dwStatus == CONNMGR_STATUS_CONNECTED ) { bRet = TRUE; break; } } } Sleep ( 100 ); } return bRet; } 最后要记得释放连接 void CConnectManager::ReleaseConnection () { if ( m_hConnection ) { ConnMgrReleaseConnection(m_hConnection, FALSE); m_hConnection = NULL; } } 参见: [url] http://www.cnblogs.com/jsjkandy/archive/2008/08/06/1262445.html |
Copyright © 2005-2012 CLQ工作室, All Rights Reserved CLQ工作室 版权所有 |