能否提供一个SP手机连接GPRS访问网页的例子?[额外200分]解决方案
能否提供一个SP手机连接GPRS访问网页的例子?[额外200分]
我的是dopod565,不过smartphone的手机应该都可以,使用动感地带cmwap包月的GPRS。我有试过多种方法,始终无法实现GPRS拨号并打开一个网页的功能。当然,我用手机自带浏览器可以上网,开QQ也没问题,UCWEB使用正常,彩信可以收发,因此应该是我的程序的问题,可是找不到错在哪里,希望有人可以提供一个能够成功连接并打开网页的例子。使用EVC或者C#都可以。
下面简单介绍一下目前我使用的方法:
首先是为进行连接而定义的一个类
#include <windows.h>
#include <connmgr.h>
#include <aygshell.h>
class CConnectMgr
{
public:
CConnectMgr(HWND hwnd);
virtual ~CConnectMgr();
void DestroyConnection();
HRESULT EstablishConnection();
BOOL SetConectMsgEvent();
void SetConnectType(UINT);
UINT m_NetWorkType; //Network Type
UINT m_NetWorkCount;
HANDLE hConnection; //Connection handle
UINT WM_CMEVENT; //Registered Window Message
HWND m_ParentWnd;
BOOL m_isConnect;
};
CConnectMgr::CConnectMgr(HWND hwnd)
{
m_ParentWnd = hwnd;
hConnection = NULL;
WM_CMEVENT = 0;
m_NetWorkType = 0; // default 0 type;
m_isConnect = FALSE;
///*
FILE *pFile;
pFile= _wfopen(L "\\url.txt ", L "w " );
CONNMGR_DESTINATION_INFO DestInfo;
m_NetWorkCount=0;
for(int i = 0; SUCCEEDED(ConnMgrEnumDestinations(i, &DestInfo)); i++)
{
fputws(DestInfo.szDescription,pFile);
fputws(L "\r\n ",pFile);
m_NetWorkCount++;
/*
if(0==wcscmp(L "WAP 网络 ",DestInfo.szDescription))
{
m_NetWorkType=i;
break;
}
*/
}
fclose(pFile);
// */
}
CConnectMgr::~CConnectMgr()
{
DestroyConnection();
}
void CConnectMgr::DestroyConnection()
{
if(NULL != hConnection)
{
ConnMgrReleaseConnection(hConnection, FALSE);
hConnection = NULL;
}
}
void CConnectMgr::SetConnectType(UINT type)
{
if(type < 0 )
type = 0;
m_NetWorkType = type;
}
HRESULT CConnectMgr::EstablishConnection()
{
HRESULT hResult = E_FAIL;
// 清除连接
DestroyConnection();
// 得到正确的连接信息
CONNMGR_DESTINATION_INFO DestInfo;
hResult = ConnMgrEnumDestinations(m_NetWorkType, &DestInfo);
if(SUCCEEDED(hResult))
{
// 初始化连接结构
CONNMGR_CONNECTIONINFO ConnInfo;
ZeroMemory(&ConnInfo, sizeof(ConnInfo));
ConnInfo.cbSize = sizeof(ConnInfo);
ConnInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
ConnInfo.dwPriority = CONNMGR_PRIORITY_USERBACKGROUND;
ConnInfo.guidDestNet = DestInfo.guid;
ConnInfo.hWnd = m_ParentWnd;
ConnInfo.uMsg = WM_CMEVENT;
hResult = ConnMgrEstablishConnection(&ConnInfo, &hConnection);
if(FAILED(hResult))
{
}else
{
ConnMgrSetConnectionPriority(hConnection,CONNMGR_PRIORITY_USERINTERACTIVE);
}
}
我的是dopod565,不过smartphone的手机应该都可以,使用动感地带cmwap包月的GPRS。我有试过多种方法,始终无法实现GPRS拨号并打开一个网页的功能。当然,我用手机自带浏览器可以上网,开QQ也没问题,UCWEB使用正常,彩信可以收发,因此应该是我的程序的问题,可是找不到错在哪里,希望有人可以提供一个能够成功连接并打开网页的例子。使用EVC或者C#都可以。
下面简单介绍一下目前我使用的方法:
首先是为进行连接而定义的一个类
#include <windows.h>
#include <connmgr.h>
#include <aygshell.h>
class CConnectMgr
{
public:
CConnectMgr(HWND hwnd);
virtual ~CConnectMgr();
void DestroyConnection();
HRESULT EstablishConnection();
BOOL SetConectMsgEvent();
void SetConnectType(UINT);
UINT m_NetWorkType; //Network Type
UINT m_NetWorkCount;
HANDLE hConnection; //Connection handle
UINT WM_CMEVENT; //Registered Window Message
HWND m_ParentWnd;
BOOL m_isConnect;
};
CConnectMgr::CConnectMgr(HWND hwnd)
{
m_ParentWnd = hwnd;
hConnection = NULL;
WM_CMEVENT = 0;
m_NetWorkType = 0; // default 0 type;
m_isConnect = FALSE;
///*
FILE *pFile;
pFile= _wfopen(L "\\url.txt ", L "w " );
CONNMGR_DESTINATION_INFO DestInfo;
m_NetWorkCount=0;
for(int i = 0; SUCCEEDED(ConnMgrEnumDestinations(i, &DestInfo)); i++)
{
fputws(DestInfo.szDescription,pFile);
fputws(L "\r\n ",pFile);
m_NetWorkCount++;
/*
if(0==wcscmp(L "WAP 网络 ",DestInfo.szDescription))
{
m_NetWorkType=i;
break;
}
*/
}
fclose(pFile);
// */
}
CConnectMgr::~CConnectMgr()
{
DestroyConnection();
}
void CConnectMgr::DestroyConnection()
{
if(NULL != hConnection)
{
ConnMgrReleaseConnection(hConnection, FALSE);
hConnection = NULL;
}
}
void CConnectMgr::SetConnectType(UINT type)
{
if(type < 0 )
type = 0;
m_NetWorkType = type;
}
HRESULT CConnectMgr::EstablishConnection()
{
HRESULT hResult = E_FAIL;
// 清除连接
DestroyConnection();
// 得到正确的连接信息
CONNMGR_DESTINATION_INFO DestInfo;
hResult = ConnMgrEnumDestinations(m_NetWorkType, &DestInfo);
if(SUCCEEDED(hResult))
{
// 初始化连接结构
CONNMGR_CONNECTIONINFO ConnInfo;
ZeroMemory(&ConnInfo, sizeof(ConnInfo));
ConnInfo.cbSize = sizeof(ConnInfo);
ConnInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
ConnInfo.dwPriority = CONNMGR_PRIORITY_USERBACKGROUND;
ConnInfo.guidDestNet = DestInfo.guid;
ConnInfo.hWnd = m_ParentWnd;
ConnInfo.uMsg = WM_CMEVENT;
hResult = ConnMgrEstablishConnection(&ConnInfo, &hConnection);
if(FAILED(hResult))
{
}else
{
ConnMgrSetConnectionPriority(hConnection,CONNMGR_PRIORITY_USERINTERACTIVE);
}
}