INTERNET_STATUS_CALLBACK 콜백 함수(wininet.h)

애플리케이션 정의 상태 콜백 함수의 프로토타입입니다.

INTERNET_STATUS_CALLBACK 형식은 이 콜백 함수에 대한 포인터를 정의합니다. InternetStatusCallback은 애플리케이션 정의 함수 이름의 자리 표시자입니다.

구문

INTERNET_STATUS_CALLBACK InternetStatusCallback;

void InternetStatusCallback(
  [in] HINTERNET hInternet,
  [in] DWORD_PTR dwContext,
  [in] DWORD dwInternetStatus,
  [in] LPVOID lpvStatusInformation,
  [in] DWORD dwStatusInformationLength
)
{...}

매개 변수

[in] hInternet

콜백 함수가 호출되는 핸들입니다.

[in] dwContext

hInternet과 연결된 애플리케이션 정의 컨텍스트 값을 지정하는 변수에 대한 포인터입니다.

[in] dwInternetStatus

콜백 함수가 호출되는 이유를 나타내는 상태 코드입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
INTERNET_STATUS_CLOSING_CONNECTION
서버에 대한 연결을 닫습니다. lpvStatusInformation 매개 변수는 NULL입니다.
INTERNET_STATUS_CONNECTED_TO_SERVER
lpvStatusInformation에서 가리키는 소켓 주소(SOCKADDR)에 성공적으로 연결되었습니다.
INTERNET_STATUS_CONNECTING_TO_SERVER
lpvStatusInformation에서 가리키는 소켓 주소(SOCKADDR)에 연결합니다.
INTERNET_STATUS_CONNECTION_CLOSED
서버에 대한 연결을 성공적으로 닫습니다. lpvStatusInformation 매개 변수는 NULL입니다.
INTERNET_STATUS_COOKIE_HISTORY
캐시에서 콘텐츠 검색 쿠키가 수락, 거부, 다운그레이드 또는 끈으로 묶인 경우와 같이 URL에 대한 과거 쿠키 이벤트에 대한 데이터를 포함합니다.

lpvStatusInformation 매개 변수는 InternetCookieHistory 구조체에 대한 포인터입니다.

INTERNET_STATUS_COOKIE_RECEIVED
수락, 거부, 다운그레이드(영구 쿠키에서 세션 쿠키로 변경됨) 또는 끈으로 묶인 쿠키의 수를 나타냅니다(첫 번째 당사자 컨텍스트에서만 전송됨). lpvStatusInformation 매개 변수는 수신된 쿠키 수가 있는 DWORD입니다.
INTERNET_STATUS_COOKIE_SENT
요청이 전송될 때 전송되거나 표시되지 않는 쿠키의 수를 나타냅니다. lpvStatusInformation 매개 변수는 전송되거나 표시되지 않는 쿠키 수가 있는 DWORD입니다.
INTERNET_STATUS_CTL_RESPONSE_RECEIVED
구현되지 않았습니다.
INTERNET_STATUS_DETECTING_PROXY
프록시가 검색되었음을 클라이언트 애플리케이션에 알 수 있습니다.
INTERNET_STATUS_HANDLE_CLOSING
이 핸들 값이 종료되었습니다. pvStatusInformation에는 닫히는 핸들의 주소가 포함됩니다. lpvStatusInformation 매개 변수는 닫히는 핸들의 주소를 포함합니다.
INTERNET_STATUS_HANDLE_CREATED
InternetConnect에서 새 핸들을 만들었음을 나타내는 데 사용됩니다. 이렇게 하면 연결 시간이 너무 오래 걸리는 경우 애플리케이션이 다른 스레드에서 InternetCloseHandle 을 호출할 수 있습니다. lpvStatusInformation 매개 변수에는 HINTERNET 핸들의 주소가 포함됩니다.
INTERNET_STATUS_INTERMEDIATE_RESPONSE
서버에서 중간(100 수준) 상태 코드 메시지를 받았습니다.
INTERNET_STATUS_NAME_RESOLVED
lpvStatusInformation에 포함된 이름의 IP 주소를 찾았습니다. lpvStatusInformation 매개 변수는 호스트 이름이 포함된 PCTSTR을 가리킵니다.
INTERNET_STATUS_P3P_HEADER
응답에는 P3P 헤더가 있습니다.
INTERNET_STATUS_P3P_POLICYREF
구현되지 않았습니다.
INTERNET_STATUS_PREFETCH
구현되지 않았습니다.
INTERNET_STATUS_PRIVACY_IMPACTED
구현되지 않았습니다.
INTERNET_STATUS_RECEIVING_RESPONSE
서버가 요청에 응답할 때까지 대기합니다. lpvStatusInformation 매개 변수는 NULL입니다.
INTERNET_STATUS_REDIRECT
HTTP 요청이 요청을 자동으로 리디렉션하려고 합니다. lpvStatusInformation 매개 변수는 새 URL을 가리킵니다. 이 시점에서 애플리케이션은 리디렉션 응답을 사용하여 서버에서 반환된 모든 데이터를 읽고 응답 헤더를 쿼리할 수 있습니다. 핸들을 닫아 작업을 취소할 수도 있습니다. 지정된 원래 요청이 INTERNET_FLAG_NO_AUTO_REDIRECT 경우 이 콜백이 수행되지 않습니다.
INTERNET_STATUS_REQUEST_COMPLETE
비동기 작업이 완료되었습니다. lpvStatusInformation 매개 변수에는 INTERNET_ASYNC_RESULT 구조체의 주소가 포함됩니다.
INTERNET_STATUS_REQUEST_SENT
서버로 정보 요청을 성공적으로 보냈습니다. lpvStatusInformation 매개 변수는 전송된 바이트 수를 포함하는 DWORD 값을 가리킵니다.
INTERNET_STATUS_RESOLVING_NAME
lpvStatusInformation에 포함된 이름의 IP 주소를 조회합니다. lpvStatusInformation 매개 변수는 호스트 이름이 포함된 PCTSTR을 가리킵니다.
INTERNET_STATUS_RESPONSE_RECEIVED
서버에서 응답을 받았습니다.
INTERNET_STATUS_SENDING_REQUEST
서버에 정보 요청을 보냅니다. lpvStatusInformation 매개 변수는 NULL입니다.
INTERNET_STATUS_STATE_CHANGE
보안(HTTPS)과 비보안(HTTP) 사이트 간에 이동되었습니다. 사용자에게 이 변경 사항을 알려야 합니다. 그렇지 않으면 사용자는 중요한 정보를 무의식적으로 공개할 위험이 있습니다. 이 플래그가 설정되면 lpvStatusInformation 매개 변수는 추가 플래그가 포함된 상태 DWORD를 가리킵니다.

