Поделиться через


Функция 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. Среди возвращаемых кодов ошибок:

Код ошибки Описание
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
Запрошенная операция не может быть выполнена, так как предоставленный дескриптор находится в неправильном состоянии.
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
Для этой операции указан неправильный тип дескриптора.
ERROR_WINHTTP_INTERNAL_ERROR
Произошла внутренняя ошибка.
ERROR_WINHTTP_INVALID_OPTION
Указано недопустимое значение параметра.
ERROR_NOT_ENOUGH_MEMORY
Недостаточно памяти для выполнения запрошенной операции. (Код ошибки Windows)

Комментарии

Даже если WinHTTP используется в асинхронном режиме (то есть при установке WINHTTP_FLAG_ASYNC в WinHttpOpen), эта функция работает синхронно. Возвращаемое значение указывает на успех или сбой. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

GetLastError возвращает ERROR_INVALID_PARAMETER, если флаг параметра, недопустимый для указанного типа дескриптора, передается параметру dwOption .

Примечание Для Windows XP и Windows 2000 см. раздел Требования во время выполнения начальной страницы WinHttp.
 

Примеры

В этом примере показано получение значения времени ожидания подключения:

    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.

См. также раздел

Сведения о службах HTTP Microsoft Windows (WinHTTP)

Флаги параметров

Версии WinHTTP

WinHttpCloseHandle

WinHttpConnect

WinHttpOpen

WinHttpOpenRequest