Microsoft DirectX 8.0

IAMTimelineObj インターフェイス

Microsoft® DirectShow® 編集サービス (DES) のタイムライン オブジェクトを操作するメソッドを提供する。ソース、エフェクト、トランジション、トラック、グループ、および合成を含むすべてのタイムライン オブジェクトは、このインターフェイスを実装する。タイムライン オブジェクトは、IAMTimeline::CreateEmptyNode メソッドを呼び出すことにより作成する。

要件

Qedit.h が必要である。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterfaceサポートされているインターフェイスへのポインタを取得する。
AddRef参照カウントをインクリメントする。
Release参照カウントをデクリメントする。
IAMTimelineObj メソッド説明
GetStartStopオブジェクトの親相対の、オブジェクトの開始タイムと終了タイムを取得する。
GetStartStop2GetStartStop と同じ機能だが、REFTIME 値をパラメータにとる。
FixTimes指定された開始タイムと終了タイムを、親グループのフレーム レート設定によって定義される最も近いフレーム境界に丸める。
FixTimes2FixTimes と同じ機能だが、REFTIME 値をパラメータにとる。
SetStartStopタイムライン相対の開始タイムと終了タイムを設定する。
SetStartStop2SetStartStop と同じ機能だが、REFTIME 値をパラメータにとる。
GetPropertySetterオブジェクトのプロパティ セッターを取得する。
SetPropertySetterオブジェクトのプロパティ セッターを設定する。
GetSubObjectこのオブジェクトに関連付けられているサブオブジェクトを取得する。
SetSubObjectサポートされていない。
SetSubObjectGUIDこのオブジェクトに関連付けられているサブオブジェクトのグローバル ユニーク識別子 (GUID) を指定する。
SetSubObjectGUIDBSetSubObjectGUID と同じ機能だが、BSTR 値をパラメータにとる。
GetSubObjectGUIDこのタイムライン オブジェクトに関連付けられているサブオブジェクトの GUID を取得する。
GetSubObjectGUIDBGetSubObjectGUID と同じ機能だが、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サポートされていない。

IAMTimelineObj::ClearDirty

IAMTimelineObj インターフェイス

サポートされていない。

構文

HRESULT ClearDirty( void );

IAMTimelineObj::FixTimes

IAMTimelineObj インターフェイス

指定された開始タイムと終了タイムを、親グループのフレーム レート設定によって定義される最も近いフレーム境界に丸める。

構文

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

パラメータ

pStart
開始タイム (100 ナノ秒単位) を保持する変数へのポインタ。 呼び出しが成功した場合、この変数は丸められた時間に設定される。
pStop
終了タイム (100 ナノ秒単位) を保持する変数へのポインタ。呼び出しが成功した場合、この変数は丸められた時間に設定される。

戻り値

成功した場合は、S_OK を返す。オブジェクトがグループの一部でない場合は、E_NOTINTREE を返す。

注意

レンダリング時に、DES はオブジェクトの開始タイムと終了タイムを、フレーム境界に最も近い値に丸める。ただし、DES はオブジェクトの時間は書き換えない。グループのフレーム レートを変更した場合、丸められた時間は必ず元の時間から計算される。詳細については、「フレーム レート」を参照すること。

このメソッドを使用して、レンダリングされたオブジェクト内での正確な開始タイムと終了タイムを特定できる。たとえば、オブジェクトの元の開始タイムと終了タイムではなく、丸められた時間が必要な場合がある。GetStartStop を呼び出して元の時間を取得し、その値を FixTimes に渡す。

IAMTimelineObj::FixTimes2

IAMTimelineObj インターフェイス

指定された開始タイムと終了タイムを、親グループのフレーム レート設定によって定義される最も近いフレーム境界に丸める。このメソッドは FixTimes と同じ機能だが、REFTIME 値をパラメータにとる。

構文

HRESULT FixTimes2(
    REFTIME *pStart,
    REFTIME *pStop
);

パラメータ

pStart
開始タイム (秒単位) を保持する変数へのポインタ。呼び出しが成功した場合、この変数は丸められた時間に設定される。
pStop
終了タイム (秒単位) を保持する変数へのポインタ。呼び出しが成功した場合、この変数は丸められた時間に設定される。

