This is the second commit in the series that adds support of Windows
Animation Manager (WAM) into mingw-w64.

Signed-off-by: Ruslan Garipov <[email protected]>
---
mingw-w64-headers/include/uianimation.idl | 1291 +++++++++++++++++++++++++++++
1 file changed, 1291 insertions(+)
create mode 100644 mingw-w64-headers/include/uianimation.idl

diff --git a/mingw-w64-headers/include/uianimation.idl 
b/mingw-w64-headers/include/uianimation.idl
new file mode 100644
index 00000000..25d97f95
--- /dev/null
+++ b/mingw-w64-headers/include/uianimation.idl
@@ -0,0 +1,1291 @@
+/**
+ * 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;
+
+/* Structure forward declarations.  */
+typedef struct __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 
__MIDL___MIDL_itf_UIAnimation_0000_0002_0003;
+
+/* 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.  */
+enum __MIDL___MIDL_itf_UIAnimation_0000_0002_0002
+{
+  UI_ANIMATION_SCHEDULING_UNEXPECTED_FAILURE = (int) 0xc000000,
+  UI_ANIMATION_SCHEDULING_INSUFFICIENT_PRIORITY = (int) 0xc000001,
+  UI_ANIMATION_SCHEDULING_ALREADY_SCHEDULED = (int) 0xc000002,
+  UI_ANIMATION_SCHEDULING_SUCCEEDED = (int) 0xc000003,
+  UI_ANIMATION_SCHEDULING_DEFERRED = (int) 0xc000004
+};
+enum __MIDL___MIDL_itf_UIAnimation_0000_0002_0001
+{
+  UI_ANIMATION_STORYBOARD_BUILDING = (int) 0xc000000,
+  UI_ANIMATION_STORYBOARD_SCHEDULED = (int) 0xc000001,
+  UI_ANIMATION_STORYBOARD_CANCELLED = (int) 0xc000002,
+  UI_ANIMATION_STORYBOARD_PLAYING = (int) 0xc000003,
+  UI_ANIMATION_STORYBOARD_TRUNCATED = (int) 0xc000004,
+  UI_ANIMATION_STORYBOARD_FINISHED = (int) 0xc000005,
+  UI_ANIMATION_STORYBOARD_READY = (int) 0xc000006,
+  UI_ANIMATION_STORYBOARD_INSUFFICIENT_PRIORITY = (int) 0xc000007
+};
+enum __MIDL___MIDL_itf_UIAnimation_0000_0001_0001
+{
+  UI_ANIMATION_ROUNDING_NEAREST = (int) 0xc000000,
+  UI_ANIMATION_ROUNDING_FLOOR = (int) 0xc000001,
+  UI_ANIMATION_ROUNDING_CEILING = (int) 0xc000002
+};
+enum __MIDL___MIDL_itf_UIAnimation_0000_0000_0001
+{
+  UI_ANIMATION_UPDATE_NO_CHANGE = (int) 0xc000000,
+  UI_ANIMATION_UPDATE_VARIABLES_CHANGED = (int) 0xc000001
+};
+enum __MIDL___MIDL_itf_UIAnimation_0000_0000_0002
+{
+  UI_ANIMATION_MANAGER_IDLE = (int) 0xc000000,
+  UI_ANIMATION_MANAGER_BUSY = (int) 0xc000001
+};
+enum __MIDL___MIDL_itf_UIAnimation_0000_0000_0003
+{
+  UI_ANIMATION_MODE_DISABLED = (int) 0xc000000,
+  UI_ANIMATION_MODE_SYSTEM_DEFAULT = (int) 0xc000001,
+  UI_ANIMATION_MODE_ENABLED = (int) 0xc000002
+};
+enum __MIDL___MIDL_itf_UIAnimation_0000_0008_0001
+{
+  UI_ANIMATION_PRIORITY_EFFECT_FAILURE = (int) 0xc000000,
+  UI_ANIMATION_PRIORITY_EFFECT_DELAY = (int) 0xc000001
+};
+enum __MIDL___MIDL_itf_UIAnimation_0000_0000_0004
+{
+  UI_ANIMATION_REPEAT_MODE_NORMAL = (int) 0xc000000,
+  UI_ANIMATION_REPEAT_MODE_ALTERNATE = (int) 0xc000001
+};
+enum __MIDL___MIDL_itf_UIAnimation_0000_0009_0001
+{
+  UI_ANIMATION_SLOPE_INCREASING = (int) 0xc000000,
+  UI_ANIMATION_SLOPE_DECREASING = (int) 0xc000001
+};
+enum __MIDL___MIDL_itf_UIAnimation_0000_0010_0001
+{
+  UI_ANIMATION_DEPENDENCY_NONE = (int) 0xc000000,
+  UI_ANIMATION_DEPENDENCY_INTERMEDIATE_VALUES = (int) 0xc000001,
+  UI_ANIMATION_DEPENDENCY_FINAL_VALUE = (int) 0xc000002,
+  UI_ANIMATION_DEPENDENCY_FINAL_VELOCITY = (int) 0xc000004,
+  UI_ANIMATION_DEPENDENCY_DURATION = (int) 0xc000008
+};
+enum __MIDL___MIDL_itf_UIAnimation_0000_0014_0001
+{
+  UI_ANIMATION_TIMER_CLIENT_IDLE = (int) 0xc000000,
+  UI_ANIMATION_TIMER_CLIENT_BUSY = (int) 0xc000001
+};
+enum __MIDL___MIDL_itf_UIAnimation_0000_0012_0001
+{
+  UI_ANIMATION_IDLE_BEHAVIOR_CONTINUE = (int) 0xc000000,
+  UI_ANIMATION_IDLE_BEHAVIOR_DISABLE = (int) 0xc000001
+};
+
+/* Structure/union declarations.  */
+struct __MIDL___MIDL_itf_UIAnimation_0000_0002_0003
+{
+  int _;
+};
+
+/* Type definitions.  */
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0002_0002 
UI_ANIMATION_SCHEDULING_RESULT;
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0002_0001 
UI_ANIMATION_STORYBOARD_STATUS;
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0001_0001 
UI_ANIMATION_ROUNDING_MODE;
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0000_0001 
UI_ANIMATION_UPDATE_RESULT;
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0000_0002 
UI_ANIMATION_MANAGER_STATUS;
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0000_0003 UI_ANIMATION_MODE;
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0008_0001 
UI_ANIMATION_PRIORITY_EFFECT;
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0000_0004 
UI_ANIMATION_REPEAT_MODE;
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0009_0001 UI_ANIMATION_SLOPE;
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0010_0001 
UI_ANIMATION_DEPENDENCIES;
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0014_0001 
UI_ANIMATION_TIMER_CLIENT_STATUS;
+typedef enum __MIDL___MIDL_itf_UIAnimation_0000_0012_0001 
UI_ANIMATION_IDLE_BEHAVIOR;
+
+[
+  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
+   {
+     interface IUIAnimationManager;
+   };
+   [
+     uuid(D25D8842-8884-4A4A-B321-091314379BDD),
+     helpstring("UIAnimationManager2 Class")
+   ]
+   coclass UIAnimationManager2
+   {
+     interface IUIAnimationManager2;
+   };
+   [
+     uuid(1D6322AD-AA85-4EF5-A828-86D71067D145),
+     helpstring("UIAnimationTransitionLibrary Class")
+   ]
+   coclass UIAnimationTransitionLibrary
+   {
+     interface IUIAnimationTransitionLibrary;
+   };
+   [
+     uuid(812F944A-C5C8-4CD9-B0A6-B3DA802F228D),
+     helpstring("UIAnimationTransitionLibrary2 Class")
+   ]
+   coclass UIAnimationTransitionLibrary2
+   {
+     interface IUIAnimationTransitionLibrary2;
+   };
+   [
+     uuid(8A9B1CDD-FCD7-419C-8B44-42FD17DB1887),
+     helpstring("UIAnimationTransitionFactory Class")
+   ]
+   coclass UIAnimationTransitionFactory
+   {
+     interface IUIAnimationTransitionFactory;
+   };
+   [
+     uuid(84302F97-7F7B-4040-B190-72AC9D18E420),
+     helpstring("UIAnimationTransitionFactory2 Class")
+   ]
+   coclass UIAnimationTransitionFactory2
+   {
+     interface IUIAnimationTransitionFactory2;
+   };
+   [
+     uuid(BFCD4A0C-06B6-4384-B768-0DAA792C380E),
+     helpstring("UIAnimationTimer Class")
+   ]
+   coclass UIAnimationTimer
+   {
+     interface IUIAnimationTimer;
+   };
+
+};
+
+/* Interface declarations.  */
+[
+  uuid(9169896C-AC8D-4E7D-94E5-67FA4DC2F2E8),
+  helpstring("IUIAnimationManager Interface")
+]
+interface IUIAnimationManager : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall CreateAnimationVariable (
+    [in] double initialValue,
+    [out, retval] IUIAnimationVariable **variable
+  );
+  HRESULT __stdcall ScheduleTransition (
+    [in] IUIAnimationVariable *variable,
+    [in] IUIAnimationTransition *transition,
+    [in] double timeNow
+  );
+  HRESULT __stdcall CreateStoryboard (
+    [out, retval] IUIAnimationStoryboard **storyboard
+  );
+  HRESULT __stdcall FinishAllStoryboards (
+    [in] double completionDeadline
+  );
+  HRESULT __stdcall AbandonAllStoryboards (void);
+  HRESULT __stdcall Update (
+    [in] double timeNow,
+    [out, defaultvalue(0)] UI_ANIMATION_UPDATE_RESULT *updateResult
+  );
+  HRESULT __stdcall GetVariableFromTag (
+    [in] IUnknown * object,
+    [in] unsigned int id,
+    [out, retval] IUIAnimationVariable **variable
+  );
+  HRESULT __stdcall GetStoryboardFromTag (
+    [in] IUnknown * object,
+    [in] unsigned int id,
+    [out, retval] IUIAnimationStoryboard **storyboard
+  );
+  HRESULT __stdcall GetStatus (
+    [out, retval] UI_ANIMATION_MANAGER_STATUS *status
+  );
+  HRESULT __stdcall SetAnimationMode (
+    [in] UI_ANIMATION_MODE mode
+  );
+  HRESULT __stdcall Pause (void);
+  HRESULT __stdcall Resume (void);
+  HRESULT __stdcall SetManagerEventHandler (
+    [in] IUIAnimationManagerEventHandler *handler
+  );
+  HRESULT __stdcall SetCancelPriorityComparison (
+    [in] IUIAnimationPriorityComparison *comparison
+  );
+  HRESULT __stdcall SetTrimPriorityComparison (
+    [in] IUIAnimationPriorityComparison *comparison
+  );
+  HRESULT __stdcall SetCompressPriorityComparison (
+    [in] IUIAnimationPriorityComparison *comparison
+  );
+  HRESULT __stdcall SetConcludePriorityComparison (
+    [in] IUIAnimationPriorityComparison *comparison
+  );
+  HRESULT __stdcall SetDefaultLongestAcceptableDelay (
+    [in] double delay
+  );
+  HRESULT __stdcall Shutdown (void);
+};
+[
+  uuid(8CEEB155-2849-4CE5-9448-91FF70E1E4D9),
+  helpstring("IUIAnimationVariable Interface")
+]
+interface IUIAnimationVariable : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall GetValue (
+    [out, retval] double *value
+  );
+  HRESULT __stdcall GetFinalValue (
+    [out, retval] double *finalValue
+  );
+  HRESULT __stdcall GetPreviousValue (
+    [out, retval] double *previousValue
+  );
+  HRESULT __stdcall GetIntegerValue (
+    [out, retval] int *value
+  );
+  HRESULT __stdcall GetFinalIntegerValue (
+    [out, retval] int *finalValue
+  );
+  HRESULT __stdcall GetPreviousIntegerValue (
+    [out, retval] int *previousValue
+  );
+  HRESULT __stdcall GetCurrentStoryboard (
+    [out, retval] IUIAnimationStoryboard **storyboard
+  );
+  HRESULT __stdcall SetLowerBound (
+    [in] double bound
+  );
+  HRESULT __stdcall SetUpperBound (
+    [in] double bound
+  );
+  HRESULT __stdcall SetRoundingMode (
+    [in] UI_ANIMATION_ROUNDING_MODE mode
+  );
+  HRESULT __stdcall SetTag (
+    [in] IUnknown * object,
+    [in] unsigned int id
+  );
+  HRESULT __stdcall GetTag (
+    [out] IUnknown **object,
+    [out] unsigned int *id
+  );
+  HRESULT __stdcall SetVariableChangeHandler (
+    [in] IUIAnimationVariableChangeHandler *handler
+  );
+  HRESULT __stdcall SetVariableIntegerChangeHandler (
+    [in] IUIAnimationVariableIntegerChangeHandler *handler
+  );
+};
+[
+  uuid(A8FF128F-9BF9-4AF1-9E67-E5E410DEFB84),
+  helpstring("IUIAnimationStoryboard Interface")
+]
+interface IUIAnimationStoryboard : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall AddTransition (
+    [in] IUIAnimationVariable *variable,
+    [in] IUIAnimationTransition *transition
+  );
+  HRESULT __stdcall AddKeyframeAtOffset (
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *existingKeyframe,
+    [in] double offset,
+    [out, retval] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 **keyframe
+  );
+  HRESULT __stdcall AddKeyframeAfterTransition (
+    [in] IUIAnimationTransition *transition,
+    [out, retval] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 **keyframe
+  );
+  HRESULT __stdcall AddTransitionAtKeyframe (
+    [in] IUIAnimationVariable *variable,
+    [in] IUIAnimationTransition *transition,
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *startKeyframe
+  );
+  HRESULT __stdcall AddTransitionBetweenKeyframes (
+    [in] IUIAnimationVariable *variable,
+    [in] IUIAnimationTransition *transition,
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *startKeyframe,
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *endKeyframe
+  );
+  HRESULT __stdcall RepeatBetweenKeyframes (
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *startKeyframe,
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *endKeyframe,
+    [in] int repetitionCount
+  );
+  HRESULT __stdcall HoldVariable (
+    [in] IUIAnimationVariable *variable
+  );
+  HRESULT __stdcall SetLongestAcceptableDelay (
+    [in] double delay
+  );
+  HRESULT __stdcall Schedule (
+    [in] double timeNow,
+    [out, defaultvalue(0)] UI_ANIMATION_SCHEDULING_RESULT *schedulingResult
+  );
+  HRESULT __stdcall Conclude (void);
+  HRESULT __stdcall Finish (
+    [in] double completionDeadline
+  );
+  HRESULT __stdcall Abandon (void);
+  HRESULT __stdcall SetTag (
+    [in] IUnknown * object,
+    [in] unsigned int id
+  );
+  HRESULT __stdcall GetTag (
+    [out] IUnknown **object,
+    [out] unsigned int *id
+  );
+  HRESULT __stdcall GetStatus (
+    [out, retval] UI_ANIMATION_STORYBOARD_STATUS *status
+  );
+  HRESULT __stdcall GetElapsedTime (
+    [out] double *elapsedTime
+  );
+  HRESULT __stdcall SetStoryboardEventHandler (
+    [in] IUIAnimationStoryboardEventHandler *handler
+  );
+};
+[
+  uuid(DC6CE252-F731-41CF-B610-614B6CA049AD),
+  helpstring("IUIAnimationTransition Interface")
+]
+interface IUIAnimationTransition : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall SetInitialValue (
+    [in] double value
+  );
+  HRESULT __stdcall SetInitialVelocity (
+    [in] double velocity
+  );
+  HRESULT __stdcall IsDurationKnown (void);
+  HRESULT __stdcall GetDuration (
+    [out, retval] double *duration
+  );
+};
+[
+  uuid(3D5C9008-EC7C-4364-9F8A-9AF3C58CBAE6),
+  helpstring("IUIAnimationStoryboardEventHandler Interface")
+]
+interface IUIAnimationStoryboardEventHandler : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall OnStoryboardStatusChanged (
+    [in] IUIAnimationStoryboard *storyboard,
+    [in] UI_ANIMATION_STORYBOARD_STATUS newStatus,
+    [in] UI_ANIMATION_STORYBOARD_STATUS previousStatus
+  );
+  HRESULT __stdcall OnStoryboardUpdated (
+    [in] IUIAnimationStoryboard *storyboard
+  );
+};
+[
+  uuid(6358B7BA-87D2-42D5-BF71-82E919DD5862),
+  helpstring("IUIAnimationVariableChangeHandler Interface")
+]
+interface IUIAnimationVariableChangeHandler : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall CreateAnimationVectorVariable (
+    [in] double *initialValue,
+    [in] unsigned int cDimension,
+    [out, retval] IUIAnimationVariable2 **variable
+  );
+  HRESULT __stdcall CreateAnimationVariable (
+    [in] double initialValue,
+    [out, retval] IUIAnimationVariable2 **variable
+  );
+  HRESULT __stdcall ScheduleTransition (
+    [in] IUIAnimationVariable2 *variable,
+    [in] IUIAnimationTransition2 *transition,
+    [in] double timeNow
+  );
+  HRESULT __stdcall CreateStoryboard (
+    [out, retval] IUIAnimationStoryboard2 **storyboard
+  );
+  HRESULT __stdcall FinishAllStoryboards (
+    [in] double completionDeadline
+  );
+  HRESULT __stdcall AbandonAllStoryboards (void);
+  HRESULT __stdcall Update (
+    [in] double timeNow,
+    [out, defaultvalue(0)] UI_ANIMATION_UPDATE_RESULT *updateResult
+  );
+  HRESULT __stdcall GetVariableFromTag (
+    [in] IUnknown * object,
+    [in] unsigned int id,
+    [out, retval] IUIAnimationVariable2 **variable
+  );
+  HRESULT __stdcall GetStoryboardFromTag (
+    [in] IUnknown * object,
+    [in] unsigned int id,
+    [out, retval] IUIAnimationStoryboard2 **storyboard
+  );
+  HRESULT __stdcall EstimateNextEventTime (
+    [out, retval] double *seconds
+  );
+  HRESULT __stdcall GetStatus (
+    [out, retval] UI_ANIMATION_MANAGER_STATUS *status
+  );
+  HRESULT __stdcall SetAnimationMode (
+    [in] UI_ANIMATION_MODE mode
+  );
+  HRESULT __stdcall Pause (void);
+  HRESULT __stdcall Resume (void);
+  HRESULT __stdcall SetManagerEventHandler (
+    [in] IUIAnimationManagerEventHandler2 *handler,
+    [in, defaultvalue(FALSE)] long fRegisterForNextAnimationEvent
+  );
+  HRESULT __stdcall SetCancelPriorityComparison (
+    [in] IUIAnimationPriorityComparison2 *comparison
+  );
+  HRESULT __stdcall SetTrimPriorityComparison (
+    [in] IUIAnimationPriorityComparison2 *comparison
+  );
+  HRESULT __stdcall SetCompressPriorityComparison (
+    [in] IUIAnimationPriorityComparison2 *comparison
+  );
+  HRESULT __stdcall SetConcludePriorityComparison (
+    [in] IUIAnimationPriorityComparison2 *comparison
+  );
+  HRESULT __stdcall SetDefaultLongestAcceptableDelay (
+    [in] double delay
+  );
+  HRESULT __stdcall Shutdown (void);
+};
+[
+  uuid(4914B304-96AB-44D9-9E77-D5109B7E7466),
+  helpstring("IUIAnimationVariable2 Interface")
+]
+interface IUIAnimationVariable2 : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall GetDimension (
+    [out, retval] unsigned int *dimension
+  );
+  HRESULT __stdcall GetValue (
+    [out, retval] double *value
+  );
+  HRESULT __stdcall GetVectorValue (
+    [out] double *value,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall GetCurve (
+    [in] IDCompositionAnimation *animation
+  );
+  HRESULT __stdcall GetVectorCurve (
+    [in] IDCompositionAnimation **animation,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall GetFinalValue (
+    [out, retval] double *finalValue
+  );
+  HRESULT __stdcall GetFinalVectorValue (
+    [out] double *finalValue,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall GetPreviousValue (
+    [out, retval] double *previousValue
+  );
+  HRESULT __stdcall GetPreviousVectorValue (
+    [out] double *previousValue,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall GetIntegerValue (
+    [out, retval] int *value
+  );
+  HRESULT __stdcall GetIntegerVectorValue (
+    [out] int *value,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall GetFinalIntegerValue (
+    [out, retval] int *finalValue
+  );
+  HRESULT __stdcall GetFinalIntegerVectorValue (
+    [out] int *finalValue,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall GetPreviousIntegerValue (
+    [out, retval] int *previousValue
+  );
+  HRESULT __stdcall GetPreviousIntegerVectorValue (
+    [out] int *previousValue,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall GetCurrentStoryboard (
+    [out, retval] IUIAnimationStoryboard2 **storyboard
+  );
+  HRESULT __stdcall SetLowerBound (
+    [in] double bound
+  );
+  HRESULT __stdcall SetLowerBoundVector (
+    [out] double *bound,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall SetUpperBound (
+    [in] double bound
+  );
+  HRESULT __stdcall SetUpperBoundVector (
+    [out] double *bound,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall SetRoundingMode (
+    [in] UI_ANIMATION_ROUNDING_MODE mode
+  );
+  HRESULT __stdcall SetTag (
+    [in] IUnknown * object,
+    [in] unsigned int id
+  );
+  HRESULT __stdcall GetTag (
+    [out] IUnknown **object,
+    [out] unsigned int *id
+  );
+  HRESULT __stdcall SetVariableChangeHandler (
+    [in] IUIAnimationVariableChangeHandler2 *handler,
+    [in, defaultvalue(FALSE)] long fRegisterForNextAnimationEvent
+  );
+  HRESULT __stdcall SetVariableIntegerChangeHandler (
+    [in] IUIAnimationVariableIntegerChangeHandler2 *handler,
+    [in, defaultvalue(FALSE)] long fRegisterForNextAnimationEvent
+  );
+  HRESULT __stdcall SetVariableCurveChangeHandler (
+    [in] IUIAnimationVariableCurveChangeHandler2 *handler
+  );
+};
+[
+  uuid(CBFD91D9-51B2-45E4-B3DE-D19CCFB863C5),
+  helpstring("IDCompositionAnimation Interface")
+]
+interface IDCompositionAnimation : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall Reset (void);
+  HRESULT __stdcall SetAbsoluteBeginTime (
+    LARGE_INTEGER beginTime
+  );
+  HRESULT __stdcall AddCubic (
+    double beginOffset,
+    float constantCoefficient,
+    float linearCoefficient,
+    float quadraticCoefficient,
+    float cubicCoefficient
+  );
+  HRESULT __stdcall AddSinusoidal (
+    double beginOffset,
+    float bias,
+    float amplitude,
+    float frequency,
+    float phase
+  );
+  HRESULT __stdcall AddRepeat (
+    double beginOffset,
+    double durationToRepeat
+  );
+  HRESULT __stdcall End (
+    double endOffset,
+    float endValue
+  );
+};
+[
+  uuid(AE289CD2-12D4-4945-9419-9E41BE034DF2),
+  helpstring("IUIAnimationStoryboard2 Interface")
+]
+interface IUIAnimationStoryboard2 : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall AddTransition (
+    [in] IUIAnimationVariable2 *variable,
+    [in] IUIAnimationTransition2 *transition
+  );
+  HRESULT __stdcall AddKeyframeAtOffset (
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *existingKeyframe,
+    [in] double offset,
+    [out, retval] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 **keyframe
+  );
+  HRESULT __stdcall AddKeyframeAfterTransition (
+    [in] IUIAnimationTransition2 *transition,
+    [out, retval] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 **keyframe
+  );
+  HRESULT __stdcall AddTransitionAtKeyframe (
+    [in] IUIAnimationVariable2 *variable,
+    [in] IUIAnimationTransition2 *transition,
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *startKeyframe
+  );
+  HRESULT __stdcall AddTransitionBetweenKeyframes (
+    [in] IUIAnimationVariable2 *variable,
+    [in] IUIAnimationTransition2 *transition,
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *startKeyframe,
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *endKeyframe
+  );
+  HRESULT __stdcall RepeatBetweenKeyframes (
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *startKeyframe,
+    [in] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 *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 __stdcall HoldVariable (
+    [in] IUIAnimationVariable2 *variable
+  );
+  HRESULT __stdcall SetLongestAcceptableDelay (
+    [in] double delay
+  );
+  HRESULT __stdcall SetSkipDuration (
+    [in] double secondsDuration
+  );
+  HRESULT __stdcall Schedule (
+    [in] double timeNow,
+    [out, defaultvalue(0)] UI_ANIMATION_SCHEDULING_RESULT *schedulingResult
+  );
+  HRESULT __stdcall Conclude (void);
+  HRESULT __stdcall Finish (
+    [in] double completionDeadline
+  );
+  HRESULT __stdcall Abandon (void);
+  HRESULT __stdcall SetTag (
+    [in] IUnknown * object,
+    [in] unsigned int id
+  );
+  HRESULT __stdcall GetTag (
+    [out] IUnknown **object,
+    [out] unsigned int *id
+  );
+  HRESULT __stdcall GetStatus (
+    [out, retval] UI_ANIMATION_STORYBOARD_STATUS *status
+  );
+  HRESULT __stdcall GetElapsedTime (
+    [out] double *elapsedTime
+  );
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall GetDimension (
+    [out, retval] unsigned int *dimension
+  );
+  HRESULT __stdcall SetInitialValue (
+    [in] double value
+  );
+  HRESULT __stdcall SetInitialVectorValue (
+    [in] double *value,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall SetInitialVelocity (
+    [in] double velocity
+  );
+  HRESULT __stdcall SetInitialVectorVelocity (
+    [in] double *velocity,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall IsDurationKnown (void);
+  HRESULT __stdcall GetDuration (
+    [out, retval] double *duration
+  );
+};
+[
+  uuid(2D3B15A4-4762-47AB-A030-B23221DF3AE0),
+  helpstring("IUIAnimationLoopIterationChangeHandler2 Interface")
+]
+interface IUIAnimationLoopIterationChangeHandler2 : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall OnStoryboardStatusChanged (
+    [in] IUIAnimationStoryboard2 *storyboard,
+    [in] UI_ANIMATION_STORYBOARD_STATUS newStatus,
+    [in] UI_ANIMATION_STORYBOARD_STATUS previousStatus
+  );
+  HRESULT __stdcall OnStoryboardUpdated (
+    [in] IUIAnimationStoryboard2 *storyboard
+  );
+};
+[
+  uuid(63ACC8D2-6EAE-4BB0-B879-586DD8CFBE42),
+  helpstring("IUIAnimationVariableChangeHandler2 Interface")
+]
+interface IUIAnimationVariableChangeHandler2 : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall OnCurveChanged (
+    [in] IUIAnimationVariable2 *variable
+  );
+};
+[
+  uuid(F6E022BA-BFF3-42EC-9033-E073F33E83C3),
+  helpstring("IUIAnimationManagerEventHandler2 Interface")
+]
+interface IUIAnimationManagerEventHandler2 : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall CreateInstantaneousTransition (
+    [in] double finalValue,
+    [out, retval] IUIAnimationTransition **transition
+  );
+  HRESULT __stdcall CreateConstantTransition (
+    [in] double duration,
+    [out, retval] IUIAnimationTransition **transition
+  );
+  HRESULT __stdcall CreateDiscreteTransition (
+    [in] double delay,
+    [in] double finalValue,
+    [in] double hold,
+    [out, retval] IUIAnimationTransition **transition
+  );
+  HRESULT __stdcall CreateLinearTransition (
+    [in] double duration,
+    [in] double finalValue,
+    [out, retval] IUIAnimationTransition **transition
+  );
+  HRESULT __stdcall CreateLinearTransitionFromSpeed (
+    [in] double speed,
+    [in] double finalValue,
+    [out, retval] IUIAnimationTransition **transition
+  );
+  HRESULT __stdcall CreateSinusoidalTransitionFromVelocity (
+    [in] double duration,
+    [in] double period,
+    [out, retval] IUIAnimationTransition **transition
+  );
+  HRESULT __stdcall CreateSinusoidalTransitionFromRange (
+    [in] double duration,
+    [in] double minimumValue,
+    [in] double maximumValue,
+    [in] double period,
+    [in] UI_ANIMATION_SLOPE slope,
+    [out, retval] IUIAnimationTransition **transition
+  );
+  HRESULT __stdcall CreateAccelerateDecelerateTransition (
+    [in] double duration,
+    [in] double finalValue,
+    [in] double accelerationRatio,
+    [in] double decelerationRatio,
+    [out, retval] IUIAnimationTransition **transition
+  );
+  HRESULT __stdcall CreateReversalTransition (
+    [in] double duration,
+    [out, retval] IUIAnimationTransition **transition
+  );
+  HRESULT __stdcall CreateCubicTransition (
+    [in] double duration,
+    [in] double finalValue,
+    [in] double finalVelocity,
+    [out, retval] IUIAnimationTransition **transition
+  );
+  HRESULT __stdcall CreateSmoothStopTransition (
+    [in] double maximumDuration,
+    [in] double finalValue,
+    [out, retval] IUIAnimationTransition **transition
+  );
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall CreateInstantaneousTransition (
+    [in] double finalValue,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateInstantaneousVectorTransition (
+    [in] double *finalValue,
+    [in] unsigned int cDimension,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateConstantTransition (
+    [in] double duration,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateDiscreteTransition (
+    [in] double delay,
+    [in] double finalValue,
+    [in] double hold,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateDiscreteVectorTransition (
+    [in] double delay,
+    [in] double *finalValue,
+    [in] unsigned int cDimension,
+    [in] double hold,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateLinearTransition (
+    [in] double duration,
+    [in] double finalValue,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateLinearVectorTransition (
+    [in] double duration,
+    [in] double *finalValue,
+    [in] unsigned int cDimension,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateLinearTransitionFromSpeed (
+    [in] double speed,
+    [in] double finalValue,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateLinearVectorTransitionFromSpeed (
+    [in] double speed,
+    [in] double *finalValue,
+    [in] unsigned int cDimension,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateSinusoidalTransitionFromVelocity (
+    [in] double duration,
+    [in] double period,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateSinusoidalTransitionFromRange (
+    [in] double duration,
+    [in] double minimumValue,
+    [in] double maximumValue,
+    [in] double period,
+    [in] UI_ANIMATION_SLOPE slope,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateAccelerateDecelerateTransition (
+    [in] double duration,
+    [in] double finalValue,
+    [in] double accelerationRatio,
+    [in] double decelerationRatio,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateReversalTransition (
+    [in] double duration,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateCubicTransition (
+    [in] double duration,
+    [in] double finalValue,
+    [in] double finalVelocity,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateCubicVectorTransition (
+    [in] double duration,
+    [in] double *finalValue,
+    [in] double *finalVelocity,
+    [in] unsigned int cDimension,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateSmoothStopTransition (
+    [in] double maximumDuration,
+    [in] double finalValue,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateParabolicTransitionFromAcceleration (
+    [in] double finalValue,
+    [in] double finalVelocity,
+    [in] double acceleration,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+  HRESULT __stdcall CreateCubicBezierLinearTransition (
+    [in] double duration,
+    [in] double finalValue,
+    [in] double x1,
+    [in] double y1,
+    [in] double x2,
+    [in] double y2,
+    [out] IUIAnimationTransition2 **ppTransition
+  );
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall CreateTransition (
+    [in] IUIAnimationInterpolator *interpolator,
+    [out, retval] IUIAnimationTransition **transition
+  );
+};
+[
+  uuid(7815CBBA-DDF7-478C-A46C-7B6C738B7978),
+  helpstring("IUIAnimationInterpolator Interface")
+]
+interface IUIAnimationInterpolator : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall SetInitialValueAndVelocity (
+    [in] double initialValue,
+    [in] double initialVelocity
+  );
+  HRESULT __stdcall SetDuration (
+    [in] double duration
+  );
+  HRESULT __stdcall GetDuration (
+    [out, retval] double *duration
+  );
+  HRESULT __stdcall GetFinalValue (
+    [out, retval] double *value
+  );
+  HRESULT __stdcall InterpolateValue (
+    [in] double offset,
+    [out, retval] double *value
+  );
+  HRESULT __stdcall InterpolateVelocity (
+    [in] double offset,
+    [out, retval] double *velocity
+  );
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall CreateTransition (
+    [in] IUIAnimationInterpolator2 *interpolator,
+    [out, retval] IUIAnimationTransition2 **transition
+  );
+};
+[
+  uuid(EA76AFF8-EA22-4A23-A0EF-A6A966703518),
+  helpstring("IUIAnimationInterpolator2 Interface")
+]
+interface IUIAnimationInterpolator2 : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall GetDimension (
+    [out, retval] unsigned int *dimension
+  );
+  HRESULT __stdcall SetInitialValueAndVelocity (
+    [in] double *initialValue,
+    [in] double *initialVelocity,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall SetDuration (
+    [in] double duration
+  );
+  HRESULT __stdcall GetDuration (
+    [out, retval] double *duration
+  );
+  HRESULT __stdcall GetFinalValue (
+    [out] double *value,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall InterpolateValue (
+    [in] double offset,
+    [out] double *value,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall InterpolateVelocity (
+    [in] double offset,
+    [out] double *velocity,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall GetPrimitiveInterpolation (
+    [in] IUIAnimationPrimitiveInterpolation *interpolation,
+    [in] unsigned int cDimension
+  );
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall AddCubic (
+    [in] unsigned int dimension,
+    [in] double beginOffset,
+    [in] float constantCoefficient,
+    [in] float linearCoefficient,
+    [in] float quadraticCoefficient,
+    [in] float cubicCoefficient
+  );
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall SetTimerUpdateHandler (
+    [in] IUIAnimationTimerUpdateHandler *updateHandler,
+    [in] UI_ANIMATION_IDLE_BEHAVIOR idleBehavior
+  );
+  HRESULT __stdcall SetTimerEventHandler (
+    [in] IUIAnimationTimerEventHandler *handler
+  );
+  HRESULT __stdcall Enable (void);
+  HRESULT __stdcall Disable (void);
+  HRESULT __stdcall IsEnabled (void);
+  HRESULT __stdcall GetTime (
+    [out] double *seconds
+  );
+  HRESULT __stdcall SetFrameRateThreshold (
+    [in] unsigned int framesPerSecond
+  );
+};
+[
+  uuid(195509B7-5D5E-4E3E-B278-EE3759B367AD),
+  helpstring("IUIAnimationTimerUpdateHandler Interface")
+]
+interface IUIAnimationTimerUpdateHandler : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall OnUpdate (
+    [in] double timeNow,
+    [out, retval] UI_ANIMATION_UPDATE_RESULT *result
+  );
+  HRESULT __stdcall SetTimerClientEventHandler (
+    [in] IUIAnimationTimerClientEventHandler *handler
+  );
+  HRESULT __stdcall ClearTimerClientEventHandler (void);
+};
+[
+  uuid(BEDB4DB6-94FA-4BFB-A47F-EF2D9E408C25),
+  helpstring("IUIAnimationTimerClientEventHandler Interface")
+]
+interface IUIAnimationTimerClientEventHandler : IUnknown
+{
+  [id(0x60010000)]
+  HRESULT __stdcall 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
+{
+  [id(0x60010000)]
+  HRESULT __stdcall OnPreUpdate (void);
+  HRESULT __stdcall OnPostUpdate (void);
+  HRESULT __stdcall OnRenderingTooSlow (
+    [in] unsigned int framesPerSecond
+  );
+};
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to