ホーム › Networking.WinHttp › IWinHttpRequestEvents
IWinHttpRequestEvents
COM公式ドキュメント
Microsoft Windows HTTP Services (WinHTTP) のイベントを提供します。
解説(Remarks)
IWinHttpRequestEvents インターフェイスは、Microsoft Windows HTTP Services (WinHTTP) のイベントを提供します。イベントメソッドのみを使用します。
次の手順では、通知を登録する方法を説明します。
- IWinHttpRequest オブジェクトに対して QueryInterface を呼び出して、IConnectionPointContainer インターフェイスを取得します。
- 返されたインターフェイスに対して FindConnectionPoint を呼び出し、riid に IID_IWinHttpRequestEvents を渡します。
- 返された接続ポイントに対して 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。
応答データの受信が開始されたときに発生します。
| Status | INT | in | 応答開始時の HTTP ステータスコードを示す INT である。 |
| ContentType | LPWSTR | in | 応答のコンテンツタイプを示す LPWSTR である。 |
vtbl 4 void OnResponseDataAvailable(SAFEARRAY** Data)
応答からデータが利用可能になったときに発生します。
| Data | SAFEARRAY** | in | 利用可能になった応答データを保持する SAFEARRAY のポインタである。 |
vtbl 5 void OnResponseFinished()
応答データが完了したときに発生します。
アプリケーションで実行時エラーが発生したときに発生します。
| ErrorNumber | INT | in | 発生したエラーの番号を示す INT である。 |
| ErrorDescription | LPWSTR | in | エラー内容の説明文を示す LPWSTR である。 |
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
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 方式にも切替可。#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 sptr #comfunc global IWinHttpRequestEvents_OnResponseFinished 5 #comfunc global IWinHttpRequestEvents_OnError 6 int,wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。