Microsoft DirectX 8.0 |
Provides methods for adding effects to a timeline object in Microsoft® DirectShow® Editing Services (DES), and for manipulating the effects on an object. All objects that can have effects applied to them implement this interface; this includes sources, tracks, and compositions.
An object that implements this interface can have any number of effects. For each object, the render engine applies its effects in order of priority, starting with priority level 0.
Requirements
Requires Qedit.h.
Methods in Vtable Order
IUnknown methods Description QueryInterface Retrieves pointers to supported interfaces. AddRef Increments the reference count. Release Decrements the reference count. IAMTimelineEffectable Methods Description EffectInsBefore Inserts an effect into the object at the specified priority level. EffectSwapPriorities Switches the priority levels of two effects. EffectGetCount Retrieves the number of effects applied to this object. GetEffect Retrieves the effect at the specified priority level.
IAMTimelineEffectable Interface
Retrieves the number of effects applied to this object.
Syntax
HRESULT EffectGetCount( long *pCount );
Parameters
- pCount
- Pointer to a variable that receives the number of effects.
Return Value
Returns S_OK if successful, or E_POINTER otherwise.
IAMTimelineEffectable Interface
Inserts an effect into the object at the specified priority level.
Syntax
HRESULT EffectInsBefore( IAMTimelineObj *pFX, long Priority );
Parameters
- pFX
- Pointer to the IAMTimelineObj interface of the effect.
- Priority
- Priority level at which to insert the effect. Use the value 1 to insert the effect at the end of the priority list.
Return Value
Returns S_OK if successful or E_NOTIMPL if the object is not an effect. Otherwise, returns another HRESULT value indicating the cause of the error.
Remarks
The start and stop times of the effect are clipped within the bounds of the object's time range, if necessary.
If there is already an effect at the specified priority level, all the effects from that point on move down the priority list to make room for the new effect.
IAMTimelineEffectable Interface
Switches the priority levels of two effects.
Given two priority values, this method swaps the effects at those priorities. When the method returns, the effect that was at the first priority level is at the second priority level, and vice versa.
Syntax
HRESULT EffectSwapPriorities( long PriorityA, long PriorityB );
Parameters
- PriorityA
- First priority level at which to swap effects.
- PriorityB
- Second priority level at which to swap effects.
Return Value
Returns S_OK if successful, or E_INVALIDARG otherwise.
IAMTimelineEffectable Interface
Retrieves the effect at the specified priority level.
Syntax
HRESULT GetEffect( IAMTimelineObj **ppFx, long Which );
Parameters
- ppFX
- [out] Address of a pointer that receives the effect's IAMTimelineObj interface.
- Which
- Priority level of the effect to retrieve.
Return Value
Returns an HRESULT value. Possible values include the following:
S_FALSE No effect at the specified priority, S_OK Success. E_POINTER NULL pointer argument.
Remarks
If the method returns S_OK, the IAMTimelineObj interface that it returns has an outstanding reference count. Be sure to release the interface when you are finished using it.