Microsoft DirectX 8.0

IAMTimeline インターフェイス

Microsoft® DirectShow® 編集サービス (DES) の中心的オブジェクトであるタイムラインを操作するメソッドを提供する。タイムラインは、ビデオ クリップ、オーディオ クリップ、エフェクト、およびクリップ間のトランジションなど、時間順の要素のコレクションである。レンダリング エンジンは、タイムラインを使用してフィルタ グラフを作成する。アプリケーションは、フィルタ グラフからレンダリングされた出力を生成できる。

IAMTimeline は、3 つの基本的なサービスを行う。以下のことを行う。

要件

Qedit.h が必要である。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterfaceサポートされているインターフェイスへのポインタを取得する。
AddRef参照カウントをインクリメントする。
Release参照カウントをデクリメントする。
IAMTimeline メソッド説明
CreateEmptyNode新しいタイムライン オブジェクトを作成する。
AddGroupタイムラインにグループを追加する。
RemGroupFromListサポートされていない。
GetGroup指定されたグループを取得する。
GetGroupCountタイムラインに含まれるグループの個数を取得する。
ClearAllGroupsタイムライン内のすべてのグループ、およびそれらに含まれるすべてのオブジェクトを削除する。
GetInsertModeサポートされていない。
SetInsertMode実装されていない。
EnableTransitionsタイムライン内のすべてのトランジションを有効または無効にする。
TransitionsEnabledトランジションが有効かどうかを調べる。
EnableEffectsタイムライン内のすべてのエフェクトを有効または無効にする。
EffectsEnabledエフェクトが有効かどうかを調べる。
SetInterestRange実装されていない。
GetDurationタイムラインの時間幅を取得する。
GetDuration2GetDuration と同じ機能だが、double 型のパラメータをとる。
SetDefaultFPSデフォルトの出力フレーム レート (毎秒のフレーム数) を設定する。
GetDefaultFPSデフォルトの出力フレーム レート (毎秒のフレーム数) を取得する。
IsDirtyサポートされていない。
GetDirtyRangeサポートされていない。
GetCountOfType指定されたグループとそのすべての子に含まれる、指定されたタイプのオブジェクトの個数を取得する。
ValidateSourceNamesタイムライン内のソース名を検証する。
SetDefaultTransitionデフォルトのトランジションを設定する。
GetDefaultTransitionデフォルトのトランジションを取得する。
SetDefaultEffectデフォルトのエフェクトを設定する。
GetDefaultEffectデフォルトのエフェクトを取得する。
SetDefaultTransitionBSetDefaultTransition と同じ機能だが、BSTR 値をパラメータにとる。
GetDefaultTransitionBGetDefaultTransition と同じ機能だが、BSTR 値をパラメータにとる。
SetDefaultEffectBSetDefaultEffect と同じ機能だが、BSTR 値をパラメータにとる。
GetDefaultEffectBGetDefaultEffect と同じ機能だが、BSTR 値をパラメータにとる。

IAMTimeline::AddGroup

IAMTimeline インターフェイス

タイムラインにグループを追加する。

構文

HRESULT AddGroup(
    IAMTimelineObj *pGroup
);

パラメータ

pGroup
グループの IAMTimelineObj インターフェイスへのポインタ。

戻り値

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

S_OK成功。
E_INVALIDARGグループの最大数を超えた。
E_NOINTERFACEこのオブジェクトはグループではない。

注意

現在、タイムラインがサポートするグループの最大数は 32 である。

IAMTimeline::ClearAllGroups

IAMTimeline インターフェイス

タイムライン内のすべてのグループ、およびそれらに含まれるすべてのオブジェクトを削除する。

構文

HRESULT ClearAllGroups( void );

戻り値

S_OK を返す。

IAMTimeline::CreateEmptyNode

IAMTimeline インターフェイス

新しいタイムライン オブジェクトを作成する。

このメソッドは重要な初期化ルーチンを実行するので、タイムラインの作成にはこのメソッドを使用し、CoCreateInstance 関数は使用しない。このメソッドによって作成されるオブジェクトは、少なくとも IAMTimelineObj インターフェイスをサポートし、それと共にそのタイプのオブジェクトに特有の他のインターフェイスをサポートする。

構文

HRESULT CreateEmptyNode(
    IAMTimelineObj **ppObj,
    TIMELINE_MAJOR_TYPE Type
);

パラメータ

ppObj
[out] 新しいオブジェクトの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
Type
TIMELINE_MAJOR_TYPE 列挙型のメンバ。作成するオブジェクトのタイプを指定する。

戻り値

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

S_OK成功。
E_INVALIDARGオブジェクト タイプが有効ではない。
E_OUTOFMEMORYメモリ不足。
E_POINTERNULL ポインタ引数。

