InternetQueryOption валится
, GetLastError возвращает бред вида 0x5d4d39a2
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.217.53] |
|
|
InternetQueryOption валится
, GetLastError возвращает бред вида 0x5d4d39a2
|
Сообщ.
#1
,
|
|
|
|
Есть такой код:
![]() ![]() DWORD foo() HINTERNET hSession = ::InternetOpen(_T("User Agent"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); if ( !hSession ) { return FALSE; } DWORD dwFlags = 0; DWORD size = sizeof( DWORD ); if ( !::InternetQueryOption( hSession, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, &size ) ) return ::GetLastError(); return 0; } InternetQueryOption почему-то валится, причём GetLastError всегда возвращает что-то новое и необычное. |
|
Сообщ.
#2
,
|
|
|
|
MichSpar, а с какой целью в InternetQueryOption передаешь для запроса INTERNET_OPTION_SECURITY_FLAGS корневой HINTERNET-дескриптор?
Насколько разумею, INTERNET_OPTION_SECURITY_FLAGS подразумевает параметры безопасности для конкретного соединения с конкретным объектом, а не всего использования WinInet программой. Т.е. при запросе INTERNET_OPTION_SECURITY_FLAGS InternetQueryOption ожидает дескриптор возвращенный чем-то вроде HttpOpenRequest(..., "GET", "forum.sources.ru/index.php", ...) |
|
Сообщ.
#3
,
|
|
|
|
С целью установить в последствии флаг SECURITY_FLAG_IGNORE_REVOCATION и вызова InternetOpenUrl:
![]() ![]() dwFlags = dwFlags | SECURITY_FLAG_IGNORE_REVOCATION; if ( !::InternetSetOption( hSession, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, size ) ) printf( _T( "Warning: failed to set SECURITY_FLAG_IGNORE_REVOCATION: %x", ::GetLastError() ) ); HINTERNET hUrl = ::InternetOpenUrl ( hSession, url, NULL, 0, INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_UI | INTERNET_FLAG_NO_CACHE_WRITE, 0 ); вызов InternetSetOption тоже, кстати, падает с такими же случайными кодами ошибок. |
|
Сообщ.
#4
,
|
|
|
|
Насколько понимаю InternetQueryOption и InternetSetOption для INTERNET_OPTION_SECURITY_FLAGS нужно вызывать с первым параметром hUrl = ::InternetOpenUrl(...), а не корневым дескриптором.
|
|
Сообщ.
#5
,
|
|
|
|
arj99, ты прав. Спасибо
|