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

IWMReaderNetworkConfig

COM
IID96406bec-2b2b-11d3-b36b-00c04f6108ff継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWMReaderNetworkConfig インターフェイスは、ネットワーク構成設定の設定とテストを行うために使用します。

メソッド 33

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

vtbl 3 HRESULT GetBufferingTime(ULONGLONG* pcnsBufferingTime)

GetBufferingTime メソッドは、ネットワークソースがデータをレンダリングする前にバッファリングする時間の長さを取得します。

pcnsBufferingTimeULONGLONG*outバッファリング時間を 100 ナノ秒単位で受け取る変数へのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
pcnsBufferingTime に NULL が渡されました。

解説(Remarks)

SetBufferingTime の「注釈」を参照してください。

vtbl 4 HRESULT SetBufferingTime(ULONGLONG cnsBufferingTime)

SetBufferingTime メソッドは、ネットワークソースがデータをレンダリングする前にバッファリングする時間の長さを指定します。

cnsBufferingTimeULONGLONGin再生を開始する前にコンテンツをバッファリングする時間の長さを 100 ナノ秒単位で指定します。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
cnsBufferingTime が最大値より大きい、または最小値より小さい値です。

解説(Remarks)

最小バッファリング時間は 1 秒、最大は 60 秒です。たとえばバッファリング時間を 1 秒に設定するには、値を 10000000 に設定します。

vtbl 5 HRESULT GetUDPPortRanges(WM_PORT_NUMBER_RANGE* pRangeArray, DWORD* pcRanges)

GetUDPPortRanges メソッドは、データの受信に使用される UDP ポート番号の範囲を取得します。

pRangeArrayWM_PORT_NUMBER_RANGE*out呼び出し元が割り当てた WM_PORT_NUMBER_RANGE 構造体の配列へのポインター。配列のサイズを取得するには NULL を渡します。
pcRangesDWORD*inout入力時は、pRangeArray に渡された配列の長さを格納した DWORD へのポインター。出力時は、必要な配列サイズへのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
ASF_E_BUFFERTOOSMALL
バッファが小さすぎます。
E_INVALIDARG
pcRanges パラメーターが NULL です。

解説(Remarks)

このメソッドは 2 回呼び出してください。1 回目の呼び出しでは、pRangeArrayNULL を渡します。戻り時に、pcRanges が指す値には割り当てるべき配列のサイズが設定されます。その後、配列に必要な量のメモリを割り当て、2 回目の呼び出しでそのポインターを pRangeArray として渡すことができます。

vtbl 6 HRESULT SetUDPPortRanges(WM_PORT_NUMBER_RANGE* pRangeArray, DWORD cRanges)

SetUDPPortRanges メソッドは、データの受信に使用される UDP ポート番号の範囲を指定します。

pRangeArrayWM_PORT_NUMBER_RANGE*inWM_PORT_NUMBER_RANGE 構造体の配列へのポインター。
cRangesDWORDinpRangeArray に渡された配列の長さを示す値。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

アプリケーションが範囲を指定しない場合、ポート番号はリーダーによって選択されます。

vtbl 7 HRESULT GetProxySettings(LPWSTR pwszProtocol, WMT_PROXY_SETTINGS* pProxySetting)

GetProxySettings メソッドは、現在のプロキシ設定を取得します。

pwszProtocolLPWSTRinプロトコルを格納したワイド文字の null 終端文字列へのポインター。
pProxySettingWMT_PROXY_SETTINGS*outWMT_PROXY_SETTINGS 列挙型のいずれか 1 つのメンバーへのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。
vtbl 8 HRESULT SetProxySettings(LPWSTR pwszProtocol, WMT_PROXY_SETTINGS ProxySetting)

SetProxySettings メソッドは、プロキシ設定を指定します。

pwszProtocolLPWSTRinプロトコル名を格納したワイド文字の null 終端文字列へのポインター。サポートされる名前は HTTP と MMS です。
ProxySettingWMT_PROXY_SETTINGSinWMT_PROXY_SETTINGS 列挙型の値。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

