IWMReaderNetworkConfig
COM公式ドキュメント
IWMReaderNetworkConfig インターフェイスは、ネットワーク構成設定の設定とテストを行うために使用します。
メソッド 33
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
GetBufferingTime メソッドは、ネットワークソースがデータをレンダリングする前にバッファリングする時間の長さを取得します。
| pcnsBufferingTime | ULONGLONG* | out | バッファリング時間を 100 ナノ秒単位で受け取る変数へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| pcnsBufferingTime に NULL が渡されました。 |
解説(Remarks)
SetBufferingTime の「注釈」を参照してください。
SetBufferingTime メソッドは、ネットワークソースがデータをレンダリングする前にバッファリングする時間の長さを指定します。
| cnsBufferingTime | ULONGLONG | in | 再生を開始する前にコンテンツをバッファリングする時間の長さを 100 ナノ秒単位で指定します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| cnsBufferingTime が最大値より大きい、または最小値より小さい値です。 |
解説(Remarks)
最小バッファリング時間は 1 秒、最大は 60 秒です。たとえばバッファリング時間を 1 秒に設定するには、値を 10000000 に設定します。
GetUDPPortRanges メソッドは、データの受信に使用される UDP ポート番号の範囲を取得します。
| pRangeArray | WM_PORT_NUMBER_RANGE* | out | 呼び出し元が割り当てた WM_PORT_NUMBER_RANGE 構造体の配列へのポインター。配列のサイズを取得するには NULL を渡します。 |
| pcRanges | DWORD* | inout | 入力時は、pRangeArray に渡された配列の長さを格納した DWORD へのポインター。出力時は、必要な配列サイズへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
バッファが小さすぎます。 |
| pcRanges パラメーターが NULL です。 |
解説(Remarks)
このメソッドは 2 回呼び出してください。1 回目の呼び出しでは、pRangeArray に NULL を渡します。戻り時に、pcRanges が指す値には割り当てるべき配列のサイズが設定されます。その後、配列に必要な量のメモリを割り当て、2 回目の呼び出しでそのポインターを pRangeArray として渡すことができます。
SetUDPPortRanges メソッドは、データの受信に使用される UDP ポート番号の範囲を指定します。
| pRangeArray | WM_PORT_NUMBER_RANGE* | in | WM_PORT_NUMBER_RANGE 構造体の配列へのポインター。 |
| cRanges | DWORD | in | pRangeArray に渡された配列の長さを示す値。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
アプリケーションが範囲を指定しない場合、ポート番号はリーダーによって選択されます。
GetProxySettings メソッドは、現在のプロキシ設定を取得します。
| pwszProtocol | LPWSTR | in | プロトコルを格納したワイド文字の null 終端文字列へのポインター。 |
| pProxySetting | WMT_PROXY_SETTINGS* | out | WMT_PROXY_SETTINGS 列挙型のいずれか 1 つのメンバーへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
SetProxySettings メソッドは、プロキシ設定を指定します。
| pwszProtocol | LPWSTR | in | プロトコル名を格納したワイド文字の null 終端文字列へのポインター。サポートされる名前は HTTP と MMS です。 |
| ProxySetting | WMT_PROXY_SETTINGS | in | WMT_PROXY_SETTINGS 列挙型の値。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
プロトコルを WMT_PROXY_SETTING_MANUAL に設定すると、リーダーは SetProxyHostName および SetProxyPort によるプロキシ設定を使用します。WMT_PROXY_SETTING_AUTO に設定すると、Web プロキシ自動検出のメカニズムを使用して、指定された URL に基づき適切なプロキシを動的に判別します。プロトコルを WMT_PROXY_SETTING_BROWSER に設定するのは HTTP URL の場合のみ有効で、リーダーはブラウザーに構成されたプロキシ設定を使用します。
GetProxyHostName メソッドは、プロキシとして使用するホストの名前を取得します。
| pwszProtocol | LPWSTR | in | "http" や "mms" などのプロトコル名を格納した文字列へのポインター。文字列は大文字と小文字を区別しません。 |
| pwszHostName | LPWSTR | out | プロキシサーバーホストの名前を受け取るバッファへのポインター。返される値は pwszProtocol で指定されたプロトコルにのみ適用されます。リーダーオブジェクトはプロトコルごとに個別の設定をサポートします。 |
| pcchHostName | DWORD* | inout | 入力時は、pwszHostName のサイズを文字数で指定する変数へのポインター。出力時は、終端の null 文字を含む文字列の長さがこの変数に格納されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
渡されたバッファのサイズが、戻り値の文字列を格納するのに十分ではありません。 |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
このメソッドは 2 回呼び出します。1 回目は、pwszHostName の値として NULL を渡します。メソッドは pcchHostName パラメーターに文字列のサイズを返します。文字列に必要な量のメモリを割り当てて、もう一度メソッドを呼び出します。今度は、割り当てたバッファへのポインターを pwszHostName パラメーターに渡します。
プロキシ設定が WMT_PROXY_SETTING_AUTO または WMT_PROXY_SETTING_BROWSER の場合、ホスト名は無視されます。
SetProxyHostName メソッドは、プロキシホスト名を指定します。
| pwszProtocol | LPWSTR | in | プロトコルを格納したワイド文字の null 終端文字列へのポインター。 |
| pwszHostName | LPWSTR | in | ホスト名を格納したワイド文字の null 終端文字列へのポインター。ホスト名はワイド文字 1024 文字までに制限されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
既定では、プロキシホスト名は NULL であり、プロキシを使用する場合は設定する必要があります。
GetProxyPort メソッドは、プロキシサーバーのポート番号を取得します。
| pwszProtocol | LPWSTR | in | "http" や "mms" などのプロトコル名を格納した文字列へのポインター。文字列は大文字と小文字を区別しません。 |
| pdwPort | DWORD* | out | ポート番号を受け取る変数へのポインター。返される値は pwszProtocol で指定されたプロトコルにのみ適用されます。リーダーオブジェクトはプロトコルごとに個別の設定をサポートします。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
渡されたバッファのサイズが、戻り値の文字列を格納するのに十分ではありません。 |
| NULL または無効な引数が渡されました。 |
SetProxyPort メソッドは、プロキシポートを指定します。
| pwszProtocol | LPWSTR | in | プロトコルを格納したワイド文字の null 終端文字列へのポインター。 |
| dwPort | DWORD | in | ポート名を格納した DWORD。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
既定では、ポート番号は MMS が 1755、HTTP が 80 です。ポートが必要な場合は、正しいポート番号を設定する必要があります。プロキシ設定が WMT_PROXY_SETTING_AUTO または WMT_PROXY_SETTING_BROWSER の場合は不要です。
GetProxyExceptionList メソッドは、リーダーオブジェクトがプロキシサーバーをバイパスするコンピューター、ドメイン、またはアドレスのリストを取得します。
| pwszProtocol | LPWSTR | in | "http" や "mms" などのプロトコル名を格納した文字列へのポインター。文字列は大文字と小文字を区別しません。 |
| pwszExceptionList | LPWSTR | out | 例外リストを格納した文字列を受け取るバッファへのポインター。返される文字列はカンマ区切りのリストです。詳細については、SetProxyExceptionList を参照してください。このリストは pwszProtocol で指定されたプロトコルにのみ適用されます。リーダーオブジェクトはプロトコルごとに個別の設定をサポートします。 |
| pcchExceptionList | DWORD* | inout | 入力時は、pwszExceptionList バッファのサイズを文字数で指定する変数へのポインター。出力時は、終端の null 文字を含む文字列の長さがこの変数に格納されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 | |
|
渡されたバッファのサイズが、戻り値の文字列を格納するのに十分ではありません。 |
解説(Remarks)
このメソッドは 2 回呼び出します。1 回目は、pwszExceptionList の値として NULL を渡します。メソッドは pcchExceptionList パラメーターに文字列のサイズを返します。文字列に必要な量のメモリを割り当てて、もう一度メソッドを呼び出します。今度は、割り当てたバッファへのポインターを pwszExceptionList パラメーターに渡します。
詳細については、SetProxyExceptionList の「注釈」を参照してください。
SetProxyExceptionList メソッドは、プロキシの例外リストを指定します。
| pwszProtocol | LPWSTR | in | プロトコルを格納したワイド文字の null 終端文字列へのポインター。 |
| pwszExceptionList | LPWSTR | in | 例外リストを格納したワイド文字の null 終端文字列へのポインター。リストはホストのカンマ区切りリストである必要があります。例外リストはワイド文字 1024 文字までに制限されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
例外リストは、ターゲット URL 内のホストがリストのエントリと一致した場合にプロキシホスト名をバイパスする、コンピューター、ドメイン、またはアドレスのリストです。
リストのエントリではワイルドカード文字(* 文字)を使用できます。たとえば ".com" は "com" ドメイン内のすべてのホストと一致し、"67." は 67 のクラス A サブネット内のすべてのホストと一致します。例外リストは、プロキシ設定が WMT_PROXY_SETTING_MANUAL の場合にのみ使用されます。プロキシ設定が WMT_PROXY_SETTING_BROWSER の場合は、代わりにブラウザーに構成された例外リストが使用されます。
GetProxyBypassForLocal メソッドは、リーダーオブジェクトがローカル URL に対してプロキシサーバーをバイパスするかどうかを照会します。
| pwszProtocol | LPWSTR | in | "http" や "mms" などのプロトコル名を格納した文字列へのポインター。文字列は大文字と小文字を区別しません。 |
| pfBypassForLocal | BOOL* | out | Boolean 値を受け取る変数へのポインター。値が TRUE の場合、リーダーはローカルホストから URL を取得するときにプロキシサーバーをバイパスします。値が FALSE の場合、リーダーは常に(存在すれば)プロキシサーバーを経由します。返される値は pwszProtocol で指定されたプロトコルにのみ適用されます。リーダーオブジェクトはプロトコルごとに個別の設定をサポートします。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 | |
| タスクを完了するためのメモリが不足しています。 |
SetProxyBypassForLocal メソッドは、ローカルホストに対してプロキシをバイパスする構成設定を指定します。
| pwszProtocol | LPWSTR | in | プロトコルを格納したワイド文字の null 終端文字列へのポインター。 |
| fBypassForLocal | BOOL | in | ローカルホストに対するプロキシのバイパスを有効にする場合は True となる Boolean 値(オリジンサーバーがローカルネットワーク上にあることを意味します)。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
この設定は、プロキシ設定が WMT_PROXY_SETTING_MANUAL の場合にのみ使用されます。プロキシ設定が WMT_PROXY_SETTING_BROWSER の場合は、代わりにブラウザーのローカルバイパスフラグの設定が使用されます。
GetForceRerunAutoProxyDetection メソッドは、強制再実行検出が有効になっているかどうかを確認します。
| pfForceRerunDetection | BOOL* | out | 強制再実行検出が有効になっている場合に True に設定される Boolean 値へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
SetForceRerunAutoProxyDetection の「注釈」を参照してください。
SetForceRerunAutoProxyDetection メソッドは、強制再実行検出を有効または無効にします。
| fForceRerunDetection | BOOL | in | 強制再実行検出を有効にする場合は True となる Boolean 値。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
強制再実行検出は、次のストリーミング接続を確立する前に Web プロキシ自動検出のメカニズムを呼び出す必要があることを示します。
fForceRerunDetection を True に設定すると、SetProxySettings メソッドで自動設定が指定されているすべてのプロトコルに適用されます。
GetEnableMulticast メソッドは、マルチキャストが有効になっているかどうかを確認します。
| pfEnableMulticast | BOOL* | out | マルチキャストが有効になっている場合に True に設定される Boolean 値へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
SetEnableMulticast メソッドは、マルチキャストを有効または無効にします。
| fEnableMulticast | BOOL | in | マルチキャストを有効にする場合は True となる Boolean 値。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
GetEnableHTTP メソッドは、プロトコルロールオーバーで HTTP が有効になっているかどうかを照会します。
| pfEnableHTTP | BOOL* | out | Boolean 値を受け取る変数へのポインター。値が TRUE の場合、リーダーオブジェクトはプロトコルロールオーバーの実行時に HTTP を含めます。値が FALSE の場合、リーダーはプロトコルロールオーバーに HTTP を使用しません。ただし、URL で HTTP が明示的に指定されている場合、リーダーは引き続き HTTP を使用します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
SetEnableHTTP メソッドは、HTTP を有効または無効にします。
| fEnableHTTP | BOOL | in | HTTP を有効にする場合は True となる Boolean 値。リーダーがストリーミングのプロトコルを選択する際に HTTP を使用できる場合は、この値を True に設定します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
この設定は、プロトコルロールオーバーまたは MMS:// URL にのみ適用されます。この設定が無効になっている場合でも、アプリケーションは明示的な HTTP:// URL を指定して正常にストリーミングできます。
GetEnableUDP メソッドは、プロトコルロールオーバーで UDP が有効になっているかどうかを照会します。
| pfEnableUDP | BOOL* | out | Boolean 値を受け取る変数へのポインター。値が TRUE の場合、リーダーオブジェクトはプロトコルロールオーバーの実行時に UDP を含めます。値が FALSE の場合、リーダーはプロトコルロールオーバーに UDP を使用しません。ただし、URL で MMSU や RTSPU などの UDP ベースのプロトコルが明示的に指定されている場合、リーダーは引き続き UDP を使用します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
SetEnableUDP メソッドは、UDP を有効または無効にします。
| fEnableUDP | BOOL | in | UDP を有効にする場合は True となる Boolean 値。リーダーがストリーミングのプロトコルを選択する際に UDP ベースの MMS ストリーミングを使用できる場合は、これを True に設定します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
この設定は、プロトコルロールオーバーまたは MMS:// URL にのみ適用されます。この設定が無効になっている場合でも、アプリケーションは明示的な MMSU:// URL を指定して TCP 経由の MMS を正常にストリーミングできます。
詳細については、IWMReaderNetworkConfig::ResetProtocolRollover の「注釈」セクションを参照してください。
GetEnableTCP メソッドは、プロトコルロールオーバーで TCP が有効になっているかどうかを照会します。
| pfEnableTCP | BOOL* | out | Boolean 値を受け取る変数へのポインター。値が TRUE の場合、リーダーオブジェクトはプロトコルロールオーバーの実行時に TCP を含めます。値が FALSE の場合、リーダーはプロトコルロールオーバーに TCP を使用しません。ただし、URL で MMST や RTSPT などの TCP ベースのプロトコルが明示的に指定されている場合、リーダーは引き続き TCP を使用します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
SetEnableTCP メソッドは、TCP を有効または無効にします。
| fEnableTCP | BOOL | in | TCP を有効にする場合は True となる Boolean 値。SDK がストリーミングのプロトコルを選択する際に TCP ベースの MMS ストリーミングを使用できる場合は、これを True に設定します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
この設定は、プロトコルロールオーバーまたは MMS:// URL にのみ適用されます。この設定が無効になっている場合でも、アプリケーションは明示的な MMST:// URL を指定して TCP 経由の MMS を正常にストリーミングできます。
ResetProtocolRollover メソッドは、リーダーオブジェクトに通常のプロトコルロールオーバーアルゴリズムを使用させます。
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
プロトコルロールオーバーは、リーダーオブジェクトがサーバーで利用可能な最適なストリーミングプロトコルを検出するプロセスです。詳細については、プロトコルロールオーバーを参照してください。
リーダーオブジェクトはプロトコルロールオーバーを使用すると、どのプロトコルが使用されたかを記録し、以降の接続試行ではまずそのプロトコルを試します。一定の時間が経過すると、リーダーオブジェクトは既定のプロトコルロールオーバー動作に戻ります。
ただし、アプリケーションが特定のプロトコルを(たとえば SetEnableUDP や SetEnableTCP を呼び出して)無効にした場合、リーダーオブジェクトは必要以上に効率の悪いプロトコルを使用する可能性があります。ResetProtocolRollover メソッドを呼び出すことで、リーダーオブジェクトに既定のプロトコルロールオーバー動作を強制的に使用させることができます。
プレーヤーのユーザーは、接続の問題が発生したときにネットワーク設定を試行錯誤することがあります。このメソッドを使用してプロトコルロールオーバー設定をリセットすることで、アプリケーションはユーザーが受け取るストリーミングの品質を向上させることができます。
GetConnectionBandwidth メソッドは、クライアントの接続帯域幅を取得します。
| pdwConnectionBandwidth | DWORD* | out | 接続帯域幅をビット/秒単位で格納した DWORD へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
このメソッドが 0 を返す場合、帯域幅を検出できませんでした。アプリケーションが SetConnectionBandwidth を呼び出していない(または 0 のパラメーターで呼び出した)場合、戻り値はリーダーが検出した接続速度です。
サンプルを受信する前に接続帯域幅を判別したい場合は、このメソッドを使用します。
SetConnectionBandwidth メソッドは、クライアントの接続帯域幅を指定します。
| dwConnectionBandwidth | DWORD | in | 接続の最大帯域幅をビット/秒単位で指定します。リーダーに帯域幅を自動的に検出させるには 0 を指定します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
既定では、SDK はサーバーへの接続の帯域幅を自動的に検出します。自動検出が設定されている場合、Open 要求に続いて GetConnectionBandwidth を呼び出すと、動的に検出された接続帯域幅が返されます。
このメソッドを使用して帯域幅を設定することは、利用可能な帯域幅を意図的に制限するため、帯域幅スロットリングと呼ばれることがあります。
GetNumProtocolsSupported メソッドは、サポートされているプロトコルの数を取得します。
| pcProtocols | DWORD* | out | プロトコルの数へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
リーダーがサポートするネットワークプロトコルを反復処理するには、このメソッドを IWMReaderAdvanced2::GetProtocolName とともに使用します。
このメソッドは、リーダーがストリームを受信するときに使用できるプロトコルの数をカウントします。ストリームを送信するために利用可能なプロトコルは示しません。
GetSupportedProtocolName メソッドは、インデックスによってプロトコル名を取得します。
| dwProtocolNum | DWORD | in | 取得するプロトコル名を 0 から始まるインデックスで指定します。サポートされているプロトコルの数を取得するには、IWMReaderNetworkConfig::GetNumProtocolsSupported メソッドを呼び出します。 |
| pwszProtocolName | LPWSTR | out | プロトコル名を格納したワイド文字の null 終端文字列へのポインター。名前の長さを取得するには NULL を渡します。 |
| pcchProtocolName | DWORD* | inout | 入力時は、pwszProtocolName の長さを文字数で格納した DWORD へのポインター。出力時は、終端の null 文字を含むプロトコル名の長さへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 |
解説(Remarks)
GetSupportedProtocolName は 2 回呼び出してください。1 回目の呼び出しでは、pwszProtocoName に NULL を渡します。戻り時に、pcchProtocolName が指す値には、終端の null を含めてプロトコル名を格納するのに必要なワイド文字数が設定されます。その後、文字列に必要な量のメモリを割り当て、2 回目の呼び出しでそのポインターを pwszProtocolName として渡すことができます。
リーダーオブジェクトがサポートするネットワークプロトコルを反復処理するには、このメソッドを GetNumProtocolsSupported とともに使用します。
このメソッドは、Windows Media サーバーからコンテンツを受信するために使用されるプロトコルのリストのみを返します。ローカルソースや、Windows Media サーバー以外(Web サーバーなど)からコンテンツを取得するためだけに使用されるプロトコルは、このリストに含まれません。
AddLoggingUrl メソッドは、リーダーオブジェクトからログ情報を受け取るサーバーを指定します。
| pwszUrl | LPWSTR | in | URL を格納した文字列を指定します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| pwszUrl に Null 値が渡されました。 | |
| URL を作成または追加できません。 |
解説(Remarks)
リーダーがサーバーからコンテンツをストリーミングする際、そのサーバーに自動的にログ情報を送信します。ログ情報を受け取る追加のサーバーを指定するには、AddLoggingUrl メソッドを使用します。
GetLoggingUrl メソッドは、リーダーオブジェクトからログ情報を受け取るサーバーのリストから URL を取得します。リストにサーバーを追加するには、IWMReaderNetworkConfig::GetLoggingUrl メソッドを使用します。
| dwIndex | DWORD | in | 取得する URL を 0 から始まるインデックスで指定します。URL の数を取得するには、IWMReaderNetworkConfig::GetLoggingUrlCount メソッドを呼び出します。 |
| pwszUrl | LPWSTR | out | URL を格納した文字列を受け取るバッファへのポインター。呼び出し元がバッファを割り当てる必要があります。 |
| pcchUrl | DWORD* | inout | 入力時は、pwszUrl バッファの長さを文字数で指定します。出力時は、終端の null 文字を含む URL の長さを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| NULL または無効な引数が渡されました。 | |
|
pcchUrl に渡されたサイズが小さすぎます。 |
解説(Remarks)
GetLoggingUrl は 2 回呼び出してください。1 回目の呼び出しでは、pwszUrl に NULL を渡します。戻り時に、pcchUrl が指す値には、終端の null を含めて URL を格納するのに必要なワイド文字数が設定されます。その後、文字列に必要な量のメモリを割り当て、2 回目の呼び出しでそのポインターを pwszUrl として渡すことができます。
GetLoggingUrlCount メソッドは、現在のログ URL リスト内の URL の数を取得します。
| pdwUrlCount | DWORD* | out | URL の数を格納した DWORD へのポインター。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
ResetLoggingUrlList メソッドは、ログデータを受け取るサーバーのリストをクリアします。
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドは、IWMReaderNetworkConfig::AddLoggingUrl メソッドを使用して追加されたすべてのサーバーを削除します。ただし、リストがクリアされた後でも、発信元のサーバーは常にログを受け取ることに注意してください。
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 方式にも切替可。#define global IID_IWMReaderNetworkConfig "{96406BEC-2B2B-11D3-B36B-00C04F6108FF}" #usecom global IWMReaderNetworkConfig IID_IWMReaderNetworkConfig "{}" #comfunc global IWMReaderNetworkConfig_GetBufferingTime 3 sptr #comfunc global IWMReaderNetworkConfig_SetBufferingTime 4 int64 #comfunc global IWMReaderNetworkConfig_GetUDPPortRanges 5 sptr,sptr #comfunc global IWMReaderNetworkConfig_SetUDPPortRanges 6 sptr,int #comfunc global IWMReaderNetworkConfig_GetProxySettings 7 wstr,sptr #comfunc global IWMReaderNetworkConfig_SetProxySettings 8 wstr,int #comfunc global IWMReaderNetworkConfig_GetProxyHostName 9 wstr,sptr,sptr #comfunc global IWMReaderNetworkConfig_SetProxyHostName 10 wstr,wstr #comfunc global IWMReaderNetworkConfig_GetProxyPort 11 wstr,sptr #comfunc global IWMReaderNetworkConfig_SetProxyPort 12 wstr,int #comfunc global IWMReaderNetworkConfig_GetProxyExceptionList 13 wstr,sptr,sptr #comfunc global IWMReaderNetworkConfig_SetProxyExceptionList 14 wstr,wstr #comfunc global IWMReaderNetworkConfig_GetProxyBypassForLocal 15 wstr,sptr #comfunc global IWMReaderNetworkConfig_SetProxyBypassForLocal 16 wstr,int #comfunc global IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection 17 sptr #comfunc global IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection 18 int #comfunc global IWMReaderNetworkConfig_GetEnableMulticast 19 sptr #comfunc global IWMReaderNetworkConfig_SetEnableMulticast 20 int #comfunc global IWMReaderNetworkConfig_GetEnableHTTP 21 sptr #comfunc global IWMReaderNetworkConfig_SetEnableHTTP 22 int #comfunc global IWMReaderNetworkConfig_GetEnableUDP 23 sptr #comfunc global IWMReaderNetworkConfig_SetEnableUDP 24 int #comfunc global IWMReaderNetworkConfig_GetEnableTCP 25 sptr #comfunc global IWMReaderNetworkConfig_SetEnableTCP 26 int #comfunc global IWMReaderNetworkConfig_ResetProtocolRollover 27 #comfunc global IWMReaderNetworkConfig_GetConnectionBandwidth 28 sptr #comfunc global IWMReaderNetworkConfig_SetConnectionBandwidth 29 int #comfunc global IWMReaderNetworkConfig_GetNumProtocolsSupported 30 sptr #comfunc global IWMReaderNetworkConfig_GetSupportedProtocolName 31 int,sptr,sptr #comfunc global IWMReaderNetworkConfig_AddLoggingUrl 32 wstr #comfunc global IWMReaderNetworkConfig_GetLoggingUrl 33 int,sptr,sptr #comfunc global IWMReaderNetworkConfig_GetLoggingUrlCount 34 sptr #comfunc global IWMReaderNetworkConfig_ResetLoggingUrlList 35 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。