【发布时间】:2010-10-23 23:22:06
【问题描述】:
我正在尝试通过在 Windows Mobile 5 上调用 CInternetSession::OpenUrl 使用 HTTP 访问数据(使用 MFC 在 C++ 中编码)。我总是遇到错误代码 12029(无法连接)的异常。
我怀疑我需要先使用连接管理器 API 来创建连接。有人可以确认吗?
我将尝试根据此处的信息 (http://msdn.microsoft.com/en-us/magazine/dd263096.aspx) 对其进行编码,如果合适,我将报告我的经验作为答案。如果能获得其他意见也很好。
我已使用此代码成功打开连接:
// Find out which type of connection is needed for this URL.
GUID guid;
HRESULT hresult = ConnMgrMapURL((LPCTSTR)url,&guid,NULL);
if (!SUCCEEDED(hresult))
{
delete [] url;
aError = CartoType::KErrorInternetIo;
return NULL;
}
// Get a connection.
CONNMGR_CONNECTIONINFO cinfo;
memset(&cinfo,0,sizeof(cinfo));
cinfo.cbSize = sizeof(cinfo);
cinfo.bDisabled = FALSE;
cinfo.bExclusive = FALSE;
cinfo.guidDestNet = guid;
cinfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
cinfo.dwFlags = CONNMGR_FLAG_PROXY_HTTP;
cinfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
DWORD status;
hresult = ConnMgrEstablishConnectionSync(&cinfo,&iConnectionHandle,15000,&status);
我知道它有效,因为它将状态设置为CONNMGR_STATUS_CONNECTED;尽管如此,我之后立即致电CInternetSession::OpenURL,它会引发异常。
【问题讨论】:
标签: c++ http windows-mobile mfc