戻り値

成功した場合は、S_OK を返す。オブジェクトがグループの一部でない場合は、E_NOTINTREE を返す。

IAMTimelineObj::GetDirtyRange

IAMTimelineObj インターフェイス

サポートされていない。

構文

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

IAMTimelineObj::GetDirtyRange2

IAMTimelineObj インターフェイス

サポートされていない。

構文

HRESULT GetDirtyRange2(
    REFTIME *pStart,
    REFTIME *pStop
);

IAMTimelineObj::GetEmbedDepth

IAMTimelineObj インターフェイス

サポートされていない。

構文

HRESULT GetEmbedDepth(
    long *pVal
);

IAMTimelineObj::GetGenID

IAMTimelineObj インターフェイス

オブジェクトの生成された識別子を取得する。この識別子は予約された番号であり、アプリケーションで使用してはならない。

構文

HRESULT GetGenID(
    long *pVal
);

パラメータ

pVal
生成された識別子を受け取る変数へのポインタ。

戻り値

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

IAMTimelineObj::GetGroupIBelongTo

IAMTimelineObj インターフェイス

サポートされていない。

構文

HRESULT GetGroupIBelongTo(
    IAMTimelineGroup **ppGroup
);

IAMTimelineObj::GetLocked

IAMTimelineObj インターフェイス

オブジェクトの編集状態 (ロックまたはロック解除) を取得する。ロック状態はオブジェクトを編集してはならないことを示し、ロック解除状態はオブジェクトを編集できることを示す。タイムライン側では、ロックを強制しない。ロック状態の設定は、アプリケーション側の利便性のためにのみ存在する。

構文

GetLocked(
    BOOL *pVal
);

パラメータ

pVal
オブジェクトの編集状態を受け取るブール変数へのポインタ。この値が TRUE の場合、オブジェクトはロックされており、編集してはならない。FALSE の場合、オブジェクトはロック解除されており、編集できる。

戻り値

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

IAMTimelineObj::GetMuted

IAMTimelineObj インターフェイス

オブジェクトのミュート状態を取得する。

構文

HRESULT GetMuted(
    BOOL *pVal
);

パラメータ

pVal
ミュート状態を示す値を受け取るブール変数へのポインタ。この値が TRUE の場合、オブジェクトとその子はミュートされている。

戻り値

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

注意

オブジェクトの親がミュートされている場合、ミュート状態とは無関係に、そのオブジェクトもミュートされたままとなる。親のミュートが解除されたときには、そのオブジェクトの前のミュート状態が復元される。

IAMTimelineObj::GetPropertySetter

IAMTimelineObj インターフェイス

オブジェクトのプロパティ セッターを取得する。オブジェクトがレンダリングされるときに、プロパティ セッター内のプロパティ情報がオブジェクトに適用される。

構文

HRESULT GetPropertySetter(
    IPropertySetter **pVal
);

パラメータ

pVal
[out, retval] プロパティ セッターの IPropertySetter インターフェイスを受け取るポインタのアドレス。オブジェクトがプロパティ セッターを持っていない場合、値は NULL に設定される。

戻り値

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

注意

pVal に返された値が NULL 以外の場合、IPropertySetter インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。

IAMTimelineObj::GetStartStop

IAMTimelineObj インターフェイス

オブジェクトの親相対の、オブジェクトの開始タイムと終了タイムを取得する。

構文

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

パラメータ

pStart
開始タイム (100 ナノ秒単位) を受け取る変数へのポインタ。
pStop
終了タイム (100 ナノ秒単位) を受け取る変数へのポインタ。

戻り値

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

注意

合成、グループ、およびトラックの開始タイムは常に 0 である。

レンダリング時に、DES はオブジェクトの開始タイムと終了タイムを、フレーム境界に最も近い値に丸める。ただし、DES はオブジェクトの時間は書き換えない。グループのフレーム レートを変更した場合、丸められた時間は必ず元の時間から計算される。詳細については、「フレーム レート」を参照すること。

レンダリングされたプロジェクト内での開始タイムを終了タイムを調べるには、GetStartStop が返した値を FixTimes メソッドに渡す。

IAMTimelineObj::GetStartStop2

IAMTimelineObj インターフェイス

