WinHttpQueryOption 함수(winhttp.h)

WinHttpQueryOption 함수는 지정된 핸들에서 인터넷 옵션을 쿼리합니다.

구문

WINHTTPAPI BOOL WinHttpQueryOption(
  [in]      HINTERNET hInternet,
  [in]      DWORD     dwOption,
  [out]     LPVOID    lpBuffer,
  [in, out] LPDWORD   lpdwBufferLength
);

매개 변수

[in] hInternet

정보를 쿼리할 HINTERNET 핸들입니다. 쿼리되는 옵션에 따라 세션 핸들 또는 요청 핸들일 수 있습니다. 특정 옵션을 쿼리하는 데 사용할 수 있는 핸들을 확인하려면 옵션 플래그 항목을 참조하세요.

[in] dwOption

쿼리할 인터넷 옵션이 포함된 부호 없는 긴 정수 값입니다. 옵션 플래그 값 중 하나일 수 있습니다.

[out] lpBuffer

옵션 설정을 수신하는 버퍼에 대한 포인터입니다. WinHttpQueryOption 함수에서 반환된 문자열은 전역적으로 할당되므로 호출 애플리케이션은 문자열 사용을 완료할 때 전역적으로 문자열을 해제해야 합니다. 이 매개 변수를 NULL 로 설정하면 이 함수가 FALSE를 반환합니다. GetLastError를 호출하면 ERROR_INSUFFICIENT_BUFFER 반환되고 lpdwBufferLength에는 요청된 정보를 보유하는 데 필요한 바이트 수가 포함됩니다.

[in, out] lpdwBufferLength

lpBuffer의 길이(바이트)를 포함하는 부호 없는 long 정수 변수에 대한 포인터입니다. 함수가 반환되면 변수는 lpBuffer에 배치된 데이터의 길이를 받습니다. GetLastError가 ERROR_INSUFFICIENT_BUFFER 반환하는 경우 이 매개 변수는 요청된 정보를 보유하는 데 필요한 바이트 수를 받습니다.

반환 값

성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 특정 오류 메시지를 얻으려면 GetLastError를 호출합니다. 반환된 오류 코드 중에는 다음이 있습니다.

오류 코드 Description
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
제공된 핸들이 올바른 상태가 아니므로 요청된 작업을 수행할 수 없습니다.
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
이 작업에 대해 제공된 핸들의 형식이 올바르지 않습니다.
ERROR_WINHTTP_INTERNAL_ERROR
내부 오류가 발생했습니다.
ERROR_WINHTTP_INVALID_OPTION
잘못된 옵션 값이 지정되었습니다.
ERROR_NOT_ENOUGH_MEMORY
메모리가 부족하여 요청된 작업을 완료할 수 없습니다. (Windows 오류 코드)

설명

WinHTTP가 비동기 모드(즉, WinHttpOpen에서 WINHTTP_FLAG_ASYNC 설정된 경우)에서 사용되는 경우에도 이 함수는 동기적으로 작동합니다. 반환 값은 성공 또는 실패를 나타냅니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

지정한 핸들 형식에 잘못된 옵션 플래그가 dwOption 매개 변수에 전달되면 GetLastError는 ERROR_INVALID_PARAMETER 반환합니다.

참고 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 Professional SP3 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003, Windows 2000 Server SP3 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winhttp.h
라이브러리 Winhttp.lib
DLL Winhttp.dll
재배포 가능 파일 Windows XP 및 Windows 2000에서 WinHTTP 5.0 및 인터넷 Explorer 5.01 이상.

추가 정보

Microsoft Windows HTTP 서비스 정보(WinHTTP)

옵션 플래그

WinHTTP 버전

WinHttpCloseHandle

WinHttpConnect

WinHttpOpen

WinHttpOpenRequest