[in] lpvStatusInformation

추가 상태 정보에 대한 포인터입니다. INTERNET_STATUS_STATE_CHANGE 플래그가 설정되면 lpvStatusInformation은 다음 플래그 중 하나 이상이 포함된 DWORD를 가리킵니다.

의미
INTERNET_STATE_CONNECTED
연결된 상태입니다. 연결이 끊긴 상태와 함께 사용할 수 없습니다.
INTERNET_STATE_DISCONNECTED
연결이 끊긴 상태입니다. 네트워크 연결을 설정할 수 없습니다.
INTERNET_STATE_DISCONNECTED_BY_USER
사용자 요청에 의해 연결이 끊어졌습니다.
INTERNET_STATE_IDLE
Windows 인터넷에서 네트워크 요청을 하지 않습니다.
INTERNET_STATE_BUSY
Windows 인터넷에서 네트워크 요청을 만들고 있습니다.
INTERNET_STATUS_USER_INPUT_REQUIRED
요청을 완료하려면 사용자 입력이 필요합니다.

[in] dwStatusInformationLength

lpvStatusInformation에서 가리키는 데이터의 크기(바이트)입니다.

반환 값

없음

설명

콜백은 요청을 처리하는 동안 이루어지므로 애플리케이션은 네트워크에서 데이터 처리량 저하를 방지하기 위해 콜백 함수에 약간의 시간을 할애해야 합니다. 예를 들어 콜백 함수에 대화 상자를 표시하는 작업은 서버가 요청을 종료하는 긴 작업일 수 있습니다.

콜백 함수는 요청을 시작한 스레드와 다른 스레드 컨텍스트에서 호출할 수 있습니다.

주의 비자발적 정보 공개를 막기 위해 보안(HTTPS) 사이트에서 비보안(HTTP) 사이트로 상태가 변경되는 경우 항상 사용자에게 알립니다.
 
WinINet API의 다른 모든 측면과 마찬가지로 이 함수는 DllMain 내에서 또는 전역 개체의 생성자 및 소멸자에서 안전하게 호출할 수 없습니다.
참고 WinINet은 서버 구현을 지원하지 않습니다. 또한 서비스에서 사용하지 않아야 합니다. 서버 구현 또는 서비스의 경우 WinHTTP(Microsoft Windows HTTP 서비스)를 사용합니다.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wininet.h

추가 정보

비동기 작업

상태 콜백 함수 만들기

INTERNET_ASYNC_RESULT

WinINet 함수