Microsoft DirectX 8.0 |
Microsoft® DirectShow® 編集サービス (DES) のタイムライン オブジェクトを操作するメソッドを提供する。ソース、エフェクト、トランジション、トラック、グループ、および合成を含むすべてのタイムライン オブジェクトは、このインターフェイスを実装する。タイムライン オブジェクトは、IAMTimeline::CreateEmptyNode メソッドを呼び出すことにより作成する。
要件
Qedit.h が必要である。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IAMTimelineObj メソッド 説明 GetStartStop オブジェクトの親相対の、オブジェクトの開始タイムと終了タイムを取得する。 GetStartStop2 GetStartStop と同じ機能だが、REFTIME 値をパラメータにとる。 FixTimes 指定された開始タイムと終了タイムを、親グループのフレーム レート設定によって定義される最も近いフレーム境界に丸める。 FixTimes2 FixTimes と同じ機能だが、REFTIME 値をパラメータにとる。 SetStartStop タイムライン相対の開始タイムと終了タイムを設定する。 SetStartStop2 SetStartStop と同じ機能だが、REFTIME 値をパラメータにとる。 GetPropertySetter オブジェクトのプロパティ セッターを取得する。 SetPropertySetter オブジェクトのプロパティ セッターを設定する。 GetSubObject このオブジェクトに関連付けられているサブオブジェクトを取得する。 SetSubObject サポートされていない。 SetSubObjectGUID このオブジェクトに関連付けられているサブオブジェクトのグローバル ユニーク識別子 (GUID) を指定する。 SetSubObjectGUIDB SetSubObjectGUID と同じ機能だが、BSTR 値をパラメータにとる。 GetSubObjectGUID このタイムライン オブジェクトに関連付けられているサブオブジェクトの GUID を取得する。 GetSubObjectGUIDB GetSubObjectGUID と同じ機能だが、BSTR 値をパラメータにとる。 GetSubObjectLoaded オブジェクトのサブオブジェクト ポインタが設定されているかどうかを調べる。 GetTimelineType オブジェクトのタイプを取得する。 SetTimelineType サポートされていない。 SetUserID オブジェクトに対するアプリケーション定義の識別子を設定する。 GetUserID オブジェクトのアプリケーション定義の識別子を取得する。 GetGenID オブジェクトの生成された識別子を取得する。 SetUserName オブジェクトに対するアプリケーション定義の名前を設定する。 GetUserName オブジェクトのアプリケーション定義の名前を取得する。 SetUserData アプリケーション定義の持続的データを設定する。 GetUserData アプリケーション定義の持続的データを取得する。 SetMuted オブジェクトのミュート状態を設定する。 GetMuted オブジェクトのミュート状態を取得する。 SetLocked オブジェクトの編集状態をロックまたはロック解除に設定する。 GetLocked オブジェクトの編集状態 (ロックまたはロック解除) を取得する。 GetDirtyRange サポートされていない。 GetDirtyRange2 サポートされていない。 SetDirtyRange 実装されていない。 SetDirtyRange2 実装されていない。 ClearDirty サポートされていない。 Remove このオブジェクトを、他の場所へ再挿入できるように、タイムラインから削除する。 RemoveAll このオブジェクトを、サブオブジェクトと子を含めて、タイムラインから永続的に削除する。 GetTimelineNoRef このメソッドは現在サポートされていない。 GetGroupIBelongTo サポートされていない。 GetEmbedDepth サポートされていない。
サポートされていない。
構文
HRESULT ClearDirty( void );
指定された開始タイムと終了タイムを、親グループのフレーム レート設定によって定義される最も近いフレーム境界に丸める。
構文
HRESULT FixTimes( REFERENCE_TIME *pStart, REFERENCE_TIME *pStop );
パラメータ
- pStart
- 開始タイム (100 ナノ秒単位) を保持する変数へのポインタ。 呼び出しが成功した場合、この変数は丸められた時間に設定される。
- pStop
- 終了タイム (100 ナノ秒単位) を保持する変数へのポインタ。呼び出しが成功した場合、この変数は丸められた時間に設定される。
戻り値
成功した場合は、S_OK を返す。オブジェクトがグループの一部でない場合は、E_NOTINTREE を返す。
注意
レンダリング時に、DES はオブジェクトの開始タイムと終了タイムを、フレーム境界に最も近い値に丸める。ただし、DES はオブジェクトの時間は書き換えない。グループのフレーム レートを変更した場合、丸められた時間は必ず元の時間から計算される。詳細については、「フレーム レート」を参照すること。
このメソッドを使用して、レンダリングされたオブジェクト内での正確な開始タイムと終了タイムを特定できる。たとえば、オブジェクトの元の開始タイムと終了タイムではなく、丸められた時間が必要な場合がある。GetStartStop を呼び出して元の時間を取得し、その値を FixTimes に渡す。
指定された開始タイムと終了タイムを、親グループのフレーム レート設定によって定義される最も近いフレーム境界に丸める。このメソッドは FixTimes と同じ機能だが、REFTIME 値をパラメータにとる。
構文
HRESULT FixTimes2( REFTIME *pStart, REFTIME *pStop );
パラメータ
- pStart
- 開始タイム (秒単位) を保持する変数へのポインタ。呼び出しが成功した場合、この変数は丸められた時間に設定される。
- pStop
- 終了タイム (秒単位) を保持する変数へのポインタ。呼び出しが成功した場合、この変数は丸められた時間に設定される。
戻り値
成功した場合は、S_OK を返す。オブジェクトがグループの一部でない場合は、E_NOTINTREE を返す。
サポートされていない。
構文
HRESULT GetDirtyRange( REFERENCE_TIME *pStart, REFERENCE_TIME *pStop );
サポートされていない。
構文
HRESULT GetDirtyRange2( REFTIME *pStart, REFTIME *pStop );
サポートされていない。
構文
HRESULT GetEmbedDepth( long *pVal );
オブジェクトの生成された識別子を取得する。この識別子は予約された番号であり、アプリケーションで使用してはならない。
構文
HRESULT GetGenID( long *pVal );
パラメータ
- pVal
- 生成された識別子を受け取る変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
サポートされていない。
構文
HRESULT GetGroupIBelongTo( IAMTimelineGroup **ppGroup );
オブジェクトの編集状態 (ロックまたはロック解除) を取得する。ロック状態はオブジェクトを編集してはならないことを示し、ロック解除状態はオブジェクトを編集できることを示す。タイムライン側では、ロックを強制しない。ロック状態の設定は、アプリケーション側の利便性のためにのみ存在する。
構文
GetLocked( BOOL *pVal );
パラメータ
- pVal
- オブジェクトの編集状態を受け取るブール変数へのポインタ。この値が TRUE の場合、オブジェクトはロックされており、編集してはならない。FALSE の場合、オブジェクトはロック解除されており、編集できる。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
オブジェクトのミュート状態を取得する。
構文
HRESULT GetMuted( BOOL *pVal );
パラメータ
- pVal
- ミュート状態を示す値を受け取るブール変数へのポインタ。この値が TRUE の場合、オブジェクトとその子はミュートされている。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
注意
オブジェクトの親がミュートされている場合、ミュート状態とは無関係に、そのオブジェクトもミュートされたままとなる。親のミュートが解除されたときには、そのオブジェクトの前のミュート状態が復元される。
オブジェクトのプロパティ セッターを取得する。オブジェクトがレンダリングされるときに、プロパティ セッター内のプロパティ情報がオブジェクトに適用される。
構文
HRESULT GetPropertySetter( IPropertySetter **pVal );
パラメータ
- pVal
- [out, retval] プロパティ セッターの IPropertySetter インターフェイスを受け取るポインタのアドレス。オブジェクトがプロパティ セッターを持っていない場合、値は NULL に設定される。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
注意
pVal に返された値が NULL 以外の場合、IPropertySetter インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。
オブジェクトの親相対の、オブジェクトの開始タイムと終了タイムを取得する。
構文
HRESULT GetStartStop( REFERENCE_TIME *pStart, REFERENCE_TIME *pStop );
パラメータ
- pStart
- 開始タイム (100 ナノ秒単位) を受け取る変数へのポインタ。
- pStop
- 終了タイム (100 ナノ秒単位) を受け取る変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
注意
合成、グループ、およびトラックの開始タイムは常に 0 である。
レンダリング時に、DES はオブジェクトの開始タイムと終了タイムを、フレーム境界に最も近い値に丸める。ただし、DES はオブジェクトの時間は書き換えない。グループのフレーム レートを変更した場合、丸められた時間は必ず元の時間から計算される。詳細については、「フレーム レート」を参照すること。
レンダリングされたプロジェクト内での開始タイムを終了タイムを調べるには、GetStartStop が返した値を FixTimes メソッドに渡す。
オブジェクトの親相対の、オブジェクトの開始タイムと終了タイムを取得する。このメソッドは GetStartStop と同じ機能だが、REFTIME 値をパラメータにとる。
構文
HRESULT GetStartStop2( REFTIME *pStart, REFTIME *pStop );
パラメータ
- pStart
- 開始タイム (秒単位) を受け取る変数へのポインタ。
- pStop
- 終了タイム (秒単位) を受け取る変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
このオブジェクトに関連付けられているサブオブジェクトを取得する。
構文
HRESULT GetSubObject( IUnknown **pVal );
パラメータ
- pVal
- [out, retval] サブオブジェクトの IUnknown インターフェイスを受け取るポインタのアドレス。オブジェクトがサブオブジェクトを持っていない場合、値は NULL に設定される。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
注意
すべてのタイムライン オブジェクトは、関連付けられたサブオブジェクトへのポインタを保持することができる。たとえば、エフェクトのサブオブジェクトは通常、エフェクトを生成する Microsoft® DirectXt® 変換オブジェクトである。
pVal に返された値が NULL 以外の場合、IUnknown インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。
このタイムライン オブジェクトに関連付けられているサブオブジェクトの GUID を取得する。
構文
HRESULT GetSubObjectGUID( GUID *pVal );
パラメータ
- pVal
- サブオブジェクトの GUID を受け取る変数へのポインタ。または、オブジェクトがサブオブジェクトを持っていない場合は GUID_NULL。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
このタイムライン オブジェクトに関連付けられているサブオブジェクトの GUID を取得する。このメソッドは GetSubObjectGUID と同じ機能だが、BSTR 値をパラメータにとる。
構文
HRESULT GetSubObjectGUIDB( BSTR *pVal );
パラメータ
- pVal
- [out, retval] サブオブジェクトの GUID を表す文字列を受け取る BSTR へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_OUTOFMEMORY またはエラーの発生を示すその他の HRESULT 値を返す。
注意
このメソッドは、文字列に必要なメモリを割り当てる。アプリケーションは SysFreeString を呼び出して、メモリを解放しなければならない。
オブジェクトのサブオブジェクト ポインタが設定されているかどうかを調べる。
構文
HRESULT GetSubObjectLoaded( BOOL *pVal );
パラメータ
- pVal
- ブール値を受け取る変数へのポインタ。この値が TRUE の場合、サブオブジェクト ポインタが設定されている。FALSE の場合、ポインタは設定されていない。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
サポートされていない。
構文
HRESULT GetTimelineNoRef( IAMTimeline **ppResult );
オブジェクトのタイプを取得する。
構文
HRESULT GetTimelineType( TIMELINE_MAJOR_TYPE *pVal );
パラメータ
- pVal
- オブジェクトのタイプを示す、TIMELINE_MAJOR_TYPE 列挙型のメンバを受け取る変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
アプリケーション定義の持続的データを取得する。
構文
HRESULT GetUserData( BYTE *pData, long *pSize );
パラメータ
- pData
- データを受け取るバッファへのポインタ。割り当てるバッファのサイズを調べるには、このパラメータを NULL に設定する。必要なサイズが pSize に返される。
- pSize
- データのサイズ (バイト単位) を受け取る変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
オブジェクトのアプリケーション定義の識別子を取得する。
構文
HRESULT GetUserID( long *pVal );
パラメータ
- pVal
- アプリケーション定義の識別子を受け取る変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
オブジェクトのアプリケーション定義の名前を取得する。
構文
HRESULT GetUserName( BSTR *pVal );
パラメータ
- pVal
- [out, retval] オブジェクトの名前を受け取る BSTR へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_OUTOFMEMORY またはエラーの発生を示すその他の HRESULT 値を返す。
注意
このメソッドは、文字列に必要なメモリを割り当てる。アプリケーションは SysFreeString を呼び出して、メモリを解放しなければならない。
このオブジェクトを (サブオブジェクトは含むが、子は含まない)、他の場所へ再挿入できるように、タイムラインから削除する。
構文
HRESULT Remove( void );
戻り値
S_OK を返す。
注意
このメソッドは、アプリケーションが即座にそのオブジェクトをタイムラインに挿入する場合にのみ呼び出す。このメソッドの呼び出しに続いてオブジェクトを再挿入しないのは、無効な操作である。オブジェクトを永続的に削除するには、RemoveAll を呼び出す。
このオブジェクトを、サブオブジェクトと子を含めて、タイムラインから永続的に削除する。
構文
HRESULT RemoveAll( void );
戻り値
S_OK を返す。
注意
オブジェクトをタイムラインの別の場所に再挿入する目的で削除するには、Remove を呼び出す。
実装されていない。
構文
HRESULT SetDirtyRange( REFERENCE_TIME Start, REFERENCE_TIME Stop );
実装されていない。
構文
HRESULT SetDirtyRange2( REFTIME Start, REFTIME Stop );
オブジェクトの編集状態をロックまたはロック解除に設定する。ロック状態はオブジェクトを編集してはならないことを示し、ロック解除状態はオブジェクトを編集できることを示す。タイムライン側では、ロックを強制しない。ロック状態の設定は、アプリケーション側の利便性のためにのみ存在する。
構文
HRESULT SetLocked( BOOL newVal );
パラメータ
- newVal
- オブジェクトの編集モードを指定するブール値。TRUE の場合、オブジェクトはロックされており、編集してはならない。FALSE の場合、オブジェクトはロック解除されており、編集できる。
戻り値
S_OK を返す。
オブジェクトのミュート状態を設定する。ミュートされたオブジェクトは、レンダリングされないが、タイムライン内には存在したままとなる。
構文
HRESULT SetMuted( BOOL newVal );
パラメータ
- newVal
- ミュート状態を指定するフラグ。TRUE の場合、オブジェクトとそのすべての子はミュートされている。
戻り値
S_OK を返す。
注意
オブジェクトをミュートすると、そのオブジェクトが持つ子もすべてミュートされる。たとえば、あるトラックをミュートすると、そのトラック内のトランジション、ソース、およびエフェクトもすべてミュートされる。オブジェクトのミュートが解除されると、その子はそれぞれの前の状態 (ミュートまたはミュート解除) に戻る。
オブジェクトのプロパティ セッターを設定する。オブジェクトがレンダリングされるときに、プロパティ セッター内のプロパティ情報がオブジェクトに適用される。このメソッドは、トランジションおよびエフェクト オブジェクトで呼び出す。
構文
HRESULT SetPropertySetter( IPropertySetter *newVal );
パラメータ
- newVal
- プロパティ セッターの IPropertySetter インターフェイスへのポインタ。
戻り値
S_OK を返す。
オブジェクトの親相対の、オブジェクトの開始タイムと終了タイムを設定する。
構文
HRESULT SetStartStop( REFERENCE_TIME Start, REFERENCE_TIME Stop );
パラメータ
- Start
- 新しい開始タイム (100 ナノ秒単位)。既存の開始タイムを保持する場合は -1。
- Stop
- 新しい終了タイム (100 ナノ秒単位)。既存の終了タイムを保持する場合は -1。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_NOTIMPL 実装されていない。
注意
トラック、合成、およびグループは、このメソッドを実装しない。これらのオブジェクトでは、開始タイムは常にゼロであり、終了タイムはそのオブジェクトが持ちえる最大の終了タイムである。
同じトラック内のソース オブジェクトで重なり合う時間を設定してはならない。そのような設定を行うと、未定義の動作を引き起こすことがある。
ソース オブジェクトの場合、開始タイムと終了タイムは、メディア開始タイムおよびメディア終了タイムから独立している。これらの一方の組を変更しても、もう一方に影響はない。メディア開始タイムとメディア終了タイムを設定するには、IAMTimelineSrc::SetMediaTimes メソッドを呼び出す。詳細については、「DirectShow 編集サービスにおける時間」を参照すること。
オブジェクトの親相対の、オブジェクトの開始タイムと終了タイムを設定する。このメソッドは SetStartStop と同じ機能だが、REFTIME 値をパラメータにとる。
構文
HRESULT SetStartStop2( REFTIME Start, REFTIME Stop );
パラメータ
- Start
- 新しい開始タイム (秒単位)。既存の開始タイムを保持する場合は -1。
- Stop
- 新しい終了タイム (秒単位)。既存の終了タイムを保持する場合は -1。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_INVALIDARG 無効な引数。 E_NOTIMPL 実装されていない。
サポートされていない。
構文
HRESULT SetSubObject( IUnknown *newVal );
このオブジェクトに関連付けられているサブオブジェクトの GUID を指定する。
構文
HRESULT SetSubObjectGUID( GUID newVal );
パラメータ
- newVal
- サブオブジェクトの GUID。
戻り値
S_OK を返す。
注意
レンダリング エンジンは、必要に応じてサブオブジェクトのインスタンスを作成する。
このオブジェクトに関連付けられているサブオブジェクトの GUID を指定する。このメソッドは SetSubObjectGUID と同じ機能だが、BSTR 値をパラメータにとる。
構文
HRESULT SetSubObjectGUIDB( BSTR newVal );
パラメータ
- newVal
- サブオブジェクトの GUID を表す BSTR。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、エラーの発生を示す HRESULT 値を返す。
サポートされていない。新しいタイムライン オブジェクトを作成するには、IAMTimeline::CreateEmptyNode メソッドを呼び出す。オブジェクトが作成した後では、そのタイプは変更できない。
構文
HRESULT SetTimelineType( TIMELINE_MAJOR_TYPE newVal );
アプリケーション定義の持続的データを設定する。
構文
HRESULT SetUserData( BYTE *pData, long Size )
パラメータ
- pData
- データを保持するバッファへのポインタ。
- Size
- データのサイズ (バイト単位)。
戻り値
成功した場合は、S_OK を返す。メモリが不足している場合は、E_OUTOFMEMORY を返す。
オブジェクトに対するアプリケーション定義の識別子を設定する。
構文
HRESULT SetUserID( long newVal );
パラメータ
- newVal
- 識別子を指定する値。この識別子は、アプリケーションによってのみ使用され、どのような値でもかまわない。
戻り値
S_OK を返す。
オブジェクトに対するアプリケーション定義の名前を設定する。
構文
HRESULT SetUserName( BSTR newVal );
パラメータ
- newVal
- 名前を保持するワイド文字列。256 文字を超える文字列は、切り詰められることがある。
戻り値
S_OK を返す。