プロトコルを WMT_PROXY_SETTING_MANUAL に設定すると、リーダーは SetProxyHostName および SetProxyPort によるプロキシ設定を使用します。WMT_PROXY_SETTING_AUTO に設定すると、Web プロキシ自動検出のメカニズムを使用して、指定された URL に基づき適切なプロキシを動的に判別します。プロトコルを WMT_PROXY_SETTING_BROWSER に設定するのは HTTP URL の場合のみ有効で、リーダーはブラウザーに構成されたプロキシ設定を使用します。

vtbl 9 HRESULT GetProxyHostName(LPWSTR pwszProtocol, LPWSTR pwszHostName, DWORD* pcchHostName)

GetProxyHostName メソッドは、プロキシとして使用するホストの名前を取得します。

pwszProtocolLPWSTRin"http" や "mms" などのプロトコル名を格納した文字列へのポインター。文字列は大文字と小文字を区別しません。
pwszHostNameLPWSTRoutプロキシサーバーホストの名前を受け取るバッファへのポインター。返される値は pwszProtocol で指定されたプロトコルにのみ適用されます。リーダーオブジェクトはプロトコルごとに個別の設定をサポートします。
pcchHostNameDWORD*inout入力時は、pwszHostName のサイズを文字数で指定する変数へのポインター。出力時は、終端の null 文字を含む文字列の長さがこの変数に格納されます。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
ASF_E_BUFFERTOOSMALL
渡されたバッファのサイズが、戻り値の文字列を格納するのに十分ではありません。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

このメソッドは 2 回呼び出します。1 回目は、pwszHostName の値として NULL を渡します。メソッドは pcchHostName パラメーターに文字列のサイズを返します。文字列に必要な量のメモリを割り当てて、もう一度メソッドを呼び出します。今度は、割り当てたバッファへのポインターを pwszHostName パラメーターに渡します。

プロキシ設定が WMT_PROXY_SETTING_AUTO または WMT_PROXY_SETTING_BROWSER の場合、ホスト名は無視されます。

vtbl 10 HRESULT SetProxyHostName(LPWSTR pwszProtocol, LPWSTR pwszHostName)

SetProxyHostName メソッドは、プロキシホスト名を指定します。

pwszProtocolLPWSTRinプロトコルを格納したワイド文字の null 終端文字列へのポインター。
pwszHostNameLPWSTRinホスト名を格納したワイド文字の null 終端文字列へのポインター。ホスト名はワイド文字 1024 文字までに制限されます。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

既定では、プロキシホスト名は NULL であり、プロキシを使用する場合は設定する必要があります。

vtbl 11 HRESULT GetProxyPort(LPWSTR pwszProtocol, DWORD* pdwPort)

GetProxyPort メソッドは、プロキシサーバーのポート番号を取得します。

pwszProtocolLPWSTRin"http" や "mms" などのプロトコル名を格納した文字列へのポインター。文字列は大文字と小文字を区別しません。
pdwPortDWORD*outポート番号を受け取る変数へのポインター。返される値は pwszProtocol で指定されたプロトコルにのみ適用されます。リーダーオブジェクトはプロトコルごとに個別の設定をサポートします。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
ASF_E_BUFFERTOOSMALL
渡されたバッファのサイズが、戻り値の文字列を格納するのに十分ではありません。
E_INVALIDARG
NULL または無効な引数が渡されました。
vtbl 12 HRESULT SetProxyPort(LPWSTR pwszProtocol, DWORD dwPort)

SetProxyPort メソッドは、プロキシポートを指定します。

pwszProtocolLPWSTRinプロトコルを格納したワイド文字の null 終端文字列へのポインター。
dwPortDWORDinポート名を格納した DWORD

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

既定では、ポート番号は MMS が 1755、HTTP が 80 です。ポートが必要な場合は、正しいポート番号を設定する必要があります。プロキシ設定が WMT_PROXY_SETTING_AUTO または WMT_PROXY_SETTING_BROWSER の場合は不要です。

vtbl 13 HRESULT GetProxyExceptionList(LPWSTR pwszProtocol, LPWSTR pwszExceptionList, DWORD* pcchExceptionList)

GetProxyExceptionList メソッドは、リーダーオブジェクトがプロキシサーバーをバイパスするコンピューター、ドメイン、またはアドレスのリストを取得します。

