| /** | 
 |  * This file is part of the mingw-w64 runtime package. | 
 |  * No warranty is given; refer to the file DISCLAIMER within this package. | 
 |  */ | 
 | import "unknwn.idl"; | 
 |  | 
 | /* Interface forward declarations. */ | 
 | interface IUIAnimationManager; | 
 | interface IUIAnimationVariable; | 
 | interface IUIAnimationStoryboard; | 
 | interface IUIAnimationTransition; | 
 | interface IUIAnimationStoryboardEventHandler; | 
 | interface IUIAnimationVariableChangeHandler; | 
 | interface IUIAnimationVariableIntegerChangeHandler; | 
 | interface IUIAnimationManagerEventHandler; | 
 | interface IUIAnimationPriorityComparison; | 
 | interface IUIAnimationManager2; | 
 | interface IUIAnimationVariable2; | 
 | interface IDCompositionAnimation; | 
 | interface IUIAnimationStoryboard2; | 
 | interface IUIAnimationTransition2; | 
 | interface IUIAnimationLoopIterationChangeHandler2; | 
 | interface IUIAnimationStoryboardEventHandler2; | 
 | interface IUIAnimationVariableChangeHandler2; | 
 | interface IUIAnimationVariableIntegerChangeHandler2; | 
 | interface IUIAnimationVariableCurveChangeHandler2; | 
 | interface IUIAnimationManagerEventHandler2; | 
 | interface IUIAnimationPriorityComparison2; | 
 | interface IUIAnimationTransitionLibrary; | 
 | interface IUIAnimationTransitionLibrary2; | 
 | interface IUIAnimationTransitionFactory; | 
 | interface IUIAnimationInterpolator; | 
 | interface IUIAnimationTransitionFactory2; | 
 | interface IUIAnimationInterpolator2; | 
 | interface IUIAnimationPrimitiveInterpolation; | 
 | interface IUIAnimationTimer; | 
 | interface IUIAnimationTimerUpdateHandler; | 
 | interface IUIAnimationTimerClientEventHandler; | 
 | interface IUIAnimationTimerEventHandler; | 
 |  | 
 | /* Coclass record forward declarations. */ | 
 | coclass UIAnimationManager; | 
 | coclass UIAnimationManager2; | 
 | coclass UIAnimationTransitionLibrary; | 
 | coclass UIAnimationTransitionLibrary2; | 
 | coclass UIAnimationTransitionFactory; | 
 | coclass UIAnimationTransitionFactory2; | 
 | coclass UIAnimationTimer; | 
 |  | 
 | typedef DOUBLE UI_ANIMATION_SECONDS; | 
 |  | 
 | /* Enumeration declarations. */ | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_SCHEDULING_UNEXPECTED_FAILURE = 0, | 
 |   UI_ANIMATION_SCHEDULING_INSUFFICIENT_PRIORITY = 1, | 
 |   UI_ANIMATION_SCHEDULING_ALREADY_SCHEDULED = 2, | 
 |   UI_ANIMATION_SCHEDULING_SUCCEEDED = 3, | 
 |   UI_ANIMATION_SCHEDULING_DEFERRED = 4 | 
 | } UI_ANIMATION_SCHEDULING_RESULT; | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_STORYBOARD_BUILDING = 0, | 
 |   UI_ANIMATION_STORYBOARD_SCHEDULED = 1, | 
 |   UI_ANIMATION_STORYBOARD_CANCELLED = 2, | 
 |   UI_ANIMATION_STORYBOARD_PLAYING = 3, | 
 |   UI_ANIMATION_STORYBOARD_TRUNCATED = 4, | 
 |   UI_ANIMATION_STORYBOARD_FINISHED = 5, | 
 |   UI_ANIMATION_STORYBOARD_READY = 6, | 
 |   UI_ANIMATION_STORYBOARD_INSUFFICIENT_PRIORITY = 7 | 
 | } UI_ANIMATION_STORYBOARD_STATUS; | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_ROUNDING_NEAREST = 0, | 
 |   UI_ANIMATION_ROUNDING_FLOOR = 1, | 
 |   UI_ANIMATION_ROUNDING_CEILING = 2 | 
 | } UI_ANIMATION_ROUNDING_MODE; | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_UPDATE_NO_CHANGE = 0, | 
 |   UI_ANIMATION_UPDATE_VARIABLES_CHANGED = 1 | 
 | } UI_ANIMATION_UPDATE_RESULT; | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_MANAGER_IDLE = 0, | 
 |   UI_ANIMATION_MANAGER_BUSY = 1 | 
 | } UI_ANIMATION_MANAGER_STATUS; | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_MODE_DISABLED = 0, | 
 |   UI_ANIMATION_MODE_SYSTEM_DEFAULT = 1, | 
 |   UI_ANIMATION_MODE_ENABLED = 2 | 
 | } UI_ANIMATION_MODE; | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_PRIORITY_EFFECT_FAILURE = 0, | 
 |   UI_ANIMATION_PRIORITY_EFFECT_DELAY = 1 | 
 | } UI_ANIMATION_PRIORITY_EFFECT; | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_REPEAT_MODE_NORMAL = 0, | 
 |   UI_ANIMATION_REPEAT_MODE_ALTERNATE = 1 | 
 | } UI_ANIMATION_REPEAT_MODE; | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_SLOPE_INCREASING = 0, | 
 |   UI_ANIMATION_SLOPE_DECREASING = 1 | 
 | } UI_ANIMATION_SLOPE; | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_DEPENDENCY_NONE = 0, | 
 |   UI_ANIMATION_DEPENDENCY_INTERMEDIATE_VALUES = 0x1, | 
 |   UI_ANIMATION_DEPENDENCY_FINAL_VALUE = 0x2, | 
 |   UI_ANIMATION_DEPENDENCY_FINAL_VELOCITY = 0x4, | 
 |   UI_ANIMATION_DEPENDENCY_DURATION = 0x8 | 
 | } UI_ANIMATION_DEPENDENCIES; | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_TIMER_CLIENT_IDLE = 0, | 
 |   UI_ANIMATION_TIMER_CLIENT_BUSY = 1 | 
 | } UI_ANIMATION_TIMER_CLIENT_STATUS; | 
 | typedef [v1_enum] enum | 
 | { | 
 |   UI_ANIMATION_IDLE_BEHAVIOR_CONTINUE = 0, | 
 |   UI_ANIMATION_IDLE_BEHAVIOR_DISABLE = 1 | 
 | } UI_ANIMATION_IDLE_BEHAVIOR; | 
 |  | 
 | /* Structure/union declarations. */ | 
 | typedef struct | 
 | { | 
 |   int _; | 
 | } *UI_ANIMATION_KEYFRAME; | 
 |  | 
 | const UI_ANIMATION_KEYFRAME UI_ANIMATION_KEYFRAME_STORYBOARD_START = (UI_ANIMATION_KEYFRAME)(-1); | 
 |  | 
 | const INT32 UI_ANIMATION_REPEAT_INDEFINITELY = -1; | 
 | const INT32 UI_ANIMATION_REPEAT_INDEFINITELY_CONCLUDE_AT_END = UI_ANIMATION_REPEAT_INDEFINITELY; | 
 | const INT32 UI_ANIMATION_REPEAT_INDEFINITELY_CONCLUDE_AT_START = -2; | 
 |  | 
 | [ | 
 |   uuid(44CA24DB-1A92-4149-BAB5-FB14D64B401E), | 
 |   version(1.0), | 
 |   helpstring("UIAnimation 1.0 Type Library") | 
 | ] | 
 | library uianimation | 
 | { | 
 |   importlib("stdole2.tlb"); | 
 |  | 
 |    /* CoClass declarations. */ | 
 |    [ | 
 |      uuid(4C1FC63A-695C-47E8-A339-1A194BE3D0B8), | 
 |      helpstring("UIAnimationManager Class") | 
 |    ] | 
 |    coclass UIAnimationManager | 
 |    { | 
 |      [default] interface IUIAnimationManager; | 
 |    }; | 
 |    [ | 
 |      uuid(D25D8842-8884-4A4A-B321-091314379BDD), | 
 |      helpstring("UIAnimationManager2 Class") | 
 |    ] | 
 |    coclass UIAnimationManager2 | 
 |    { | 
 |      [default] interface IUIAnimationManager2; | 
 |    }; | 
 |    [ | 
 |      uuid(1D6322AD-AA85-4EF5-A828-86D71067D145), | 
 |      helpstring("UIAnimationTransitionLibrary Class") | 
 |    ] | 
 |    coclass UIAnimationTransitionLibrary | 
 |    { | 
 |      [default] interface IUIAnimationTransitionLibrary; | 
 |    }; | 
 |    [ | 
 |      uuid(812F944A-C5C8-4CD9-B0A6-B3DA802F228D), | 
 |      helpstring("UIAnimationTransitionLibrary2 Class") | 
 |    ] | 
 |    coclass UIAnimationTransitionLibrary2 | 
 |    { | 
 |      [default] interface IUIAnimationTransitionLibrary2; | 
 |    }; | 
 |    [ | 
 |      uuid(8A9B1CDD-FCD7-419C-8B44-42FD17DB1887), | 
 |      helpstring("UIAnimationTransitionFactory Class") | 
 |    ] | 
 |    coclass UIAnimationTransitionFactory | 
 |    { | 
 |      [default] interface IUIAnimationTransitionFactory; | 
 |    }; | 
 |    [ | 
 |      uuid(84302F97-7F7B-4040-B190-72AC9D18E420), | 
 |      helpstring("UIAnimationTransitionFactory2 Class") | 
 |    ] | 
 |    coclass UIAnimationTransitionFactory2 | 
 |    { | 
 |      [default] interface IUIAnimationTransitionFactory2; | 
 |    }; | 
 |    [ | 
 |      uuid(BFCD4A0C-06B6-4384-B768-0DAA792C380E), | 
 |      helpstring("UIAnimationTimer Class") | 
 |    ] | 
 |    coclass UIAnimationTimer | 
 |    { | 
 |      [default] interface IUIAnimationTimer; | 
 |    }; | 
 |  | 
 | }; | 
 |  | 
 | /* Interface declarations. */ | 
 | [ | 
 |   uuid(9169896C-AC8D-4E7D-94E5-67FA4DC2F2E8), | 
 |   helpstring("IUIAnimationManager Interface") | 
 | ] | 
 | interface IUIAnimationManager : IUnknown | 
 | { | 
 |   HRESULT CreateAnimationVariable( | 
 |     [in] double initialValue, | 
 |     [out, retval] IUIAnimationVariable **variable | 
 |   ); | 
 |   HRESULT ScheduleTransition( | 
 |     [in] IUIAnimationVariable *variable, | 
 |     [in] IUIAnimationTransition *transition, | 
 |     [in] double timeNow | 
 |   ); | 
 |   HRESULT CreateStoryboard( | 
 |     [out, retval] IUIAnimationStoryboard **storyboard | 
 |   ); | 
 |   HRESULT FinishAllStoryboards( | 
 |     [in] double completionDeadline | 
 |   ); | 
 |   HRESULT AbandonAllStoryboards(void); | 
 |   HRESULT Update( | 
 |     [in] double timeNow, | 
 |     [out, defaultvalue(0)] UI_ANIMATION_UPDATE_RESULT *updateResult | 
 |   ); | 
 |   HRESULT GetVariableFromTag( | 
 |     [in] IUnknown * object, | 
 |     [in] UINT32 id, | 
 |     [out, retval] IUIAnimationVariable **variable | 
 |   ); | 
 |   HRESULT GetStoryboardFromTag( | 
 |     [in] IUnknown * object, | 
 |     [in] UINT32 id, | 
 |     [out, retval] IUIAnimationStoryboard **storyboard | 
 |   ); | 
 |   HRESULT GetStatus( | 
 |     [out, retval] UI_ANIMATION_MANAGER_STATUS *status | 
 |   ); | 
 |   HRESULT SetAnimationMode( | 
 |     [in] UI_ANIMATION_MODE mode | 
 |   ); | 
 |   HRESULT Pause(void); | 
 |   HRESULT Resume(void); | 
 |   HRESULT SetManagerEventHandler( | 
 |     [in] IUIAnimationManagerEventHandler *handler | 
 |   ); | 
 |   HRESULT SetCancelPriorityComparison( | 
 |     [in] IUIAnimationPriorityComparison *comparison | 
 |   ); | 
 |   HRESULT SetTrimPriorityComparison( | 
 |     [in] IUIAnimationPriorityComparison *comparison | 
 |   ); | 
 |   HRESULT SetCompressPriorityComparison( | 
 |     [in] IUIAnimationPriorityComparison *comparison | 
 |   ); | 
 |   HRESULT SetConcludePriorityComparison( | 
 |     [in] IUIAnimationPriorityComparison *comparison | 
 |   ); | 
 |   HRESULT SetDefaultLongestAcceptableDelay( | 
 |     [in] double delay | 
 |   ); | 
 |   HRESULT Shutdown(void); | 
 | }; | 
 | [ | 
 |   uuid(8CEEB155-2849-4CE5-9448-91FF70E1E4D9), | 
 |   helpstring("IUIAnimationVariable Interface") | 
 | ] | 
 | interface IUIAnimationVariable : IUnknown | 
 | { | 
 |   HRESULT GetValue( | 
 |     [out, retval] double *value | 
 |   ); | 
 |   HRESULT GetFinalValue( | 
 |     [out, retval] double *finalValue | 
 |   ); | 
 |   HRESULT GetPreviousValue( | 
 |     [out, retval] double *previousValue | 
 |   ); | 
 |   HRESULT GetIntegerValue( | 
 |     [out, retval] int *value | 
 |   ); | 
 |   HRESULT GetFinalIntegerValue( | 
 |     [out, retval] int *finalValue | 
 |   ); | 
 |   HRESULT GetPreviousIntegerValue( | 
 |     [out, retval] int *previousValue | 
 |   ); | 
 |   HRESULT GetCurrentStoryboard( | 
 |     [out, retval] IUIAnimationStoryboard **storyboard | 
 |   ); | 
 |   HRESULT SetLowerBound( | 
 |     [in] double bound | 
 |   ); | 
 |   HRESULT SetUpperBound( | 
 |     [in] double bound | 
 |   ); | 
 |   HRESULT SetRoundingMode( | 
 |     [in] UI_ANIMATION_ROUNDING_MODE mode | 
 |   ); | 
 |   HRESULT SetTag( | 
 |     [in] IUnknown * object, | 
 |     [in] unsigned int id | 
 |   ); | 
 |   HRESULT GetTag( | 
 |     [out] IUnknown **object, | 
 |     [out] unsigned int *id | 
 |   ); | 
 |   HRESULT SetVariableChangeHandler( | 
 |     [in] IUIAnimationVariableChangeHandler *handler | 
 |   ); | 
 |   HRESULT SetVariableIntegerChangeHandler( | 
 |     [in] IUIAnimationVariableIntegerChangeHandler *handler | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(A8FF128F-9BF9-4AF1-9E67-E5E410DEFB84), | 
 |   helpstring("IUIAnimationStoryboard Interface") | 
 | ] | 
 | interface IUIAnimationStoryboard : IUnknown | 
 | { | 
 |   HRESULT AddTransition( | 
 |     [in] IUIAnimationVariable *variable, | 
 |     [in] IUIAnimationTransition *transition | 
 |   ); | 
 |   HRESULT AddKeyframeAtOffset( | 
 |     [in] UI_ANIMATION_KEYFRAME existingKeyframe, | 
 |     [in] double offset, | 
 |     [out, retval] UI_ANIMATION_KEYFRAME *keyframe | 
 |   ); | 
 |   HRESULT AddKeyframeAfterTransition( | 
 |     [in] IUIAnimationTransition *transition, | 
 |     [out, retval] UI_ANIMATION_KEYFRAME *keyframe | 
 |   ); | 
 |   HRESULT AddTransitionAtKeyframe( | 
 |     [in] IUIAnimationVariable *variable, | 
 |     [in] IUIAnimationTransition *transition, | 
 |     [in] UI_ANIMATION_KEYFRAME startKeyframe | 
 |   ); | 
 |   HRESULT AddTransitionBetweenKeyframes( | 
 |     [in] IUIAnimationVariable *variable, | 
 |     [in] IUIAnimationTransition *transition, | 
 |     [in] UI_ANIMATION_KEYFRAME startKeyframe, | 
 |     [in] UI_ANIMATION_KEYFRAME endKeyframe | 
 |   ); | 
 |   HRESULT RepeatBetweenKeyframes( | 
 |     [in] UI_ANIMATION_KEYFRAME startKeyframe, | 
 |     [in] UI_ANIMATION_KEYFRAME endKeyframe, | 
 |     [in] int repetitionCount | 
 |   ); | 
 |   HRESULT HoldVariable( | 
 |     [in] IUIAnimationVariable *variable | 
 |   ); | 
 |   HRESULT SetLongestAcceptableDelay( | 
 |     [in] double delay | 
 |   ); | 
 |   HRESULT Schedule( | 
 |     [in] double timeNow, | 
 |     [out, defaultvalue(0)] UI_ANIMATION_SCHEDULING_RESULT *schedulingResult | 
 |   ); | 
 |   HRESULT Conclude(void); | 
 |   HRESULT Finish( | 
 |     [in] double completionDeadline | 
 |   ); | 
 |   HRESULT Abandon(void); | 
 |   HRESULT SetTag( | 
 |     [in] IUnknown * object, | 
 |     [in] unsigned int id | 
 |   ); | 
 |   HRESULT GetTag( | 
 |     [out] IUnknown **object, | 
 |     [out] unsigned int *id | 
 |   ); | 
 |   HRESULT GetStatus( | 
 |     [out, retval] UI_ANIMATION_STORYBOARD_STATUS *status | 
 |   ); | 
 |   HRESULT GetElapsedTime( | 
 |     [out] double *elapsedTime | 
 |   ); | 
 |   HRESULT SetStoryboardEventHandler( | 
 |     [in] IUIAnimationStoryboardEventHandler *handler | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(DC6CE252-F731-41CF-B610-614B6CA049AD), | 
 |   helpstring("IUIAnimationTransition Interface") | 
 | ] | 
 | interface IUIAnimationTransition : IUnknown | 
 | { | 
 |   HRESULT SetInitialValue( | 
 |     [in] double value | 
 |   ); | 
 |   HRESULT SetInitialVelocity( | 
 |     [in] double velocity | 
 |   ); | 
 |   HRESULT IsDurationKnown(void); | 
 |   HRESULT GetDuration( | 
 |     [out, retval] double *duration | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(3D5C9008-EC7C-4364-9F8A-9AF3C58CBAE6), | 
 |   helpstring("IUIAnimationStoryboardEventHandler Interface") | 
 | ] | 
 | interface IUIAnimationStoryboardEventHandler : IUnknown | 
 | { | 
 |   HRESULT OnStoryboardStatusChanged( | 
 |     [in] IUIAnimationStoryboard *storyboard, | 
 |     [in] UI_ANIMATION_STORYBOARD_STATUS newStatus, | 
 |     [in] UI_ANIMATION_STORYBOARD_STATUS previousStatus | 
 |   ); | 
 |   HRESULT OnStoryboardUpdated( | 
 |     [in] IUIAnimationStoryboard *storyboard | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(6358B7BA-87D2-42D5-BF71-82E919DD5862), | 
 |   helpstring("IUIAnimationVariableChangeHandler Interface") | 
 | ] | 
 | interface IUIAnimationVariableChangeHandler : IUnknown | 
 | { | 
 |   HRESULT OnValueChanged( | 
 |     [in] IUIAnimationStoryboard *storyboard, | 
 |     [in] IUIAnimationVariable *variable, | 
 |     [in] double newValue, | 
 |     [in] double previousValue | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(BB3E1550-356E-44B0-99DA-85AC6017865E), | 
 |   helpstring("IUIAnimationVariableIntegerChangeHandler Interface") | 
 | ] | 
 | interface IUIAnimationVariableIntegerChangeHandler : IUnknown | 
 | { | 
 |   HRESULT OnIntegerValueChanged( | 
 |     [in] IUIAnimationStoryboard *storyboard, | 
 |     [in] IUIAnimationVariable *variable, | 
 |     [in] int newValue, | 
 |     [in] int previousValue | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(783321ED-78A3-4366-B574-6AF607A64788), | 
 |   helpstring("IUIAnimationManagerEventHandler Interface") | 
 | ] | 
 | interface IUIAnimationManagerEventHandler : IUnknown | 
 | { | 
 |   HRESULT OnManagerStatusChanged( | 
 |     [in] UI_ANIMATION_MANAGER_STATUS newStatus, | 
 |     [in] UI_ANIMATION_MANAGER_STATUS previousStatus | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(83FA9B74-5F86-4618-BC6A-A2FAC19B3F44), | 
 |   helpstring("IUIAnimationPriorityComparison Interface") | 
 | ] | 
 | interface IUIAnimationPriorityComparison : IUnknown | 
 | { | 
 |   HRESULT HasPriority( | 
 |     [in] IUIAnimationStoryboard *scheduledStoryboard, | 
 |     [in] IUIAnimationStoryboard *newStoryboard, | 
 |     [in] UI_ANIMATION_PRIORITY_EFFECT priorityEffect | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(D8B6F7D4-4109-4D3F-ACEE-879926968CB1), | 
 |   helpstring("IUIAnimationManager2 Interface") | 
 | ] | 
 | interface IUIAnimationManager2 : IUnknown | 
 | { | 
 |   HRESULT CreateAnimationVectorVariable( | 
 |     [in] double *initialValue, | 
 |     [in] unsigned int cDimension, | 
 |     [out, retval] IUIAnimationVariable2 **variable | 
 |   ); | 
 |   HRESULT CreateAnimationVariable( | 
 |     [in] double initialValue, | 
 |     [out, retval] IUIAnimationVariable2 **variable | 
 |   ); | 
 |   HRESULT ScheduleTransition( | 
 |     [in] IUIAnimationVariable2 *variable, | 
 |     [in] IUIAnimationTransition2 *transition, | 
 |     [in] double timeNow | 
 |   ); | 
 |   HRESULT CreateStoryboard( | 
 |     [out, retval] IUIAnimationStoryboard2 **storyboard | 
 |   ); | 
 |   HRESULT FinishAllStoryboards( | 
 |     [in] double completionDeadline | 
 |   ); | 
 |   HRESULT AbandonAllStoryboards(void); | 
 |   HRESULT Update( | 
 |     [in] double timeNow, | 
 |     [out, defaultvalue(0)] UI_ANIMATION_UPDATE_RESULT *updateResult | 
 |   ); | 
 |   HRESULT GetVariableFromTag( | 
 |     [in] IUnknown * object, | 
 |     [in] UINT32 id, | 
 |     [out, retval] IUIAnimationVariable2 **variable | 
 |   ); | 
 |   HRESULT GetStoryboardFromTag( | 
 |     [in] IUnknown * object, | 
 |     [in] unsigned int id, | 
 |     [out, retval] IUIAnimationStoryboard2 **storyboard | 
 |   ); | 
 |   HRESULT EstimateNextEventTime( | 
 |     [out, retval] double *seconds | 
 |   ); | 
 |   HRESULT GetStatus( | 
 |     [out, retval] UI_ANIMATION_MANAGER_STATUS *status | 
 |   ); | 
 |   HRESULT SetAnimationMode( | 
 |     [in] UI_ANIMATION_MODE mode | 
 |   ); | 
 |   HRESULT Pause(void); | 
 |   HRESULT Resume(void); | 
 |   HRESULT SetManagerEventHandler( | 
 |     [in] IUIAnimationManagerEventHandler2 *handler, | 
 |     [in, defaultvalue(FALSE)] long fRegisterForNextAnimationEvent | 
 |   ); | 
 |   HRESULT SetCancelPriorityComparison( | 
 |     [in] IUIAnimationPriorityComparison2 *comparison | 
 |   ); | 
 |   HRESULT SetTrimPriorityComparison( | 
 |     [in] IUIAnimationPriorityComparison2 *comparison | 
 |   ); | 
 |   HRESULT SetCompressPriorityComparison( | 
 |     [in] IUIAnimationPriorityComparison2 *comparison | 
 |   ); | 
 |   HRESULT SetConcludePriorityComparison( | 
 |     [in] IUIAnimationPriorityComparison2 *comparison | 
 |   ); | 
 |   HRESULT SetDefaultLongestAcceptableDelay( | 
 |     [in] double delay | 
 |   ); | 
 |   HRESULT Shutdown(void); | 
 | }; | 
 | [ | 
 |   uuid(4914B304-96AB-44D9-9E77-D5109B7E7466), | 
 |   helpstring("IUIAnimationVariable2 Interface") | 
 | ] | 
 | interface IUIAnimationVariable2 : IUnknown | 
 | { | 
 |   HRESULT GetDimension( | 
 |     [out, retval] unsigned int *dimension | 
 |   ); | 
 |   HRESULT GetValue( | 
 |     [out, retval] double *value | 
 |   ); | 
 |   HRESULT GetVectorValue( | 
 |     [out] double *value, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT GetCurve( | 
 |     [in] IDCompositionAnimation *animation | 
 |   ); | 
 |   HRESULT GetVectorCurve( | 
 |     [in] IDCompositionAnimation **animation, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT GetFinalValue( | 
 |     [out, retval] double *finalValue | 
 |   ); | 
 |   HRESULT GetFinalVectorValue( | 
 |     [out] double *finalValue, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT GetPreviousValue( | 
 |     [out, retval] double *previousValue | 
 |   ); | 
 |   HRESULT GetPreviousVectorValue( | 
 |     [out] double *previousValue, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT GetIntegerValue( | 
 |     [out, retval] int *value | 
 |   ); | 
 |   HRESULT GetIntegerVectorValue( | 
 |     [out] int *value, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT GetFinalIntegerValue( | 
 |     [out, retval] int *finalValue | 
 |   ); | 
 |   HRESULT GetFinalIntegerVectorValue( | 
 |     [out] int *finalValue, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT GetPreviousIntegerValue( | 
 |     [out, retval] int *previousValue | 
 |   ); | 
 |   HRESULT GetPreviousIntegerVectorValue( | 
 |     [out] int *previousValue, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT GetCurrentStoryboard( | 
 |     [out, retval] IUIAnimationStoryboard2 **storyboard | 
 |   ); | 
 |   HRESULT SetLowerBound( | 
 |     [in] double bound | 
 |   ); | 
 |   HRESULT SetLowerBoundVector( | 
 |     [out] double *bound, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT SetUpperBound( | 
 |     [in] double bound | 
 |   ); | 
 |   HRESULT SetUpperBoundVector( | 
 |     [out] double *bound, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT SetRoundingMode( | 
 |     [in] UI_ANIMATION_ROUNDING_MODE mode | 
 |   ); | 
 |   HRESULT SetTag( | 
 |     [in] IUnknown * object, | 
 |     [in] unsigned int id | 
 |   ); | 
 |   HRESULT GetTag( | 
 |     [out] IUnknown **object, | 
 |     [out] unsigned int *id | 
 |   ); | 
 |   HRESULT SetVariableChangeHandler( | 
 |     [in] IUIAnimationVariableChangeHandler2 *handler, | 
 |     [in, defaultvalue(FALSE)] long fRegisterForNextAnimationEvent | 
 |   ); | 
 |   HRESULT SetVariableIntegerChangeHandler( | 
 |     [in] IUIAnimationVariableIntegerChangeHandler2 *handler, | 
 |     [in, defaultvalue(FALSE)] long fRegisterForNextAnimationEvent | 
 |   ); | 
 |   HRESULT SetVariableCurveChangeHandler( | 
 |     [in] IUIAnimationVariableCurveChangeHandler2 *handler | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(CBFD91D9-51B2-45E4-B3DE-D19CCFB863C5), | 
 |   helpstring("IDCompositionAnimation Interface") | 
 | ] | 
 | interface IDCompositionAnimation : IUnknown | 
 | { | 
 |   HRESULT Reset(void); | 
 |   HRESULT SetAbsoluteBeginTime( | 
 |     LARGE_INTEGER beginTime | 
 |   ); | 
 |   HRESULT AddCubic( | 
 |     double beginOffset, | 
 |     float constantCoefficient, | 
 |     float linearCoefficient, | 
 |     float quadraticCoefficient, | 
 |     float cubicCoefficient | 
 |   ); | 
 |   HRESULT AddSinusoidal( | 
 |     double beginOffset, | 
 |     float bias, | 
 |     float amplitude, | 
 |     float frequency, | 
 |     float phase | 
 |   ); | 
 |   HRESULT AddRepeat( | 
 |     double beginOffset, | 
 |     double durationToRepeat | 
 |   ); | 
 |   HRESULT End( | 
 |     double endOffset, | 
 |     float endValue | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(AE289CD2-12D4-4945-9419-9E41BE034DF2), | 
 |   helpstring("IUIAnimationStoryboard2 Interface") | 
 | ] | 
 | interface IUIAnimationStoryboard2 : IUnknown | 
 | { | 
 |   HRESULT AddTransition( | 
 |     [in] IUIAnimationVariable2 *variable, | 
 |     [in] IUIAnimationTransition2 *transition | 
 |   ); | 
 |   HRESULT AddKeyframeAtOffset( | 
 |     [in] UI_ANIMATION_KEYFRAME existingKeyframe, | 
 |     [in] double offset, | 
 |     [out, retval] UI_ANIMATION_KEYFRAME *keyframe | 
 |   ); | 
 |   HRESULT AddKeyframeAfterTransition( | 
 |     [in] IUIAnimationTransition2 *transition, | 
 |     [out, retval] UI_ANIMATION_KEYFRAME *keyframe | 
 |   ); | 
 |   HRESULT AddTransitionAtKeyframe( | 
 |     [in] IUIAnimationVariable2 *variable, | 
 |     [in] IUIAnimationTransition2 *transition, | 
 |     [in] UI_ANIMATION_KEYFRAME startKeyframe | 
 |   ); | 
 |   HRESULT AddTransitionBetweenKeyframes( | 
 |     [in] IUIAnimationVariable2 *variable, | 
 |     [in] IUIAnimationTransition2 *transition, | 
 |     [in] UI_ANIMATION_KEYFRAME startKeyframe, | 
 |     [in] UI_ANIMATION_KEYFRAME endKeyframe | 
 |   ); | 
 |   HRESULT RepeatBetweenKeyframes( | 
 |     [in] UI_ANIMATION_KEYFRAME startKeyframe, | 
 |     [in] UI_ANIMATION_KEYFRAME endKeyframe, | 
 |     [in] double cRepetition, | 
 |     [in] UI_ANIMATION_REPEAT_MODE repeatMode, | 
 |     [in, defaultvalue(0)] IUIAnimationLoopIterationChangeHandler2 *pIterationChangeHandler, | 
 |     [in, defaultvalue(0)] UINT_PTR id, | 
 |     [in, defaultvalue(FALSE)] long fRegisterForNextAnimationEvent | 
 |   ); | 
 |   HRESULT HoldVariable( | 
 |     [in] IUIAnimationVariable2 *variable | 
 |   ); | 
 |   HRESULT SetLongestAcceptableDelay( | 
 |     [in] double delay | 
 |   ); | 
 |   HRESULT SetSkipDuration( | 
 |     [in] double secondsDuration | 
 |   ); | 
 |   HRESULT Schedule( | 
 |     [in] double timeNow, | 
 |     [out, defaultvalue(0)] UI_ANIMATION_SCHEDULING_RESULT *schedulingResult | 
 |   ); | 
 |   HRESULT Conclude(void); | 
 |   HRESULT Finish( | 
 |     [in] double completionDeadline | 
 |   ); | 
 |   HRESULT Abandon(void); | 
 |   HRESULT SetTag( | 
 |     [in] IUnknown * object, | 
 |     [in] unsigned int id | 
 |   ); | 
 |   HRESULT GetTag( | 
 |     [out] IUnknown **object, | 
 |     [out] unsigned int *id | 
 |   ); | 
 |   HRESULT GetStatus( | 
 |     [out, retval] UI_ANIMATION_STORYBOARD_STATUS *status | 
 |   ); | 
 |   HRESULT GetElapsedTime( | 
 |     [out] double *elapsedTime | 
 |   ); | 
 |   HRESULT SetStoryboardEventHandler( | 
 |     [in] IUIAnimationStoryboardEventHandler2 *handler, | 
 |     [in, defaultvalue(FALSE)] long fRegisterStatusChangeForNextAnimationEvent, | 
 |     [in, defaultvalue(FALSE)] long fRegisterUpdateForNextAnimationEvent | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(62FF9123-A85A-4E9B-A218-435A93E268FD), | 
 |   helpstring("IUIAnimationTransition2 Interface") | 
 | ] | 
 | interface IUIAnimationTransition2 : IUnknown | 
 | { | 
 |   HRESULT GetDimension( | 
 |     [out, retval] unsigned int *dimension | 
 |   ); | 
 |   HRESULT SetInitialValue( | 
 |     [in] double value | 
 |   ); | 
 |   HRESULT SetInitialVectorValue( | 
 |     [in] double *value, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT SetInitialVelocity( | 
 |     [in] double velocity | 
 |   ); | 
 |   HRESULT SetInitialVectorVelocity( | 
 |     [in] double *velocity, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT IsDurationKnown(void); | 
 |   HRESULT GetDuration( | 
 |     [out, retval] double *duration | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(2D3B15A4-4762-47AB-A030-B23221DF3AE0), | 
 |   helpstring("IUIAnimationLoopIterationChangeHandler2 Interface") | 
 | ] | 
 | interface IUIAnimationLoopIterationChangeHandler2 : IUnknown | 
 | { | 
 |   HRESULT OnLoopIterationChanged( | 
 |     [in] IUIAnimationStoryboard2 *storyboard, | 
 |     [in] UINT_PTR id, | 
 |     [in] unsigned int newIterationCount, | 
 |     [in] unsigned int oldIterationCount | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(BAC5F55A-BA7C-414C-B599-FBF850F553C6), | 
 |   helpstring("IUIAnimationStoryboardEventHandler Interface") | 
 | ] | 
 | interface IUIAnimationStoryboardEventHandler2 : IUnknown | 
 | { | 
 |   HRESULT OnStoryboardStatusChanged( | 
 |     [in] IUIAnimationStoryboard2 *storyboard, | 
 |     [in] UI_ANIMATION_STORYBOARD_STATUS newStatus, | 
 |     [in] UI_ANIMATION_STORYBOARD_STATUS previousStatus | 
 |   ); | 
 |   HRESULT OnStoryboardUpdated( | 
 |     [in] IUIAnimationStoryboard2 *storyboard | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(63ACC8D2-6EAE-4BB0-B879-586DD8CFBE42), | 
 |   helpstring("IUIAnimationVariableChangeHandler2 Interface") | 
 | ] | 
 | interface IUIAnimationVariableChangeHandler2 : IUnknown | 
 | { | 
 |   HRESULT OnValueChanged( | 
 |     [in] IUIAnimationStoryboard2 *storyboard, | 
 |     [in] IUIAnimationVariable2 *variable, | 
 |     [in] double *newValue, | 
 |     [in] double *previousValue, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(829B6CF1-4F3A-4412-AE09-B243EB4C6B58), | 
 |   helpstring("IUIAnimationVariableIntegerChangeHandler2 Interface") | 
 | ] | 
 | interface IUIAnimationVariableIntegerChangeHandler2 : IUnknown | 
 | { | 
 |   HRESULT OnIntegerValueChanged( | 
 |     [in] IUIAnimationStoryboard2 *storyboard, | 
 |     [in] IUIAnimationVariable2 *variable, | 
 |     [in] int *newValue, | 
 |     [in] int *previousValue, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(72895E91-0145-4C21-9192-5AAB40EDDF80), | 
 |   helpstring("IUIAnimationVariableCurveChangeHandler2 Interface") | 
 | ] | 
 | interface IUIAnimationVariableCurveChangeHandler2 : IUnknown | 
 | { | 
 |   HRESULT OnCurveChanged( | 
 |     [in] IUIAnimationVariable2 *variable | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(F6E022BA-BFF3-42EC-9033-E073F33E83C3), | 
 |   helpstring("IUIAnimationManagerEventHandler2 Interface") | 
 | ] | 
 | interface IUIAnimationManagerEventHandler2 : IUnknown | 
 | { | 
 |   HRESULT OnManagerStatusChanged( | 
 |     [in] UI_ANIMATION_MANAGER_STATUS newStatus, | 
 |     [in] UI_ANIMATION_MANAGER_STATUS previousStatus | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(5B6D7A37-4621-467C-8B05-70131DE62DDB), | 
 |   helpstring("IUIAnimationPriorityComparison2 Interface") | 
 | ] | 
 | interface IUIAnimationPriorityComparison2 : IUnknown | 
 | { | 
 |   HRESULT HasPriority( | 
 |     [in] IUIAnimationStoryboard2 *scheduledStoryboard, | 
 |     [in] IUIAnimationStoryboard2 *newStoryboard, | 
 |     [in] UI_ANIMATION_PRIORITY_EFFECT priorityEffect | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(CA5A14B1-D24F-48B8-8FE4-C78169BA954E), | 
 |   helpstring("IUIAnimationTransitionLibrary Interface") | 
 | ] | 
 | interface IUIAnimationTransitionLibrary : IUnknown | 
 | { | 
 |   HRESULT CreateInstantaneousTransition( | 
 |     [in] double finalValue, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 |   HRESULT CreateConstantTransition( | 
 |     [in] double duration, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 |   HRESULT CreateDiscreteTransition( | 
 |     [in] double delay, | 
 |     [in] double finalValue, | 
 |     [in] double hold, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 |   HRESULT CreateLinearTransition( | 
 |     [in] double duration, | 
 |     [in] double finalValue, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 |   HRESULT CreateLinearTransitionFromSpeed( | 
 |     [in] double speed, | 
 |     [in] double finalValue, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 |   HRESULT CreateSinusoidalTransitionFromVelocity( | 
 |     [in] double duration, | 
 |     [in] double period, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 |   HRESULT CreateSinusoidalTransitionFromRange( | 
 |     [in] double duration, | 
 |     [in] double minimumValue, | 
 |     [in] double maximumValue, | 
 |     [in] double period, | 
 |     [in] UI_ANIMATION_SLOPE slope, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 |   HRESULT CreateAccelerateDecelerateTransition( | 
 |     [in] double duration, | 
 |     [in] double finalValue, | 
 |     [in] double accelerationRatio, | 
 |     [in] double decelerationRatio, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 |   HRESULT CreateReversalTransition( | 
 |     [in] double duration, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 |   HRESULT CreateCubicTransition( | 
 |     [in] double duration, | 
 |     [in] double finalValue, | 
 |     [in] double finalVelocity, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 |   HRESULT CreateSmoothStopTransition( | 
 |     [in] double maximumDuration, | 
 |     [in] double finalValue, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 |   HRESULT CreateParabolicTransitionFromAcceleration( | 
 |     [in] double finalValue, | 
 |     [in] double finalVelocity, | 
 |     [in] double acceleration, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(03CFAE53-9580-4EE3-B363-2ECE51B4AF6A), | 
 |   helpstring("IUIAnimationTransitionLibrary2 Interface") | 
 | ] | 
 | interface IUIAnimationTransitionLibrary2 : IUnknown | 
 | { | 
 |   HRESULT CreateInstantaneousTransition( | 
 |     [in] double finalValue, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateInstantaneousVectorTransition( | 
 |     [in] double *finalValue, | 
 |     [in] unsigned int cDimension, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateConstantTransition( | 
 |     [in] double duration, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateDiscreteTransition( | 
 |     [in] double delay, | 
 |     [in] double finalValue, | 
 |     [in] double hold, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateDiscreteVectorTransition( | 
 |     [in] double delay, | 
 |     [in] double *finalValue, | 
 |     [in] unsigned int cDimension, | 
 |     [in] double hold, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateLinearTransition( | 
 |     [in] double duration, | 
 |     [in] double finalValue, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateLinearVectorTransition( | 
 |     [in] double duration, | 
 |     [in] double *finalValue, | 
 |     [in] unsigned int cDimension, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateLinearTransitionFromSpeed( | 
 |     [in] double speed, | 
 |     [in] double finalValue, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateLinearVectorTransitionFromSpeed( | 
 |     [in] double speed, | 
 |     [in] double *finalValue, | 
 |     [in] unsigned int cDimension, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateSinusoidalTransitionFromVelocity( | 
 |     [in] double duration, | 
 |     [in] double period, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateSinusoidalTransitionFromRange( | 
 |     [in] double duration, | 
 |     [in] double minimumValue, | 
 |     [in] double maximumValue, | 
 |     [in] double period, | 
 |     [in] UI_ANIMATION_SLOPE slope, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateAccelerateDecelerateTransition( | 
 |     [in] double duration, | 
 |     [in] double finalValue, | 
 |     [in] double accelerationRatio, | 
 |     [in] double decelerationRatio, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateReversalTransition( | 
 |     [in] double duration, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateCubicTransition( | 
 |     [in] double duration, | 
 |     [in] double finalValue, | 
 |     [in] double finalVelocity, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateCubicVectorTransition( | 
 |     [in] double duration, | 
 |     [in] double *finalValue, | 
 |     [in] double *finalVelocity, | 
 |     [in] unsigned int cDimension, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateSmoothStopTransition( | 
 |     [in] double maximumDuration, | 
 |     [in] double finalValue, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateParabolicTransitionFromAcceleration( | 
 |     [in] double finalValue, | 
 |     [in] double finalVelocity, | 
 |     [in] double acceleration, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 |   HRESULT CreateCubicBezierLinearTransition( | 
 |     [in] double duration, | 
 |     [in] double finalValue, | 
 |     [in] double x1, | 
 |     [in] double y1, | 
 |     [in] double x2, | 
 |     [in] double y2, | 
 |     [out] IUIAnimationTransition2 **ppTransition | 
 |   ); | 
 |   HRESULT CreateCubicBezierLinearVectorTransition( | 
 |     [in] double duration, | 
 |     [in] double *finalValue, | 
 |     [in] unsigned int cDimension, | 
 |     [in] double x1, | 
 |     [in] double y1, | 
 |     [in] double x2, | 
 |     [in] double y2, | 
 |     [out] IUIAnimationTransition2 **ppTransition | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(FCD91E03-3E3B-45AD-BBB1-6DFC8153743D), | 
 |   helpstring("IUIAnimationTransitionFactory Interface") | 
 | ] | 
 | interface IUIAnimationTransitionFactory : IUnknown | 
 | { | 
 |   HRESULT CreateTransition( | 
 |     [in] IUIAnimationInterpolator *interpolator, | 
 |     [out, retval] IUIAnimationTransition **transition | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(7815CBBA-DDF7-478C-A46C-7B6C738B7978), | 
 |   helpstring("IUIAnimationInterpolator Interface") | 
 | ] | 
 | interface IUIAnimationInterpolator : IUnknown | 
 | { | 
 |   HRESULT SetInitialValueAndVelocity( | 
 |     [in] double initialValue, | 
 |     [in] double initialVelocity | 
 |   ); | 
 |   HRESULT SetDuration( | 
 |     [in] double duration | 
 |   ); | 
 |   HRESULT GetDuration( | 
 |     [out, retval] double *duration | 
 |   ); | 
 |   HRESULT GetFinalValue( | 
 |     [out, retval] double *value | 
 |   ); | 
 |   HRESULT InterpolateValue( | 
 |     [in] double offset, | 
 |     [out, retval] double *value | 
 |   ); | 
 |   HRESULT InterpolateVelocity( | 
 |     [in] double offset, | 
 |     [out, retval] double *velocity | 
 |   ); | 
 |   HRESULT GetDependencies( | 
 |     [out] UI_ANIMATION_DEPENDENCIES *initialValueDependencies, | 
 |     [out] UI_ANIMATION_DEPENDENCIES *initialVelocityDependencies, | 
 |     [out] UI_ANIMATION_DEPENDENCIES *durationDependencies | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(937D4916-C1A6-42D5-88D8-30344D6EFE31), | 
 |   helpstring("IUIAnimationTransitionFactory2 Interface") | 
 | ] | 
 | interface IUIAnimationTransitionFactory2 : IUnknown | 
 | { | 
 |   HRESULT CreateTransition( | 
 |     [in] IUIAnimationInterpolator2 *interpolator, | 
 |     [out, retval] IUIAnimationTransition2 **transition | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(EA76AFF8-EA22-4A23-A0EF-A6A966703518), | 
 |   helpstring("IUIAnimationInterpolator2 Interface") | 
 | ] | 
 | interface IUIAnimationInterpolator2 : IUnknown | 
 | { | 
 |   HRESULT GetDimension( | 
 |     [out, retval] unsigned int *dimension | 
 |   ); | 
 |   HRESULT SetInitialValueAndVelocity( | 
 |     [in] double *initialValue, | 
 |     [in] double *initialVelocity, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT SetDuration( | 
 |     [in] double duration | 
 |   ); | 
 |   HRESULT GetDuration( | 
 |     [out, retval] double *duration | 
 |   ); | 
 |   HRESULT GetFinalValue( | 
 |     [out] double *value, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT InterpolateValue( | 
 |     [in] double offset, | 
 |     [out] double *value, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT InterpolateVelocity( | 
 |     [in] double offset, | 
 |     [out] double *velocity, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT GetPrimitiveInterpolation( | 
 |     [in] IUIAnimationPrimitiveInterpolation *interpolation, | 
 |     [in] unsigned int cDimension | 
 |   ); | 
 |   HRESULT GetDependencies( | 
 |     [out] UI_ANIMATION_DEPENDENCIES *initialValueDependencies, | 
 |     [out] UI_ANIMATION_DEPENDENCIES *initialVelocityDependencies, | 
 |     [out] UI_ANIMATION_DEPENDENCIES *durationDependencies | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(BAB20D63-4361-45DA-A24F-AB8508846B5B), | 
 |   helpstring("IUIAnimationPrimitiveInterpolation Interface") | 
 | ] | 
 | interface IUIAnimationPrimitiveInterpolation : IUnknown | 
 | { | 
 |   HRESULT AddCubic( | 
 |     [in] unsigned int dimension, | 
 |     [in] double beginOffset, | 
 |     [in] float constantCoefficient, | 
 |     [in] float linearCoefficient, | 
 |     [in] float quadraticCoefficient, | 
 |     [in] float cubicCoefficient | 
 |   ); | 
 |   HRESULT AddSinusoidal( | 
 |     [in] unsigned int dimension, | 
 |     [in] double beginOffset, | 
 |     [in] float bias, | 
 |     [in] float amplitude, | 
 |     [in] float frequency, | 
 |     [in] float phase | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(6B0EFAD1-A053-41D6-9085-33A689144665), | 
 |   helpstring("IUIAnimationTimer Interface") | 
 | ] | 
 | interface IUIAnimationTimer : IUnknown | 
 | { | 
 |   HRESULT SetTimerUpdateHandler( | 
 |     [in] IUIAnimationTimerUpdateHandler *updateHandler, | 
 |     [in] UI_ANIMATION_IDLE_BEHAVIOR idleBehavior | 
 |   ); | 
 |   HRESULT SetTimerEventHandler( | 
 |     [in] IUIAnimationTimerEventHandler *handler | 
 |   ); | 
 |   HRESULT Enable(void); | 
 |   HRESULT Disable(void); | 
 |   HRESULT IsEnabled(void); | 
 |   HRESULT GetTime( | 
 |     [out] double *seconds | 
 |   ); | 
 |   HRESULT SetFrameRateThreshold( | 
 |     [in] unsigned int framesPerSecond | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(195509B7-5D5E-4E3E-B278-EE3759B367AD), | 
 |   helpstring("IUIAnimationTimerUpdateHandler Interface") | 
 | ] | 
 | interface IUIAnimationTimerUpdateHandler : IUnknown | 
 | { | 
 |   HRESULT OnUpdate( | 
 |     [in] double timeNow, | 
 |     [out, retval] UI_ANIMATION_UPDATE_RESULT *result | 
 |   ); | 
 |   HRESULT SetTimerClientEventHandler( | 
 |     [in] IUIAnimationTimerClientEventHandler *handler | 
 |   ); | 
 |   HRESULT ClearTimerClientEventHandler(void); | 
 | }; | 
 | [ | 
 |   uuid(BEDB4DB6-94FA-4BFB-A47F-EF2D9E408C25), | 
 |   helpstring("IUIAnimationTimerClientEventHandler Interface") | 
 | ] | 
 | interface IUIAnimationTimerClientEventHandler : IUnknown | 
 | { | 
 |   HRESULT OnTimerClientStatusChanged( | 
 |     [in] UI_ANIMATION_TIMER_CLIENT_STATUS newStatus, | 
 |     [in] UI_ANIMATION_TIMER_CLIENT_STATUS previousStatus | 
 |   ); | 
 | }; | 
 | [ | 
 |   uuid(274A7DEA-D771-4095-ABBD-8DF7ABD23CE3), | 
 |   helpstring("IUIAnimationTimerEventHandler Interface") | 
 | ] | 
 | interface IUIAnimationTimerEventHandler : IUnknown | 
 | { | 
 |   HRESULT OnPreUpdate(void); | 
 |   HRESULT OnPostUpdate(void); | 
 |   HRESULT OnRenderingTooSlow( | 
 |     [in] UINT32 framesPerSecond | 
 |   ); | 
 | }; |