IWinHttpRequest
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IWinHttpRequest インターフェイスは、Microsoft Windows HTTP Services (WinHTTP) の非イベント系メソッドをすべて提供します。
解説(Remarks)
IWinHttpRequest インターフェイスは、Microsoft Windows HTTP Services (WinHTTP) の非イベント系メソッドをすべて提供します。
httprequest.idl で定義されている IWinHttpRequest インターフェイスは、CLSID_WinHttpRequest という ID を持つクラスによって実装されます。アプリケーションは、クラス ID に CLSID_WinHttpRequest、インターフェイス ID に IID_IWinHttpRequest を指定して CoCreateInstance を呼び出すことで、このインターフェイスを取得します。
Windows XP および Windows 2000 については、WinHttp スタートページの Run-Time Requirements セクションを参照してください。
メソッド 19
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
プロキシサーバー情報を設定します。
| ProxySetting | INT | in | プロキシ設定方法を示す INT(HTTPREQUEST_PROXY_SETTING 値)である。 |
| ProxyServer | VARIANT | in | 使用するプロキシサーバー名を保持する VARIANT である。 |
| BypassList | VARIANT | in | プロキシを経由しないホストの一覧を保持する VARIANT である。 |
HTTP サーバー(プロキシサーバーまたは配信元サーバーのいずれか)で使用する資格情報を設定します。
| UserName | LPWSTR | in | 認証に使用するユーザー名を示す LPWSTR である。 |
| Password | LPWSTR | in | 認証に使用するパスワードを示す LPWSTR である。 |
| Flags | INT | in | 資格情報の対象(サーバー/プロキシ)を示す INT フラグである。 |
HTTP リソースへの HTTP 接続を開きます。
| Method | LPWSTR | in | HTTP メソッド(GET や POST など)を示す LPWSTR である。 |
| Url | LPWSTR | in | 要求対象の URL を示す LPWSTR である。 |
| Async | VARIANT | in | 非同期実行するかを示す VARIANT(VARIANT_BOOL)である。 |
HTTP 要求ヘッダーを追加、変更、または削除します。
| Header | LPWSTR | in | 設定する要求ヘッダー名を示す LPWSTR である。 |
| Value | LPWSTR | in | ヘッダーに設定する値を示す LPWSTR である。 |
HTTP 応答ヘッダーを取得します。
| Header | LPWSTR | in | 取得する応答ヘッダー名を示す LPWSTR である。 |
| Value | LPWSTR* | out | 取得したヘッダー値を受け取る LPWSTR ポインタである。 |
すべての HTTP 応答ヘッダーを取得します。
| Headers | LPWSTR* | out | すべての応答ヘッダーを連結した文字列を受け取る LPWSTR ポインタである。 |
HTTP サーバーに HTTP 要求を送信します。
| Body | VARIANT | in | 送信する要求本文を保持する VARIANT。本文が無い場合は省略可。 |
| Status | INT* | out | HTTP 応答ステータスコードを受け取る INT ポインタである。 |
| Status | LPWSTR* | out | HTTP 応答ステータスの説明文を受け取る LPWSTR ポインタである。 |
| Body | LPWSTR* | out | 応答本文を文字列として受け取る LPWSTR ポインタである。 |
| Body | VARIANT* | out | 応答本文をバイト配列(SAFEARRAY)として受け取る VARIANT ポインタである。 |
| Body | VARIANT* | out | 応答本文を IStream として受け取る VARIANT ポインタである。 |
| Option | WinHttpRequestOption | in | 取得するオプションの種類を示す WinHttpRequestOption 列挙値である。 |
| Value | VARIANT* | out | 取得したオプション値を受け取る VARIANT ポインタである。 |
| Option | WinHttpRequestOption | in | 設定するオプションの種類を示す WinHttpRequestOption 列挙値である。 |
| Value | VARIANT | in | オプションに設定する値を保持する VARIANT である。 |
非同期の Send メソッドの完了を待機します。省略可能なタイムアウト値を秒単位で指定できます。
| Timeout | VARIANT | in | 応答待機の最大秒数を保持する VARIANT。省略時は無制限に待機する。 |
| Succeeded | VARIANT_BOOL* | out | 応答受信に成功したかを受け取る VARIANT_BOOL ポインタである。 |
WinHTTP の Send メソッドを中止します。
送受信操作の個々のタイムアウト要素をミリ秒単位で指定します。
| ResolveTimeout | INT | in | 名前解決のタイムアウトをミリ秒で指定する INT である。 |
| ConnectTimeout | INT | in | 接続確立のタイムアウトをミリ秒で指定する INT である。 |
| SendTimeout | INT | in | 送信のタイムアウトをミリ秒で指定する INT である。 |
| ReceiveTimeout | INT | in | 受信のタイムアウトをミリ秒で指定する INT である。 |
Secure Hypertext Transfer Protocol (HTTPS) サーバーに送信するクライアント証明書を選択します。
| ClientCertificate | LPWSTR | in | 使用するクライアント証明書を証明書ストア上の位置で示す LPWSTR である。 |
現在の自動ログオンポリシーを設定します。
| AutoLogonPolicy | WinHttpRequestAutoLogonPolicy | in | 自動ログオンの方針を示す WinHttpRequestAutoLogonPolicy 列挙値である。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWinHttpRequest "{016FE2EC-B2C8-45F8-B23B-39E53A75396B}" #usecom global IWinHttpRequest IID_IWinHttpRequest "{}" #comfunc global IWinHttpRequest_SetProxy 7 int,int,int #comfunc global IWinHttpRequest_SetCredentials 8 wstr,wstr,int #comfunc global IWinHttpRequest_Open 9 wstr,wstr,int #comfunc global IWinHttpRequest_SetRequestHeader 10 wstr,wstr #comfunc global IWinHttpRequest_GetResponseHeader 11 wstr,var #comfunc global IWinHttpRequest_GetAllResponseHeaders 12 var #comfunc global IWinHttpRequest_Send 13 int #comfunc global IWinHttpRequest_get_Status 14 var #comfunc global IWinHttpRequest_get_StatusText 15 var #comfunc global IWinHttpRequest_get_ResponseText 16 var #comfunc global IWinHttpRequest_get_ResponseBody 17 var #comfunc global IWinHttpRequest_get_ResponseStream 18 var #comfunc global IWinHttpRequest_get_Option 19 int,var #comfunc global IWinHttpRequest_put_Option 20 int,int #comfunc global IWinHttpRequest_WaitForResponse 21 int,var #comfunc global IWinHttpRequest_Abort 22 #comfunc global IWinHttpRequest_SetTimeouts 23 int,int,int,int #comfunc global IWinHttpRequest_SetClientCertificate 24 wstr #comfunc global IWinHttpRequest_SetAutoLogonPolicy 25 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IWinHttpRequest "{016FE2EC-B2C8-45F8-B23B-39E53A75396B}" #usecom global IWinHttpRequest IID_IWinHttpRequest "{}" #comfunc global IWinHttpRequest_SetProxy 7 int,int,int #comfunc global IWinHttpRequest_SetCredentials 8 wstr,wstr,int #comfunc global IWinHttpRequest_Open 9 wstr,wstr,int #comfunc global IWinHttpRequest_SetRequestHeader 10 wstr,wstr #comfunc global IWinHttpRequest_GetResponseHeader 11 wstr,sptr #comfunc global IWinHttpRequest_GetAllResponseHeaders 12 sptr #comfunc global IWinHttpRequest_Send 13 int #comfunc global IWinHttpRequest_get_Status 14 sptr #comfunc global IWinHttpRequest_get_StatusText 15 sptr #comfunc global IWinHttpRequest_get_ResponseText 16 sptr #comfunc global IWinHttpRequest_get_ResponseBody 17 sptr #comfunc global IWinHttpRequest_get_ResponseStream 18 sptr #comfunc global IWinHttpRequest_get_Option 19 int,sptr #comfunc global IWinHttpRequest_put_Option 20 int,int #comfunc global IWinHttpRequest_WaitForResponse 21 int,sptr #comfunc global IWinHttpRequest_Abort 22 #comfunc global IWinHttpRequest_SetTimeouts 23 int,int,int,int #comfunc global IWinHttpRequest_SetClientCertificate 24 wstr #comfunc global IWinHttpRequest_SetAutoLogonPolicy 25 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。