pwszProtocolLPWSTRin"http" や "mms" などのプロトコル名を格納した文字列へのポインター。文字列は大文字と小文字を区別しません。
pwszExceptionListLPWSTRout例外リストを格納した文字列を受け取るバッファへのポインター。返される文字列はカンマ区切りのリストです。詳細については、SetProxyExceptionList を参照してください。このリストは pwszProtocol で指定されたプロトコルにのみ適用されます。リーダーオブジェクトはプロトコルごとに個別の設定をサポートします。
pcchExceptionListDWORD*inout入力時は、pwszExceptionList バッファのサイズを文字数で指定する変数へのポインター。出力時は、終端の null 文字を含む文字列の長さがこの変数に格納されます。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。
ASF_E_BUFFERTOOSMALL
渡されたバッファのサイズが、戻り値の文字列を格納するのに十分ではありません。

解説(Remarks)

このメソッドは 2 回呼び出します。1 回目は、pwszExceptionList の値として NULL を渡します。メソッドは pcchExceptionList パラメーターに文字列のサイズを返します。文字列に必要な量のメモリを割り当てて、もう一度メソッドを呼び出します。今度は、割り当てたバッファへのポインターを pwszExceptionList パラメーターに渡します。

詳細については、SetProxyExceptionList の「注釈」を参照してください。

vtbl 14 HRESULT SetProxyExceptionList(LPWSTR pwszProtocol, LPWSTR pwszExceptionList)

SetProxyExceptionList メソッドは、プロキシの例外リストを指定します。

pwszProtocolLPWSTRinプロトコルを格納したワイド文字の null 終端文字列へのポインター。
pwszExceptionListLPWSTRin例外リストを格納したワイド文字の null 終端文字列へのポインター。リストはホストのカンマ区切りリストである必要があります。例外リストはワイド文字 1024 文字までに制限されます。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

例外リストは、ターゲット URL 内のホストがリストのエントリと一致した場合にプロキシホスト名をバイパスする、コンピューター、ドメイン、またはアドレスのリストです。

リストのエントリではワイルドカード文字(* 文字)を使用できます。たとえば ".com" は "com" ドメイン内のすべてのホストと一致し、"67." は 67 のクラス A サブネット内のすべてのホストと一致します。例外リストは、プロキシ設定が WMT_PROXY_SETTING_MANUAL の場合にのみ使用されます。プロキシ設定が WMT_PROXY_SETTING_BROWSER の場合は、代わりにブラウザーに構成された例外リストが使用されます。

vtbl 15 HRESULT GetProxyBypassForLocal(LPWSTR pwszProtocol, BOOL* pfBypassForLocal)

GetProxyBypassForLocal メソッドは、リーダーオブジェクトがローカル URL に対してプロキシサーバーをバイパスするかどうかを照会します。

pwszProtocolLPWSTRin"http" や "mms" などのプロトコル名を格納した文字列へのポインター。文字列は大文字と小文字を区別しません。
pfBypassForLocalBOOL*outBoolean 値を受け取る変数へのポインター。値が TRUE の場合、リーダーはローカルホストから URL を取得するときにプロキシサーバーをバイパスします。値が FALSE の場合、リーダーは常に(存在すれば)プロキシサーバーを経由します。返される値は pwszProtocol で指定されたプロトコルにのみ適用されます。リーダーオブジェクトはプロトコルごとに個別の設定をサポートします。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。
E_OUTOFMEMORY
タスクを完了するためのメモリが不足しています。
vtbl 16 HRESULT SetProxyBypassForLocal(LPWSTR pwszProtocol, BOOL fBypassForLocal)

SetProxyBypassForLocal メソッドは、ローカルホストに対してプロキシをバイパスする構成設定を指定します。

pwszProtocolLPWSTRinプロトコルを格納したワイド文字の null 終端文字列へのポインター。
fBypassForLocalBOOLinローカルホストに対するプロキシのバイパスを有効にする場合は True となる Boolean 値(オリジンサーバーがローカルネットワーク上にあることを意味します)。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

この設定は、プロキシ設定が WMT_PROXY_SETTING_MANUAL の場合にのみ使用されます。プロキシ設定が WMT_PROXY_SETTING_BROWSER の場合は、代わりにブラウザーのローカルバイパスフラグの設定が使用されます。

