Microsoft DirectX 8.0

IAMTimelineComp インターフェイス

Microsoft® DirectShow® 編集サービス (DES) で、合成上の仮想トラックを挿入または取得する。

合成は、合成された単一のトラックとして機能する、レイヤのコレクションである。たとえば、2 つのトラックとそれらの間のトランジションからなる合成は、そのトランジションを持つ合成されていない単一のトラックとして機能する。合成には、同じタイプ (オーディオまたはビデオ) のメディアだけを入れるようにする必要があるが、この制限は強制されない。仮想トラックは、合成内に配置できる、トラックおよび他の合成も含めた任意のオブジェクトである。

タイムラインの最上位のノードはグループである。グループは、IAMTimelineComp インターフェイスおよび IAMTimelineGroup インターフェイスを実装する。

詳細については、「タイムライン モデル」および「グループ、合成、およびトラック」を参照すること。

要件

Qedit.h が必要である。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterfaceサポートされているインターフェイスへのポインタを取得する。
AddRef参照カウントをインクリメントする。
Release参照カウントをデクリメントする。
IAMTimelineComp メソッド説明
VTrackInsBefore合成に指定の優先順位で仮想トラックを挿入する。
VTrackSwapPriorities2 つのトラックの優先順位レベルを入れ替える。
VTrackGetCount合成に含まれる仮想トラックの個数を取得する。
GetVTrack指定された優先順位の仮想トラックを取得する。
GetCountOfTypeこの合成およびそのすべての仮想トラックに含まれる (再帰的に内部に含まれるオブジェクトも含む)、指定されたタイプのオブジェクトの個数を取得する。
GetRecursiveLayerOfTypeこの合成に含まれる仮想トラックを深度の深い順に順序付け、その順序で n 番目の仮想トラックを取得する。
GetRecursiveLayerOfTypeIサポートされていない。
GetNextVTrack指定された仮想トラックの次の仮想トラックを取得する。

IAMTimelineComp::GetCountOfType

IAMTimelineComp インターフェイス

この合成およびそのすべての仮想トラックに含まれる (再帰的に内部に含まれるオブジェクトも含む)、指定されたタイプのオブジェクトの個数を取得する。

構文

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 メソッドを呼び出す。

IAMTimelineComp::GetNextVTrack

IAMTimelineComp インターフェイス

指定された仮想トラックの次の仮想トラックを取得する。

構文

HRESULT GetNextVTrack(
    IAMTimelineObj *pVirtualTrack, 
    IAMTimelineObj **ppNextVirtualTrack
);

パラメータ

pVirtualTrack
前の仮想トラックへのポインタ。合成内の最初の仮想トラックを取得する場合は NULL。
ppNextVirtualTrack
[out] 優先順位の順序で、次の仮想トラックの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。

戻り値

このメソッドは、仮想トラックを取得した場合は S_OK を返す。それ以外の場合は S_FALSE を返す。

注意

メソッドが成功した場合、返される IAMTimelineObj インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。

IAMTimelineComp::GetRecursiveLayerOfType

IAMTimelineComp インターフェイス

この合成に含まれる仮想トラックを深度の深い順に順序付け、その順序で 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_POINTERNULL ポインタ引数。

注意

通常、アプリケーションでこのメソッドを呼び出す必要はない。

Type パラメータが TIMELINE_MAJOR_TYPE_TRACK の場合、深度の順序付けにトラックも含まれる。それ以外の場合は、合成とグループだけが含まれる。そのオブジェクト自体も順序付けに含まれる。

たとえば、合成 A から始まる次のような配置では、順序は B、C、F、D、E、A となる。

GetRecursiveLayerOfType

メソッドが成功した場合、返される IAMTimelineObj インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。

IAMTimelineComp::GetRecursiveLayerOfTypeI

IAMTimelineComp インターフェイス

サポートされていない。代わりに、GetRecursiveLayerOfType メソッドを呼び出す。

構文

HRESULT GetRecursiveLayerOfTypeI(
    IAMTimelineObj **ppVirtualTrack,
    long *pWhichLayer,
    TIMELINE_MAJOR_TYPE Type
);

IAMTimelineComp::GetVTrack

IAMTimelineComp インターフェイス

指定された優先順位の仮想トラックを取得する。

構文

HRESULT GetVTrack(
    IAMTimelineObj **ppVirtualTrack,
    long Which
);

パラメータ

ppVirtualTrack
[out] 仮想トラックの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
Which
取得する仮想トラックの優先順位。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG指定された優先順位の仮想トラックはない。
E_POINTERNULL ポインタ引数。

注意

メソッドが成功した場合、返される IAMTimelineObj インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。

IAMTimelineComp::VTrackGetCount

IAMTimelineComp インターフェイス

合成に含まれる仮想トラックの個数を取得する。

構文

HRESULT VTrackGetCount(
    long *pVal
);

パラメータ

pVal
仮想トラックの個数を受け取る変数へのポインタ。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。

IAMTimelineComp::VTrackInsBefore

IAMTimelineComp インターフェイス

合成に指定の優先順位で仮想トラックを挿入する。

構文

HRESULT VTrackInsBefore(
    IAMTimelineObj *pVirtualTrack,
    long Priority
);

パラメータ

pVirtualTrack
仮想トラックの IAMTimelineObj インターフェイスへのポインタ。
Priority
仮想トラックを挿入する優先順位。優先順位リストの最後に仮想トラックを挿入する場合は -1。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_INVALIDARG無効な引数。
E_NOINTERFACEオブジェクトは仮想トラックではない。

注意

優先順位レベルはゼロから始まる。タイムラインに、指定された優先順位レベルの仮想トラックが既に存在する場合、優先順位リストのその位置以下のすべてが 1 レベルずつ繰り下げられ、挿入されるトラックの場所が確保される。現在のトラックの個数より大きい値を優先順位に指定した場合、このメソッドは失敗する。

IAMTimelineComp::VTrackSwapPriorities

IAMTimelineComp インターフェイス

2 つのトラックの優先順位レベルを入れ替える。

このメソッドは、指定された 2 つの優先順位レベルを持つそれぞれの仮想トラックの優先順位を入れ替える。このメソッドが復帰したとき、最初に指定された優先順位にあったトラックの優先順位は、2 番目に指定された優先順位レベルになり、2 番目に指定された優先順位にあったトラックの優先順位は、最初に指定された優先順位レベルになっている。

構文

HRESULT VTrackSwapPriorities(
    long VirtualTrackA,
    long VirtualTrackB
);

パラメータ

VirtualTrackA
仮想トラックを入れ替える最初の優先順位レベル。
VirtualTrackB
仮想トラックを入れ替える 2 番目の優先順位レベル。

戻り値

成功した場合は S_OK、それ以外の場合は E_INVALIDARG を返す。