Win32 API 日本語リファレンス
ホームMedia.WindowsMediaFormat › IWMSInternalAdminNetSource3

IWMSInternalAdminNetSource3

COM
IID6b63d08e-4590-44af-9eb3-57ff1e73bf80継承元IWMSInternalAdminNetSource2自前メソッド開始 vtbl7

公式ドキュメント

IWMSInternalAdminNetSource3 インターフェースは、プロキシサーバーを検索するための改良されたメソッドを提供します。このインターフェースのインスタンスへのポインターを取得するには、INSNetSourceCreator::GetNetSourceAdminInterface で取得した IDispatch の QueryInterface メソッドを呼び出します。

メソッド 7

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

vtbl 7 HRESULT GetNetSourceCreator2(IUnknown** ppNetSourceCreator)
ppNetSourceCreatorIUnknown**outネットソース作成オブジェクトのIUnknownを受け取る出力ポインタ。
vtbl 8 HRESULT FindProxyForURLEx2(LPWSTR bstrProtocol, LPWSTR bstrHost, LPWSTR bstrUrl, BOOL* pfProxyEnabled, LPWSTR* pbstrProxyServer, DWORD* pdwProxyPort, ULONGLONG* pqwProxyContext)

FindProxyForURLEx2 メソッドは、ユーザーが使用するプロキシサーバー名とポートを検索します。

bstrProtocolLPWSTRinプロキシサーバーを検索する対象のプロトコルを格納した文字列。通常は "http" または "mms" のいずれかです。
bstrHostLPWSTRin通信したいサーバーの DNS 名または IP アドレスを格納した文字列。サーバーによって、プロキシが異なる場合があります。
bstrUrlLPWSTRin接続したいサイトの完全な URL を格納した文字列。
pfProxyEnabledBOOL*out指定したプロトコル、ホスト、サイトに適用されるプロキシをユーザーが有効にしている場合に True に設定される Boolean 値へのポインター。
pbstrProxyServerLPWSTR*outプロキシサーバーの DNS 名を格納した文字列へのポインター。
pdwProxyPortDWORD*outプロキシポート番号を格納した DWORD へのポインター。
pqwProxyContextULONGLONG*inout

返されたプロキシサーバーを表す QWORDFindProxyForURL を複数回呼び出すことで、構成されているすべてのプロキシサーバーを検索できます。最初の呼び出しでは、コンテキストをゼロに設定します。呼び出しが返ると、情報が返されたプロキシを表す値にコンテキストが設定されます。次の呼び出しでは、最初の呼び出しで取得したコンテキスト値をコンテキストに設定します。呼び出しが S_FALSE を返すまでこの処理を続けます。

このメソッドには、プロキシサーバーの検索方法を決定する内部アルゴリズムがあります。コンテキストを 3 に設定することで、これを上書きし、クライアントの Web ブラウザーによって設定されたプロキシサーバーを検索させることができます。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

Return code Description
S_OK
メソッドは成功しました。
S_FALSE
このメソッドを複数回呼び出して構成済みのすべてのプロキシを検索する場合、これ以上構成されているプロキシサーバーがないときにこの値が返されます。
vtbl 9 HRESULT RegisterProxyFailure2(HRESULT hrParam, ULONGLONG qwProxyContext)
hrParamHRESULTin発生した障害を示すHRESULTエラーコード。
qwProxyContextULONGLONGin障害を報告する対象の64ビットプロキシコンテキスト値。
vtbl 10 HRESULT ShutdownProxyContext2(ULONGLONG qwProxyContext)

ShutdownProxyContext2 メソッドは、IWMSInternalAdminNetSource3::FindProxyForURLEx2 が使用した内部リソースを解放します。メモリリークを避けるため、FindProxyForURLEx2 の呼び出しを終えた後にこのメソッドを呼び出す必要があります。

qwProxyContextULONGLONGinプロキシコンテキストを格納した QWORDFindProxyForURLEx2 から最後に受け取ったプロキシコンテキストを設定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

