Win32 API 日本語リファレンス
ホームNetworking.WinHttp › IWinHttpRequestEvents

IWinHttpRequestEvents

COM
IIDf97f4e15-b787-4212-80d1-d380cbbf982e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

Microsoft Windows HTTP Services (WinHTTP) のイベントを提供します。

解説(Remarks)

IWinHttpRequestEvents インターフェイスは、Microsoft Windows HTTP Services (WinHTTP) のイベントを提供します。イベントメソッドのみを使用します。

次の手順では、通知を登録する方法を説明します。

  1. IWinHttpRequest オブジェクトに対して QueryInterface を呼び出して、IConnectionPointContainer インターフェイスを取得します。
  2. 返されたインターフェイスに対して FindConnectionPoint を呼び出し、riidIID_IWinHttpRequestEvents を渡します。
  3. 返された接続ポイントに対して Advise を呼び出し、IWinHttpRequestEvents を実装するオブジェクトの IUnknown インターフェイスへのポインターを pUnk に渡します。

通知は、手順 2 で返された接続ポイントに対して Unadvise を呼び出すことで終了できます。

COM 通知を登録するコードを確認するには、COM Connection Points 記事の Client セクションを参照してください。

メモ

Windows XP および Windows 2000 については、WinHTTP スタートページの Run-Time Requirements セクションを参照してください。

メソッド 4

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 void OnResponseStart(INT Status, LPWSTR ContentType)

応答データの受信が開始されたときに発生します。

StatusINTin応答開始時の HTTP ステータスコードを示す INT である。
ContentTypeLPWSTRin応答のコンテンツタイプを示す LPWSTR である。
vtbl 4 void OnResponseDataAvailable(SAFEARRAY** Data)

応答からデータが利用可能になったときに発生します。

DataSAFEARRAY**in利用可能になった応答データを保持する SAFEARRAY のポインタである。
vtbl 5 void OnResponseFinished()

応答データが完了したときに発生します。

vtbl 6 void OnError(INT ErrorNumber, LPWSTR ErrorDescription)

アプリケーションで実行時エラーが発生したときに発生します。

ErrorNumberINTin発生したエラーの番号を示す INT である。
ErrorDescriptionLPWSTRinエラー内容の説明文を示す LPWSTR である。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IWinHttpRequestEvents "{F97F4E15-B787-4212-80D1-D380CBBF982E}"
#usecom global IWinHttpRequestEvents IID_IWinHttpRequestEvents "{}"
#comfunc global IWinHttpRequestEvents_OnResponseStart          3 int,wstr
#comfunc global IWinHttpRequestEvents_OnResponseDataAvailable  4 var
#comfunc global IWinHttpRequestEvents_OnResponseFinished       5
#comfunc global IWinHttpRequestEvents_OnError                  6 int,wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。