注意

別のタイムライン インスタンスに新しいオブジェクトを追加しないこと。タイムラインのすべてのオブジェクトは、そのタイムラインによって作成されなくてはならない。

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

IAMTimeline::EffectsEnabled

IAMTimeline インターフェイス

エフェクトが有効かどうかを調べる。エフェクトが無効の場合、エフェクトはタイムライン内に存在したままだが、レンダリングはされない。

構文

HRESULT EffectsEnabled(
    BOOL *pfEnabled
);

パラメータ

pfEnabled
エフェクトが有効かどうかを示すブール値を受け取る変数へのポインタ。TRUE の場合、エフェクトは有効である。FALSE の場合、エフェクトは無効である。

戻り値

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

IAMTimeline::EnableEffects

IAMTimeline インターフェイス

タイムライン内のすべてのエフェクトを有効または無効にする。エフェクトが無効の場合、エフェクトはタイムライン内に存在したままだが、レンダリングはされない。

構文

HRESULT EnableEffects(
    BOOL fEnabled
);

パラメータ

fEnabled
エフェクトを有効または無効のどちらに設定するかを示すブール値。TRUE の場合、エフェクトが有効になる。FALSE の場合、エフェクトは無効になる。

戻り値

S_OK を返す。

IAMTimeline::EnableTransitions

IAMTimeline インターフェイス

タイムライン内のすべてのトランジションを有効または無効にする。トランジションが無効の場合、レンダリング エンジンはトランジションをカット (直接切り替え) として扱う。すなわち、レンダリングされた出力では、トラックから次のトラックに即座に切り替わる。デフォルトのカット ポイントは、トランジションの時間幅の中間点である。カット ポイントは、そのトランジションの IAMTimelineTrans::SetCutPoint メソッドを呼び出すことにより変更できる。無効になったトランジションは、タイムラインからは削除されない。

構文

HRESULT EnableTransitions(
    BOOL fEnabled
);

パラメータ

fEnabled
トランジションを有効または無効のどちらに設定するかを示すブール値。TRUE の場合、トランジションが有効になる。FALSE の場合、トランジションは無効になる。

戻り値

S_OK を返す。

IAMTimeline::GetCountOfType

IAMTimeline インターフェイス

指定されたグループとそのすべての子に含まれる、指定されたタイプのオブジェクトの個数を取得する。

構文

HRESULT GetCountOfType(
    long Group,
    long *pVal,
    long *pValWithComps,
    TIMELINE_MAJOR_TYPE MajorType
);

パラメータ

Group
オブジェクトの個数を取得するグループのインデックス番号。
pVal
グループおよびそのすべての仮想トラックに含まれる (再帰的に内部に含まれるオブジェクトも含む)、指定されたタイプのオブジェクトの個数を受け取る変数へのポインタ。
pValWithComps
pVal に返された個数と、これ自体も含めて検索された合成の個数を加えた数を受け取る変数へのポインタ。
MajorType
TIMELINE_MAJOR_TYPE 列挙型のメンバ。個数を数えるオブジェクトのタイプを指定する。

戻り値

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

S_OK成功。
E_INVALIDARG無効なグループ番号。
E_POINTERNULL ポインタ引数。

注意

このメソッドを呼び出すことは、指定のグループの IAMTimelineComp::GetCountOfType を呼び出すことと同等である。詳細については、そのメソッドの「注意」を参照すること。

通常、アプリケーションではこのメソッドを呼び出さない。これは、レンダリング エンジンによって内部的に呼び出される。

IAMTimeline::GetDefaultEffect

IAMTimeline インターフェイス

デフォルトのエフェクトを取得する。レンダリング エンジンがエフェクトをレンダリングできない場合、デフォルトのエフェクトが代用される。

構文

HRESULT GetDefaultEffect(
    GUID *pGuid
);

パラメータ

pGuid
デフォルト エフェクトのグローバル ユニーク識別子 (GUID) を受け取る変数へのポインタ。

戻り値

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

IAMTimeline::GetDefaultEffectB

IAMTimeline インターフェイス

デフォルトのエフェクトを取得する。このメソッドは GetDefaultEffect と同じ機能だが、GUID ではなく BSTR 値を受け取る。

構文

HRESULT GetDefaultEffectB(
    BSTR *pGuid
);

パラメータ

pGuid
[out, retval] デフォルト エフェクトの GUID を表す BSTR 値を受け取る変数へのポインタ。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_OUTOFMEMORY またはエラーの発生を示すその他の HRESULT 値を返す。

注意

このメソッドは、文字列に必要なメモリを割り当てる。アプリケーションは SysFreeString を呼び出して、メモリを解放しなければならない。

