织梦CMS - 轻松建站从此开始!

罗索实验室

当前位置: 主页 > 嵌入式开发 > Windows CE >

详细代码:windows CE手机拨号

罗索客 发布于 2009-10-28 16:59 点击:次 
对于采用定制Windows CE内核的产品而言,相关的软件开发人员必须自己实现拨号上网。幸运的是Windows CE的SDK中包含了拨号上网的支持,使软件开发人员的工作大大减轻。
TAG:

 手机拨号的2种方式
1、Ras_系列函数

注:只在CDMA手机上测试成功

#include <ras.h>
#include <Raserror.h>

#pragma comment ( lib, \"Rasapi32.lib\" )


// 获取所有的连接的名称
RASENTRYNAME szEntryNames[MAX_ENTRYS];
memset(&szEntryNames, 0, sizeof(szEntryNames));
for (int i=0; i<MAX_ENTRYS; i++)
{
      szEntryNames[i].dwSize = sizeof(RASENTRYNAME);
}
DWORD dwCb = sizeof(szEntryNames);
DWORD dwEntries = 0;
uiRet = RasEnumEntries( NULL, NULL, szEntryNames, &dwCb, &dwEntries);
if (uiRet != ERROR_SUCCESS)
{
      return uiRet;
}
// 获取Entry的属性
uiRet = RasGetEntryProperties(NULL,
   szEntryNames[i].szEntryName,  
   &entryProperty,
   &dwEntrySize,
   szSP,
   &dwSPLen);
// 获取拨号参数
RASDIALPARAMS rdParams = {0};
rdParams.dwSize = sizeof(RASDIALPARAMS);
lstrcpy(rdParams.szEntryName, szEntryNames[nEntryGPRS].szEntryName);
BOOL bPassword = FALSE;
uiRet = RasGetEntryDialParams(NULL, &rdParams, &bPassword);
if (uiRet != ERROR_SUCCESS)
{
      return uiRet;
}
lstrcpy(rdParams.szPhoneNumber, entryProperty.szLocalPhoneNumber); // CDMA的电话号码//
// 拨号
uiRet = RasDial(NULL, NULL, &rdParams, 0, NULL, &m_hRasConn);


2、ConnMgr_系列函数

注:在CDMA、GPRS、EDGE拨号都成功了。。

#include <initguid.h>
#include <Connmgr.h>

#pragma comment ( lib, \"Cellcore.lib\" )


// 建立拨号链接
DWORD EstablishConnection()
{
     CONNMGR_CONNECTIONINFO connInfo;
     ZeroMemory(&connInfo, sizeof(connInfo));
     connInfo.cbSize = sizeof(connInfo);
     connInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
     connInfo.dwFlags = CONNMGR_FLAG_PROXY_HTTP
          | CONNMGR_FLAG_PROXY_WAP
          | CONNMGR_FLAG_PROXY_SOCKS4
          | CONNMGR_FLAG_PROXY_SOCKS5;
     connInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
     connInfo.guidDestNet = IID_DestNetInternet;
     connInfo.bExclusive= FALSE;
     connInfo.bDisabled = FALSE;
     DWORD dwStatus = 0;
     if (ConnMgrEstablishConnectionSync(&connInfo, &m_hConnection, 2*60*1000, &dwStatus) != S_OK)
     // 开始拨号
     {
          DWORD dwLastError = GetLastError ();
          ReleaseConnection();
          return dwLastError;
     }
     return S_OK;
}
// 断开拨号链接
DWORD ReleaseConnection()
{
     if (m_hConnection != NULL)
     {
          LONG lCache = 0;
          ConnMgrReleaseConnection(m_hConnection, lCache);
          m_hConnection = NULL;
     }
     return 0;
}
(佚名)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www1.rosoo.net/a/200910/7583.html]
本文出处:网络博客 作者:佚名
顶一下
(3)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容