オブジェクトの親相対の、オブジェクトの開始タイムと終了タイムを取得する。このメソッドは GetStartStop と同じ機能だが、REFTIME 値をパラメータにとる。

構文

HRESULT GetStartStop2(
    REFTIME *pStart,
    REFTIME *pStop
);

パラメータ

pStart
開始タイム (秒単位) を受け取る変数へのポインタ。
pStop
終了タイム (秒単位) を受け取る変数へのポインタ。

戻り値

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

IAMTimelineObj::GetSubObject

IAMTimelineObj インターフェイス

このオブジェクトに関連付けられているサブオブジェクトを取得する。

構文

HRESULT GetSubObject(
    IUnknown **pVal
);

パラメータ

pVal
[out, retval] サブオブジェクトの IUnknown インターフェイスを受け取るポインタのアドレス。オブジェクトがサブオブジェクトを持っていない場合、値は NULL に設定される。

戻り値

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

注意

すべてのタイムライン オブジェクトは、関連付けられたサブオブジェクトへのポインタを保持することができる。たとえば、エフェクトのサブオブジェクトは通常、エフェクトを生成する Microsoft® DirectXt® 変換オブジェクトである。

pVal に返された値が NULL 以外の場合、IUnknown インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。

IAMTimelineObj::GetSubObjectGUID

IAMTimelineObj インターフェイス

このタイムライン オブジェクトに関連付けられているサブオブジェクトの GUID を取得する。

構文

HRESULT GetSubObjectGUID(
    GUID *pVal
);

パラメータ

pVal
サブオブジェクトの GUID を受け取る変数へのポインタ。または、オブジェクトがサブオブジェクトを持っていない場合は GUID_NULL。

戻り値

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

IAMTimelineObj::GetSubObjectGUIDB

IAMTimelineObj インターフェイス

このタイムライン オブジェクトに関連付けられているサブオブジェクトの GUID を取得する。このメソッドは GetSubObjectGUID と同じ機能だが、BSTR 値をパラメータにとる。

構文

HRESULT GetSubObjectGUIDB(
    BSTR *pVal
);

パラメータ

pVal
[out, retval] サブオブジェクトの GUID を表す文字列を受け取る BSTR へのポインタ。

戻り値

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

注意

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

IAMTimelineObj::GetSubObjectLoaded

IAMTimelineObj インターフェイス

オブジェクトのサブオブジェクト ポインタが設定されているかどうかを調べる。

構文

HRESULT GetSubObjectLoaded(
    BOOL *pVal
);

パラメータ

pVal
ブール値を受け取る変数へのポインタ。この値が TRUE の場合、サブオブジェクト ポインタが設定されている。FALSE の場合、ポインタは設定されていない。

戻り値

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

IAMTimelineObj::GetTimelineNoRef

IAMTimelineObj インターフェイス

サポートされていない。

構文

HRESULT GetTimelineNoRef(
    IAMTimeline **ppResult
);

IAMTimelineObj::GetTimelineType

IAMTimelineObj インターフェイス

オブジェクトのタイプを取得する。

構文

HRESULT GetTimelineType(
    TIMELINE_MAJOR_TYPE *pVal
);

パラメータ

pVal
オブジェクトのタイプを示す、TIMELINE_MAJOR_TYPE 列挙型のメンバを受け取る変数へのポインタ。

戻り値

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

IAMTimelineObj::GetUserData

IAMTimelineObj インターフェイス

アプリケーション定義の持続的データを取得する。

構文

HRESULT GetUserData(
    BYTE *pData,
    long *pSize
);

パラメータ

pData
データを受け取るバッファへのポインタ。割り当てるバッファのサイズを調べるには、このパラメータを NULL に設定する。必要なサイズが pSize に返される。
pSize
データのサイズ (バイト単位) を受け取る変数へのポインタ。

戻り値

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

IAMTimelineObj::GetUserID

IAMTimelineObj インターフェイス

オブジェクトのアプリケーション定義の識別子を取得する。

構文

HRESULT GetUserID(
    long *pVal
);

パラメータ

pVal
アプリケーション定義の識別子を受け取る変数へのポインタ。

戻り値

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

IAMTimelineObj::GetUserName

IAMTimelineObj インターフェイス

