Microsoft DirectX 8.0 |
Microsoft® DirectShow® 編集サービス (DES) で、合成上の仮想トラックを挿入または取得する。
合成は、合成された単一のトラックとして機能する、レイヤのコレクションである。たとえば、2 つのトラックとそれらの間のトランジションからなる合成は、そのトランジションを持つ合成されていない単一のトラックとして機能する。合成には、同じタイプ (オーディオまたはビデオ) のメディアだけを入れるようにする必要があるが、この制限は強制されない。仮想トラックは、合成内に配置できる、トラックおよび他の合成も含めた任意のオブジェクトである。
タイムラインの最上位のノードはグループである。グループは、IAMTimelineComp インターフェイスおよび IAMTimelineGroup インターフェイスを実装する。
詳細については、「タイムライン モデル」および「グループ、合成、およびトラック」を参照すること。
要件
Qedit.h が必要である。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IAMTimelineComp メソッド 説明 VTrackInsBefore 合成に指定の優先順位で仮想トラックを挿入する。 VTrackSwapPriorities 2 つのトラックの優先順位レベルを入れ替える。 VTrackGetCount 合成に含まれる仮想トラックの個数を取得する。 GetVTrack 指定された優先順位の仮想トラックを取得する。 GetCountOfType この合成およびそのすべての仮想トラックに含まれる (再帰的に内部に含まれるオブジェクトも含む)、指定されたタイプのオブジェクトの個数を取得する。 GetRecursiveLayerOfType この合成に含まれる仮想トラックを深度の深い順に順序付け、その順序で n 番目の仮想トラックを取得する。 GetRecursiveLayerOfTypeI サポートされていない。 GetNextVTrack 指定された仮想トラックの次の仮想トラックを取得する。
この合成およびそのすべての仮想トラックに含まれる (再帰的に内部に含まれるオブジェクトも含む)、指定されたタイプのオブジェクトの個数を取得する。
構文
HRESULT GetCountOfType( long *pVal, long *pValWithComps, TIMELINE_MAJOR_TYPE MajorType );
パラメータ
- pVal
- この合成およびそのすべての仮想トラックに含まれる (再帰的に内部に含まれるオブジェクトも含む)、指定されたタイプのオブジェクトの個数を受け取る変数へのポインタ。
- pValWithComps
- pVal に返された個数と、これ自体も含めて検索された合成の個数を加えた数を受け取る変数へのポインタ。
- MajorType
- TIMELINE_MAJOR_TYPE 列挙型のメンバ。個数を数えるオブジェクトのタイプを指定する。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
注意
通常、アプリケーションではこのメソッドを呼び出さない。これは、レンダリング エンジンによって呼び出される。
合成の個数を調べたとき、pVal に返される値はゼロ、pValWithComps に返される値が合成の個数である。*pValWithComps の値には、メソッドを呼び出した合成も含まれる。たとえば、空の合成でこのメソッドを呼び出した場合、*pValWithComps は 1 に等しい。
グループは合成の中に配置できないので、このメソッドでグループの数を調べることはできない (返される数は常にゼロとなる)。グループの数を調べるには、IAMTimeline::GetGroupCount メソッドを呼び出す。
指定された仮想トラックの次の仮想トラックを取得する。
構文
HRESULT GetNextVTrack( IAMTimelineObj *pVirtualTrack, IAMTimelineObj **ppNextVirtualTrack );
パラメータ
- pVirtualTrack
- 前の仮想トラックへのポインタ。合成内の最初の仮想トラックを取得する場合は NULL。
- ppNextVirtualTrack
- [out] 優先順位の順序で、次の仮想トラックの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
戻り値
このメソッドは、仮想トラックを取得した場合は S_OK を返す。それ以外の場合は S_FALSE を返す。
注意
メソッドが成功した場合、返される IAMTimelineObj インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。
この合成に含まれる仮想トラックを深度の深い順に順序付け、その順序で n 番目の仮想トラックを取得する。
構文
HRESULT GetRecursiveLayerOfType( IAMTimelineObj **ppVirtualTrack, long WhichLayer, TIMELINE_MAJOR_TYPE Type );
パラメータ
- ppVirtualTrack
- [out] 仮想トラックの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
- WhichLayer
- 取得する仮想トラックを指定する、ゼロから始まるインデックスの値。
- Type
- TIMELINE_MAJOR_TYPE 列挙型のメンバ。検索にトラックを含めるかどうかを指定する。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 指定されたタイプのオブジェクトはない。 E_POINTER NULL ポインタ引数。
注意
通常、アプリケーションでこのメソッドを呼び出す必要はない。
Type パラメータが TIMELINE_MAJOR_TYPE_TRACK の場合、深度の順序付けにトラックも含まれる。それ以外の場合は、合成とグループだけが含まれる。そのオブジェクト自体も順序付けに含まれる。
たとえば、合成 A から始まる次のような配置では、順序は B、C、F、D、E、A となる。
メソッドが成功した場合、返される IAMTimelineObj インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。
サポートされていない。代わりに、GetRecursiveLayerOfType メソッドを呼び出す。
構文
HRESULT GetRecursiveLayerOfTypeI( IAMTimelineObj **ppVirtualTrack, long *pWhichLayer, TIMELINE_MAJOR_TYPE Type );
指定された優先順位の仮想トラックを取得する。
構文
HRESULT GetVTrack( IAMTimelineObj **ppVirtualTrack, long Which );
パラメータ
- ppVirtualTrack
- [out] 仮想トラックの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
- Which
- 取得する仮想トラックの優先順位。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 指定された優先順位の仮想トラックはない。 E_POINTER NULL ポインタ引数。
注意
メソッドが成功した場合、返される IAMTimelineObj インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。
合成に含まれる仮想トラックの個数を取得する。
構文
HRESULT VTrackGetCount( long *pVal );
パラメータ
- pVal
- 仮想トラックの個数を受け取る変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
合成に指定の優先順位で仮想トラックを挿入する。
構文
HRESULT VTrackInsBefore( IAMTimelineObj *pVirtualTrack, long Priority );
パラメータ
- pVirtualTrack
- 仮想トラックの IAMTimelineObj インターフェイスへのポインタ。
- Priority
- 仮想トラックを挿入する優先順位。優先順位リストの最後に仮想トラックを挿入する場合は -1。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_NOINTERFACE オブジェクトは仮想トラックではない。
注意
優先順位レベルはゼロから始まる。タイムラインに、指定された優先順位レベルの仮想トラックが既に存在する場合、優先順位リストのその位置以下のすべてが 1 レベルずつ繰り下げられ、挿入されるトラックの場所が確保される。現在のトラックの個数より大きい値を優先順位に指定した場合、このメソッドは失敗する。
2 つのトラックの優先順位レベルを入れ替える。
このメソッドは、指定された 2 つの優先順位レベルを持つそれぞれの仮想トラックの優先順位を入れ替える。このメソッドが復帰したとき、最初に指定された優先順位にあったトラックの優先順位は、2 番目に指定された優先順位レベルになり、2 番目に指定された優先順位にあったトラックの優先順位は、最初に指定された優先順位レベルになっている。
構文
HRESULT VTrackSwapPriorities( long VirtualTrackA, long VirtualTrackB );
パラメータ
- VirtualTrackA
- 仮想トラックを入れ替える最初の優先順位レベル。
- VirtualTrackB
- 仮想トラックを入れ替える 2 番目の優先順位レベル。
戻り値
成功した場合は S_OK、それ以外の場合は E_INVALIDARG を返す。