CInternetSession::OnStatusCallback
このメンバー関数は、フレームワークで状態のコールバックが有効になり、操作が保留されている場合を更新するために呼び出されます。
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を参照してください。
必要条件
Header: afxinet.h