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]>
---
Hi Jacek! Thanks for reviewing. I've implemented your proposals. And also fixed erroneous values of the enum members ('genidl' wrote wrong values there).

This is updated IDL file. The header and Makefiles come next.

Please review.
---
mingw-w64-headers/include/uianimation.idl | 1242 +++++++++++++++++++++++++++++
 1 file changed, 1242 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..505ad9dc
--- /dev/null
+++ b/mingw-w64-headers/include/uianimation.idl
@@ -0,0 +1,1242 @@
+/**
+ * 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 __MIDL___MIDL_itf_UIAnimation_0000_0002_0003
+{
+  int _;
+} *UI_ANIMATION_KEYFRAME;
+
+[
+  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
+{
+  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] unsigned int id,
+    [out, retval] IUIAnimationVariable **variable
+  );
+  HRESULT GetStoryboardFromTag(
+    [in] IUnknown * object,
+    [in] unsigned int 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] unsigned int 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] 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