IWMSInternalAdminNetSource3
COM公式ドキュメント
IWMSInternalAdminNetSource3 インターフェースは、プロキシサーバーを検索するための改良されたメソッドを提供します。このインターフェースのインスタンスへのポインターを取得するには、INSNetSourceCreator::GetNetSourceAdminInterface で取得した IDispatch の QueryInterface メソッドを呼び出します。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| ppNetSourceCreator | IUnknown** | out | ネットソース作成オブジェクトのIUnknownを受け取る出力ポインタ。 |
FindProxyForURLEx2 メソッドは、ユーザーが使用するプロキシサーバー名とポートを検索します。
| bstrProtocol | LPWSTR | in | プロキシサーバーを検索する対象のプロトコルを格納した文字列。通常は "http" または "mms" のいずれかです。 |
| bstrHost | LPWSTR | in | 通信したいサーバーの DNS 名または IP アドレスを格納した文字列。サーバーによって、プロキシが異なる場合があります。 |
| bstrUrl | LPWSTR | in | 接続したいサイトの完全な URL を格納した文字列。 |
| pfProxyEnabled | BOOL* | out | 指定したプロトコル、ホスト、サイトに適用されるプロキシをユーザーが有効にしている場合に True に設定される Boolean 値へのポインター。 |
| pbstrProxyServer | LPWSTR* | out | プロキシサーバーの DNS 名を格納した文字列へのポインター。 |
| pdwProxyPort | DWORD* | out | プロキシポート番号を格納した DWORD へのポインター。 |
| pqwProxyContext | ULONGLONG* | inout | 返されたプロキシサーバーを表す QWORD。FindProxyForURL を複数回呼び出すことで、構成されているすべてのプロキシサーバーを検索できます。最初の呼び出しでは、コンテキストをゼロに設定します。呼び出しが返ると、情報が返されたプロキシを表す値にコンテキストが設定されます。次の呼び出しでは、最初の呼び出しで取得したコンテキスト値をコンテキストに設定します。呼び出しが S_FALSE を返すまでこの処理を続けます。 このメソッドには、プロキシサーバーの検索方法を決定する内部アルゴリズムがあります。コンテキストを 3 に設定することで、これを上書きし、クライアントの Web ブラウザーによって設定されたプロキシサーバーを検索させることができます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 | |
| このメソッドを複数回呼び出して構成済みのすべてのプロキシを検索する場合、これ以上構成されているプロキシサーバーがないときにこの値が返されます。 |
| hrParam | HRESULT | in | 発生した障害を示すHRESULTエラーコード。 |
| qwProxyContext | ULONGLONG | in | 障害を報告する対象の64ビットプロキシコンテキスト値。 |
ShutdownProxyContext2 メソッドは、IWMSInternalAdminNetSource3::FindProxyForURLEx2 が使用した内部リソースを解放します。メモリリークを避けるため、FindProxyForURLEx2 の呼び出しを終えた後にこのメソッドを呼び出す必要があります。
| qwProxyContext | ULONGLONG | in | プロキシコンテキストを格納した QWORD。FindProxyForURLEx2 から最後に受け取ったプロキシコンテキストを設定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
| qwProxyContext | ULONGLONG | in | 判定対象の64ビットプロキシコンテキスト値。 |
| pfIsUsingIE | BOOL* | out | Internet Explorerの設定を使用中ならTRUEを受け取るBOOL出力ポインタ。 |
SetCredentialsEx2 メソッドは、パスワードをキャッシュに追加します。IWMSInternalAdminNetSource2::SetCredentialsEx の改良版であるこのメソッドには、資格情報がネットワーク上で暗号化されていない形式で送信されたかどうかを示すフラグ (fClearTextAuthentication) が追加されています。
| bstrRealm | LPWSTR | in | レルム名を格納した文字列。レルム名は、ファイルへのアクセスレベルの違いを区別するためにサーバーから提供されます。すべてのサーバーがレルム名を持つわけではなく、その場合は DNS 名を使用します。 fProxy が False の場合、このレルムはホストサーバーを指します。fProxy が True の場合、このレルムはプロキシサーバーを指します。 |
| bstrUrl | LPWSTR | in | 資格情報が適用される URL を格納した文字列。 |
| fProxy | BOOL | in | bstrUrl で指定したサイトにアクセスするためにプロキシサーバーを使用する場合にパスワードが適用されるときは True となる Boolean 値。 |
| bstrName | LPWSTR | in | ユーザー名を格納した文字列。 |
| bstrPassword | LPWSTR | in | パスワードを格納した文字列。 |
| fPersist | BOOL | in | これらの資格情報を永続的に保存する場合は True となる Boolean 値。False に設定すると、資格情報は現在のセッションの間のみ保持されます。 |
| fConfirmedGood | BOOL | in | サーバーがパスワードを正しいものとして確認済みの場合は True となる Boolean 値。サーバーからの検証を受け取る前にパスワードをキャッシュすることもでき、その場合は False に設定します。 |
| fClearTextAuthentication | BOOL | in | 資格情報がネットワーク上で暗号化されていない形式で送信される認証方式 (HTTP Basic 認証など) を使用して取得された場合は True となる Boolean 値。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
GetCredentialsEx2 メソッドは、キャッシュされたパスワードを取得します。IWMSInternalAdminNetSource2::GetCredentialsEx の改良版であるこのメソッドには、資格情報がネットワーク上で暗号化されていない形式で送信されたかどうかを示すフラグ (fClearTextAuthentication) が追加されています。
| bstrRealm | LPWSTR | in | レルム名を格納した文字列。レルム名は、ファイルへのアクセスレベルの違いを区別するためにサーバーから提供されます。すべてのサーバーがレルム名を持つわけではなく、その場合は DNS 名を使用します。 fProxy が False の場合、このレルムはホストサーバーを指します。fProxy が True の場合、このレルムはプロキシサーバーを指します。 |
| bstrUrl | LPWSTR | in | 資格情報が適用される URL を格納した文字列。 |
| fProxy | BOOL | in | bstrUrl で指定したサイトにアクセスするためにプロキシサーバーを使用する場合にパスワードが適用されるときは True となる Boolean 値。 |
| fClearTextAuthentication | BOOL | in | キャッシュされた資格情報が以前ネットワーク上で暗号化されていない形式で送信された場合は True となる Boolean 値。 |
| pdwUrlPolicy | NETSOURCE_URLCREDPOLICY_SETTINGS* | out | NETSOURCE_URLCREDPOLICY_SETTINGS 列挙型のメンバーの 1 つを格納した DWORD へのポインター。この値はユーザーのネットワークセキュリティ設定に基づいており、資格情報がキャッシュされている場合にアプリケーションがユーザーに代わってサイトへ自動的にログインできるかどうかを決定します。 |
| pbstrName | LPWSTR* | out | ユーザー名を格納した文字列へのポインター。 |
| pbstrPassword | LPWSTR* | out | パスワードを格納した文字列へのポインター。 |
| pfConfirmedGood | BOOL* | out | サーバーによって正しいと確認された後にパスワードがキャッシュされた場合は True となる Boolean 値。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMSInternalAdminNetSource3 "{6B63D08E-4590-44AF-9EB3-57FF1E73BF80}" #usecom global IWMSInternalAdminNetSource3 IID_IWMSInternalAdminNetSource3 "{}" #comfunc global IWMSInternalAdminNetSource3_GetNetSourceCreator2 7 sptr #comfunc global IWMSInternalAdminNetSource3_FindProxyForURLEx2 8 wstr,wstr,wstr,var,var,var,var #comfunc global IWMSInternalAdminNetSource3_RegisterProxyFailure2 9 int,int64 #comfunc global IWMSInternalAdminNetSource3_ShutdownProxyContext2 10 int64 #comfunc global IWMSInternalAdminNetSource3_IsUsingIE2 11 int64,var #comfunc global IWMSInternalAdminNetSource3_SetCredentialsEx2 12 wstr,wstr,int,wstr,wstr,int,int,int #comfunc global IWMSInternalAdminNetSource3_GetCredentialsEx2 13 wstr,wstr,int,int,var,var,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWMSInternalAdminNetSource3 "{6B63D08E-4590-44AF-9EB3-57FF1E73BF80}" #usecom global IWMSInternalAdminNetSource3 IID_IWMSInternalAdminNetSource3 "{}" #comfunc global IWMSInternalAdminNetSource3_GetNetSourceCreator2 7 sptr #comfunc global IWMSInternalAdminNetSource3_FindProxyForURLEx2 8 wstr,wstr,wstr,sptr,sptr,sptr,sptr #comfunc global IWMSInternalAdminNetSource3_RegisterProxyFailure2 9 int,int64 #comfunc global IWMSInternalAdminNetSource3_ShutdownProxyContext2 10 int64 #comfunc global IWMSInternalAdminNetSource3_IsUsingIE2 11 int64,sptr #comfunc global IWMSInternalAdminNetSource3_SetCredentialsEx2 12 wstr,wstr,int,wstr,wstr,int,int,int #comfunc global IWMSInternalAdminNetSource3_GetCredentialsEx2 13 wstr,wstr,int,int,sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。