Microsoft DirectX 8.0 |
Microsoft® DirectShow® 編集サービス (DES) のオブジェクトにトランジションを追加する。このインターフェイスは、適用されるトランジションを持つことができるオブジェクトによって公開される。そのようなオブジェクトには、トラック、合成、およびグループが含まれる。このインターフェイスを実装しているオブジェクトはトランジションをいくつでも持つことができるが、その時間をオーバーラップさせることはできない。
注 : オーディオはトランジションをサポートしていない。オーディオ グループ内のオブジェクトは、IAMTimelineTransable インターフェイスを公開できるが、アプリケーションではそのオブジェクトにトランジションを追加してはならない。要件
Qedit.h が必要である。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IAMTimelineTransable メソッド 説明 TransAdd オブジェクトにトランジションを追加する。 TransGetCount このオブジェクトのトランジションの個数を取得する。 GetNextTrans 指定された時間以降に始まる最初のトランジションを検索する。 GetNextTrans2 GetNextTrans と同じ機能だが、REFTIME 値をパラメータにとる。 GetTransAtTime 指定された境界条件に従って、指定された時間に最も近いトランジションを取得する。 GetTransAtTime2 GetTransAtTime と同じ機能だが、REFTIME 値をパラメータにとる。
指定された時間以降に始まる最初のトランジションを検索する。
構文
HRESULT GetNextTrans( IAMTimelineObj **ppTrans, REFERENCE_TIME *pInOut );
パラメータ
- ppTrans
- [out] トランジション オブジェクトの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
- pInOut
- 時間 (100 ナノ秒単位) を指定する変数へのポインタ。入力では、この値はトランジションの検索を開始する時間を指定する。出力では、トランジションが取得された場合、この値はそのトランジションの終了タイムに設定される。
戻り値
このメソッドは、トランジションを取得した場合は、S_OK を返す。トランジションが見つからなかった場合は、S_FALSE を返す。それ以外の場合は、失敗の原因を示す HRESULT 値を返す。
注意
トランジションの開始タイムは、pInOut に指定する時間にかかっていれば、指定時間よりも小さくてかまわない。
メソッドが S_OK を返した場合、返される IAMTimelineObj インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。
指定された時間以降に始まる最初のトランジションを検索する。 このメソッドは GetNextTrans と同じ機能だが、REFTIME 値をパラメータにとる。
構文
HRESULT GetNextTrans2( IAMTimelineObj **ppTrans, REFTIME *pInOut );
パラメータ
- ppTrans
- [out] トランジション オブジェクトの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
- pInOut
- 時間 (秒単位) を指定する変数へのポインタ。入力では、この値はトランジションの検索を開始する時間を指定する。出力では、トランジションが取得された場合、この値はそのトランジションの終了タイムに設定される。
戻り値
このメソッドは、トランジションを取得した場合は、S_OK を返す。トランジションが見つからなかった場合は、S_FALSE を返す。それ以外の場合は、失敗の原因を示す HRESULT 値を返す。
指定された境界条件に従って、指定された時間に最も近いトランジションを取得する。
構文
HRESULT GetTransAtTime( IAMTimelineObj **ppObj, REFERENCE_TIME Time, long SearchDirection );
パラメータ
- ppObj
- [out] トランジションの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
- Time
- 検索を開始する時間 (100 ナノ秒単位)。
- SearchDirection
- DEXTERF_TRACK_SEARCH_FLAGS 列挙型のメンバ。検索の境界条件を指定する。
戻り値
次のいずれかの HRESULT 値を返す。
S_FALSE トランジションは見つからなかった。 S_OK トランジションが見つかった。 E_INVALIDARG 無効な引数。 E_POINTER NULL ポインタ引数。
注意
メソッドが S_OK を返した場合、返される IAMTimelineObj インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。
指定された境界条件に従って、指定された時間に最も近いトランジションを取得する。このメソッドは GetTransAtTime と同じ機能だが、REFTIME 値をパラメータにとる。
構文
HRESULT GetTransAtTime2( IAMTimelineObj **ppObj, REFTIME Time, long SearchDirection );
パラメータ
- ppObj
- [out] トランジションの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
- Time
- 検索を開始する時間 (秒単位)。
- SearchDirection
- DEXTERF_TRACK_SEARCH_FLAGS 列挙型のメンバ。検索の境界条件を指定する。
戻り値
次のいずれかの HRESULT 値を返す。
S_FALSE トランジションは見つからなかった。 S_OK トランジションが見つかった。 E_INVALIDARG 無効な引数。 E_POINTER NULL ポインタ引数。
オブジェクトにトランジションを追加する。オブジェクトは複数のトランジションを持つことができるが、その時間がオーバーラップしてはならない。トランジションは、オブジェクトの時間境界内に収まっていなければならない。
構文
HRESULT TransAdd( IAMTimelineObj *pTrans );
パラメータ
- pTrans
- 追加するトランジションの IAMTimelineObj インターフェイスのアドレス。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG トランジションを挿入できない。 E_NOINTERFACE pTrans は、トランジションへのポインタではない。
注意
挿入するトランジションが既存のトランジションにオーバーラップする場合、このメソッドは E_INVALIDARG を返す。
このオブジェクトのトランジションの個数を取得する。
構文
HRESULT TransGetCount( long *pCount );
パラメータ
- pCount
- トランジションの数を受け取る変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。