IAMTimeline::GetDefaultFPS

IAMTimeline インターフェイス

デフォルトの出力フレーム レート (毎秒のフレーム数、FPS) を取得する。グループは、この値をデフォルトのフレーム レートとして使用する。グループのフレーム レートを設定するには、そのグループの IAMTimelineGroup::SetOutputFPS メソッドを呼び出す。

構文

HRESULT GetDefaultFPS(
    double *pFPS
);

パラメータ

pFPS
デフォルトのフレーム レート (毎秒のフレーム数) を受け取る変数へのポインタ。

戻り値

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

IAMTimeline::GetDefaultTransition

IAMTimeline インターフェイス

デフォルトのトランジションを取得する。レンダリング エンジンがトランジションをレンダリングできない場合、デフォルトのトランジションが代用される。

構文

HRESULT GetDefaultTransition(
    GUID *pGuid
);

パラメータ

pGuid
デフォルトのトランジションの GUID を受け取る変数へのポインタ。

戻り値

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

IAMTimeline::GetDefaultTransitionB

IAMTimeline インターフェイス

デフォルトのトランジションを取得する。このメソッドは GetDefaultTransition と同じ機能だが、GUID ではなく BSTR 値を受け取る。

構文

HRESULT GetDefaultTransitionB(
    BSTR *pGuid
);

パラメータ

pGuid
[out, retval] デフォルトのトランジションの GUID を表す BSTR 値を受け取る変数へのポインタ。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_OUTOFMEMORY またはエラーの発生を示すその他の HRESULT 値を返す。

注意

このメソッドは、文字列に必要なメモリを割り当てる。アプリケーションは SysFreeString を呼び出して、メモリを解放しなければならない。

IAMTimeline::GetDirtyRange

IAMTimeline インターフェイス

サポートされていない。

構文

HRESULT GetDirtyRange(
    REFERENCE_TIME *pStart,
    REFERENCE_TIME *pStop
);

IAMTimeline::GetDuration

IAMTimeline インターフェイス

タイムラインの時間幅を取得する。

構文

HRESULT GetDuration(
    REFERENCE_TIME *pDuration
);

パラメータ

pDuration
タイムラインの時間幅 (100 ナノ秒単位) を受け取る変数へのポインタ。

戻り値

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

IAMTimeline::GetDuration2

IAMTimeline インターフェイス

タイムラインの時間幅を取得する。このメソッドは GetDuration と同じ機能だが、double 型のパラメータをとる。

構文

HRESULT GetDuration2(
    double *pDuration
);

パラメータ

pDuration
タイムラインの時間幅 (小数の秒数) を受け取る変数へのポインタ。

戻り値

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

IAMTimeline::GetGroup

IAMTimeline インターフェイス

指定されたグループを取得する。

構文

HRESULT GetGroup(
    IAMTimelineObj **ppGroup,
    long WhichGroup
);

パラメータ

ppGroup
[out] グループの IAMTimelineObj インターフェイスを受け取るポインタのアドレス。
WhichGroup
取得するグループのインデックス。このインデックスは、グループがタイムラインに追加された順序に基づく。 タイムラインに最初に追加されたグループのインデックスは 0 となる。

戻り値

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

S_OK成功。
E_INVALIDARG無効な引数。
E_POINTERNULL ポインタ引数。

注意

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

IAMTimeline::GetGroupCount

IAMTimeline インターフェイス

タイムラインに含まれるグループの個数を取得する。

構文

HRESULT GetGroupCount(
    long *pCount
);

パラメータ

pCount
タイムライン内のグループの個数を受け取る変数へのポインタ。

戻り値

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

IAMTimeline::GetInsertMode

IAMTimeline インターフェイス

サポートされていない。

構文

HRESULT GetInsertMode(
    long *pMode
);

IAMTimeline::IsDirty

IAMTimeline インターフェイス

サポートされていない。

構文

HRESULT IsDirty(
    BOOL *pDirty
);

IAMTimeline::RemGroupFromList

IAMTimeline インターフェイス

サポートされていない。

構文

HRESULT RemGroupFromList(
    IAMTimelineObj *pGroup
);

IAMTimeline::SetDefaultEffect

IAMTimeline インターフェイス

デフォルトのエフェクトを設定する。レンダリング エンジンがエフェクトをレンダリングできない場合、デフォルトのエフェクトが代用される。

構文

HRESULT SetDefaultEffect(
    GUID *pGuid
);

パラメータ

pGuid
デフォルト エフェクトの GUID を持つ変数へのポインタ。

戻り値

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

注意