オブジェクトのアプリケーション定義の名前を取得する。

構文

HRESULT GetUserName(
    BSTR *pVal
);

パラメータ

pVal
[out, retval] オブジェクトの名前を受け取る BSTR へのポインタ。

戻り値

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

注意

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

IAMTimelineObj::Remove

IAMTimelineObj インターフェイス

このオブジェクトを (サブオブジェクトは含むが、子は含まない)、他の場所へ再挿入できるように、タイムラインから削除する。

構文

HRESULT Remove( void );

戻り値

S_OK を返す。

注意

このメソッドは、アプリケーションが即座にそのオブジェクトをタイムラインに挿入する場合にのみ呼び出す。このメソッドの呼び出しに続いてオブジェクトを再挿入しないのは、無効な操作である。オブジェクトを永続的に削除するには、RemoveAll を呼び出す。

IAMTimelineObj::RemoveAll

IAMTimelineObj インターフェイス

このオブジェクトを、サブオブジェクトと子を含めて、タイムラインから永続的に削除する。

構文

HRESULT RemoveAll( void );

戻り値

S_OK を返す。

注意

オブジェクトをタイムラインの別の場所に再挿入する目的で削除するには、Remove を呼び出す。

IAMTimelineObj::SetDirtyRange

IAMTimelineObj インターフェイス

実装されていない。

構文

HRESULT SetDirtyRange(
    REFERENCE_TIME Start,
    REFERENCE_TIME Stop
);

IAMTimelineObj::SetDirtyRange2

IAMTimelineObj インターフェイス

実装されていない。

構文

HRESULT SetDirtyRange2(
    REFTIME Start,
    REFTIME Stop
);

IAMTimelineObj::SetLocked

IAMTimelineObj インターフェイス

オブジェクトの編集状態をロックまたはロック解除に設定する。ロック状態はオブジェクトを編集してはならないことを示し、ロック解除状態はオブジェクトを編集できることを示す。タイムライン側では、ロックを強制しない。ロック状態の設定は、アプリケーション側の利便性のためにのみ存在する。

構文

HRESULT SetLocked(
    BOOL newVal
);

パラメータ

newVal
オブジェクトの編集モードを指定するブール値。TRUE の場合、オブジェクトはロックされており、編集してはならない。FALSE の場合、オブジェクトはロック解除されており、編集できる。

戻り値

S_OK を返す。

IAMTimelineObj::SetMuted

IAMTimelineObj インターフェイス

オブジェクトのミュート状態を設定する。ミュートされたオブジェクトは、レンダリングされないが、タイムライン内には存在したままとなる。

構文

HRESULT SetMuted(
    BOOL newVal
);

パラメータ

newVal
ミュート状態を指定するフラグ。TRUE の場合、オブジェクトとそのすべての子はミュートされている。

戻り値

S_OK を返す。

注意

オブジェクトをミュートすると、そのオブジェクトが持つ子もすべてミュートされる。たとえば、あるトラックをミュートすると、そのトラック内のトランジション、ソース、およびエフェクトもすべてミュートされる。オブジェクトのミュートが解除されると、その子はそれぞれの前の状態 (ミュートまたはミュート解除) に戻る。

IAMTimelineObj::SetPropertySetter

IAMTimelineObj インターフェイス

オブジェクトのプロパティ セッターを設定する。オブジェクトがレンダリングされるときに、プロパティ セッター内のプロパティ情報がオブジェクトに適用される。このメソッドは、トランジションおよびエフェクト オブジェクトで呼び出す。

構文

HRESULT SetPropertySetter(
    IPropertySetter *newVal
);

パラメータ

newVal
プロパティ セッターの IPropertySetter インターフェイスへのポインタ。

戻り値

S_OK を返す。

IAMTimelineObj::SetStartStop

IAMTimelineObj インターフェイス

オブジェクトの親相対の、オブジェクトの開始タイムと終了タイムを設定する。

構文

HRESULT SetStartStop(
    REFERENCE_TIME Start,
    REFERENCE_TIME Stop
);

パラメータ

Start
新しい開始タイム (100 ナノ秒単位)。既存の開始タイムを保持する場合は -1。
Stop
新しい終了タイム (100 ナノ秒単位)。既存の終了タイムを保持する場合は -1。