vtbl 17 HRESULT GetForceRerunAutoProxyDetection(BOOL* pfForceRerunDetection)

GetForceRerunAutoProxyDetection メソッドは、強制再実行検出が有効になっているかどうかを確認します。

pfForceRerunDetectionBOOL*out強制再実行検出が有効になっている場合に True に設定される Boolean 値へのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

SetForceRerunAutoProxyDetection の「注釈」を参照してください。

vtbl 18 HRESULT SetForceRerunAutoProxyDetection(BOOL fForceRerunDetection)

SetForceRerunAutoProxyDetection メソッドは、強制再実行検出を有効または無効にします。

fForceRerunDetectionBOOLin強制再実行検出を有効にする場合は True となる Boolean 値。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

強制再実行検出は、次のストリーミング接続を確立する前に Web プロキシ自動検出のメカニズムを呼び出す必要があることを示します。

fForceRerunDetection を True に設定すると、SetProxySettings メソッドで自動設定が指定されているすべてのプロトコルに適用されます。

vtbl 19 HRESULT GetEnableMulticast(BOOL* pfEnableMulticast)

GetEnableMulticast メソッドは、マルチキャストが有効になっているかどうかを確認します。

pfEnableMulticastBOOL*outマルチキャストが有効になっている場合に True に設定される Boolean 値へのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。
vtbl 20 HRESULT SetEnableMulticast(BOOL fEnableMulticast)

SetEnableMulticast メソッドは、マルチキャストを有効または無効にします。

fEnableMulticastBOOLinマルチキャストを有効にする場合は True となる Boolean 値。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。
vtbl 21 HRESULT GetEnableHTTP(BOOL* pfEnableHTTP)

GetEnableHTTP メソッドは、プロトコルロールオーバーで HTTP が有効になっているかどうかを照会します。

pfEnableHTTPBOOL*outBoolean 値を受け取る変数へのポインター。値が TRUE の場合、リーダーオブジェクトはプロトコルロールオーバーの実行時に HTTP を含めます。値が FALSE の場合、リーダーはプロトコルロールオーバーに HTTP を使用しません。ただし、URL で HTTP が明示的に指定されている場合、リーダーは引き続き HTTP を使用します。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。
vtbl 22 HRESULT SetEnableHTTP(BOOL fEnableHTTP)

SetEnableHTTP メソッドは、HTTP を有効または無効にします。

fEnableHTTPBOOLinHTTP を有効にする場合は True となる Boolean 値。リーダーがストリーミングのプロトコルを選択する際に HTTP を使用できる場合は、この値を True に設定します。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

この設定は、プロトコルロールオーバーまたは MMS:// URL にのみ適用されます。この設定が無効になっている場合でも、アプリケーションは明示的な HTTP:// URL を指定して正常にストリーミングできます。

vtbl 23 HRESULT GetEnableUDP(BOOL* pfEnableUDP)

GetEnableUDP メソッドは、プロトコルロールオーバーで UDP が有効になっているかどうかを照会します。

pfEnableUDPBOOL*outBoolean 値を受け取る変数へのポインター。値が TRUE の場合、リーダーオブジェクトはプロトコルロールオーバーの実行時に UDP を含めます。値が FALSE の場合、リーダーはプロトコルロールオーバーに UDP を使用しません。ただし、URL で MMSU や RTSPU などの UDP ベースのプロトコルが明示的に指定されている場合、リーダーは引き続き UDP を使用します。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。
vtbl 24 HRESULT SetEnableUDP(BOOL fEnableUDP)

SetEnableUDP メソッドは、UDP を有効または無効にします。

fEnableUDPBOOLinUDP を有効にする場合は True となる Boolean 値。リーダーがストリーミングのプロトコルを選択する際に UDP ベースの MMS ストリーミングを使用できる場合は、これを True に設定します。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

この設定は、プロトコルロールオーバーまたは MMS:// URL にのみ適用されます。この設定が無効になっている場合でも、アプリケーションは明示的な MMSU:// URL を指定して TCP 経由の MMS を正常にストリーミングできます。

詳細については、IWMReaderNetworkConfig::ResetProtocolRollover の「注釈」セクションを参照してください。