vtbl 11 HRESULT IsUsingIE2(ULONGLONG qwProxyContext, BOOL* pfIsUsingIE)
qwProxyContextULONGLONGin判定対象の64ビットプロキシコンテキスト値。
pfIsUsingIEBOOL*outInternet Explorerの設定を使用中ならTRUEを受け取るBOOL出力ポインタ。
vtbl 12 HRESULT SetCredentialsEx2(LPWSTR bstrRealm, LPWSTR bstrUrl, BOOL fProxy, LPWSTR bstrName, LPWSTR bstrPassword, BOOL fPersist, BOOL fConfirmedGood, BOOL fClearTextAuthentication)

SetCredentialsEx2 メソッドは、パスワードをキャッシュに追加します。IWMSInternalAdminNetSource2::SetCredentialsEx の改良版であるこのメソッドには、資格情報がネットワーク上で暗号化されていない形式で送信されたかどうかを示すフラグ (fClearTextAuthentication) が追加されています。

bstrRealmLPWSTRin

レルム名を格納した文字列。レルム名は、ファイルへのアクセスレベルの違いを区別するためにサーバーから提供されます。すべてのサーバーがレルム名を持つわけではなく、その場合は DNS 名を使用します。

fProxy が False の場合、このレルムはホストサーバーを指します。fProxy が True の場合、このレルムはプロキシサーバーを指します。

bstrUrlLPWSTRin資格情報が適用される URL を格納した文字列。
fProxyBOOLinbstrUrl で指定したサイトにアクセスするためにプロキシサーバーを使用する場合にパスワードが適用されるときは True となる Boolean 値。
bstrNameLPWSTRinユーザー名を格納した文字列。
bstrPasswordLPWSTRinパスワードを格納した文字列。
fPersistBOOLinこれらの資格情報を永続的に保存する場合は True となる Boolean 値。False に設定すると、資格情報は現在のセッションの間のみ保持されます。
fConfirmedGoodBOOLinサーバーがパスワードを正しいものとして確認済みの場合は True となる Boolean 値。サーバーからの検証を受け取る前にパスワードをキャッシュすることもでき、その場合は False に設定します。
fClearTextAuthenticationBOOLin資格情報がネットワーク上で暗号化されていない形式で送信される認証方式 (HTTP Basic 認証など) を使用して取得された場合は True となる Boolean 値。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

vtbl 13 HRESULT GetCredentialsEx2(LPWSTR bstrRealm, LPWSTR bstrUrl, BOOL fProxy, BOOL fClearTextAuthentication, NETSOURCE_URLCREDPOLICY_SETTINGS* pdwUrlPolicy, LPWSTR* pbstrName, LPWSTR* pbstrPassword, BOOL* pfConfirmedGood)

GetCredentialsEx2 メソッドは、キャッシュされたパスワードを取得します。IWMSInternalAdminNetSource2::GetCredentialsEx の改良版であるこのメソッドには、資格情報がネットワーク上で暗号化されていない形式で送信されたかどうかを示すフラグ (fClearTextAuthentication) が追加されています。

bstrRealmLPWSTRin

レルム名を格納した文字列。レルム名は、ファイルへのアクセスレベルの違いを区別するためにサーバーから提供されます。すべてのサーバーがレルム名を持つわけではなく、その場合は DNS 名を使用します。

fProxy が False の場合、このレルムはホストサーバーを指します。fProxy が True の場合、このレルムはプロキシサーバーを指します。

bstrUrlLPWSTRin資格情報が適用される URL を格納した文字列。
fProxyBOOLinbstrUrl で指定したサイトにアクセスするためにプロキシサーバーを使用する場合にパスワードが適用されるときは True となる Boolean 値。
fClearTextAuthenticationBOOLinキャッシュされた資格情報が以前ネットワーク上で暗号化されていない形式で送信された場合は True となる Boolean 値。
pdwUrlPolicyNETSOURCE_URLCREDPOLICY_SETTINGS*outNETSOURCE_URLCREDPOLICY_SETTINGS 列挙型のメンバーの 1 つを格納した DWORD へのポインター。この値はユーザーのネットワークセキュリティ設定に基づいており、資格情報がキャッシュされている場合にアプリケーションがユーザーに代わってサイトへ自動的にログインできるかどうかを決定します。
pbstrNameLPWSTR*outユーザー名を格納した文字列へのポインター。
pbstrPasswordLPWSTR*outパスワードを格納した文字列へのポインター。
pfConfirmedGoodBOOL*outサーバーによって正しいと確認された後にパスワードがキャッシュされた場合は True となる Boolean 値。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。