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

IWinHttpRequest

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID016fe2ec-b2c8-45f8-b23b-39e53a75396b継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

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。

vtbl 7 HRESULT SetProxy(INT ProxySetting, VARIANT ProxyServer, VARIANT BypassList)

プロキシサーバー情報を設定します。

ProxySettingINTinプロキシ設定方法を示す INT(HTTPREQUEST_PROXY_SETTING 値)である。
ProxyServerVARIANTin使用するプロキシサーバー名を保持する VARIANT である。
BypassListVARIANTinプロキシを経由しないホストの一覧を保持する VARIANT である。
vtbl 8 HRESULT SetCredentials(LPWSTR UserName, LPWSTR Password, INT Flags)

HTTP サーバー(プロキシサーバーまたは配信元サーバーのいずれか)で使用する資格情報を設定します。

UserNameLPWSTRin認証に使用するユーザー名を示す LPWSTR である。
PasswordLPWSTRin認証に使用するパスワードを示す LPWSTR である。
FlagsINTin資格情報の対象(サーバー/プロキシ)を示す INT フラグである。
vtbl 9 HRESULT Open(LPWSTR Method, LPWSTR Url, VARIANT Async)

HTTP リソースへの HTTP 接続を開きます。

MethodLPWSTRinHTTP メソッド(GET や POST など)を示す LPWSTR である。
UrlLPWSTRin要求対象の URL を示す LPWSTR である。
AsyncVARIANTin非同期実行するかを示す VARIANT(VARIANT_BOOL)である。
vtbl 10 HRESULT SetRequestHeader(LPWSTR Header, LPWSTR Value)

HTTP 要求ヘッダーを追加、変更、または削除します。

HeaderLPWSTRin設定する要求ヘッダー名を示す LPWSTR である。
ValueLPWSTRinヘッダーに設定する値を示す LPWSTR である。
vtbl 11 HRESULT GetResponseHeader(LPWSTR Header, LPWSTR* Value)

HTTP 応答ヘッダーを取得します。

HeaderLPWSTRin取得する応答ヘッダー名を示す LPWSTR である。
ValueLPWSTR*out取得したヘッダー値を受け取る LPWSTR ポインタである。
vtbl 12 HRESULT GetAllResponseHeaders(LPWSTR* Headers)

すべての HTTP 応答ヘッダーを取得します。

HeadersLPWSTR*outすべての応答ヘッダーを連結した文字列を受け取る LPWSTR ポインタである。
vtbl 13 HRESULT Send(VARIANT Body)

HTTP サーバーに HTTP 要求を送信します。

BodyVARIANTin送信する要求本文を保持する VARIANT。本文が無い場合は省略可。
vtbl 14 HRESULT get_Status(INT* Status)
StatusINT*outHTTP 応答ステータスコードを受け取る INT ポインタである。
vtbl 15 HRESULT get_StatusText(LPWSTR* Status)
StatusLPWSTR*outHTTP 応答ステータスの説明文を受け取る LPWSTR ポインタである。
vtbl 16 HRESULT get_ResponseText(LPWSTR* Body)
BodyLPWSTR*out応答本文を文字列として受け取る LPWSTR ポインタである。
vtbl 17 HRESULT get_ResponseBody(VARIANT* Body)
BodyVARIANT*out応答本文をバイト配列(SAFEARRAY)として受け取る VARIANT ポインタである。
vtbl 18 HRESULT get_ResponseStream(VARIANT* Body)
BodyVARIANT*out応答本文を IStream として受け取る VARIANT ポインタである。
vtbl 19 HRESULT get_Option(WinHttpRequestOption Option, VARIANT* Value)
OptionWinHttpRequestOptionin取得するオプションの種類を示す WinHttpRequestOption 列挙値である。
ValueVARIANT*out取得したオプション値を受け取る VARIANT ポインタである。
vtbl 20 HRESULT put_Option(WinHttpRequestOption Option, VARIANT Value)
OptionWinHttpRequestOptionin設定するオプションの種類を示す WinHttpRequestOption 列挙値である。
ValueVARIANTinオプションに設定する値を保持する VARIANT である。
vtbl 21 HRESULT WaitForResponse(VARIANT Timeout, VARIANT_BOOL* Succeeded)

非同期の Send メソッドの完了を待機します。省略可能なタイムアウト値を秒単位で指定できます。

TimeoutVARIANTin応答待機の最大秒数を保持する VARIANT。省略時は無制限に待機する。
SucceededVARIANT_BOOL*out応答受信に成功したかを受け取る VARIANT_BOOL ポインタである。
vtbl 22 HRESULT Abort()

WinHTTP の Send メソッドを中止します。

vtbl 23 HRESULT SetTimeouts(INT ResolveTimeout, INT ConnectTimeout, INT SendTimeout, INT ReceiveTimeout)

送受信操作の個々のタイムアウト要素をミリ秒単位で指定します。

ResolveTimeoutINTin名前解決のタイムアウトをミリ秒で指定する INT である。
ConnectTimeoutINTin接続確立のタイムアウトをミリ秒で指定する INT である。
SendTimeoutINTin送信のタイムアウトをミリ秒で指定する INT である。
ReceiveTimeoutINTin受信のタイムアウトをミリ秒で指定する INT である。
vtbl 24 HRESULT SetClientCertificate(LPWSTR ClientCertificate)

Secure Hypertext Transfer Protocol (HTTPS) サーバーに送信するクライアント証明書を選択します。

ClientCertificateLPWSTRin使用するクライアント証明書を証明書ストア上の位置で示す LPWSTR である。
vtbl 25 HRESULT SetAutoLogonPolicy(WinHttpRequestAutoLogonPolicy AutoLogonPolicy)

現在の自動ログオンポリシーを設定します。

AutoLogonPolicyWinHttpRequestAutoLogonPolicyin自動ログオンの方針を示す WinHttpRequestAutoLogonPolicy 列挙値である。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 不要)。