vtbl 25 HRESULT GetEnableTCP(BOOL* pfEnableTCP)

GetEnableTCP メソッドは、プロトコルロールオーバーで TCP が有効になっているかどうかを照会します。

pfEnableTCPBOOL*outBoolean 値を受け取る変数へのポインター。値が TRUE の場合、リーダーオブジェクトはプロトコルロールオーバーの実行時に TCP を含めます。値が FALSE の場合、リーダーはプロトコルロールオーバーに TCP を使用しません。ただし、URL で MMST や RTSPT などの TCP ベースのプロトコルが明示的に指定されている場合、リーダーは引き続き TCP を使用します。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。
vtbl 26 HRESULT SetEnableTCP(BOOL fEnableTCP)

SetEnableTCP メソッドは、TCP を有効または無効にします。

fEnableTCPBOOLinTCP を有効にする場合は True となる Boolean 値。SDK がストリーミングのプロトコルを選択する際に TCP ベースの MMS ストリーミングを使用できる場合は、これを True に設定します。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

この設定は、プロトコルロールオーバーまたは MMS:// URL にのみ適用されます。この設定が無効になっている場合でも、アプリケーションは明示的な MMST:// URL を指定して TCP 経由の MMS を正常にストリーミングできます。

vtbl 27 HRESULT ResetProtocolRollover()

ResetProtocolRollover メソッドは、リーダーオブジェクトに通常のプロトコルロールオーバーアルゴリズムを使用させます。

戻り値

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

解説(Remarks)

プロトコルロールオーバーは、リーダーオブジェクトがサーバーで利用可能な最適なストリーミングプロトコルを検出するプロセスです。詳細については、プロトコルロールオーバーを参照してください。

リーダーオブジェクトはプロトコルロールオーバーを使用すると、どのプロトコルが使用されたかを記録し、以降の接続試行ではまずそのプロトコルを試します。一定の時間が経過すると、リーダーオブジェクトは既定のプロトコルロールオーバー動作に戻ります。

ただし、アプリケーションが特定のプロトコルを(たとえば SetEnableUDPSetEnableTCP を呼び出して)無効にした場合、リーダーオブジェクトは必要以上に効率の悪いプロトコルを使用する可能性があります。ResetProtocolRollover メソッドを呼び出すことで、リーダーオブジェクトに既定のプロトコルロールオーバー動作を強制的に使用させることができます。

プレーヤーのユーザーは、接続の問題が発生したときにネットワーク設定を試行錯誤することがあります。このメソッドを使用してプロトコルロールオーバー設定をリセットすることで、アプリケーションはユーザーが受け取るストリーミングの品質を向上させることができます。

vtbl 28 HRESULT GetConnectionBandwidth(DWORD* pdwConnectionBandwidth)

GetConnectionBandwidth メソッドは、クライアントの接続帯域幅を取得します。

pdwConnectionBandwidthDWORD*out接続帯域幅をビット/秒単位で格納した DWORD へのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

このメソッドが 0 を返す場合、帯域幅を検出できませんでした。アプリケーションが SetConnectionBandwidth を呼び出していない(または 0 のパラメーターで呼び出した)場合、戻り値はリーダーが検出した接続速度です。

サンプルを受信する前に接続帯域幅を判別したい場合は、このメソッドを使用します。

vtbl 29 HRESULT SetConnectionBandwidth(DWORD dwConnectionBandwidth)

SetConnectionBandwidth メソッドは、クライアントの接続帯域幅を指定します。

dwConnectionBandwidthDWORDin接続の最大帯域幅をビット/秒単位で指定します。リーダーに帯域幅を自動的に検出させるには 0 を指定します。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

既定では、SDK はサーバーへの接続の帯域幅を自動的に検出します。自動検出が設定されている場合、Open 要求に続いて GetConnectionBandwidth を呼び出すと、動的に検出された接続帯域幅が返されます。

このメソッドを使用して帯域幅を設定することは、利用可能な帯域幅を意図的に制限するため、帯域幅スロットリングと呼ばれることがあります。

vtbl 30 HRESULT GetNumProtocolsSupported(DWORD* pcProtocols)

GetNumProtocolsSupported メソッドは、サポートされているプロトコルの数を取得します。

pcProtocolsDWORD*outプロトコルの数へのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

