CInternetSession::OnStatusCallback
更新 : 2007 年 11 月
ステータス コールバックが有効で操作が保留状態のときに、ステータスを更新するためにフレームワークによって呼び出されます。
virtual void OnStatusCallback(
DWORD_PTR dwContext,
DWORD dwInternetStatus,
LPVOID lpvStatusInformation,
DWORD dwStatusInformationLength
);
パラメータ
dwContext
アプリケーションにより提供されるコンテキスト値。dwInternetStatus
コールバックの理由を示すステータス コード。指定できる値については、後の「解説」を参照してください。lpvStatusInformation
このコールバックに関する情報を格納しているバッファへのポインタ。dwStatusInformationLength
lpvStatusInformation のサイズ。
解説
ステータス コールバックを使用するには、EnableStatusCallback を呼び出しておく必要があります。
パラメータ dwInternetStatus は、実行される操作を示し、lpvStatusInformation の内容を決定します。dwStatusInformationLength は、lpvStatusInformation に含まれるデータの長さを示します。dwInternetStatus のステータス値と、その定義を次に示します。
値 |
説明 |
---|---|
INTERNET_STATUS_RESOLVING_NAME |
lpvStatusInformation に格納されている名前の IP アドレスを検索しています。 |
INTERNET_STATUS_NAME_RESOLVED |
lpvStatusInformation に格納されている名前の IP アドレスが見つかりました。 |
INTERNET_STATUS_CONNECTING_TO_SERVER |
lpvStatusInformation で指定されているソケット アドレス (SOCKADDR) に接続しています。 |
INTERNET_STATUS_CONNECTED_TO_SERVER |
lpvStatusInformation で指定されているソケット アドレス (SOCKADDR) への接続が確立しました。 |
INTERNET_STATUS_SENDING_REQUEST |
サーバーに要求を送信しています。パラメータ lpvStatusInformation は NULL です。 |
INTERNET_STATUS_ REQUEST_SENT |
サーバーへの要求の送信が完了しました。パラメータ lpvStatusInformation は NULL です。 |
INTERNET_STATUS_RECEIVING_RESPONSE |
要求に対するサーバーからの応答を待機しています。パラメータ lpvStatusInformation は NULL です。 |
INTERNET_STATUS_RESPONSE_RECEIVED |
サーバーからの応答を受信しました。パラメータ lpvStatusInformation は NULL です。 |
INTERNET_STATUS_CLOSING_CONNECTION |
サーバーへの接続を切断しています。パラメータ lpvStatusInformation は NULL です。 |
INTERNET_STATUS_CONNECTION_CLOSED |
サーバーへの接続が正常に終了しました。パラメータ lpvStatusInformation は NULL です。 |
INTERNET_STATUS_HANDLE_CREATED |
Win32 API 関数 InternetConnect によって使用され、新しいハンドルが作成されたことを示します。これにより、接続に時間がかかる場合に、アプリケーションが別のスレッドから Win32 関数 InternetCloseHandle を呼び出すことができるようになります。これらの関数の詳細については、Windows SDK を参照してください。 |
INTERNET_STATUS_HANDLE_CLOSING |
このハンドル値が正常に終了したことを示します。 |
ステータス コールバック ルーチンを実行する前にアクションを実行する必要がある場合は、このメンバ関数をオーバーライドします。
メモ : |
---|
ステータス コールバックを実行するには、スレッドの状態を保護する必要があります。MFC を共有ライブラリで使用する場合、次の行をオーバーライドの先頭に追加してください。 |
AFX_MANAGE_STATE(AfxGetAppModuleState());
非同期操作の詳細については、「WinInet の基礎」を参照してください。
必要条件
ヘッダー : afxinet.h
参照
参照
CInternetSession::EnableStatusCallback