IMFPresentationDescriptor
COM公式ドキュメント
プレゼンテーションの詳細を記述します。プレゼンテーションとは、共通のプレゼンテーション時刻を共有する一連の関連メディアストリームの集合です。
解説(Remarks)
プレゼンテーション記述子は、メディアソースおよび一部のメディアシンクを構成するために使用されます。メディアソースからプレゼンテーション記述子を取得するには、IMFMediaSource::CreatePresentationDescriptor を呼び出します。新しいプレゼンテーション記述子を作成するには、MFCreatePresentationDescriptor を呼び出します。
このインターフェイスは、Windows Media Format 11 SDK 再頒布可能コンポーネントがインストールされている場合、次のプラットフォームで利用できます。
- Windows XP with Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
プレゼンテーション内のストリーム記述子の数を取得します。各ストリーム記述子には、メディアソース内の 1 つのストリームに関する情報が含まれます。ストリーム記述子を取得するには、IMFPresentationDescriptor::GetStreamDescriptorByIndex メソッドを呼び出します。
| pdwDescriptorCount | DWORD* | out | ストリーム記述子の数を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このインターフェイスは、Windows Media Format 11 SDK 再頒布可能コンポーネントがインストールされている場合、次のプラットフォームで利用できます。
- Windows XP with Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
プレゼンテーション内のストリームに対応するストリーム記述子を取得します。ストリーム記述子には、そのストリームに関する情報が含まれます。
| dwIndex | DWORD | in | ストリームのゼロベースのインデックス。プレゼンテーション内のストリーム数を調べるには、IMFPresentationDescriptor::GetStreamDescriptorCount メソッドを呼び出します。 |
| pfSelected | BOOL* | out | ブール値を受け取ります。ストリームが現在選択されている場合は TRUE、現在選択解除されている場合は FALSE になります。ストリームが選択されている場合、IMFMediaSource::Start が呼び出されると、メディアソースはそのストリームのデータを生成します。メディアソースは、選択解除されたストリームのデータは生成しません。ストリームを選択するには IMFPresentationDescriptor::SelectStream を呼び出します。ストリームを選択解除するには IMFPresentationDescriptor::DeselectStream を呼び出します。 |
| ppDescriptor | IMFStreamDescriptor** | out | ストリーム記述子の IMFStreamDescriptor インターフェイスへのポインターを受け取ります。呼び出し元はこのインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このインターフェイスは、Windows Media Format 11 SDK 再頒布可能コンポーネントがインストールされている場合、次のプラットフォームで利用できます。
- Windows XP with Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
プレゼンテーション内のストリームを選択します。
| dwDescriptorIndex | DWORD | in | 選択するストリーム番号(ゼロベース)。プレゼンテーション内のストリーム数を調べるには、IMFPresentationDescriptor::GetStreamDescriptorCount を呼び出します。 |
戻り値
このメソッドは HRESULT を返します。可能な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| dwDescriptorIndex が範囲外です。 |
解説(Remarks)
ストリームが選択されている場合、メディアソースはそのストリームのデータを生成します。メディアソースは、選択解除されたストリームのデータは生成しません。ストリームを選択解除するには、IMFPresentationDescriptor::DeselectStream を呼び出します。
ストリームが選択されているかどうかを照会するには、IMFPresentationDescriptor::GetStreamDescriptorByIndex を呼び出します。
このインターフェイスは、Windows Media Format 11 SDK 再頒布可能コンポーネントがインストールされている場合、次のプラットフォームで利用できます。
- Windows XP with Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
プレゼンテーション内のストリームを選択解除します。
| dwDescriptorIndex | DWORD | in | 選択解除するストリーム番号(ゼロベース)。プレゼンテーション内のストリーム数を調べるには、IMFPresentationDescriptor::GetStreamDescriptorCount メソッドを呼び出します。 |
戻り値
このメソッドは HRESULT を返します。可能な値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| dwDescriptorIndex が範囲外です。 |
解説(Remarks)
ストリームが選択解除されると、そのストリームのデータは生成されません。ストリームを再び選択するには、IMFPresentationDescriptor::SelectStream を呼び出します。
ストリームが選択されているかどうかを照会するには、IMFPresentationDescriptor::GetStreamDescriptorByIndex を呼び出します。
このインターフェイスは、Windows Media Format 11 SDK 再頒布可能コンポーネントがインストールされている場合、次のプラットフォームで利用できます。
- Windows XP with Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
このプレゼンテーション記述子のコピーを作成します。
| ppPresentationDescriptor | IMFPresentationDescriptor** | out | 新しいプレゼンテーション記述子の IMFPresentationDescriptor インターフェイスへのポインターを受け取ります。呼び出し元はこのインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドは、プレゼンテーション記述子の浅いコピー(シャローコピー)を行います。ストリーム記述子は複製されません。そのため、プレゼンテーション記述子またはそのストリーム記述子を変更する際には注意してください。
元のプレゼンテーション記述子がメディアソースから取得したものである場合、ソースが停止しているときを除いてプレゼンテーション記述子を変更しないでください。プレゼンテーション記述子を使用してメディアシンクを構成する場合は、シンクを構成した後にプレゼンテーション記述子を変更しないでください。
このインターフェイスは、Windows Media Format 11 SDK 再頒布可能コンポーネントがインストールされている場合、次のプラットフォームで利用できます。
- Windows XP with Service Pack 2 (SP2) 以降。
- KB900325 (Windows XP Media Center Edition 2005) および KB925766 (October 2006 Update Rollup for Windows XP Media Center Edition) がインストールされた Windows XP Media Center Edition 2005。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMFPresentationDescriptor "{03CB2711-24D7-4DB6-A17F-F3A7A479A536}" #usecom global IMFPresentationDescriptor IID_IMFPresentationDescriptor "{}" #comfunc global IMFPresentationDescriptor_GetStreamDescriptorCount 33 var #comfunc global IMFPresentationDescriptor_GetStreamDescriptorByIndex 34 int,var,sptr #comfunc global IMFPresentationDescriptor_SelectStream 35 int #comfunc global IMFPresentationDescriptor_DeselectStream 36 int #comfunc global IMFPresentationDescriptor_Clone 37 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IMFPresentationDescriptor "{03CB2711-24D7-4DB6-A17F-F3A7A479A536}" #usecom global IMFPresentationDescriptor IID_IMFPresentationDescriptor "{}" #comfunc global IMFPresentationDescriptor_GetStreamDescriptorCount 33 sptr #comfunc global IMFPresentationDescriptor_GetStreamDescriptorByIndex 34 int,sptr,sptr #comfunc global IMFPresentationDescriptor_SelectStream 35 int #comfunc global IMFPresentationDescriptor_DeselectStream 36 int #comfunc global IMFPresentationDescriptor_Clone 37 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。