Я пытаюсь получить доступ к данным, используя HTTP, вызывая CInternetSession :: OpenUrl в Windows Mobile 5 (кодирование на C ++ с MFC). Я всегда получаю исключение с кодом ошибки 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
сразу после этого, и это вызывает исключение.