戻り値

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

S_OK成功。
E_INVALIDARG無効な引数。
E_NOTIMPL実装されていない。

注意

トラック、合成、およびグループは、このメソッドを実装しない。これらのオブジェクトでは、開始タイムは常にゼロであり、終了タイムはそのオブジェクトが持ちえる最大の終了タイムである。

同じトラック内のソース オブジェクトで重なり合う時間を設定してはならない。そのような設定を行うと、未定義の動作を引き起こすことがある。

ソース オブジェクトの場合、開始タイムと終了タイムは、メディア開始タイムおよびメディア終了タイムから独立している。これらの一方の組を変更しても、もう一方に影響はない。メディア開始タイムとメディア終了タイムを設定するには、IAMTimelineSrc::SetMediaTimes メソッドを呼び出す。詳細については、「DirectShow 編集サービスにおける時間」を参照すること。

IAMTimelineObj::SetStartStop2

IAMTimelineObj インターフェイス

オブジェクトの親相対の、オブジェクトの開始タイムと終了タイムを設定する。このメソッドは SetStartStop と同じ機能だが、REFTIME 値をパラメータにとる。

構文

HRESULT SetStartStop2(
    REFTIME Start,
    REFTIME Stop
);

パラメータ

Start
新しい開始タイム (秒単位)。既存の開始タイムを保持する場合は -1。
Stop
新しい終了タイム (秒単位)。既存の終了タイムを保持する場合は -1。

戻り値

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

S_OK成功。
E_INVALIDARG無効な引数。
E_NOTIMPL実装されていない。

IAMTimelineObj::SetSubObject

IAMTimelineObj インターフェイス

サポートされていない。

構文

HRESULT SetSubObject(
    IUnknown *newVal
);

IAMTimelineObj::SetSubObjectGUID

IAMTimelineObj インターフェイス

このオブジェクトに関連付けられているサブオブジェクトの GUID を指定する。

構文

HRESULT SetSubObjectGUID(
    GUID newVal
);

パラメータ

newVal
サブオブジェクトの GUID。

戻り値

S_OK を返す。

注意

レンダリング エンジンは、必要に応じてサブオブジェクトのインスタンスを作成する。

IAMTimelineObj::SetSubObjectGUIDB

IAMTimelineObj インターフェイス

このオブジェクトに関連付けられているサブオブジェクトの GUID を指定する。このメソッドは SetSubObjectGUID と同じ機能だが、BSTR 値をパラメータにとる。

構文

HRESULT SetSubObjectGUIDB(
    BSTR newVal
);

パラメータ

newVal
サブオブジェクトの GUID を表す BSTR。

戻り値

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

IAMTimelineObj::SetTimelineType

IAMTimelineObj インターフェイス

サポートされていない。新しいタイムライン オブジェクトを作成するには、IAMTimeline::CreateEmptyNode メソッドを呼び出す。オブジェクトが作成した後では、そのタイプは変更できない。

構文

HRESULT SetTimelineType(
    TIMELINE_MAJOR_TYPE newVal
);

IAMTimelineObj::SetUserData

IAMTimelineObj インターフェイス

アプリケーション定義の持続的データを設定する。

構文

HRESULT SetUserData(
    BYTE *pData,
    long Size
)

パラメータ

pData
データを保持するバッファへのポインタ。
Size
データのサイズ (バイト単位)。

戻り値

成功した場合は、S_OK を返す。メモリが不足している場合は、E_OUTOFMEMORY を返す。

IAMTimelineObj::SetUserID

IAMTimelineObj インターフェイス

オブジェクトに対するアプリケーション定義の識別子を設定する。

構文

HRESULT SetUserID(
    long newVal
);

パラメータ

newVal
識別子を指定する値。この識別子は、アプリケーションによってのみ使用され、どのような値でもかまわない。

戻り値

S_OK を返す。

IAMTimelineObj::SetUserName

IAMTimelineObj インターフェイス

オブジェクトに対するアプリケーション定義の名前を設定する。

構文

HRESULT SetUserName(
    BSTR newVal
);

パラメータ

newVal
名前を保持するワイド文字列。256 文字を超える文字列は、切り詰められることがある。

戻り値

S_OK を返す。