InternetStatusCallback callback function
Prototype for an application-defined status callback function.
The INTERNET_STATUS_CALLBACK type defines a pointer to this callback function.InternetStatusCallback is a placeholder for the application-defined function name.
void CALLBACK InternetStatusCallback( _In_ HINTERNET hInternet, _In_ DWORD_PTR dwContext, _In_ DWORD dwInternetStatus, _In_ LPVOID lpvStatusInformation, _In_ DWORD dwStatusInformationLength );
- hInternet [in]
The handle for which the callback function is called.
- dwContext [in]
A pointer to a variable that specifies the application-defined context value associated with hInternet.
- dwInternetStatus [in]
A status code that indicates why the callback function is called. This parameter can be one of the following values.
Closing the connection to the server. The lpvStatusInformation parameter is NULL.
Successfully connected to the socket address (SOCKADDR) pointed to by lpvStatusInformation.
Connecting to the socket address (SOCKADDR) pointed to by lpvStatusInformation.
Successfully closed the connection to the server. The lpvStatusInformation parameter is NULL.
Retrieving content from the cache. Contains data about past cookie events for the URL such as if cookies were accepted, rejected, downgraded, or leashed.
The lpvStatusInformation parameter is a pointer to an InternetCookieHistory structure.
Indicates the number of cookies that were accepted, rejected, downgraded (changed from persistent to session cookies), or leashed (will be sent out only in 1st party context). The lpvStatusInformation parameter is a DWORD with the number of cookies received.
Indicates the number of cookies that were either sent or suppressed, when a request is sent. The lpvStatusInformation parameter is a DWORD with the number of cookies sent or suppressed.
Notifies the client application that a proxy has been detected.
This handle value has been terminated. pvStatusInformation contains the address of the handle being closed. The lpvStatusInformation parameter contains the address of the handle being closed.
Used by InternetConnect to indicate it has created the new handle. This lets the application call InternetCloseHandle from another thread, if the connect is taking too long. The lpvStatusInformation parameter contains the address of an HINTERNET handle.
Received an intermediate (100 level) status code message from the server.
Successfully found the IP address of the name contained in lpvStatusInformation. The lpvStatusInformation parameter points to a PCTSTR containing the host name.
The response has a P3P header in it.
Waiting for the server to respond to a request. The lpvStatusInformation parameter is NULL.
An HTTP request is about to automatically redirect the request. The lpvStatusInformation parameter points to the new URL. At this point, the application can read any data returned by the server with the redirect response and can query the response headers. It can also cancel the operation by closing the handle. This callback is not made if the original request specified INTERNET_FLAG_NO_AUTO_REDIRECT.
An asynchronous operation has been completed. The lpvStatusInformation parameter contains the address of an INTERNET_ASYNC_RESULT structure.
Successfully sent the information request to the server. The lpvStatusInformation parameter points to a DWORD value that contains the number of bytes sent.
Looking up the IP address of the name contained in lpvStatusInformation. The lpvStatusInformation parameter points to a PCTSTR containing the host name.
Successfully received a response from the server.
Sending the information request to the server. The lpvStatusInformation parameter is NULL.
Moved between a secure (HTTPS) and a nonsecure (HTTP) site. The user must be informed of this change; otherwise, the user is at risk of disclosing sensitive information involuntarily. When this flag is set, the lpvStatusInformation parameter points to a status DWORD that contains additional flags.
- lpvStatusInformation [in]
A pointer to additional status information. When the INTERNET_STATUS_STATE_CHANGE flag is set, lpvStatusInformation points to a DWORD that contains one or more of the following flags:
- dwStatusInformationLength [in]
The size, in bytes, of the data pointed to by lpvStatusInformation.
This callback function does not return a value.
Because callbacks are made during processing of the request, the application should spend little time in the callback function to avoid degrading data throughput on the network. For example, displaying a dialog box in a callback function can be such a lengthy operation that the server terminates the request.
The callback function can be called in a thread context different from the thread that initiated the request.
Caution Always notify the user when a state change from a secure (HTTPS) site to a nonsecure (HTTP) site occurs, to guard against involuntary information disclosure.
Like all other aspects of the WinINet API, this function cannot be safely called from within DllMain or the constructors and destructors of global objects.
Note WinINet does not support server implementations. In addition, it should not be used from a service. For server implementations or services use Microsoft Windows HTTP Services (WinHTTP).
Minimum supported client
|Windows 2000 Professional [desktop apps only]|
Minimum supported server
|Windows 2000 Server [desktop apps only]|
Build date: 10/26/2012