リーダーがサポートするネットワークプロトコルを反復処理するには、このメソッドを IWMReaderAdvanced2::GetProtocolName とともに使用します。

このメソッドは、リーダーがストリームを受信するときに使用できるプロトコルの数をカウントします。ストリームを送信するために利用可能なプロトコルは示しません。

vtbl 31 HRESULT GetSupportedProtocolName(DWORD dwProtocolNum, LPWSTR pwszProtocolName, DWORD* pcchProtocolName)

GetSupportedProtocolName メソッドは、インデックスによってプロトコル名を取得します。

dwProtocolNumDWORDin取得するプロトコル名を 0 から始まるインデックスで指定します。サポートされているプロトコルの数を取得するには、IWMReaderNetworkConfig::GetNumProtocolsSupported メソッドを呼び出します。
pwszProtocolNameLPWSTRoutプロトコル名を格納したワイド文字の null 終端文字列へのポインター。名前の長さを取得するには NULL を渡します。
pcchProtocolNameDWORD*inout入力時は、pwszProtocolName の長さを文字数で格納した DWORD へのポインター。出力時は、終端の null 文字を含むプロトコル名の長さへのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。

解説(Remarks)

GetSupportedProtocolName は 2 回呼び出してください。1 回目の呼び出しでは、pwszProtocoNameNULL を渡します。戻り時に、pcchProtocolName が指す値には、終端の null を含めてプロトコル名を格納するのに必要なワイド文字数が設定されます。その後、文字列に必要な量のメモリを割り当て、2 回目の呼び出しでそのポインターを pwszProtocolName として渡すことができます。

リーダーオブジェクトがサポートするネットワークプロトコルを反復処理するには、このメソッドを GetNumProtocolsSupported とともに使用します。

このメソッドは、Windows Media サーバーからコンテンツを受信するために使用されるプロトコルのリストのみを返します。ローカルソースや、Windows Media サーバー以外(Web サーバーなど)からコンテンツを取得するためだけに使用されるプロトコルは、このリストに含まれません。

HTTPS サポートは、Web サーバーからコンテンツをダウンロードする場合にのみ機能します(プレーヤーが WININET を使用するため)。サポートされるストリーミングプロトコルは HTTP、RTSP、MMS、およびマルチキャストの場合は ASFM(.nsc 拡張子の ASF ファイルを開くことによる)です。ダウンロードのサポートには HTTP、HTTPS、FTP が含まれます。
vtbl 32 HRESULT AddLoggingUrl(LPWSTR pwszUrl)

AddLoggingUrl メソッドは、リーダーオブジェクトからログ情報を受け取るサーバーを指定します。

pwszUrlLPWSTRinURL を格納した文字列を指定します。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
pwszUrl に Null 値が渡されました。
E_OUTOFMEMORY
URL を作成または追加できません。

解説(Remarks)

リーダーがサーバーからコンテンツをストリーミングする際、そのサーバーに自動的にログ情報を送信します。ログ情報を受け取る追加のサーバーを指定するには、AddLoggingUrl メソッドを使用します。

vtbl 33 HRESULT GetLoggingUrl(DWORD dwIndex, LPWSTR pwszUrl, DWORD* pcchUrl)

GetLoggingUrl メソッドは、リーダーオブジェクトからログ情報を受け取るサーバーのリストから URL を取得します。リストにサーバーを追加するには、IWMReaderNetworkConfig::GetLoggingUrl メソッドを使用します。

dwIndexDWORDin取得する URL を 0 から始まるインデックスで指定します。URL の数を取得するには、IWMReaderNetworkConfig::GetLoggingUrlCount メソッドを呼び出します。
pwszUrlLPWSTRoutURL を格納した文字列を受け取るバッファへのポインター。呼び出し元がバッファを割り当てる必要があります。
pcchUrlDWORD*inout入力時は、pwszUrl バッファの長さを文字数で指定します。出力時は、終端の null 文字を含む URL の長さを受け取ります。

戻り値

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

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
NULL または無効な引数が渡されました。
ASF_E_BUFFERTOOSMALL
pcchUrl に渡されたサイズが小さすぎます。

解説(Remarks)

