Функция WinHttpQueryOption (winhttp.h)
Функция WinHttpQueryOption запрашивает параметр Internet для указанного дескриптора.
Синтаксис
WINHTTPAPI BOOL WinHttpQueryOption(
[in] HINTERNET hInternet,
[in] DWORD dwOption,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpdwBufferLength
);
Параметры
[in] hInternet
Дескриптор HINTERNET, к которому запрашивают сведения. Обратите внимание, что это может быть дескриптор сеанса или дескриптор запроса в зависимости от того, какой параметр запрашивается. См. раздел Флаги параметров , чтобы определить, какой дескриптор подходит для запроса конкретного параметра.
[in] dwOption
Длинное целочисленное значение без знака, содержащее параметр Internet для запроса. Это может быть одно из значений флагов параметров .
[out] lpBuffer
Указатель на буфер, который получает параметр . Строки, возвращаемые функцией WinHttpQueryOption , выделяются глобально, поэтому вызывающее приложение должно глобально освободить строку после завершения ее использования. Если задать для этого параметра значение NULL , эта функция возвращает значение FALSE. Вызов GetLastError затем возвращает ERROR_INSUFFICIENT_BUFFER, а lpdwBufferLength содержит количество байтов, необходимых для хранения запрошенной информации.
[in, out] lpdwBufferLength
Указатель на непознавленную длинную целочисленную переменную, содержащую длину lpBuffer в байтах. При возврате функции переменная получает длину данных, помещенных в lpBuffer. Если GetLastError возвращает ERROR_INSUFFICIENT_BUFFER, этот параметр получает количество байтов, необходимое для хранения запрошенной информации.
Возвращаемое значение
Возвращает значение TRUE в случае успешного выполнения или FALSE в противном случае. Чтобы получить определенное сообщение об ошибке, вызовите Метод GetLastError. Среди возвращаемых кодов ошибок:
Код ошибки | Описание |
---|---|
|
Запрошенная операция не может быть выполнена, так как предоставленный дескриптор находится в неправильном состоянии. |
|
Для этой операции указан неправильный тип дескриптора. |
|
Произошла внутренняя ошибка. |
|
Указано недопустимое значение параметра. |
|
Недостаточно памяти для выполнения запрошенной операции. (Код ошибки Windows) |
Комментарии
Даже если WinHTTP используется в асинхронном режиме (то есть при установке WINHTTP_FLAG_ASYNC в WinHttpOpen), эта функция работает синхронно. Возвращаемое значение указывает на успех или сбой. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
GetLastError возвращает ERROR_INVALID_PARAMETER, если флаг параметра, недопустимый для указанного типа дескриптора, передается параметру dwOption .
Примеры
В этом примере показано получение значения времени ожидания подключения:
DWORD data;
DWORD dwSize = sizeof(DWORD);
// Use WinHttpOpen to obtain an HINTERNET handle.
HINTERNET hSession = WinHttpOpen(L"A WinHTTP Example Program/1.0",
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
WINHTTP_NO_PROXY_NAME,
WINHTTP_NO_PROXY_BYPASS, 0);
if (hSession)
{
// Use WinHttpQueryOption to retrieve internet options.
if (WinHttpQueryOption( hSession,
WINHTTP_OPTION_CONNECT_TIMEOUT,
&data, &dwSize))
{
printf("Connection timeout: %u ms\n\n",data);
}
else
{
printf( "Error %u in WinHttpQueryOption.\n", GetLastError());
}
// When finished, release the HINTERNET handle.
WinHttpCloseHandle(hSession);
}
else
{
printf("Error %u in WinHttpOpen.\n", GetLastError());
}
Требования
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная с пакетом обновления 3 (SP3) [только классические приложения] |
Минимальная версия сервера | Windows Server 2003, Windows 2000 Server с пакетом обновления 3 (SP3) [только классические приложения] |
Целевая платформа | Windows |
Header | winhttp.h |
Библиотека | Winhttp.lib |
DLL | Winhttp.dll |
Распространяемые компоненты | WinHTTP 5.0 и Internet Обозреватель 5.01 или более поздней версии в Windows XP и Windows 2000. |