登录 用户中心() [退出] 后台管理 注册
 

热门搜索:
您的位置:首页 >> 马上代码 >> 马上代码 >> 主题: [wince/ppc/sdk]连接 gprs
标题 [wince/ppc/sdk]连接 gprs
clq
浏览(1755) 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


总数:2 页次:1/1 首页 尾页  


发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:




Copyright © 2005-2012 CLQ工作室, All Rights Reserved

CLQ工作室 版权所有