Microsoft DirectX 8.0

IAMTimelineTransable インターフェイス

Microsoft® DirectShow® 編集サービス (DES) のオブジェクトにトランジションを追加する。このインターフェイスは、適用されるトランジションを持つことができるオブジェクトによって公開される。そのようなオブジェクトには、トラック合成、およびグループが含まれる。このインターフェイスを実装しているオブジェクトはトランジションをいくつでも持つことができるが、その時間をオーバーラップさせることはできない。

注 :  オーディオはトランジションをサポートしていない。オーディオ グループ内のオブジェクトは、IAMTimelineTransable インターフェイスを公開できるが、アプリケーションではそのオブジェクトにトランジションを追加してはならない。

要件

Qedit.h が必要である。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterfaceサポートされているインターフェイスへのポインタを取得する。
AddRef参照カウントをインクリメントする。
Release参照カウントをデクリメントする。
IAMTimelineTransable メソッド説明
TransAddオブジェクトにトランジションを追加する。
TransGetCountこのオブジェクトのトランジションの個数を取得する。
GetNextTrans指定された時間以降に始まる最初のトランジションを検索する。
GetNextTrans2GetNextTrans と同じ機能だが、REFTIME 値をパラメータにとる。
GetTransAtTime指定された境界条件に従って、指定された時間に最も近いトランジションを取得する。
GetTransAtTime2GetTransAtTime と同じ機能だが、REFTIME 値をパラメータにとる。

IAMTimelineTransable::GetNextTrans

IAMTimelineTransable インターフェイス

指定された時間以降に始まる最初のトランジションを検索する。

構文

HRESULT GetNextTrans(
    IAMTimelineObj **ppTrans,
    REFERENCE_TIME *pInOut
);

パラメータ

ppTrans
[out] トランジション オブジェクトの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
pInOut
時間 (100 ナノ秒単位) を指定する変数へのポインタ。入力では、この値はトランジションの検索を開始する時間を指定する。出力では、トランジションが取得された場合、この値はそのトランジションの終了タイムに設定される。

戻り値

このメソッドは、トランジションを取得した場合は、S_OK を返す。トランジションが見つからなかった場合は、S_FALSE を返す。それ以外の場合は、失敗の原因を示す HRESULT 値を返す。

注意

トランジションの開始タイムは、pInOut に指定する時間にかかっていれば、指定時間よりも小さくてかまわない。

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

IAMTimelineTransable::GetNextTrans2

IAMTimelineTransable インターフェイス

指定された時間以降に始まる最初のトランジションを検索する。 このメソッドは GetNextTrans と同じ機能だが、REFTIME 値をパラメータにとる。

構文

HRESULT GetNextTrans2(
    IAMTimelineObj **ppTrans,
    REFTIME *pInOut
);

パラメータ

ppTrans
[out] トランジション オブジェクトの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
pInOut
時間 (秒単位) を指定する変数へのポインタ。入力では、この値はトランジションの検索を開始する時間を指定する。出力では、トランジションが取得された場合、この値はそのトランジションの終了タイムに設定される。

戻り値

このメソッドは、トランジションを取得した場合は、S_OK を返す。トランジションが見つからなかった場合は、S_FALSE を返す。それ以外の場合は、失敗の原因を示す HRESULT 値を返す。

IAMTimelineTransable::GetTransAtTime

IAMTimelineTransable インターフェイス

指定された境界条件に従って、指定された時間に最も近いトランジションを取得する。

構文

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_POINTERNULL ポインタ引数。

注意

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

IAMTimelineTransable::GetTransAtTime2

IAMTimelineTransable インターフェイス

指定された境界条件に従って、指定された時間に最も近いトランジションを取得する。このメソッドは 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_POINTERNULL ポインタ引数。

IAMTimelineTransable::TransAdd

IAMTimelineTransable インターフェイス

オブジェクトにトランジションを追加する。オブジェクトは複数のトランジションを持つことができるが、その時間がオーバーラップしてはならない。トランジションは、オブジェクトの時間境界内に収まっていなければならない。

構文

HRESULT TransAdd(
    IAMTimelineObj *pTrans
);

パラメータ

pTrans
追加するトランジションの IAMTimelineObj インターフェイスのアドレス。

戻り値

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

S_OK成功。
E_INVALIDARGトランジションを挿入できない。
E_NOINTERFACEpTrans は、トランジションへのポインタではない。

注意

挿入するトランジションが既存のトランジションにオーバーラップする場合、このメソッドは E_INVALIDARG を返す。

IAMTimelineTransable::TransGetCount

IAMTimelineTransable インターフェイス

このオブジェクトのトランジションの個数を取得する。

構文

HRESULT TransGetCount(
    long *pCount
);

パラメータ

pCount
トランジションの数を受け取る変数へのポインタ。

戻り値

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