|  | /** | 
|  | * 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 | 
|  | ); | 
|  | }; |