GetLoggingUrl は 2 回呼び出してください。1 回目の呼び出しでは、pwszUrlNULL を渡します。戻り時に、pcchUrl が指す値には、終端の null を含めて URL を格納するのに必要なワイド文字数が設定されます。その後、文字列に必要な量のメモリを割り当て、2 回目の呼び出しでそのポインターを pwszUrl として渡すことができます。

vtbl 34 HRESULT GetLoggingUrlCount(DWORD* pdwUrlCount)

GetLoggingUrlCount メソッドは、現在のログ URL リスト内の URL の数を取得します。

pdwUrlCountDWORD*outURL の数を格納した DWORD へのポインター。

戻り値

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

vtbl 35 HRESULT ResetLoggingUrlList()

ResetLoggingUrlList メソッドは、ログデータを受け取るサーバーのリストをクリアします。

戻り値

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

解説(Remarks)

このメソッドは、IWMReaderNetworkConfig::AddLoggingUrl メソッドを使用して追加されたすべてのサーバーを削除します。ただし、リストがクリアされた後でも、発信元のサーバーは常にログを受け取ることに注意してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWMReaderNetworkConfig "{96406BEC-2B2B-11D3-B36B-00C04F6108FF}"
#usecom global IWMReaderNetworkConfig IID_IWMReaderNetworkConfig "{}"
#comfunc global IWMReaderNetworkConfig_GetBufferingTime                 3 var
#comfunc global IWMReaderNetworkConfig_SetBufferingTime                 4 int64
#comfunc global IWMReaderNetworkConfig_GetUDPPortRanges                 5 var,var
#comfunc global IWMReaderNetworkConfig_SetUDPPortRanges                 6 var,int
#comfunc global IWMReaderNetworkConfig_GetProxySettings                 7 wstr,var
#comfunc global IWMReaderNetworkConfig_SetProxySettings                 8 wstr,int
#comfunc global IWMReaderNetworkConfig_GetProxyHostName                 9 wstr,var,var
#comfunc global IWMReaderNetworkConfig_SetProxyHostName                 10 wstr,wstr
#comfunc global IWMReaderNetworkConfig_GetProxyPort                     11 wstr,var
#comfunc global IWMReaderNetworkConfig_SetProxyPort                     12 wstr,int
#comfunc global IWMReaderNetworkConfig_GetProxyExceptionList            13 wstr,var,var
#comfunc global IWMReaderNetworkConfig_SetProxyExceptionList            14 wstr,wstr
#comfunc global IWMReaderNetworkConfig_GetProxyBypassForLocal           15 wstr,var
#comfunc global IWMReaderNetworkConfig_SetProxyBypassForLocal           16 wstr,int
#comfunc global IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection  17 var
#comfunc global IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection  18 int
#comfunc global IWMReaderNetworkConfig_GetEnableMulticast               19 var
#comfunc global IWMReaderNetworkConfig_SetEnableMulticast               20 int
#comfunc global IWMReaderNetworkConfig_GetEnableHTTP                    21 var
#comfunc global IWMReaderNetworkConfig_SetEnableHTTP                    22 int
#comfunc global IWMReaderNetworkConfig_GetEnableUDP                     23 var
#comfunc global IWMReaderNetworkConfig_SetEnableUDP                     24 int
#comfunc global IWMReaderNetworkConfig_GetEnableTCP                     25 var
#comfunc global IWMReaderNetworkConfig_SetEnableTCP                     26 int
#comfunc global IWMReaderNetworkConfig_ResetProtocolRollover            27
#comfunc global IWMReaderNetworkConfig_GetConnectionBandwidth           28 var
#comfunc global IWMReaderNetworkConfig_SetConnectionBandwidth           29 int
#comfunc global IWMReaderNetworkConfig_GetNumProtocolsSupported         30 var
#comfunc global IWMReaderNetworkConfig_GetSupportedProtocolName         31 int,var,var
#comfunc global IWMReaderNetworkConfig_AddLoggingUrl                    32 wstr
#comfunc global IWMReaderNetworkConfig_GetLoggingUrl                    33 int,var,var
#comfunc global IWMReaderNetworkConfig_GetLoggingUrlCount               34 var
#comfunc global IWMReaderNetworkConfig_ResetLoggingUrlList              35
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。