デフォルト エフェクトを設定していない場合、またはデフォルトに指定したエフェクトがエラーを引き起こした場合、DES 自体のデフォルト エフェクトが使用される。

IAMTimeline::SetDefaultEffectB

IAMTimeline インターフェイス

デフォルトのエフェクトを設定する。このメソッドは SetDefaultEffect と同じ機能だが、GUID へのポインタではなく BSTR 値をパラメータにとる。

構文

HRESULT SetDefaultEffectB(
    BSTR pGuid
);

パラメータ

pGuid
デフォルト エフェクトの GUID を表す BSTR 値。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_OUTOFMEMORY またはエラーの発生を示すその他の HRESULT 値を返す。

IAMTimeline::SetDefaultFPS

IAMTimeline インターフェイス

デフォルトの出力フレーム レート (毎秒のフレーム数) を設定する。グループは、この値をデフォルトのフレーム レートとして使用する。グループのフレーム レートを設定するには、そのグループの IAMTimelineGroup::SetOutputFPS メソッドを呼び出す。

構文

HRESULT SetDefaultFPS(
    double FPS
);

パラメータ

FPS
デフォルトのフレーム レート (毎秒のフレーム数)。

戻り値

S_OK を返す。

IAMTimeline::SetDefaultTransition

IAMTimeline インターフェイス

デフォルトのトランジションを設定する。レンダリング エンジンがトランジションをレンダリングできない場合、デフォルトのトランジションが代用される。

構文

HRESULT SetDefaultTransition(
    GUID *pGuid
);

パラメータ

pGuid
デフォルトのトランジションの GUID を持つ変数へのポインタ。

戻り値

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

注意

デフォルトのトランジションを設定していない場合、またはデフォルトに指定したトランジションがエラーを引き起こした場合、DES 自体のデフォルトのトランジションが使用される。

IAMTimeline::SetDefaultTransitionB

IAMTimeline インターフェイス

デフォルトのトランジションを設定する。このメソッドは SetDefaultTransition と同じ機能だが、GUID へのポインタではなく BSTR 値をパラメータにとる。

構文

HRESULT SetDefaultTransitionB(
    BSTR pGuid
);

パラメータ

pGuid
デフォルトのトランジションの GUID を表す BSTR 値。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_OUTOFMEMORY またはエラーの発生を示すその他の HRESULT 値を返す。

IAMTimeline::SetInsertMode

IAMTimeline インターフェイス

実装されていない。

構文

HRESULT SetInsertMode(
    long Mode
);

IAMTimeline::SetInterestRange

IAMTimeline インターフェイス

実装されていない。

構文

HRESULT SetInterestRange(
    REFERENCE_TIME Start,
    REFERENCE_TIME Stop
);

IAMTimeline::TransitionsEnabled

IAMTimeline インターフェイス

トランジションが有効かどうかを調べる。

構文

HRESULT TransitionsEnabled(
    BOOL *pfEnabled
);

パラメータ

pfEnabled
ブール値を受け取る変数へのポインタ。TRUE の場合、トランジションは有効である。そうでない場合、トランジションは無効である。

戻り値

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

参照

EnableTransitions

IAMTimeline::ValidateSourceNames

IAMTimeline インターフェイス

メディア ロケータを使用して、タイムライン内のソース名を検証する。オプションで、このメソッドは見つかったファイルでソース オブジェクトを更新する。

構文

HRESULT ValidateSourceNames(
    long ValidateFlags,
    IMediaLocator *pOverride,
    long NotifyEventHandle
);

パラメータ

ValidateFlags
メディア ロケータの動作を指定するフラグのビットごとの組み合わせ。SFN_VALIDATEF_REPLACE フラグと SFN_VALIDATEF_CHECK フラグは必ず存在していなければならない。そうでない場合、このメソッドは E_INVALIDARG を返す。
pOverride
デフォルトの代わりに使用するメディア ロケータの IMediaLocator インターフェイスへのオプションのポインタ。デフォルトのメディア ロケータを使用するには、このパラメータの値を NULL に設定する。詳細については、「注意」を参照すること。
NotifyEventHandle
イベントのハンドル。このメソッドは、検証が完了した後でこのイベントにシグナル送信する。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_INVALIDARG または他のエラー コードを返す。

注意

pOverride パラメータを使用すると、IMediaLocator インターフェイスの独自のカスタム実装を使用できる。たとえば、デフォルトのメディア ロケータは、見つかった (または見つからなかった) ファイルについてアプリケーションに通知を行わない。このような制限を回避するために、カスタム メディア ロケータを実装して、デフォルト バージョンのラッパーとすることができる。カスタム バージョンでは、デフォルト バージョンに FindMediaFile 呼び出しを直接渡して、その戻り値を調べる。