SharpDX.Animation

Defines an animation timer, which provides services for managing animation timing.

A timer helps to manage animation rendering by automatically indicating the passage of a small unit of time, called a tick. In turn, ticks can trigger animation rendering or other animation events. Each animation timer provides timing for a single animation manager.

The timing system is designed to provide the necessary timing services needed to support animations and does not require applications to play an explicit role in generating the ticks. The animation timer can be set up to automatically update the animation manager for each tick without application-side handling.

An application may not need to use a timer with Windows Animation, depending on the graphics platform it is using. For example, an application drawing with Direct2D or Direct3D can synchronize to monitor's refresh rate, yielding very smooth animation. However, such applications may still find the interface useful for its GetTime method, which returns an accurate system time in UI_ANIMATION_SECONDS, the units used throughout the Windows Animation API.

dd371831 IUIAnimationTimer IUIAnimationTimer
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Specifies a timer update handler.

A timer update handler, or null (see Remarks). The specified object must implement the interface.

A member of that specifies the behavior of the timer when it is idle.

If the method succeeds, it returns . If the update handler is already connected to a timer, this method returns UI_E_TIMER_CLIENT_ALREADY_CONNECTED. Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

The timer update handler receives time updates (ticks) from the timer. The timer indicates an update by calling the method on the specified handler.

Passing null for the updateHandler parameter causes Windows Animation to release its reference to any handler object you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

dd371884 HRESULT IUIAnimationTimer::SetTimerUpdateHandler([In, Optional] IUIAnimationTimerUpdateHandler* updateHandler,[In] UI_ANIMATION_IDLE_BEHAVIOR idleBehavior) IUIAnimationTimer::SetTimerUpdateHandler

Specifies a timer event handler.

A timer event handler. The specified object must implement the interface or be null. See Remarks.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Timing events include the OnPreUpdate, OnPostUpdate, and OnRenderingTooSlow methods of the interface.

Passing null for the handler parameter causes Windows Animation to release its reference to any handler object you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

dd371881 HRESULT IUIAnimationTimer::SetTimerEventHandler([In, Optional] IUIAnimationTimerEventHandler* handler) IUIAnimationTimer::SetTimerEventHandler

Enables the animation timer.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

dd371866 HRESULT IUIAnimationTimer::Enable() IUIAnimationTimer::Enable

Disables the animation timer.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

dd371863 HRESULT IUIAnimationTimer::Disable() IUIAnimationTimer::Disable

Determines whether the timer is currently enabled.

Returns if the animation timer is enabled, S_FALSE if the animation timer is disabled, or an error code. See Windows Animation Error Codes for a list of error codes.

dd371873 HRESULT IUIAnimationTimer::IsEnabled() IUIAnimationTimer::IsEnabled

Gets the current time.

The current time, in UI_ANIMATION_SECONDS.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method can be used in both the application-driven and timer-driven configurations to retrieve the system time in UI_ANIMATION_SECONDS, the units used throughout the Windows Animation API.

dd371869 HRESULT IUIAnimationTimer::GetTime([Out] double* seconds) IUIAnimationTimer::GetTime

Sets the frame rate below which the timer notifies the application that rendering is too slow.

The minimum desirable frame rate, in frames per second.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

If the rendering frame rate for an animation falls below the specified frame rate, an event is raised.

dd756727 HRESULT IUIAnimationTimer::SetFrameRateThreshold([In] unsigned int framesPerSecond) IUIAnimationTimer::SetFrameRateThreshold
Initializes a new instance of the class.

Determines whether the timer is currently enabled.

true if the timer is enabled

Gets the current time.

This method can be used in both the application-driven and timer-driven configurations to retrieve the system time in UI_ANIMATION_SECONDS, the units used throughout the Windows Animation API.

dd371869 GetTime GetTime HRESULT IUIAnimationTimer::GetTime([Out] double* seconds)

Sets the frame rate below which the timer notifies the application that rendering is too slow.

If the rendering frame rate for an animation falls below the specified frame rate, an event is raised.

dd756727 SetFrameRateThreshold SetFrameRateThreshold HRESULT IUIAnimationTimer::SetFrameRateThreshold([In] unsigned int framesPerSecond)

Defines a transition, which determines how an animation variable changes over time.

is one of the primary interfaces used to add animation to an application, along with the and interfaces.

UIAnimationTransitionLibrary implements a library of standard transitions.

dd371887 IUIAnimationTransition IUIAnimationTransition
Initializes a new instance of the class. The factory. The interpolator. Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Sets the initial value for the transition.

The initial value for the transition.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method should not be called after the transition has been added to a storyboard.

dd371960 HRESULT IUIAnimationTransition::SetInitialValue([In] double value) IUIAnimationTransition::SetInitialValue

Sets the initial velocity for the transition.

The initial velocity for the transition.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method should not be called after the transition has been added to a storyboard.

dd371964 HRESULT IUIAnimationTransition::SetInitialVelocity([In] double velocity) IUIAnimationTransition::SetInitialVelocity

Determines whether a transition's duration is currently known.

Returns if the duration is known, S_FALSE if the duration is not known, or an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_STORYBOARD_ACTIVE

The storyboard for this transition is currently in schedule.

?

This method should not be called when the storyboard to which the transition has been added is scheduled or playing.

dd371957 HRESULT IUIAnimationTransition::IsDurationKnown() IUIAnimationTransition::IsDurationKnown

Gets the duration of the transition.

The duration of the transition, in seconds.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_VALUE_NOT_DETERMINED

The requested value for the duration cannot be determined.

UI_E_STORYBOARD_ACTIVE

The storyboard for this transition is currently in the schedule.

?

An application should typically call the method before calling this method. This method should not be called when the storyboard to which the transition has been added is scheduled or playing.

dd371951 HRESULT IUIAnimationTransition::GetDuration([Out] double* duration) IUIAnimationTransition::GetDuration

Determines whether a transition's duration is currently known.

True if the duration is known

Sets the initial value for the transition.

This method should not be called after the transition has been added to a storyboard.

dd371960 SetInitialValue SetInitialValue HRESULT IUIAnimationTransition::SetInitialValue([In] double value)

Sets the initial velocity for the transition.

This method should not be called after the transition has been added to a storyboard.

dd371964 SetInitialVelocity SetInitialVelocity HRESULT IUIAnimationTransition::SetInitialVelocity([In] double velocity)

Gets the duration of the transition.

An application should typically call the method before calling this method. This method should not be called when the storyboard to which the transition has been added is scheduled or playing.

dd371951 GetDuration GetDuration HRESULT IUIAnimationTransition::GetDuration([Out] double* duration)

Defines a library of standard transitions.

Windows Animation includes a library of common transitions that developers can apply to variables through a storyboard. The parameters for specifying a transition depend on the type of transition. For some transitions, the duration of the transition is an explicit parameter; for others, the duration is determined by other parameters, such as speed or acceleration when the transition begins. A transition's initial value or velocity can be overridden if a discontinuous jump is desired, and duration can be queried after the transition is added to a storyboard.

If an application requires an effect that cannot be specified using the transition library, developers can implement custom transitions. A custom transition is created by first implementing the interpolator function for the transition, and then by using a factory object to generate transitions from interpolators. An interpolator must implement the interface; an implementation of the transition factory object is provided by UIAnimationTransitionFactory.

dd371897 IUIAnimationTransitionLibrary IUIAnimationTransitionLibrary
Initializes a new instance of the class. Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Creates an instantaneous transition.

The value of the animation variable at the end of the transition.

The new instantaneous transition.

During an instantaneous transition, the value of the animation variable changes instantly from its current value to a specified final value. The duration of this transition is always zero.

The figure below shows the effect on an animation variable over time during an instantaneous transition.

dd371914 HRESULT IUIAnimationTransitionLibrary::CreateInstantaneousTransition([In] double finalValue,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateInstantaneousTransition

Creates a constant transition.

The duration of the transition.

The new constant transition.

During a constant transition, the value of an animation variable remains at the initial value over the duration of the transition.

The figure below shows the effect on an animation variable over time during a constant-duration transition.

dd371903 HRESULT IUIAnimationTransitionLibrary::CreateConstantTransition([In] double duration,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateConstantTransition

Creates a discrete transition.

The amount of time by which to delay the instantaneous switch to the final value.

The value of the animation variable at the end of the transition.

The amount of time by which to hold the variable at its final value.

The new discrete transition.

During a discrete transition, the animation variable remains at the initial value for a specified delay time, then switches instantaneously to a specified final value and remains at that value for a given hold time.

The figure below shows the effect on an animation variable over time during a discrete transition.

dd371911 HRESULT IUIAnimationTransitionLibrary::CreateDiscreteTransition([In] double delay,[In] double finalValue,[In] double hold,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateDiscreteTransition

Creates a linear transition.

The duration of the transition.

The value of the animation variable at the end of the transition.

The new linear transition.

During a linear transition, the value of the animation variable transitions linearly from its initial value to a specified final value.

The figure below shows the effect on an animation variable over time during a linear transition.

dd371920 HRESULT IUIAnimationTransitionLibrary::CreateLinearTransition([In] double duration,[In] double finalValue,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateLinearTransition

Creates a linear-speed transition.

The absolute value of the velocity.

The value of the animation variable at the end of the transition.

The new linear-speed transition.

During a linear-speed transition, the value of the animation variable changes at a specified rate. The duration of the transition is determined by the difference between the initial value and the specified final value.

The figure below shows the effect on an animation variable over time during a linear-speed transition.

dd371925 HRESULT IUIAnimationTransitionLibrary::CreateLinearTransitionFromSpeed([In] double speed,[In] double finalValue,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateLinearTransitionFromSpeed

Creates a sinusoidal-velocity transition, with an amplitude determined by the initial velocity.

The duration of the transition.

The period of oscillation of the sinusoidal wave in seconds.

The new sinusoidal-velocity transition.

The value of the animation variable oscillates around the initial value over the entire duration of a sinusoidal-range transition. The amplitude of the oscillation is determined by the velocity when the transition begins.

The figure below shows the effect on an animation variable over time during a sinusoidal-velocity transition.

dd371945 HRESULT IUIAnimationTransitionLibrary::CreateSinusoidalTransitionFromVelocity([In] double duration,[In] double period,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateSinusoidalTransitionFromVelocity

Creates a sinusoidal-range transition, with a specified range of oscillation.

The duration of the transition.

The value of the animation variable at a trough of the sinusoidal wave.

The value of the animation variable at a peak of the sinusoidal wave.

The period of oscillation of the sinusoidal wave, in seconds.

The slope at the start of the transition.

The new sinusoidal-range transition.

The value of the animation variable fluctuates between the specified minimum and maximum values over the entire duration of a sinusodial-range transition. The slope parameter is used to disambiguate between the two possible sine waves specified by the other parameters.

The figure below shows the effect on an animation variable over time during a sinusoidal-range transition. Passing in the enumeration value yields a wave like the solid curve shown in the figure, whereas the value yields a wave like the dashed curve.

dd371942 HRESULT IUIAnimationTransitionLibrary::CreateSinusoidalTransitionFromRange([In] double duration,[In] double minimumValue,[In] double maximumValue,[In] double period,[In] UI_ANIMATION_SLOPE slope,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateSinusoidalTransitionFromRange

Creates an accelerate-decelerate transition.

The duration of the transition.

The value of the animation variable at the end of the transition.

The ratio of the time spent accelerating to the duration.

The ratio of the time spent decelerating to the duration.

The new accelerate-decelerate transition.

During an accelerate-decelerate transition, the animation variable speeds up and then slows down over the duration of the transition, ending at a specified value. You can control how quickly the variable accelerates and decelerates independently, by specifying different acceleration and deceleration ratios.

When the initial velocity is zero, the acceleration ratio is the fraction of the duration that the variable will spend accelerating; likewise with the deceleration ratio. If the initial velocity is nonzero, it is the fraction of the time between the velocity reaching zero and the end of transition. The acceleration ratio and the deceleration ratio should sum to a maximum of 1.0.

The figures below show the effect on animation variables with different initial velocities during accelerate-decelerate transitions.

Note??d' in the above figure on the right shows the time between the velocity reaching zero and the end of the transition.

dd371900 HRESULT IUIAnimationTransitionLibrary::CreateAccelerateDecelerateTransition([In] double duration,[In] double finalValue,[In] double accelerationRatio,[In] double decelerationRatio,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateAccelerateDecelerateTransition

Creates a reversal transition.

The duration of the transition.

The new reversal transition.

A reversal transition smoothly changes direction over the specified duration. The final value will be the same as the initial value and the final velocity will be the negative of the initial velocity. The figure below shows such a reversal transition.

dd371938 HRESULT IUIAnimationTransitionLibrary::CreateReversalTransition([In] double duration,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateReversalTransition

Creates a cubic transition.

The duration of the transition.

The value of the animation variable at the end of the transition.

The velocity of the variable at the end of the transition.

The new cubic transition.

During a cubic transition, the value of the animation variable changes from its initial value to a specified final value over the duration of the transition, ending at a specified velocity.

The figure below shows the effect on an animation variable over time during a cubic transition.

dd756728 HRESULT IUIAnimationTransitionLibrary::CreateCubicTransition([In] double duration,[In] double finalValue,[In] double finalVelocity,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateCubicTransition

Creates a smooth-stop transition.

The maximum duration of the transition.

The value of the animation variable at the end of the transition.

The new smooth-stop transition.

A smooth-stop transition slows down as it approaches the specified final value, and reaches it with a velocity of zero. The duration of the transition is determined by the initial velocity, the difference between the initial and final values, and the specified maximum duration. If there is no solution consisting of a single parabolic arc, this method creates a cubic transition.

The figure below shows the effect on an animation variable over time during a smooth-stop transition.

dd756729 HRESULT IUIAnimationTransitionLibrary::CreateSmoothStopTransition([In] double maximumDuration,[In] double finalValue,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateSmoothStopTransition

Creates a parabolic-acceleration transition.

The value of the animation variable at the end of the transition.

The velocity at the end of the transition.

The acceleration during the transition.

The new parabolic-acceleration transition.

During a parabolic-acceleration transition, the value of the animation variable changes from the initial value to the final value ending at the specified velocity. You can control how quickly the variable reaches the final value by specifying the rate of acceleration.

The figure below shows the effect on an animation variable over time during a parabolic-acceleration transition.

dd371934 HRESULT IUIAnimationTransitionLibrary::CreateParabolicTransitionFromAcceleration([In] double finalValue,[In] double finalVelocity,[In] double acceleration,[Out] IUIAnimationTransition** transition) IUIAnimationTransitionLibrary::CreateParabolicTransitionFromAcceleration
No documentation. __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 __MIDL___MIDL_itf_UIAnimation_0000_0002_0003 Represents the implicit keyframe at the start of every storyboard. Initializes a new instance of the struct. The id. No documentation. void* _ void _ Internal PriorityComparison Callback

Defines a method for priority comparison that the animation manager uses to resolve scheduling conflicts.

A single animation variable can be included in multiple storyboards, but multiple storyboards cannot animate the same variable at the same time. If a newly scheduled storyboard attempts to animate one or more variables that are currently scheduled for animation by different storyboards, a scheduling conflict occurs. To determine which storyboard has priority, the animation manager can call HasPriority on one or more priority comparison handlers provided by the application.

dd371757 IUIAnimationPriorityComparison IUIAnimationPriorityComparison
No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT IUIAnimationPriorityComparison::HasPriority([In] IUIAnimationStoryboard* scheduledStoryboard,[In] IUIAnimationStoryboard* newStoryboard,[In] UI_ANIMATION_PRIORITY_EFFECT priorityEffect) Return a pointer to the unmanaged version of this callback. The callback. A pointer to a shadow c++ callback HRESULT IUIAnimationPriorityComparison::OnManagerStatusChanged([In] UI_ANIMATION_MANAGER_STATUS newStatus,[In] UI_ANIMATION_MANAGER_STATUS previousStatus)

Defines which aspects of an interpolator depend on a given input.

Multiple values can be combined using a bitwise-OR operation.

dd317034 UI_ANIMATION_DEPENDENCIES UI_ANIMATION_DEPENDENCIES

No aspect depends on the input.

dd317034 UI_ANIMATION_DEPENDENCY_NONE UI_ANIMATION_DEPENDENCY_NONE

The intermediate values depend on the input.

dd317034 UI_ANIMATION_DEPENDENCY_INTERMEDIATE_VALUES UI_ANIMATION_DEPENDENCY_INTERMEDIATE_VALUES

The final value depends on the input.

dd317034 UI_ANIMATION_DEPENDENCY_FINAL_VALUE UI_ANIMATION_DEPENDENCY_FINAL_VALUE

The final velocity depends on the input.

dd317034 UI_ANIMATION_DEPENDENCY_FINAL_VELOCITY UI_ANIMATION_DEPENDENCY_FINAL_VELOCITY

The duration depends on the input.

dd317034 UI_ANIMATION_DEPENDENCY_DURATION UI_ANIMATION_DEPENDENCY_DURATION

Defines the behavior of a timer when the animation manager is idle.

dd317036 UI_ANIMATION_IDLE_BEHAVIOR UI_ANIMATION_IDLE_BEHAVIOR

The timer continues to generate timer events (is enabled) when the animation manager is idle.

dd317036 UI_ANIMATION_IDLE_BEHAVIOR_CONTINUE UI_ANIMATION_IDLE_BEHAVIOR_CONTINUE

The timer is suspended (disabled) when the animation manager is idle.

dd317036 UI_ANIMATION_IDLE_BEHAVIOR_DISABLE UI_ANIMATION_IDLE_BEHAVIOR_DISABLE

Defines the activity status of an animation manager.

dd317043 UI_ANIMATION_MANAGER_STATUS UI_ANIMATION_MANAGER_STATUS

The animation manager is idle; no animations are currently playing.

dd317043 UI_ANIMATION_MANAGER_IDLE UI_ANIMATION_MANAGER_IDLE

The animation manager is busy; at least one animation is currently playing or scheduled.

dd317043 UI_ANIMATION_MANAGER_BUSY UI_ANIMATION_MANAGER_BUSY

Defines animation modes.

dd317046 UI_ANIMATION_MODE UI_ANIMATION_MODE

Animation is disabled.

dd317046 UI_ANIMATION_MODE_DISABLED UI_ANIMATION_MODE_DISABLED

The animation mode is managed by the system.

dd317046 UI_ANIMATION_MODE_SYSTEM_DEFAULT UI_ANIMATION_MODE_SYSTEM_DEFAULT

Animation is enabled.

dd317046 UI_ANIMATION_MODE_ENABLED UI_ANIMATION_MODE_ENABLED

Defines potential effects on a storyboard if a priority comparison returns false.

This enumeration is used as the priorityEffect parameter of , informing the client of the potential effect on the storyboard to be scheduled when the return value is false (S_FALSE). means that the attempt to schedule the storyboard might fail if the return value is false. means that the attempt to schedule the storyboard will succeed, but if the return value is false, the storyboard could play later than it would otherwise.

This enumeration can help an application decide how aggressive to be about reducing latency in the UI. For example, if the application returns true when the effect is , then other animations might get canceled or compressed even though doing so was not strictly necessary to play a new animation within the application-specified longest acceptable delay.

dd317049 UI_ANIMATION_PRIORITY_EFFECT UI_ANIMATION_PRIORITY_EFFECT

This storyboard might not be successfully scheduled.

dd317049 UI_ANIMATION_PRIORITY_EFFECT_FAILURE UI_ANIMATION_PRIORITY_EFFECT_FAILURE

The storyboard will be scheduled, but might start playing later.

dd317049 UI_ANIMATION_PRIORITY_EFFECT_DELAY UI_ANIMATION_PRIORITY_EFFECT_DELAY

Defines the pattern for a loop iteration.

hh448672 UI_ANIMATION_REPEAT_MODE UI_ANIMATION_REPEAT_MODE

The start of a loop begins with the first value (v1->v2, v1->v2, v1->v2, and so on).

hh448672 UI_ANIMATION_REPEAT_MODE_NORMAL UI_ANIMATION_REPEAT_MODE_NORMAL

The start of a loop alternates between values (v1->v2, v2->v1, v1->v2, and so on).

hh448672 UI_ANIMATION_REPEAT_MODE_ALTERNATE UI_ANIMATION_REPEAT_MODE_ALTERNATE

Defines the rounding modes to be used when the value of an animation variable is converted from a floating-point type to an integer type.

dd371966 UI_ANIMATION_ROUNDING_MODE UI_ANIMATION_ROUNDING_MODE

Round to the nearest integer.

dd371966 UI_ANIMATION_ROUNDING_NEAREST UI_ANIMATION_ROUNDING_NEAREST

Round down.

dd371966 UI_ANIMATION_ROUNDING_FLOOR UI_ANIMATION_ROUNDING_FLOOR

Round up.

dd371966 UI_ANIMATION_ROUNDING_CEILING UI_ANIMATION_ROUNDING_CEILING

Defines results for storyboard scheduling.

returns only if the application attempts to schedule a storyboard during a callback to .

dd371967 UI_ANIMATION_SCHEDULING_RESULT UI_ANIMATION_SCHEDULING_RESULT

Scheduling failed for an unexpected reason.

dd371967 UI_ANIMATION_SCHEDULING_UNEXPECTED_FAILURE UI_ANIMATION_SCHEDULING_UNEXPECTED_FAILURE

Scheduling failed because a scheduling conflict occurred and the currently scheduled storyboard has higher priority. For more information, see .

dd371967 UI_ANIMATION_SCHEDULING_INSUFFICIENT_PRIORITY UI_ANIMATION_SCHEDULING_INSUFFICIENT_PRIORITY

Scheduling failed because the storyboard is already scheduled.

dd371967 UI_ANIMATION_SCHEDULING_ALREADY_SCHEDULED UI_ANIMATION_SCHEDULING_ALREADY_SCHEDULED

Scheduling succeeded.

dd371967 UI_ANIMATION_SCHEDULING_SUCCEEDED UI_ANIMATION_SCHEDULING_SUCCEEDED

Scheduling is deferred and will be attempted when the current callback completes.

dd371967 UI_ANIMATION_SCHEDULING_DEFERRED UI_ANIMATION_SCHEDULING_DEFERRED

Defines animation slope characteristics.

dd371969 UI_ANIMATION_SLOPE UI_ANIMATION_SLOPE

An increasing slope.

dd371969 UI_ANIMATION_SLOPE_INCREASING UI_ANIMATION_SLOPE_INCREASING

A decreasing slope.

dd371969 UI_ANIMATION_SLOPE_DECREASING UI_ANIMATION_SLOPE_DECREASING

Defines the status for a storyboard.

Unless is called from a handler for OnStoryboardStatusChanged events, it returns only the following status values:

All status values can be passed to .

The following diagram illustrates the transitions between these states.

dd371971 UI_ANIMATION_STORYBOARD_STATUS UI_ANIMATION_STORYBOARD_STATUS

The storyboard has never been scheduled.

dd371971 UI_ANIMATION_STORYBOARD_BUILDING UI_ANIMATION_STORYBOARD_BUILDING

The storyboard is scheduled to play.

dd371971 UI_ANIMATION_STORYBOARD_SCHEDULED UI_ANIMATION_STORYBOARD_SCHEDULED

The storyboard was canceled.

dd371971 UI_ANIMATION_STORYBOARD_CANCELLED UI_ANIMATION_STORYBOARD_CANCELLED

The storyboard is currently playing.

dd371971 UI_ANIMATION_STORYBOARD_PLAYING UI_ANIMATION_STORYBOARD_PLAYING

The storyboard was truncated.

dd371971 UI_ANIMATION_STORYBOARD_TRUNCATED UI_ANIMATION_STORYBOARD_TRUNCATED

The storyboard has finished playing.

dd371971 UI_ANIMATION_STORYBOARD_FINISHED UI_ANIMATION_STORYBOARD_FINISHED

The storyboard is built and ready for scheduling.

dd371971 UI_ANIMATION_STORYBOARD_READY UI_ANIMATION_STORYBOARD_READY

Scheduling the storyboard failed because a scheduling conflict occurred and the currently scheduled storyboard has higher priority.

dd371971 UI_ANIMATION_STORYBOARD_INSUFFICIENT_PRIORITY UI_ANIMATION_STORYBOARD_INSUFFICIENT_PRIORITY

Defines activity status for a timer's client.

dd371973 UI_ANIMATION_TIMER_CLIENT_STATUS UI_ANIMATION_TIMER_CLIENT_STATUS

The client is idle.

dd371973 UI_ANIMATION_TIMER_CLIENT_IDLE UI_ANIMATION_TIMER_CLIENT_IDLE

The client is busy.

dd371973 UI_ANIMATION_TIMER_CLIENT_BUSY UI_ANIMATION_TIMER_CLIENT_BUSY

Defines results for animation updates.

dd371974 UI_ANIMATION_UPDATE_RESULT UI_ANIMATION_UPDATE_RESULT

No animation variables have changed.

dd371974 UI_ANIMATION_UPDATE_NO_CHANGE UI_ANIMATION_UPDATE_NO_CHANGE

One or more animation variables has changed.

dd371974 UI_ANIMATION_UPDATE_VARIABLES_CHANGED UI_ANIMATION_UPDATE_VARIABLES_CHANGED

Defines methods for creating a custom interpolator.

Client applications can use the transitions provided in or in a library provided by a third party; however, if you need custom behavior, you can create your own transitions by implementing the interface.

Before Windows Animation can use your custom interpolator, you must wrap it in an object that implements by calling the method and passing in the custom interpolator. After the interpolator is wrapped, client applications interact with your interpolator using the interface.

Custom interpolators can be reused across applications, but it is recommended that they be exposed using factory interfaces that return interfaces.

dd371665 IUIAnimationInterpolator IUIAnimationInterpolator
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Sets the initial value and velocity at the start of the transition.

The initial value.

The initial velocity.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Windows Animation always calls SetInitialValueAndVelocity before calling the other methods of at different offsets. However, it can be called multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to these methods reflect the updated state.

dd371682 HRESULT IUIAnimationInterpolator::SetInitialValueAndVelocity([In] double initialValue,[In] double initialVelocity) IUIAnimationInterpolator::SetInitialValueAndVelocity

Sets the duration of the transition.

The duration of the transition.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Windows Animation calls this method only after calling the GetDependencies method, and only if that call returns as one of its durationDependencies flags.

Typically, an interpolator with a duration dependency will have a duration parameter in its associated creation method of . The interpolator should store its duration when first initialized and overwrite it when SetDuration is called.

Windows Animation always calls the SetInitialValueAndVelocity method to set the initial value and velocity before calling SetDuration, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity and SetDuration multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to SetDuration reflect the updated state.

dd371679 HRESULT IUIAnimationInterpolator::SetDuration([In] double duration) IUIAnimationInterpolator::SetDuration

Gets the duration of a transition.

The duration of the transition.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Windows Animation always calls the SetInitialValueAndVelocity method to set the initial value and velocity before calling GetDuration, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to GetDuration reflect the updated state.

dd371674 HRESULT IUIAnimationInterpolator::GetDuration([Out] double* duration) IUIAnimationInterpolator::GetDuration

Gets the final value at the end of the transition.

The final value.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Windows Animation always calls the SetInitialValueAndVelocity method to set the initial value and velocity before calling GetFinalValue, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to GetFinalValue reflect the updated state.

dd371676 HRESULT IUIAnimationInterpolator::GetFinalValue([Out] double* value) IUIAnimationInterpolator::GetFinalValue

Interpolates the value of an animation variable at the specified offset.

The offset from the start of the transition.

This parameter is always greater than or equal to zero and less than the duration of the transition. This method is not called if the duration of the transition is zero.

The interpolated value.

Windows Animation always calls the SetInitialValueAndVelocity method to set the initial value and velocity before calling InterpolateValue, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to InterpolateValue reflect the updated state.

dd756725 HRESULT IUIAnimationInterpolator::InterpolateValue([In] double offset,[Out] double* value) IUIAnimationInterpolator::InterpolateValue

Interpolates the velocity, or rate of change, at the specified offset.

The offset from the start of the transition.

The offset is always greater than or equal to zero and less than or equal to the duration of the transition. This method is not called if the duration of the transition is zero.

The interpolated velocity.

Windows Animation always calls the SetInitialValueAndVelocity method to set the initial value and velocity before calling InterpolateVelocity, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to InterpolateVelocity reflect the updated state.

dd756726 HRESULT IUIAnimationInterpolator::InterpolateVelocity([In] double offset,[Out] double* velocity) IUIAnimationInterpolator::InterpolateVelocity

Gets the aspects of the interpolator that depend on the initial value or velocity passed to SetInitialValueAndVelocity, or that depend on the duration passed to SetDuration.

No documentation. No documentation. No documentation.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method is called to identify which aspects of the custom interpolator are affected by certain inputs: value, velocity, and duration. For each of these inputs, the interpolator returns either of the following:

  • The bitwise-OR of any members of that apply.
  • if nothing depends on the input.

For example, consider an interpolator (1) that accepts a final value as a parameter, (2) that always comes to a gradual stop at that final value, and (3) whose duration is determined by the difference between the final and initial values. The interpolator should return |UI_ANIMATION_DURATION for initialValueDependencies. It should not return because this is set when the interpolator is created and is not affected by the initial value. Likewise it should not return because the slope of the curve is defined to always be zero when it reaches the final value.

It is important that an interpolator return correct set of flags. If a flag is not present for an output, Windows Animation assumes that the corresponding parameter does not affect that aspect of the interpolator's results. For example, if the custom interpolator does not include for initialVelocityDependencies, Windows Animation may call SetInitialValueAndVelocity with an arbitrary velocity parameter, then call GetFinalValue to determine the final value. The interpolator's implementation of GetFinalValue must return the same result no matter what velocity parameter has been passed to SetInitialValueAndVelocity because the interpolator has claimed that the transition's final value does not depend on the initial velocity.

Note??If the flags returned for durationDependencies do not include , SetDuration will never be called on the interpolator.

dd371672 HRESULT IUIAnimationInterpolator::GetDependencies([Out] UI_ANIMATION_DEPENDENCIES* initialValueDependencies,[Out] UI_ANIMATION_DEPENDENCIES* initialVelocityDependencies,[Out] UI_ANIMATION_DEPENDENCIES* durationDependencies) IUIAnimationInterpolator::GetDependencies

Gets or sets the duration of a transition.

Windows Animation always calls the SetInitialValueAndVelocity method to set the initial value and velocity before calling GetDuration, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to GetDuration reflect the updated state.

dd371674 GetDuration / SetDuration GetDuration HRESULT IUIAnimationInterpolator::GetDuration([Out] double* duration)

Gets the final value at the end of the transition.

Windows Animation always calls the SetInitialValueAndVelocity method to set the initial value and velocity before calling GetFinalValue, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to GetFinalValue reflect the updated state.

dd371676 GetFinalValue GetFinalValue HRESULT IUIAnimationInterpolator::GetFinalValue([Out] double* value)

Extends the interface that defines methods for creating a custom interpolator. supports interpolation in a given dimension.

Client applications can use the transitions provided in the or interfaces, or in a library provided by a third party; however, custom transitions can be created by implementing the or interfaces.

Before Windows Animation can use your custom interpolator, you must wrap it in an object that implements the interface (by calling ) or the interface (by calling ) and passing in the custom interpolator. After the interpolator wrapper has been created, client applications interact with your interpolator using the or interfaces.

Custom interpolators can be reused across applications, but it is recommended that they be exposed using factory interfaces that return an interface or an interface.

hh437121 IUIAnimationInterpolator2 IUIAnimationInterpolator2
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Gets the number of dimensions that require interpolation.

The number of dimensions.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh437125 HRESULT IUIAnimationInterpolator2::GetDimension([Out] unsigned int* dimension) IUIAnimationInterpolator2::GetDimension

Sets the initial value and velocity of the transition for the given dimension.

The initial value.

The initial velocity.

The dimension in which to set the initial value or velocity of the transition.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Windows Animation always calls SetInitialValueAndVelocity before calling the other methods of at different offsets. However, SetInitialValueAndVelocity can be called multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to these methods reflect the updated state.

hh437132 HRESULT IUIAnimationInterpolator2::SetInitialValueAndVelocity([In, Buffer] double* initialValue,[In, Buffer] double* initialVelocity,[In] unsigned int cDimension) IUIAnimationInterpolator2::SetInitialValueAndVelocity

Sets the duration of the transition in the given dimension.

The duration of the transition.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Windows Animation calls this method only after calling the method, and only if that call returns as one of its durationDependencies flags.

Typically, an interpolator with a duration dependency has a duration parameter in the or creation method that is associated with that interpolator. The interpolator should store its duration when first initialized and overwrite the duration when SetDuration is called.

Windows Animation always calls the method to set the initial value and velocity before calling SetDuration, so a custom interpolator doesn't need to check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity and SetDuration multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to SetDuration reflect the updated state.

hh437131 HRESULT IUIAnimationInterpolator2::SetDuration([In] double duration) IUIAnimationInterpolator2::SetDuration

Gets the duration of a transition for the given dimension.

The duration of the transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Windows Animation always calls the method to set the initial value and velocity before calling GetDuration, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to GetDuration reflect the updated state.

hh437126 HRESULT IUIAnimationInterpolator2::GetDuration([Out] double* duration) IUIAnimationInterpolator2::GetDuration

Gets the final value at the end of the transition for the given dimension.

The final value.

The dimension from which to retrieve the final value.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Windows Animation always calls the method to set the initial value and velocity before calling GetFinalValue, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to GetFinalValue reflect the updated state.

hh437127 HRESULT IUIAnimationInterpolator2::GetFinalValue([Out, Buffer] double* value,[In] unsigned int cDimension) IUIAnimationInterpolator2::GetFinalValue

Interpolates the value of an animation variable at the specified offset and for the given dimension.

The offset from the start of the transition.

This parameter is always greater than or equal to zero and less than the duration of the transition. This method is not called if the duration of the transition is zero.

The interpolated value.

The dimension in which to interpolate the value.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Windows Animation always calls the method to set the initial value and velocity before calling InterpolateValue, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to InterpolateValue reflect the updated state.

hh437129 HRESULT IUIAnimationInterpolator2::InterpolateValue([In] double offset,[Out, Buffer] double* value,[In] unsigned int cDimension) IUIAnimationInterpolator2::InterpolateValue

Interpolates the velocity, or rate of change, at the specified offset for the given dimension.

The offset from the start of the transition.

The offset is always greater than or equal to zero and less than or equal to the duration of the transition. This method is not called if the duration of the transition is zero.

The interpolated velocity.

The dimension in which to interpolate the velocity.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Windows Animation always calls the method to set the initial value and velocity before calling InterpolateVelocity, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to InterpolateVelocity reflect the updated state.

hh437130 HRESULT IUIAnimationInterpolator2::InterpolateVelocity([In] double offset,[Out, Buffer] double* velocity,[In] unsigned int cDimension) IUIAnimationInterpolator2::InterpolateVelocity

Generates a primitive interpolation of the specified animation curve.

The object that defines the custom animation curve information.

The dimension in which to apply the new segment.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh437128 HRESULT IUIAnimationInterpolator2::GetPrimitiveInterpolation([In] IUIAnimationPrimitiveInterpolation* interpolation,[In] unsigned int cDimension) IUIAnimationInterpolator2::GetPrimitiveInterpolation

For the given dimension, GetDependencies retrieves the aspects of the interpolator that depend on the initial value or velocity that is passed to the method or the duration that is passed to the method.

No documentation. No documentation. No documentation.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method is called to identify which aspects of the custom interpolator are affected by certain inputs: value, velocity, and duration. For each of these inputs, the interpolator returns either of the following:

  • The bitwise-OR of any members of that apply.
  • if nothing depends on the input.

For example, consider an interpolator that:

  • Accepts a final value as a parameter.
  • Always comes to a gradual stop at that final value.
  • Has a duration determined by the difference between the final value and the initial value.

In this case the interpolator should return |UI_ANIMATION_DURATION for the initialValueDependencies parameter. It should not return , because this value is set when the interpolator is created and is not affected by the initial value. Likewise, the interpolator should not return , because the slope of the curve is defined to always be zero when it reaches the final value.

It is important that an interpolator return a correct set of flags. If a flag is not present for an output, Windows Animation assumes that the corresponding parameter does not affect that aspect of the interpolator's results. For example, if the custom interpolator does not include for initialVelocityDependencies, Windows Animation may call SetInitialValueAndVelocity with an arbitrary velocity parameter, and then call GetFinalValue to determine the final value. The interpolator's implementation of GetFinalValue must return the same result no matter which velocity parameter has been passed to SetInitialValueAndVelocity, because the interpolator has claimed that the transition's final value does not depend on the initial velocity.

Note??If the flags returned for durationDependencies do not include , SetDuration will never be called on the interpolator.

hh437123 HRESULT IUIAnimationInterpolator2::GetDependencies([Out] UI_ANIMATION_DEPENDENCIES* initialValueDependencies,[Out] UI_ANIMATION_DEPENDENCIES* initialVelocityDependencies,[Out] UI_ANIMATION_DEPENDENCIES* durationDependencies) IUIAnimationInterpolator2::GetDependencies

Gets the number of dimensions that require interpolation.

hh437125 GetDimension GetDimension HRESULT IUIAnimationInterpolator2::GetDimension([Out] unsigned int* dimension)

Gets or sets the duration of a transition for the given dimension.

Windows Animation always calls the method to set the initial value and velocity before calling GetDuration, so a custom interpolator need not check whether the initial value and velocity have been set.

Windows Animation can call SetInitialValueAndVelocity multiple times with different parameters. Interpolators can cache internal state to improve performance, but they must update this cached state each time SetInitialValueAndVelocity is called and ensure that the results of subsequent calls to GetDuration reflect the updated state.

hh437126 GetDuration / SetDuration GetDuration HRESULT IUIAnimationInterpolator2::GetDuration([Out] double* duration)

Defines a method for handling storyboard loop iteration events.

hh437133 IUIAnimationLoopIterationChangeHandler2 IUIAnimationLoopIterationChangeHandler2

Defines the animation manager, which provides a central interface for creating and managing animations.

defines a central control object for animations. A single instance of is typically used to compose, schedule, and manage all animations for a client application.

, , and are the primary components for building animations. Use to create and manage these components.

dd371687 IUIAnimationManager IUIAnimationManager
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Creates a new animation variable.

The initial value for the new animation variable.

The new animation variable.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

The initial value of an animation variable is specified when the variable is created. After an animation variable is created, its value cannot be changed directly; it must be updated through the animation manager.

An animation variable is typically created to represent each visual characteristic that is to be animated. For example, an application might create two animation variables for the X and Y coordinates of an object that can move freely within a window.

dd371699 HRESULT IUIAnimationManager::CreateAnimationVariable([In] double initialValue,[Out, Fast] IUIAnimationVariable** variable) IUIAnimationManager::CreateAnimationVariable

Creates and schedules a single-transition storyboard.

The animation variable.

A transition to be applied to the animation variable.

The current system time.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method schedules a new storyboard by creating the storyboard, applying the specified transition to the specified variable, and then scheduling the storyboard.

dd371728 HRESULT IUIAnimationManager::ScheduleTransition([In] IUIAnimationVariable* variable,[In] IUIAnimationTransition* transition,[In] double timeNow) IUIAnimationManager::ScheduleTransition

Creates a new storyboard.

The new storyboard.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Storyboards can specify complex coordinated updates to many animation variables. These updates happen in sequence or in parallel, and they are guaranteed to remain synchronized within the storyboard. A storyboard is created, populated with transitions on animation variables, and then scheduled.

dd371703 HRESULT IUIAnimationManager::CreateStoryboard([Out, Fast] IUIAnimationStoryboard** storyboard) IUIAnimationManager::CreateStoryboard

Finishes all active storyboards within the specified time interval.

The maximum time interval during which all storyboards must be finished.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Calling FinishAllStoryboards ensures that all active storyboards finish within the specified completion deadline. If a storyboard is scheduled to play past the deadline, it is compressed. A storyboard is considered active if its status is or .

dd371707 HRESULT IUIAnimationManager::FinishAllStoryboards([In] double completionDeadline) IUIAnimationManager::FinishAllStoryboards

Abandons all active storyboards.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Calling this method is equivalent to calling the method for each active storyboard. A storyboard is considered active if its status is or .

dd371697 HRESULT IUIAnimationManager::AbandonAllStoryboards() IUIAnimationManager::AbandonAllStoryboards

Updates the values of all animation variables.

The current system time. This parameter must be greater than or equal to 0.0.

The result of the update. This parameter can be omitted from calls to this method.

Calling this method advances the animation manager to timeNow, changing statuses of storyboards as necessary and updating any animation variables to appropriate interpolated values. If the animation manager is paused, no storyboards or variables are updated. If the animation mode is , all scheduled storyboards finish playing immediately. If the values of any variables change during this call, the value of updateResult is ; otherwise, it is .

dd371755 HRESULT IUIAnimationManager::Update([In] double timeNow,[Out, Optional] UI_ANIMATION_UPDATE_RESULT* updateResult) IUIAnimationManager::Update

Gets the animation variable with the specified tag.

The object portion of the tag. This parameter can be null.

The identifier portion of the tag.

The animation variable that matches the specified tag, or null if no match is found.

A tag is a pairing of an integer identifier (id) with a COM object (object). An application can use tags to identify animation variables and storyboards. null is a valid object component of a tag; therefore, the object parameter can be null.

Tags are not necessarily unique; this method returns UI_E_AMBIGUOUS_MATCH if more than one animation variable exists with the specified tag.

dd371717 HRESULT IUIAnimationManager::GetVariableFromTag([In, Optional] void* object,[In] unsigned int id,[Out] IUIAnimationVariable** variable) IUIAnimationManager::GetVariableFromTag

Gets the storyboard with the specified tag.

The object portion of the tag. This parameter can be null.

The identifier portion of the tag.

The storyboard that matches the specified tag, or null if no match is found.

A tag is a pairing of an integer identifier (id) with a COM object (object). An application can use tags to identify animation variables and storyboards. null is a valid object component of a tag; therefore, the object parameter can be null.

Tags are not necessarily unique; this method returns UI_E_AMBIGUOUS_MATCH if more than one storyboard exists with the specified tag.

dd371714 HRESULT IUIAnimationManager::GetStoryboardFromTag([In, Optional] void* object,[In] unsigned int id,[Out] IUIAnimationStoryboard** storyboard) IUIAnimationManager::GetStoryboardFromTag

Gets the status of the animation manager.

The status.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

dd371712 HRESULT IUIAnimationManager::GetStatus([Out] UI_ANIMATION_MANAGER_STATUS* status) IUIAnimationManager::GetStatus

Sets the animation mode.

The animation mode.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method is used to enable or disable animation globally. While animation is disabled, all storyboards finish immediately when they are scheduled. The default mode is , which lets Windows decide when to enable or disable animation in the application.

dd371732 HRESULT IUIAnimationManager::SetAnimationMode([In] UI_ANIMATION_MODE mode) IUIAnimationManager::SetAnimationMode

Pauses all animations.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

When an animation manager is paused, its status is set to .

dd371722 HRESULT IUIAnimationManager::Pause() IUIAnimationManager::Pause

Resumes all animations.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

When an animation manager is resumed, and at least one animation is currently scheduled or playing, its status is set to .

dd371726 HRESULT IUIAnimationManager::Resume() IUIAnimationManager::Resume

Specifies a handler for animation manager status updates.

The event handler to be called when the status of the animation manager changes. The specified object must implement the interface or be null. See Remarks section for more information.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Passing null for the handler parameter causes Windows Animation to release its reference to any handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

dd371749 HRESULT IUIAnimationManager::SetManagerEventHandler([In, Optional] IUIAnimationManagerEventHandler* handler) IUIAnimationManager::SetManagerEventHandler

Sets the priority comparison handler to be called to determine whether a scheduled storyboard can be canceled.

The priority comparison handler for cancelation. The specified object must implement the interface or be null. See Remarks.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Setting a priority comparison handler with this method enables the application to indicate when scheduling conflicts can be resolved by canceling storyboards.

A scheduled storyboard can be canceled only if it has not started playing and the priority comparison object registered with this method returns . Canceled storyboards are completely removed from the schedule.

Passing null for the comparison parameter causes Windows Animation to release its reference to any priority comparison handler object you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

dd371734 HRESULT IUIAnimationManager::SetCancelPriorityComparison([In, Optional] IUIAnimationPriorityComparison* comparison) IUIAnimationManager::SetCancelPriorityComparison

Sets the priority comparison handler to be called to determine whether a scheduled storyboard can be trimmed.

The priority comparison handler for trimming. The specified object must implement the interface or be null. See Remarks.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Setting a priority comparison handler with this method enables the application to indicate when scheduling conflicts can be resolved by trimming the scheduled storyboard.

A scheduled storyboard can be trimmed only if the priority comparison object registered with this method returns . If the new storyboard trims the scheduled storyboard, the scheduled storyboard can no longer affect a variable once the new storyboard begins to animate that variable.

Passing null for the comparison parameter causes Windows Animation to release its reference to any handler object you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

dd371750 HRESULT IUIAnimationManager::SetTrimPriorityComparison([In, Optional] IUIAnimationPriorityComparison* comparison) IUIAnimationManager::SetTrimPriorityComparison

Sets the priority comparison handler to be called to determine whether a scheduled storyboard can be compressed.

The priority comparison handler for compression. The specified object must implement the interface or be null. See Remarks.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Setting a priority comparison handler with this method enables the application to indicate when the scheduling conflicts can be resolved by compressing the scheduled storyboard and any other storyboards animating the same variables.

A storyboard can be compressed only if the priority comparison object registered with this method returns for all the other scheduled storyboards that will be affected by compression. When the storyboards are compressed, time is temporarily accelerated for affected storyboards, so they play faster.

Passing null for the comparison parameter causes Windows Animation to release its reference to any handler object you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

dd371737 HRESULT IUIAnimationManager::SetCompressPriorityComparison([In, Optional] IUIAnimationPriorityComparison* comparison) IUIAnimationManager::SetCompressPriorityComparison

Sets the priority comparison handler to be called to determine whether a scheduled storyboard can be concluded.

The priority comparison handler for conclusion. The specified object must implement the interface or be null. See Remarks.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Setting a priority comparison handler with this method enables the application to indicate when scheduling conflicts can be resolved by concluding the scheduled storyboard.

A scheduled storyboard can be concluded only if it contains a loop with a repetition count of UI_ANIMATION_REPEAT_INDEFINITELY and the priority comparison object registered with this method returns . If the storyboard is concluded, the current repetition of the loop completes, and the reminder of the storyboard then plays.

Passing null for the comparison parameter causes Windows Animation to release its reference to any handler object you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

dd371742 HRESULT IUIAnimationManager::SetConcludePriorityComparison([In, Optional] IUIAnimationPriorityComparison* comparison) IUIAnimationManager::SetConcludePriorityComparison

Sets the default acceptable animation delay. This is the length of time that may pass before storyboards begin.

The default delay. This parameter can be a positive value, or UI_ANIMATION_SECONDS_EVENTUALLY (-1) to indicate that any finite delay is acceptable.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

For a storyboard to be successfully scheduled, it must begin before the longest acceptable delay has elapsed. This delay is determined in the following order: the delay value set by calling for this specific storyboard, the delay value set by calling this method, or 0.0 if neither method has been called.

dd371746 HRESULT IUIAnimationManager::SetDefaultLongestAcceptableDelay([In] double delay) IUIAnimationManager::SetDefaultLongestAcceptableDelay

Shuts down the animation manager and all its associated objects.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Calling this method directs the animation manager, and all the objects it created, to release all their references to other objects. After has been called, no other methods may be called on the animation manager or any objects that it created. An application can call this method to clean up if there is any possibility that the application has introduced a reference cycle that includes some animation objects.

dd371753 HRESULT IUIAnimationManager::Shutdown() IUIAnimationManager::Shutdown
Initializes a new instance of the class. Gets the variable from tag. The id. The tag object. This parameter can be null. A variable associated with this tag. HRESULT IUIAnimationManager::GetVariableFromTag([In, Optional] void* object,[In] unsigned int id,[Out] IUIAnimationVariable** variable) Gets the storyboard from tag. The id. The tag object. This parameter can be null. A storyboard associated with this tag. HRESULT IUIAnimationManager::GetStoryboardFromTag([In, Optional] void* object,[In] unsigned int id,[Out] IUIAnimationStoryboard** storyboard)

Gets the status of the animation manager.

dd371712 GetStatus GetStatus HRESULT IUIAnimationManager::GetStatus([Out] UI_ANIMATION_MANAGER_STATUS* status)

Sets the animation mode.

This method is used to enable or disable animation globally. While animation is disabled, all storyboards finish immediately when they are scheduled. The default mode is , which lets Windows decide when to enable or disable animation in the application.

dd371732 SetAnimationMode SetAnimationMode HRESULT IUIAnimationManager::SetAnimationMode([In] UI_ANIMATION_MODE mode)

Sets the default acceptable animation delay. This is the length of time that may pass before storyboards begin.

For a storyboard to be successfully scheduled, it must begin before the longest acceptable delay has elapsed. This delay is determined in the following order: the delay value set by calling for this specific storyboard, the delay value set by calling this method, or 0.0 if neither method has been called.

dd371746 SetDefaultLongestAcceptableDelay SetDefaultLongestAcceptableDelay HRESULT IUIAnimationManager::SetDefaultLongestAcceptableDelay([In] double delay)
Occurs when [status changed]. Sets the cancel priority comparison. The cancel priority comparison. Sets the trim priority comparison. The trim priority comparison. Sets the compress priority comparison. The compress priority comparison. Sets the conclude priority comparison. The conclude priority comparison. A delegate to receive status changed events from the manager. The new status. The previous status. A delegate used to resolve scheduling conflicts. The scheduled storyboard. The new storyboard. The priority effect. true if newStoryboard has priority. false if scheduledStoryboard has priority

Defines an animation manager, which provides a central interface for creating and managing animations in multiple dimensions.

hh437135 IUIAnimationManager2 IUIAnimationManager2
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Creates a new animation variable for each specified dimension.

A vector (of size cDimension) of initial values for the animation variable.

The number of dimensions that require animated values. This parameter specifies the number of values listed in initialValue.

The new animation variable.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

The initial value of an animation variable is specified when the variable is created. After an animation variable is created, its value cannot be changed directly; it must be updated through the animation manager.

An animation variable is typically created to represent each visual characteristic that is to be animated. For example, an application might create three animation variables for the X, Y, and Z coordinates of an object that can move freely within a a three-dimensional space.

hh437139 HRESULT IUIAnimationManager2::CreateAnimationVectorVariable([In, Buffer] const double* initialValue,[In] unsigned int cDimension,[Out] IUIAnimationVariable2** variable) IUIAnimationManager2::CreateAnimationVectorVariable

Creates a new animation variable.

The initial value for the animation variable.

The new animation variable.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

The initial value of an animation variable is specified when the variable is created. After an animation variable is created, its value cannot be changed directly; it must be updated through the animation manager.

An animation variable is typically created to represent each visual characteristic that is to be animated. For example, an application might create two animation variables for the X and Y coordinates of an object that can move freely within a window.

hh437137 HRESULT IUIAnimationManager2::CreateAnimationVariable([In] double initialValue,[Out] IUIAnimationVariable2** variable) IUIAnimationManager2::CreateAnimationVariable

Creates and schedules a single-transition storyboard.

The animation variable.

A transition to be applied to the animation variable.

The current system time.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

This method schedules a new storyboard by creating the storyboard, applying the specified transition to the specified variable, and then scheduling the storyboard.

hh437157 HRESULT IUIAnimationManager2::ScheduleTransition([In] IUIAnimationVariable2* variable,[In] IUIAnimationTransition2* transition,[In] double timeNow) IUIAnimationManager2::ScheduleTransition

Creates a new storyboard.

The new storyboard.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh437141 HRESULT IUIAnimationManager2::CreateStoryboard([Out] IUIAnimationStoryboard2** storyboard) IUIAnimationManager2::CreateStoryboard

Finishes all active storyboards within the specified time interval.

The maximum time interval during which all storyboards must be finished.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Calling the FinishAllStoryboards method ensures that all active storyboards finish within the specified completion deadline. If a storyboard is scheduled to play past the deadline, it is compressed.

A storyboard is considered active if a call to the method returns or .

hh437145 HRESULT IUIAnimationManager2::FinishAllStoryboards([In] double completionDeadline) IUIAnimationManager2::FinishAllStoryboards

Abandons all active storyboards.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Calling this method is equivalent to calling the method for each active storyboard.

A storyboard is considered active if a call to the method returns or .

hh437136 HRESULT IUIAnimationManager2::AbandonAllStoryboards() IUIAnimationManager2::AbandonAllStoryboards

Updates the values of all animation variables.

The current system time. This parameter must be greater than or equal to 0.0.

The result of the update. You can omit this parameter from calls to this method.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Calling this method advances the animation manager to timeNow, changes the status of all storyboards as necessary, and updates any animation variables to appropriate interpolated values. If the animation manager is paused, no storyboards or variables are updated. If the animation mode is , all scheduled storyboards finish playing immediately. If the values of any variables change during this call, the value of updateResult is ; otherwise, it is .

hh437171 HRESULT IUIAnimationManager2::Update([In] double timeNow,[Out, Optional] UI_ANIMATION_UPDATE_RESULT* updateResult) IUIAnimationManager2::Update

Gets the animation variable with the specified tag.

The object portion of the tag. This parameter can be null.

The identifier portion of the tag.

The animation variable that matches the specified tag, or null if no match is found.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

A tag is a pairing of an integer identifier (id) with a COM object (object). An application can use tags to identify animation variables and storyboards. null is a valid object component of a tag; therefore, the object parameter can be null.

Tags are not necessarily unique; this method returns UI_E_AMBIGUOUS_MATCH if more than one animation variable exists with the specified tag.

hh437151 HRESULT IUIAnimationManager2::GetVariableFromTag([In, Optional] IUnknown* object,[In] unsigned int id,[Out] IUIAnimationVariable2** variable) IUIAnimationManager2::GetVariableFromTag

Gets the storyboard with the specified tag.

The object portion of the tag. This parameter can be null.

The identifier portion of the tag.

The storyboard that matches the specified tag, or null if no match is found.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

A tag is a pairing of an integer identifier (id) with a COM object (object). An application can use tags to identify animation variables and storyboards. null is a valid object component of a tag; therefore, the object parameter can be null.

Tags are not necessarily unique; this method returns UI_E_AMBIGUOUS_MATCH if more than one storyboard exists with the specified tag.

hh437149 HRESULT IUIAnimationManager2::GetStoryboardFromTag([In, Optional] IUnknown* object,[In] unsigned int id,[Out] IUIAnimationStoryboard2** storyboard) IUIAnimationManager2::GetStoryboardFromTag

Retrieves an estimate of the time interval before the next animation event.

The estimated time, in seconds.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh437143 HRESULT IUIAnimationManager2::EstimateNextEventTime([Out] double* seconds) IUIAnimationManager2::EstimateNextEventTime

Gets the status of the animation manager.

The status of the animation manager.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh437147 HRESULT IUIAnimationManager2::GetStatus([Out] UI_ANIMATION_MANAGER_STATUS* status) IUIAnimationManager2::GetStatus

Sets the animation mode.

The animation mode.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Use this method to enable or disable animation globally. While animation is disabled, all storyboards finish immediately when they are scheduled. The default mode is , which lets Windows decide when to enable or disable animation in the application.

hh437159 HRESULT IUIAnimationManager2::SetAnimationMode([In] UI_ANIMATION_MODE mode) IUIAnimationManager2::SetAnimationMode

Pauses all animations.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

When an animation manager is paused, its status is set to .

hh437153 HRESULT IUIAnimationManager2::Pause() IUIAnimationManager2::Pause

Resumes all animations.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

When an animation manager is resumed, and at least one animation is currently scheduled or playing, its status is set to .

hh437155 HRESULT IUIAnimationManager2::Resume() IUIAnimationManager2::Resume

Specifies a handler for animation manager status updates.

The event handler to be called when the status of the animation manager changes. The specified object must implement the interface or be null. See Remarks for more info.

If TRUE, specifies that will incorporate handler into its estimate of the time interval until the next animation event. No default value.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Passing null for the handler parameter causes Windows Animation to release its reference to any handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

hh437168 HRESULT IUIAnimationManager2::SetManagerEventHandler([In, Optional] IUIAnimationManagerEventHandler2* handler,[In] BOOL fRegisterForNextAnimationEvent) IUIAnimationManager2::SetManagerEventHandler

Sets the priority comparison handler that determines whether a scheduled storyboard can be canceled.

The priority comparison handler for cancelation. The specified object must implement the interface or be null. See Remarks for more info.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Setting a priority comparison handler with this method enables the application to indicate when scheduling conflicts can be resolved by canceling storyboards.

A scheduled storyboard can be canceled only if it hasn't started playing and the priority comparison object registered with this method returns . Canceled storyboards are completely removed from the schedule.

Passing null for the comparison parameter causes Windows Animation to release its reference to any priority comparison handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

hh437161 HRESULT IUIAnimationManager2::SetCancelPriorityComparison([In, Optional] IUIAnimationPriorityComparison2* comparison) IUIAnimationManager2::SetCancelPriorityComparison

Sets the priority comparison handler that determines whether a scheduled storyboard can be trimmed.

The priority comparison handler for trimming. The specified object must implement the interface or be null. See Remarks for more info.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Setting a priority comparison handler with this method enables the application to indicate when scheduling conflicts can be resolved by trimming the scheduled storyboard.

A scheduled storyboard can be trimmed only if the priority comparison object registered with this method returns . If the new storyboard trims the scheduled storyboard, the scheduled storyboard can no longer affect a variable after the new storyboard begins to animate that variable.

Passing null for the comparison parameter causes Windows Animation to release its reference to any handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

hh437169 HRESULT IUIAnimationManager2::SetTrimPriorityComparison([In, Optional] IUIAnimationPriorityComparison2* comparison) IUIAnimationManager2::SetTrimPriorityComparison

Sets the priority comparison handler that determines whether a scheduled storyboard can be compressed.

The priority comparison handler for compression. The specified object must implement the interface or be null. See Remarks for more info.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Setting a priority comparison handler with this method enables the application to indicate when scheduling conflicts can be resolved by compressing the scheduled storyboard and any other storyboards animating the same variables.

A storyboard can be compressed only if the priority comparison object registered with this method returns for all the other scheduled storyboards that will be affected by compression. When the storyboards are compressed, time is temporarily accelerated for affected storyboards, so they play faster.

Passing null for the comparison parameter causes Windows Animation to release its reference to any handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

hh437163 HRESULT IUIAnimationManager2::SetCompressPriorityComparison([In, Optional] IUIAnimationPriorityComparison2* comparison) IUIAnimationManager2::SetCompressPriorityComparison

Sets the priority comparison handler that determines whether a scheduled storyboard can be concluded.

The priority comparison handler for conclusion. The specified object must implement the interface or be null. See Remarks for more info.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Setting a priority comparison handler with this method enables the application to indicate when scheduling conflicts can be resolved by concluding the scheduled storyboard.

A scheduled storyboard can be concluded only if it contains a loop with a repetition count of UI_ANIMATION_REPEAT_INDEFINITELY and the priority comparison object registered with this method returns . If the storyboard is concluded, the current repetition of the loop completes, and the rest of the storyboard then plays.

Passing null for the comparison parameter causes Windows Animation to release its reference to any handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

hh437165 HRESULT IUIAnimationManager2::SetConcludePriorityComparison([In, Optional] IUIAnimationPriorityComparison2* comparison) IUIAnimationManager2::SetConcludePriorityComparison

Sets the default acceptable animation delay. This is the length of time that may pass before storyboards begin.

The default delay. This parameter can be a positive value, or UI_ANIMATION_SECONDS_EVENTUALLY (-1) to indicate that any finite delay is acceptable.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

For Windows Animation to schedule a storyboard successfully, the storyboard must begin before the longest acceptable delay has elapsed. Windows Animation determines this delay in the following order: the delay value set by calling for this specific storyboard, the delay value set by calling this method, or 0.0 if neither method has been called.

hh437167 HRESULT IUIAnimationManager2::SetDefaultLongestAcceptableDelay([In] double delay) IUIAnimationManager2::SetDefaultLongestAcceptableDelay

Shuts down the animation manager and all its associated objects.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Calling this method directs the animation manager, and all the objects it created, to release all their references to other objects. After has been called, no other methods may be called on the animation manager or on any objects that it created. An application can call this method to clean up if there is any possibility that the application has introduced a reference cycle that includes some animation objects.

hh437170 HRESULT IUIAnimationManager2::Shutdown() IUIAnimationManager2::Shutdown

Gets the status of the animation manager.

hh437147 GetStatus GetStatus HRESULT IUIAnimationManager2::GetStatus([Out] UI_ANIMATION_MANAGER_STATUS* status)

Sets the animation mode.

Use this method to enable or disable animation globally. While animation is disabled, all storyboards finish immediately when they are scheduled. The default mode is , which lets Windows decide when to enable or disable animation in the application.

hh437159 SetAnimationMode SetAnimationMode HRESULT IUIAnimationManager2::SetAnimationMode([In] UI_ANIMATION_MODE mode)

Sets the priority comparison handler that determines whether a scheduled storyboard can be canceled.

Setting a priority comparison handler with this method enables the application to indicate when scheduling conflicts can be resolved by canceling storyboards.

A scheduled storyboard can be canceled only if it hasn't started playing and the priority comparison object registered with this method returns . Canceled storyboards are completely removed from the schedule.

Passing null for the comparison parameter causes Windows Animation to release its reference to any priority comparison handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

hh437161 SetCancelPriorityComparison SetCancelPriorityComparison HRESULT IUIAnimationManager2::SetCancelPriorityComparison([In, Optional] IUIAnimationPriorityComparison2* comparison)

Sets the priority comparison handler that determines whether a scheduled storyboard can be trimmed.

Setting a priority comparison handler with this method enables the application to indicate when scheduling conflicts can be resolved by trimming the scheduled storyboard.

A scheduled storyboard can be trimmed only if the priority comparison object registered with this method returns . If the new storyboard trims the scheduled storyboard, the scheduled storyboard can no longer affect a variable after the new storyboard begins to animate that variable.

Passing null for the comparison parameter causes Windows Animation to release its reference to any handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

hh437169 SetTrimPriorityComparison SetTrimPriorityComparison HRESULT IUIAnimationManager2::SetTrimPriorityComparison([In, Optional] IUIAnimationPriorityComparison2* comparison)

Sets the priority comparison handler that determines whether a scheduled storyboard can be compressed.

Setting a priority comparison handler with this method enables the application to indicate when scheduling conflicts can be resolved by compressing the scheduled storyboard and any other storyboards animating the same variables.

A storyboard can be compressed only if the priority comparison object registered with this method returns for all the other scheduled storyboards that will be affected by compression. When the storyboards are compressed, time is temporarily accelerated for affected storyboards, so they play faster.

Passing null for the comparison parameter causes Windows Animation to release its reference to any handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

hh437163 SetCompressPriorityComparison SetCompressPriorityComparison HRESULT IUIAnimationManager2::SetCompressPriorityComparison([In, Optional] IUIAnimationPriorityComparison2* comparison)

Sets the priority comparison handler that determines whether a scheduled storyboard can be concluded.

Setting a priority comparison handler with this method enables the application to indicate when scheduling conflicts can be resolved by concluding the scheduled storyboard.

A scheduled storyboard can be concluded only if it contains a loop with a repetition count of UI_ANIMATION_REPEAT_INDEFINITELY and the priority comparison object registered with this method returns . If the storyboard is concluded, the current repetition of the loop completes, and the rest of the storyboard then plays.

Passing null for the comparison parameter causes Windows Animation to release its reference to any handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

hh437165 SetConcludePriorityComparison SetConcludePriorityComparison HRESULT IUIAnimationManager2::SetConcludePriorityComparison([In, Optional] IUIAnimationPriorityComparison2* comparison)

Sets the default acceptable animation delay. This is the length of time that may pass before storyboards begin.

For Windows Animation to schedule a storyboard successfully, the storyboard must begin before the longest acceptable delay has elapsed. Windows Animation determines this delay in the following order: the delay value set by calling for this specific storyboard, the delay value set by calling this method, or 0.0 if neither method has been called.

hh437167 SetDefaultLongestAcceptableDelay SetDefaultLongestAcceptableDelay HRESULT IUIAnimationManager2::SetDefaultLongestAcceptableDelay([In] double delay)

Defines a method for handling status updates to an animation manager.

dd371690 IUIAnimationManagerEventHandler IUIAnimationManagerEventHandler
HRESULT IUIAnimationManagerEventHandler::OnManagerStatusChanged([In] UI_ANIMATION_MANAGER_STATUS newStatus,[In] UI_ANIMATION_MANAGER_STATUS previousStatus)

Defines a method for handling updates to an animation manager.

hh437172 IUIAnimationManagerEventHandler2 IUIAnimationManagerEventHandler2

Defines a method that allows a custom interpolator to provide transition information, in the form of a cubic polynomial curve, to the animation manager.

hh437174 IUIAnimationPrimitiveInterpolation IUIAnimationPrimitiveInterpolation
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Adds a cubic polynomial segment that describes the shape of a transition curve to the animation function.

The dimension in which to apply the new segment.

The begin offset for the segment, where 0 corresponds to the start of the transition.

The cubic polynomial constant coefficient.

The cubic polynomial linear coefficient.

The cubic polynomial quadratic coefficient.

The cubic polynomial cubic coefficient.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method will fail with an error code of UI_E_INVALID_PRIMITIVE if the start time is either less than 0 or less than the start time of a previous segment.

hh437175 HRESULT IUIAnimationPrimitiveInterpolation::AddCubic([In] unsigned int dimension,[In] double beginOffset,[In] float constantCoefficient,[In] float linearCoefficient,[In] float quadraticCoefficient,[In] float cubicCoefficient) IUIAnimationPrimitiveInterpolation::AddCubic

Adds a sinusoidal segment that describes the shape of a transition curve to the animation function.

The dimension in which to apply the new segment.

The begin offset for the segment, where 0 corresponds to the start of the transition.

The bias constant in the sinusoidal function.

The amplitude constant in the sinusoidal function.

The frequency constant in the sinusoidal function.

The phase constant in the sinusoidal function.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Defined by the function Y(t) = bias + amplitude*sin(360*frequency*t + phase), where 'sin' is the sin of an angle specified in degrees (for example, sin(n + 360) == sin(n) for any real number 'n').

This method will fail with an error code of UI_E_INVALID_PRIMITIVE if the start time is either less than 0 or less than the start time of a previous segment.

jj643353 HRESULT IUIAnimationPrimitiveInterpolation::AddSinusoidal([In] unsigned int dimension,[In] double beginOffset,[In] float bias,[In] float amplitude,[In] float frequency,[In] float phase) IUIAnimationPrimitiveInterpolation::AddSinusoidal

Defines a method that resolves scheduling conflicts through priority comparison.

A single animation variable can be included in multiple storyboards, but multiple storyboards cannot animate the same variable at the same time. If a newly scheduled storyboard attempts to animate one or more variables that are currently scheduled for animation by different storyboards, a scheduling conflict occurs. To determine which storyboard has priority, the animation manager can call the HasPriority method on one or more priority comparison handlers provided by the application.

hh437176 IUIAnimationPriorityComparison2 IUIAnimationPriorityComparison2
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Determines the relative priority between a scheduled storyboard and a new storyboard.

The currently scheduled storyboard.

The new storyboard that is interrupting the scheduled storyboard specified by scheduledStoryboard.

The potential effect on newStoryboard if scheduledStoryboard has a higher priority.

Returns the following if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription

newStoryboard has priority.

S_FALSE

scheduledStoryboard has priority.

?

A single animation variable can be included in multiple storyboards, but multiple storyboards cannot animate the same variable at the same time. If a new storyboard attempts to animate one or more variables that are currently scheduled for animation by a different storyboard, a scheduling conflict occurs. To determine which storyboard has priority, the animation manager can call the HasPriority method on one or more priority comparison handlers provided by the application.

Registering priority comparison objects is optional. By default, all storyboards can be trimmed, concluded, or compressed to prevent failure, but none can be canceled, and by default no storyboards will be canceled or trimmed to prevent a delay.

By default, a call made in a callback method to any other animation method results in the call failing and returning UI_E_ILLEGAL_REENTRANCY. However, there are exceptions to this default. The following methods can be successfully called from HasPriority:

hh437177 HRESULT IUIAnimationPriorityComparison2::HasPriority([In] IUIAnimationStoryboard2* scheduledStoryboard,[In] IUIAnimationStoryboard2* newStoryboard,[In] UI_ANIMATION_PRIORITY_EFFECT priorityEffect) IUIAnimationPriorityComparison2::HasPriority

Defines a storyboard, which contains a group of transitions that are synchronized relative to one another.

is a primary component for building animations, along with and .

dd371761 IUIAnimationStoryboard IUIAnimationStoryboard
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Adds a transition to the storyboard.

The animation variable for which the transition is to be added.

The transition to be added.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_TRANSITION_ALREADY_USED

This transition has already been added to a storyboard.

?

The AddTransition method applies the specified transition to the specified variable in the storyboard. If this is the first transition applied to this variable in this storyboard, the transition begins at the start of the storyboard. Otherwise, the transition is appended to the transition that was most recently added to the variable.

dd371789 HRESULT IUIAnimationStoryboard::AddTransition([In] IUIAnimationVariable* variable,[In] IUIAnimationTransition* transition) IUIAnimationStoryboard::AddTransition

Adds a keyframe at the specified offset from an existing keyframe.

The existing keyframe. To add a keyframe at an offset from the start of the storyboard, use the special keyframe UI_ANIMATION_KEYFRAME_STORYBOARD_START.

The offset from the existing keyframe at which a new keyframe is to be added.

The keyframe to be added.

A keyframe represents a moment in time within a storyboard and can be used to specify the start and end times of transitions. Because keyframes can be added at the ends of transitions, their offsets from the start of the storyboard may not be known until the storyboard is playing.

dd371784 HRESULT IUIAnimationStoryboard::AddKeyframeAtOffset([In] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003* existingKeyframe,[In] double offset,[Out] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003** keyframe) IUIAnimationStoryboard::AddKeyframeAtOffset

Adds a keyframe at the end of the specified transition.

The transition after which a keyframe is to be added.

The keyframe to be added.

A keyframe represents a moment in time within a storyboard and can be used to specify the start and end times of transitions. Because keyframes can be added at the ends of transitions, their offsets from the start of the storyboard may not be known until the storyboard is playing.

dd371783 HRESULT IUIAnimationStoryboard::AddKeyframeAfterTransition([In] IUIAnimationTransition* transition,[Out] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003** keyframe) IUIAnimationStoryboard::AddKeyframeAfterTransition

Adds a transition that starts at the specified keyframe.

The animation variable for which a transition is to be added.

The transition to be added.

The keyframe that specifies the beginning of the new transition.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_TRANSITION_ALREADY_USED

This transition has already been added to a storyboard or has been added to a storyboard that has finished playing and been released.

UI_E_TRANSITION_ECLIPSED

The transition might eclipse the beginning of another transition in the storyboard.

?

Transitions must be added in the order in which they will be played. A transition may begin playing before the preceding transition in the storyboard has finished, in which case the initial value and velocity seen by the new transition is determined by the state of the preceding one. A transition should not begin before the start of the preceding transition.

A keyframe represents a moment in time within a storyboard and can be used to specify the start and end times of transitions. Because keyframes can be added at the ends of transitions, their offsets from the start of the storyboard may not be known until the storyboard is playing.

dd371795 HRESULT IUIAnimationStoryboard::AddTransitionAtKeyframe([In] IUIAnimationVariable* variable,[In] IUIAnimationTransition* transition,[In] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003* startKeyframe) IUIAnimationStoryboard::AddTransitionAtKeyframe

Adds a transition between two keyframes.

The animation variable for which the transition is to be added.

The transition to be added.

A keyframe that specifies the beginning of the new transition.

A keyframe that specifies the end of the new transition. It must not be possible for endKeyframe to appear earlier in the storyboard than startKeyframe.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_TRANSITION_ALREADY_USED

This transition has already been added to a storyboard or has been added to a storyboard that has finished playing and been released.

UI_E_TRANSITION_ECLIPSED

The transition might eclipse the beginning of another transition in the storyboard.

UI_E_START_KEYFRAME_AFTER_END

The start keyframe might occur after the end keyframe.

?

This method applies the specified transition to the specified variable in the storyboard, with the transition starting and ending at the specified keyframes. If the transition was created with a duration parameter specified, that duration is overwritten with the duration of time between the start and end keyframes. Otherwise, Windows Animation speeds up or slows down the transition as necessary.

A keyframe represents a moment in time within a storyboard and can be used to specify the start and end times of transitions. Because keyframes can be added at the ends of transitions, their offsets from the start of the storyboard may not be known until the storyboard is playing.

Transitions must be added in the order in which they will be played. A transition may begin playing before the preceding transition in the storyboard has finished, in which case the initial value and velocity seen by the new transition will be determined by the state of the preceding one. It must not be possible for a transition to begin before the start of the preceding transition.

dd371798 HRESULT IUIAnimationStoryboard::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) IUIAnimationStoryboard::AddTransitionBetweenKeyframes

Creates a loop between two specified keyframes.

The keyframe at which the loop is to begin.

The keyframe at which the loop is to end. It must not be posssible for endKeyframe to occur earlier in the storyboard than startKeyframe.

The number of times the loop is to be repeated; this parameter must be 0 or a positive number. Use UI_ANIMATION_REPEAT_INDEFINITELY (-1) to repeat the loop indefinitely until the storyboard is trimmed or concluded.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_START_KEYFRAME_AFTER_END

The start keyframe might occur after the end keyframe.

UI_E_END_KEYFRAME_NOT_DETERMINED

It might not be possible to determine the end keyframe time when the start keyframe is reached.

UI_E_LOOPS_OVERLAP

Two repeated portions of a storyboard might overlap.

?

This method directs a storyboard to play the interval between the given keyframes repeatedly before playing the remainder of the storyboard. If a finite repetition count is specified, the loop always plays that number of times. If UI_ANIMATION_REPEAT_INDEFINITELY (-1) is specified, the loop repeats until the storyboard is concluded, in which case the current iteration of the loop completes and the remainder of the storyboard plays. A storyboard that loops indefinitely also ends if it is truncated.

Nested and overlapping loops are not supported.

A keyframe represents a moment in time within a storyboard and can be used to specify the start or end times of transitions. Because keyframes can be added at the ends of transitions, their offsets from the start of the storyboard may not be known until the storyboard is playing.

dd371816 HRESULT IUIAnimationStoryboard::RepeatBetweenKeyframes([In] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003* startKeyframe,[In] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003* endKeyframe,[In] int repetitionCount) IUIAnimationStoryboard::RepeatBetweenKeyframes

Directs the storyboard to hold the specified animation variable at its final value until the storyboard ends.

The animation variable.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

When a storyboard is playing, it has exclusive access to any variables it animates unless the storyboard is trimmed by a higher priority storyboard. Typically, this exclusive access is released when the last transition in the storyboard for that variable finishes playing. Applications can call this method to maintain exclusive access to the animation variable and hold the variable, at the final value of the last transition, until the end of the storyboard.

dd371812 HRESULT IUIAnimationStoryboard::HoldVariable([In] IUIAnimationVariable* variable) IUIAnimationStoryboard::HoldVariable

Sets the longest acceptable delay before the scheduled storyboard begins.

The longest acceptable delay. This parameter can be a positive value, or UI_ANIMATION_SECONDS_EVENTUALLY (-1) to indicate that any finite delay is acceptable.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

For a storyboard to be successfully scheduled, it must begin before the longest acceptable delay has elapsed. This delay is determined in the following order: the delay value set by calling this method, the delay value set by calling the method, or 0.0 if neither of these methods has been called.

dd371824 HRESULT IUIAnimationStoryboard::SetLongestAcceptableDelay([In] double delay) IUIAnimationStoryboard::SetLongestAcceptableDelay

Directs the storyboard to schedule itself for play.

The current time.

The result of the scheduling request. This parameter can be omitted from calls to this method.

This method directs a storyboard to attempt to add itself to the schedule of playing storyboards. The rules are as follows:

  • If there are no playing storyboards animating any of the same animation variables, the attempt succeeds and the storyboard starts playing immediately.

  • If the storyboard has priority to cancel, trim, conclude, or compress conflicting storyboards, the attempt to schedule succeeds and the storyboard begins playing as soon as possible.

  • If the storyboard does not have priority, the attempt fails and the schedulingResult parameter is set to .

If this method is called from a handler for OnStoryboardStatusChanged events, the schedulingResult parameter is set to . The only way to determine whether the storyboard is successfully scheduled is to set a storyboard event handler and check whether the storyboard's status ever becomes .

It is possible reuse a storyboard by calling Schedule again after its status has reached . An attempt to schedule a storyboard when it is in any state other than or fails, and schedulingResult is set to .

dd371820 HRESULT IUIAnimationStoryboard::Schedule([In] double timeNow,[Out, Optional] UI_ANIMATION_SCHEDULING_RESULT* schedulingResult) IUIAnimationStoryboard::Schedule

Completes the current iteration of a keyframe loop that is in progress (where the loop is set to UI_ANIMATION_REPEAT_INDEFINITELY), terminates the loop, and continues with the storyboard.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method specifies that any subsequent keyframe loops that have a repetition count of UI_ANIMATION_REPEAT_INDEFINITELY (-1) will be skipped while the remainder of the storyboard is played.

An iteration of a keyframe loop that is in progress will be completed before the remainder of the storyboard plays.

If this method is called at the end of a keyframe loop iteration, the loop is terminated and the loop value is set to the starting loop value.

dd371801 HRESULT IUIAnimationStoryboard::Conclude() IUIAnimationStoryboard::Conclude

Finishes the storyboard within the specified time, compressing the storyboard if necessary.

The maximum amount of time that the storyboard can use to finish playing.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method has no effect on storyboard events. Events continue to be raised as expected while the storyboard plays.

dd371804 HRESULT IUIAnimationStoryboard::Finish([In] double completionDeadline) IUIAnimationStoryboard::Finish

Terminates the storyboard, releases all related animation variables, and removes the storyboard from the schedule.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method can be called before or after the storyboard starts playing.

This method does not trigger any storyboard events.

dd371779 HRESULT IUIAnimationStoryboard::Abandon() IUIAnimationStoryboard::Abandon

Sets the tag for the storyboard.

The object portion of the tag. This parameter can be null.

The identifier portion of the tag.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_STORYBOARD_ACTIVE

The storyboard is currently in the schedule.

?

A tag is a pairing of an integer identifier (id) with a COM object (object); it can be used by an application to identify a storyboard.

dd371829 HRESULT IUIAnimationStoryboard::SetTag([In, Optional] void* object,[In] unsigned int id) IUIAnimationStoryboard::SetTag

Gets the tag for a storyboard.

The object portion of the tag.

The identifier portion of the tag.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_VALUE_NOT_SET

The storyboard's tag was not set.

?

A tag is a pairing of an integer identifier (id) with a COM object (object); it can be used by an application to identify a storyboard.

The parameters are optional so that the method can return both portions of the tag, or just the identifier or object portion.

dd371809 HRESULT IUIAnimationStoryboard::GetTag([Out, Optional] void** object,[Out, Optional] unsigned int* id) IUIAnimationStoryboard::GetTag

Gets the status of the storyboard.

The storyboard status.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Unless this method is called from a handler for OnStoryboardStatusChanged events, the only values it returns are , , , and .

dd371808 HRESULT IUIAnimationStoryboard::GetStatus([Out] UI_ANIMATION_STORYBOARD_STATUS* status) IUIAnimationStoryboard::GetStatus

Gets the time that has elapsed since the storyboard started playing.

The elapsed time.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_STORYBOARD_NOT_PLAYING

The storyboard is not playing.

?

dd371807 HRESULT IUIAnimationStoryboard::GetElapsedTime([Out] double* elapsedTime) IUIAnimationStoryboard::GetElapsedTime

Specifies a handler for storyboard events.

The handler to be called whenever storyboard status and update events occur. The specified object must implement the interface or be null. See Remarks.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Passing null for the handler parameter causes Windows Animation to release its reference to any handler object you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

dd371827 HRESULT IUIAnimationStoryboard::SetStoryboardEventHandler([In, Optional] IUIAnimationStoryboardEventHandler* handler) IUIAnimationStoryboard::SetStoryboardEventHandler
Initializes a new instance of the class. The manager. HRESULT IUIAnimationStoryboard::RepeatBetweenKeyframes([In] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003* startKeyframe,[In] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003* endKeyframe,[In] int repetitionCount) Sets the tag. The @object. The id. A object describing the result of the operation. HRESULT IUIAnimationStoryboard::SetTag([In, Optional] void* object,[In] unsigned int id) Gets the tag. The @object. The id. A object describing the result of the operation. HRESULT IUIAnimationStoryboard::GetTag([Out, Optional] void** object,[Out, Optional] unsigned int* id)

Sets the longest acceptable delay before the scheduled storyboard begins.

For a storyboard to be successfully scheduled, it must begin before the longest acceptable delay has elapsed. This delay is determined in the following order: the delay value set by calling this method, the delay value set by calling the method, or 0.0 if neither of these methods has been called.

dd371824 SetLongestAcceptableDelay SetLongestAcceptableDelay HRESULT IUIAnimationStoryboard::SetLongestAcceptableDelay([In] double delay)

Gets the status of the storyboard.

Unless this method is called from a handler for OnStoryboardStatusChanged events, the only values it returns are , , , and .

dd371808 GetStatus GetStatus HRESULT IUIAnimationStoryboard::GetStatus([Out] UI_ANIMATION_STORYBOARD_STATUS* status)

Gets the time that has elapsed since the storyboard started playing.

dd371807 GetElapsedTime GetElapsedTime HRESULT IUIAnimationStoryboard::GetElapsedTime([Out] double* elapsedTime)

Defines a storyboard, which contains a group of transitions that are synchronized relative to one another.

is the primary component for building animations, along with and .

hh437178 IUIAnimationStoryboard2 IUIAnimationStoryboard2
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Adds a transition to the storyboard.

The animation variable for which the transition is to be added.

The transition to be added.

If this method succeeds, it returns . Otherwise, it returns an error code.

Return codeDescription
UI_E_TRANSITION_ALREADY_USED

This transition has already been added to a storyboard.

?

See Windows Animation Error Codes for a list of error codes.

The AddTransition method applies the specified transition to the specified variable in the storyboard. If this is the first transition applied to this variable in this storyboard, the transition begins at the start of the storyboard. Otherwise, the transition is appended to the transition that was most recently added to the variable.

hh437182 HRESULT IUIAnimationStoryboard2::AddTransition([In] IUIAnimationVariable2* variable,[In] IUIAnimationTransition2* transition) IUIAnimationStoryboard2::AddTransition

Adds a keyframe at the specified offset from an existing keyframe.

The existing keyframe. To add a keyframe at an offset from the start of the storyboard, use the special keyframe UI_ANIMATION_KEYFRAME_STORYBOARD_START.

The offset from the existing keyframe at which a new keyframe is to be added.

The keyframe to be added.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

A keyframe represents a moment in time within a storyboard and can be used to specify the start and end times of transitions. Because keyframes can be added at the ends of transitions, their offsets from the start of the storyboard may not be known until the storyboard is playing.

hh437181 HRESULT IUIAnimationStoryboard2::AddKeyframeAtOffset([In] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003* existingKeyframe,[In] double offset,[Out] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003** keyframe) IUIAnimationStoryboard2::AddKeyframeAtOffset

Adds a keyframe at the end of the specified transition.

The transition after which a keyframe is to be added.

The keyframe to be added.

If this method succeeds, it returns . Otherwise, it returns an error code.

Return codeDescription
UI_E_TRANSITION_NOT_IN_STORYBOARD

The transition has not been added to the storyboard.

?

See Windows Animation Error Codes for a list of error codes.

A keyframe represents a moment in time within a storyboard and can be used to specify the start and end times of transitions. Because keyframes can be added at the ends of transitions, their offsets from the start of the storyboard may not be known until the storyboard is playing.

hh437180 HRESULT IUIAnimationStoryboard2::AddKeyframeAfterTransition([In] IUIAnimationTransition2* transition,[Out] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003** keyframe) IUIAnimationStoryboard2::AddKeyframeAfterTransition

Adds a transition that starts at the specified keyframe.

The animation variable for which a transition is to be added.

The transition to be added.

The keyframe that specifies the beginning of the new transition.

If this method succeeds, it returns . Otherwise, it returns an error code.

Return codeDescription
UI_E_TRANSITION_ALREADY_USED

This transition has already been added to a storyboard or has been added to a storyboard that has finished playing and been released.

UI_E_TRANSITION_ECLIPSED

The transition might eclipse the beginning of another transition in the storyboard.

?

See Windows Animation Error Codes for a list of error codes.

Transitions must be added in the order in which they will be played. A transition may begin playing before the preceding transition in the storyboard has finished, in which case the initial value and velocity seen by the new transition is determined by the state of the preceding one. A transition should not begin before the start of the preceding transition.

A keyframe represents a moment in time within a storyboard and can be used to specify the start and end times of transitions. Because keyframes can be added at the ends of transitions, their offsets from the start of the storyboard may not be known until the storyboard is playing.

hh437183 HRESULT IUIAnimationStoryboard2::AddTransitionAtKeyframe([In] IUIAnimationVariable2* variable,[In] IUIAnimationTransition2* transition,[In] __MIDL___MIDL_itf_UIAnimation_0000_0002_0003* startKeyframe) IUIAnimationStoryboard2::AddTransitionAtKeyframe

Adds a transition between two keyframes.

The animation variable for which the transition is to be added.

The transition to be added.

A keyframe that specifies the beginning of the new transition.

A keyframe that specifies the end of the new transition. It must not be possible for endKeyframe to appear earlier in the storyboard than startKeyframe.

If this method succeeds, it returns . Otherwise, it returns an error code.

Return codeDescription
UI_E_TRANSITION_ALREADY_USED

This transition has already been added to a storyboard or has been added to a storyboard that has finished playing and been released.

UI_E_TRANSITION_ECLIPSED

The transition might eclipse the beginning of another transition in the storyboard.

UI_E_START_KEYFRAME_AFTER_END

The start keyframe might occur after the end keyframe.

?

See Windows Animation Error Codes for a list of error codes.

This method applies the specified transition to the specified variable in the storyboard, with the transition starting and ending at the specified keyframes. If the transition was created with a duration parameter specified, that duration is overwritten with the duration of time between the start and end keyframes. Otherwise, Windows Animation speeds up or slows down the transition as necessary.

A keyframe represents a moment in time within a storyboard and can be used to specify the start and end times of transitions. Because keyframes can be added at the ends of transitions, their offsets from the start of the storyboard may not be known until the storyboard is playing.

Transitions must be added in the order in which they will be played. A transition may begin playing before the preceding transition in the storyboard has finished, in which case the initial value and velocity seen by the new transition will be determined by the state of the preceding one. It must not be possible for a transition to begin before the start of the preceding transition.

hh437184 HRESULT IUIAnimationStoryboard2::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) IUIAnimationStoryboard2::AddTransitionBetweenKeyframes

Creates a loop between two keyframes.

The keyframe at which the loop is to begin.

The keyframe at which the loop is to end. endKeyframe must not occur earlier in the storyboard than startKeyframe.

The number of times the loop is to be repeated; the last iteration of a loop can terminate fractionally between keyframes. A value of zero indicates that the specified portion of a storyboard will not be played. A value of UI_ANIMATION_REPEAT_INDEFINITELY (-1) indicates that the loop will repeat indefinitely until the storyboard is trimmed or concluded.

The pattern for the loop iteration.

A value of (1) specifies that the start of the loop must alternate between keyframes (k1->k2, k2->k1, k1->k2, and so on).

A value of (0) specifies that the start of the loop must begin with the first keyframe (k1->k2, k1->k2, k1->k2, and so on).

Note??If repeatMode has a value of (1) and cRepetition has a value of UI_ANIMATION_REPEAT_INDEFINITELY (-1), the loop terminates on the end keyframe.

The handler for each loop iteration event. The default value is 0.

The loop ID to pass to pIterationChangeHandler. The default value is 0.

If true, specifies that pIterationChangeHandler will be incorporated into the estimate of the time interval until the next animation event that is returned by the method. The default value is 0, or false.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method directs a storyboard to play the interval between the given keyframes repeatedly before playing the remainder of the storyboard. If a finite repetition count is specified, the loop always plays that number of times. If UI_ANIMATION_REPEAT_INDEFINITELY (-1) is specified, the loop repeats until the storyboard is concluded, in which case the current iteration of the loop completes and the remainder of the storyboard plays. A storyboard that loops indefinitely also ends if it is truncated.

Nested and overlapping loops are not supported.

A keyframe represents a moment in time within a storyboard and can be used to specify the start or end times of transitions. Because keyframes can be added at the ends of transitions, their offsets from the start of the storyboard may not be known until the storyboard is playing.

hh448593 HRESULT IUIAnimationStoryboard2::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, Optional] IUIAnimationLoopIterationChangeHandler2* pIterationChangeHandler,[In] UINT_PTR id,[In] BOOL fRegisterForNextAnimationEvent) IUIAnimationStoryboard2::RepeatBetweenKeyframes

Directs the storyboard to hold the specified animation variable at its final value until the storyboard ends.

The animation variable.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

When a storyboard is playing, it has exclusive access to any variables it animates unless the storyboard is trimmed by a higher-priority storyboard. Typically, this exclusive access is released when the last transition in the storyboard for that variable finishes playing. Applications can call this method to maintain exclusive access to the animation variable and hold the variable, at the final value of the last transition, until the end of the storyboard.

hh448592 HRESULT IUIAnimationStoryboard2::HoldVariable([In] IUIAnimationVariable2* variable) IUIAnimationStoryboard2::HoldVariable

Sets the longest acceptable delay before the scheduled storyboard begins.

The longest acceptable delay. This parameter can be a positive value, or UI_ANIMATION_SECONDS_EVENTUALLY (-1) to indicate that any finite delay is acceptable.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

For Windows Animation to schedule a storyboard successfully, the storyboard must begin before the longest acceptable delay has elapsed. Windows Animation determines this delay in the following order: the delay value set by calling this method, the delay value set by calling the method, or 0.0 if neither of these methods has been called.

Use to start a storyboard animation at a specified offset instead of delaying the start of a storyboard.

hh448595 HRESULT IUIAnimationStoryboard2::SetLongestAcceptableDelay([In] double delay) IUIAnimationStoryboard2::SetLongestAcceptableDelay

Specifies an offset from the beginning of a storyboard at which to start animating.

The offset, or amount of time, to skip at the beginning of the storyboard.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Calls to SetSkipDuration fail if the storyboard has been scheduled.

SetSkipDuration does not delay the start of a scheduled storyboard. See for more info on how to set a delay for a scheduled storyboard.

This diagram shows a skip duration, or offset, for a storyboard.

hh448596 HRESULT IUIAnimationStoryboard2::SetSkipDuration([In] double secondsDuration) IUIAnimationStoryboard2::SetSkipDuration

Directs the storyboard to schedule itself for play.

The current time.

The result of the scheduling request. You can omit this parameter from calls to this method.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

This method directs a storyboard to try to add itself to the schedule of playing storyboards, using these rules:

  • If there are no playing storyboards animating any of the same animation variables, the attempt succeeds and the storyboard starts playing immediately.

  • If the storyboard has priority to cancel, trim, conclude, or compress conflicting storyboards, the attempt to schedule succeeds and the storyboard starts playing as soon as possible.

  • If the storyboard does not have priority, the attempt fails and the schedulingResult parameter is set to .

If this method is called from a handler for OnStoryboardStatusChanged events, the schedulingResult parameter is set to . The only way to determine whether the storyboard is successfully scheduled is to set a storyboard event handler and check whether the storyboard's status ever becomes .

It is possible to reuse a storyboard by calling Schedule again after its status has reached . An attempt to schedule a storyboard when it is in any state other than or fails, and schedulingResult is set to .

hh448594 HRESULT IUIAnimationStoryboard2::Schedule([In] double timeNow,[Out, Optional] UI_ANIMATION_SCHEDULING_RESULT* schedulingResult) IUIAnimationStoryboard2::Schedule

Completes the current iteration of a keyframe loop that is in progress (where the loop is set to UI_ANIMATION_REPEAT_INDEFINITELY), terminates the loop, and continues with the storyboard.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method specifies that any subsequent keyframe loops that have a repetition count of UI_ANIMATION_REPEAT_INDEFINITELY (-1) will be skipped while the remainder of the storyboard is played.

An iteration of a keyframe loop that is in progress will be completed before the remainder of the storyboard plays.

If this method is called at the end of an alternating keyframe loop iteration, the loop is terminated with the loop value set to the ending loop value.

If this method is called at the end of a non-alternating keyframe loop iteration, where "loop wrapping" results in the loop value being set to the starting value of the next iteration, the loop is executed once more in order for the loop value to be set to the ending loop value.

For alternating keyframe loops, each iteration has a starting value that is equivalent to the ending value of the preceding loop. In this case, "loop wrapping" is not an issue.

hh437185 HRESULT IUIAnimationStoryboard2::Conclude() IUIAnimationStoryboard2::Conclude

Finishes the storyboard within the specified time, compressing the storyboard if necessary.

The maximum amount of time that the storyboard can use to finish playing.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method has no effect on storyboard events. Events continue to be raised as expected while the storyboard plays.

hh437186 HRESULT IUIAnimationStoryboard2::Finish([In] double completionDeadline) IUIAnimationStoryboard2::Finish

Terminates the storyboard, releases all related animation variables, and removes the storyboard from the schedule.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method can be called before or after the storyboard starts playing.

This method does not trigger any storyboard events.

hh437179 HRESULT IUIAnimationStoryboard2::Abandon() IUIAnimationStoryboard2::Abandon

Sets the tag for the storyboard.

The object portion of the tag. This parameter can be null.

The identifier portion of the tag.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

A tag is a pairing of an integer identifier (id) with a COM object (object). It can be used by an application to identify a storyboard.

hh448598 HRESULT IUIAnimationStoryboard2::SetTag([In, Optional] IUnknown* object,[In] unsigned int id) IUIAnimationStoryboard2::SetTag

Gets the tag for a storyboard.

The object portion of the tag.

The identifier portion of the tag.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_VALUE_NOT_SET

The storyboard tag was not set.

?

A tag is a pairing of an integer identifier (id) with a COM object (object); it can be used by an application to identify a storyboard.

This method can return the identifier, the object, or both portions of the tag.

hh437189 HRESULT IUIAnimationStoryboard2::GetTag([Out, Optional] IUnknown** object,[Out, Optional] unsigned int* id) IUIAnimationStoryboard2::GetTag

Gets the status of the storyboard.

The storyboard status.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Unless this method is called from a handler for OnStoryboardStatusChanged events, the only values it returns are , , , and .

hh437188 HRESULT IUIAnimationStoryboard2::GetStatus([Out] UI_ANIMATION_STORYBOARD_STATUS* status) IUIAnimationStoryboard2::GetStatus

Gets the time that has elapsed since the storyboard started playing.

The elapsed time.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_STORYBOARD_NOT_PLAYING

The storyboard is not playing.

?

hh437187 HRESULT IUIAnimationStoryboard2::GetElapsedTime([Out] double* elapsedTime) IUIAnimationStoryboard2::GetElapsedTime

Specifies a handler for storyboard events.

The handler that Windows Animation should call whenever storyboard status and update events occur. The specified object must implement the interface or be null. See Remarks for more info.

If TRUE, registers the OnStoryboardStatusChanged event and includes those events in , which estimates the time interval until the next animation event. No default value.

If TRUE, registers the OnStoryboardUpdated event and includes those events in , which estimates the time interval until the next animation event. No default value.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Passing null for the handler parameter causes Windows Animation to release its reference to any handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

hh448597 HRESULT IUIAnimationStoryboard2::SetStoryboardEventHandler([In, Optional] IUIAnimationStoryboardEventHandler2* handler,[In] BOOL fRegisterStatusChangeForNextAnimationEvent,[In] BOOL fRegisterUpdateForNextAnimationEvent) IUIAnimationStoryboard2::SetStoryboardEventHandler

Sets the longest acceptable delay before the scheduled storyboard begins.

For Windows Animation to schedule a storyboard successfully, the storyboard must begin before the longest acceptable delay has elapsed. Windows Animation determines this delay in the following order: the delay value set by calling this method, the delay value set by calling the method, or 0.0 if neither of these methods has been called.

Use to start a storyboard animation at a specified offset instead of delaying the start of a storyboard.

hh448595 SetLongestAcceptableDelay SetLongestAcceptableDelay HRESULT IUIAnimationStoryboard2::SetLongestAcceptableDelay([In] double delay)

Specifies an offset from the beginning of a storyboard at which to start animating.

Calls to SetSkipDuration fail if the storyboard has been scheduled.

SetSkipDuration does not delay the start of a scheduled storyboard. See for more info on how to set a delay for a scheduled storyboard.

This diagram shows a skip duration, or offset, for a storyboard.

hh448596 SetSkipDuration SetSkipDuration HRESULT IUIAnimationStoryboard2::SetSkipDuration([In] double secondsDuration)

Gets the status of the storyboard.

Unless this method is called from a handler for OnStoryboardStatusChanged events, the only values it returns are , , , and .

hh437188 GetStatus GetStatus HRESULT IUIAnimationStoryboard2::GetStatus([Out] UI_ANIMATION_STORYBOARD_STATUS* status)

Gets the time that has elapsed since the storyboard started playing.

hh437187 GetElapsedTime GetElapsedTime HRESULT IUIAnimationStoryboard2::GetElapsedTime([Out] double* elapsedTime)

Defines methods for handling status and update events for a storyboard.

dd371764 IUIAnimationStoryboardEventHandler IUIAnimationStoryboardEventHandler

Defines methods for handling storyboard events.

hh448599 IUIAnimationStoryboardEventHandler2 IUIAnimationStoryboardEventHandler2

Defines a method for handling events related to changes in timer client status.

dd371834 IUIAnimationTimerClientEventHandler IUIAnimationTimerClientEventHandler

Defines methods for handling timing events.

Use SetTimerEventHandler to specify the timing events handler for an instance of .

dd371841 IUIAnimationTimerEventHandler IUIAnimationTimerEventHandler

Defines methods for handling timing update events.

The UIAnimationManager object implements this interface, so a client application can query the UIAnimationManager object for this interface and then pass the interface to . It is not necessary to disconnect the UIAnimationManager and UIAnimationTimer objects; releasing them both is sufficient to clean up.

dd371853 IUIAnimationTimerUpdateHandler IUIAnimationTimerUpdateHandler

Extends the interface that defines a transition. An transition determines how an animation variable changes over time in a given dimension.

hh448602 IUIAnimationTransition2 IUIAnimationTransition2
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Gets the number of dimensions in which the animation variable has a transition specified.

The number of dimensions.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448603 HRESULT IUIAnimationTransition2::GetDimension([Out] unsigned int* dimension) IUIAnimationTransition2::GetDimension

Sets the initial value of the transition.

The initial value for the transition.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Do not call this method after the transition has been added to a storyboard.

hh448606 HRESULT IUIAnimationTransition2::SetInitialValue([In] double value) IUIAnimationTransition2::SetInitialValue

Sets the initial value of the transition for each specified dimension in the animation variable.

A vector (of size cDimension) that contains the initial values for the transition.

The number of dimensions that require transition values. This parameter specifies the number of values listed in value.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

The animation manager should not call this method after the transition has been added to a storyboard.

hh448607 HRESULT IUIAnimationTransition2::SetInitialVectorValue([In, Buffer] const double* value,[In] unsigned int cDimension) IUIAnimationTransition2::SetInitialVectorValue

Sets the initial velocity of the transition.

The initial velocity for the transition.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

hh448609 HRESULT IUIAnimationTransition2::SetInitialVelocity([In] double velocity) IUIAnimationTransition2::SetInitialVelocity

Sets the initial velocity of the transition for each specified dimension in the animation variable.

A vector (of size cDimension) that contains the initial velocities for the transition.

The number of dimensions that require transition velocities. This parameter specifies the number of values listed in velocity.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

hh448608 HRESULT IUIAnimationTransition2::SetInitialVectorVelocity([In, Buffer] const double* velocity,[In] unsigned int cDimension) IUIAnimationTransition2::SetInitialVectorVelocity

Determines whether the duration of a transition is known.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

This method should not be called when the storyboard to which the transition has been added is scheduled or playing.

hh448605 HRESULT IUIAnimationTransition2::IsDurationKnown() IUIAnimationTransition2::IsDurationKnown

Gets the duration of the transition.

The duration of the transition, in seconds.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

An application should typically call the IsDurationKnown method before calling this method.

This method should not be called when the storyboard to which the transition has been added is scheduled or playing.

hh448604 HRESULT IUIAnimationTransition2::GetDuration([Out] double* duration) IUIAnimationTransition2::GetDuration

Gets the number of dimensions in which the animation variable has a transition specified.

hh448603 GetDimension GetDimension HRESULT IUIAnimationTransition2::GetDimension([Out] unsigned int* dimension)

Sets the initial value of the transition.

Do not call this method after the transition has been added to a storyboard.

hh448606 SetInitialValue SetInitialValue HRESULT IUIAnimationTransition2::SetInitialValue([In] double value)

Sets the initial velocity of the transition.

hh448609 SetInitialVelocity SetInitialVelocity HRESULT IUIAnimationTransition2::SetInitialVelocity([In] double velocity)

Determines whether the duration of a transition is known.

This method should not be called when the storyboard to which the transition has been added is scheduled or playing.

hh448605 IsDurationKnown IsDurationKnown HRESULT IUIAnimationTransition2::IsDurationKnown()

Gets the duration of the transition.

An application should typically call the IsDurationKnown method before calling this method.

This method should not be called when the storyboard to which the transition has been added is scheduled or playing.

hh448604 GetDuration GetDuration HRESULT IUIAnimationTransition2::GetDuration([Out] double* duration)

Defines a method for creating transitions from custom interpolators.

When an application requires animation effects that are not available in the transition library, developers can implement custom transitions that it can use. A custom transition is created by first implementing the interpolator function for the transition, and then by using a factory object to generate transitions from the interpolator. An interpolator must implement the interface; an implementation of the transition factory object is provided by UIAnimationTransitionFactory.

dd371891 IUIAnimationTransitionFactory IUIAnimationTransitionFactory
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Creates a transition from a custom interpolator.

The interpolator from which a transition is to be created. The specified object must implement the interface.

The new transition.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

dd371894 HRESULT IUIAnimationTransitionFactory::CreateTransition([In] IUIAnimationInterpolator* interpolator,[Out, Fast] IUIAnimationTransition** transition) IUIAnimationTransitionFactory::CreateTransition
Initializes a new instance of the class.

Defines a method for creating transitions from custom interpolators.

supports the creation of transitions in a specified dimension.

When an application requires animation effects that are not available in the transition library, developers can implement custom transitions that the application can use. A custom transition is created by first implementing the interpolator function for the transition, and then by using a factory object to generate transitions from the interpolator. An interpolator must implement either the interface or the interface; an implementation of the transition factory object is provided by UIAnimationTransitionFactory or by UIAnimationTransitionFactory2.

hh448610 IUIAnimationTransitionFactory2 IUIAnimationTransitionFactory2
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Creates a transition from a custom interpolator for a given dimension.

The interpolator from which a transition is to be created. The specified object must implement the interface.

The new transition.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448611 HRESULT IUIAnimationTransitionFactory2::CreateTransition([In] IUIAnimationInterpolator2* interpolator,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionFactory2::CreateTransition

Creates a cubic B?zier linear scalar transition.

During a cubic B?zier linear transition, the value of the animation variable changes from its initial value to the finalValue over the duration of the transition. The ordered pairs, (x1, y1) and (x2, y2), act as control points that provide directional information to transform the linear path of the transition into a smooth parametric curve.

The following figure shows the change in value over time for an animation variable during a cubic B?zier linear transition.

hh448615 IUIAnimationTransitionLibrary2 IUIAnimationTransitionLibrary2
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Creates an instantaneous scalar transition.

The value of the animation variable at the end of the transition.

The new instantaneous transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During an instantaneous transition, the value of the animation variable changes instantly from its current value to a specified final value. The duration of this transition is always zero.

The following figure shows the change in value over time of an animation variable during an instantaneous transition.

hh448621 HRESULT IUIAnimationTransitionLibrary2::CreateInstantaneousTransition([In] double finalValue,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateInstantaneousTransition

Creates an instantaneous vector transition for each specified dimension.

A vector (of size cDimension) that contains the values of the animation variable at the end of the transition.

The number of dimensions to apply the transition. This parameter specifies the number of values listed in finalValue.

The new instantaneous transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During an instantaneous transition, the value of the animation variable changes instantly from its current value to a specified final value. The duration of this transition is always zero.

The following figure shows the change in value over time of an animation variable during an instantaneous transition.

hh448622 HRESULT IUIAnimationTransitionLibrary2::CreateInstantaneousVectorTransition([In, Buffer] const double* finalValue,[In] unsigned int cDimension,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateInstantaneousVectorTransition

Creates a constant scalar transition.

The duration of the transition.

The new constant transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a constant transition, the value of an animation variable remains at the initial value over the duration of the transition.

The following figure shows the change in value for an animation variable over time during a constant-duration transition.

hh448614 HRESULT IUIAnimationTransitionLibrary2::CreateConstantTransition([In] double duration,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateConstantTransition

Creates a discrete scalar transition.

The amount of time by which to delay the instantaneous switch to the final value.

The value of the animation variable at the end of the transition.

The amount of time by which to hold the variable at its final value.

The new discrete transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a discrete transition, the animation variable remains at the initial value for a specified delay time, then switches instantaneously to a specified final value and remains at that value for a given hold time.

The following figure shows the change in value over time of an animation variable during a discrete transition.

hh448619 HRESULT IUIAnimationTransitionLibrary2::CreateDiscreteTransition([In] double delay,[In] double finalValue,[In] double hold,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateDiscreteTransition

Creates a discrete vector transition for each specified dimension.

The amount of time by which to delay the instantaneous switch to the final value.

A vector (of size cDimension) that contains the final values of the animation variable at the end of the transition.

The number of dimensions to apply the transition. This parameter specifies the number of values listed in finalValue.

The amount of time by which to hold the variable at its final value.

The new discrete transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a discrete transition, the animation variable remains at the initial value for a specified delay time, then switches instantaneously to a specified final value and remains at that value for a given hold time.

The following figure shows the change in value over time of an animation variable during a discrete transition.

hh448620 HRESULT IUIAnimationTransitionLibrary2::CreateDiscreteVectorTransition([In] double delay,[In, Buffer] const double* finalValue,[In] unsigned int cDimension,[In] double hold,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateDiscreteVectorTransition

Creates a linear scalar transition.

The duration of the transition.

The value of the animation variable at the end of the transition.

The new linear transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a linear transition, the value of the animation variable transitions linearly from its initial value to a specified final value.

The following figure shows the change in value over time of an animation variable during a linear transition.

hh448623 HRESULT IUIAnimationTransitionLibrary2::CreateLinearTransition([In] double duration,[In] double finalValue,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateLinearTransition

Creates a linear vector transition in the specified dimension.

The duration of the transition.

A vector (of size cDimension) that contains the final values of the animation variable at the end of the transition.

The number of dimensions to apply the transition. This parameter specifies the number of values listed in finalValue.

The new linear transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a linear transition, the value of the animation variable transitions linearly from its initial value to a specified final value.

The following figure shows the change in value over time of an animation variable during a linear transition.

hh448625 HRESULT IUIAnimationTransitionLibrary2::CreateLinearVectorTransition([In] double duration,[In, Buffer] const double* finalValue,[In] unsigned int cDimension,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateLinearVectorTransition

Creates a linear-speed scalar transition.

The absolute value of the velocity in units/second.

The value of the animation variable at the end of the transition.

The new linear-speed transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a linear-speed transition, the value of the animation variable changes at a specified rate. The duration of the transition is determined by the difference between the initial value and the specified final value.

The following figure shows the change in value over time of an animation variable during a linear-speed transition.

hh448624 HRESULT IUIAnimationTransitionLibrary2::CreateLinearTransitionFromSpeed([In] double speed,[In] double finalValue,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateLinearTransitionFromSpeed

Creates a linear-speed vector transition in the specified dimension.

The absolute value of the velocity in units/second.

A vector (of size cDimension) that contains the final values of the animation variable at the end of the transition.

The number of dimensions to apply the transition. This parameter specifies the number of values listed in finalValue.

The new linear-speed transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a linear-speed transition, the value of the animation variable changes at a specified rate. The duration of the transition is determined by the difference between the initial value and the specified final value.

The following figure shows the change in value over time of an animation variable during a linear-speed transition.

hh448626 HRESULT IUIAnimationTransitionLibrary2::CreateLinearVectorTransitionFromSpeed([In] double speed,[In, Buffer] const double* finalValue,[In] unsigned int cDimension,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateLinearVectorTransitionFromSpeed

Creates a sinusoidal scalar transition where amplitude is determined by initial velocity.

The duration of the transition.

The period of oscillation of the sinusoidal wave.

The new sinusoidal-velocity transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

The value of the animation variable oscillates around the initial value over the entire duration of a sinusoidal-range transition. The amplitude of the oscillation is determined by the velocity when the transition begins.

The following figure shows the change in value over time of an animation variable during a sinusoidal-velocity transition.

hh448630 HRESULT IUIAnimationTransitionLibrary2::CreateSinusoidalTransitionFromVelocity([In] double duration,[In] double period,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateSinusoidalTransitionFromVelocity

Creates a sinusoidal-range scalar transition with a specified range of oscillation.

The duration of the transition.

The value of the animation variable at a trough of the sinusoidal wave.

The value of the animation variable at a peak of the sinusoidal wave.

The period of oscillation of the sinusoidal wave.

The slope at the start of the transition.

The new sinusoidal-range transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

The value of the animation variable fluctuates between the specified minimum and maximum values over the entire duration of a sinusodial-range transition. The slope parameter is used to disambiguate between the two possible sine waves specified by the other parameters.

The following figure shows the change in value over time of an animation variable during a sinusoidal-range transition. Passing in the enumeration value yields a wave like the solid curve shown in the figure, whereas the value yields a wave like the dashed curve.

hh448629 HRESULT IUIAnimationTransitionLibrary2::CreateSinusoidalTransitionFromRange([In] double duration,[In] double minimumValue,[In] double maximumValue,[In] double period,[In] UI_ANIMATION_SLOPE slope,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateSinusoidalTransitionFromRange

Creates an accelerate-decelerate scalar transition.

The duration of the transition.

The value of the animation variable at the end of the transition.

The ratio of duration time spent accelerating (0 to 1).

The ratio of duration time spent decelerating (0 to 1).

The new accelerate-decelerate transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During an accelerate-decelerate transition, the animation variable speeds up and then slows down over the duration of the transition, ending at a specified value. You can control how quickly the variable accelerates and decelerates independently, by specifying different acceleration and deceleration ratios.

When the initial velocity is zero, the acceleration ratio is the fraction of the duration that the variable will spend accelerating; likewise for the deceleration ratio. If the value of initial velocity is nonzero, the value is the fraction of the time between the velocity reaching zero and the end of transition. The acceleration ratio and the deceleration ratio should sum to a maximum of 1.0.

The following figures show the change in value for animation variables with different initial velocities during accelerate-decelerate transitions.

Note??d' in the figure on the right shows the time between the velocity reaching zero and the end of the transition.

hh448613 HRESULT IUIAnimationTransitionLibrary2::CreateAccelerateDecelerateTransition([In] double duration,[In] double finalValue,[In] double accelerationRatio,[In] double decelerationRatio,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateAccelerateDecelerateTransition

Creates a reversal scalar transition.

The duration of the transition.

The new reversal transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

A reversal transition smoothly changes direction over the specified duration. The final value will be the same as the initial value and the final velocity will be the negative of the initial velocity. The folllowing figure shows such a reversal transition.

hh448628 HRESULT IUIAnimationTransitionLibrary2::CreateReversalTransition([In] double duration,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateReversalTransition

Creates a cubic scalar transition.

The duration of the transition.

The value of the animation variable at the end of the transition.

The velocity of the variable at the end of the transition.

The new cubic transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a cubic transition, the value of the animation variable changes from its initial value to the finalValue over the duration of the transition, ending at the finalVelocity.

The following figure shows the effect on an animation variable over time during a cubic transition.

hh448617 HRESULT IUIAnimationTransitionLibrary2::CreateCubicTransition([In] double duration,[In] double finalValue,[In] double finalVelocity,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateCubicTransition

Creates a cubic vector transition for each specified dimension.

The duration of the transition.

A vector (of size cDimension) that contains the final values of the animation variable at the end of the transition.

A vector (of size cDimension) that contains the final velocities (in units per second) of the animation variable at the end of the transition.

The number of dimensions to apply the transition. This parameter specifies the number of values listed in finalValue and finalVelocity.

The new cubic transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a cubic transition, the value of the animation variable changes from its initial value to the finalValue over the duration of the transition, ending at the finalVelocity.

The following figure shows the effect on an animation variable over time during a cubic transition.

hh448618 HRESULT IUIAnimationTransitionLibrary2::CreateCubicVectorTransition([In] double duration,[In, Buffer] const double* finalValue,[In, Buffer] const double* finalVelocity,[In] unsigned int cDimension,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateCubicVectorTransition

Creates a smooth-stop scalar transition.

The maximum duration of the transition.

The value of the animation variable at the end of the transition.

The new smooth-stop transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

A smooth-stop transition slows down as it approaches the specified final value, and reaches the final value with a velocity of zero. The duration of the transition is determined by the initial velocity, the difference between the initial and final values, and the specified maximum duration. If there is no solution consisting of a single parabolic arc, this method creates a cubic transition.

The following figure shows the change in value over time of an animation variable during a smooth-stop transition.

hh448631 HRESULT IUIAnimationTransitionLibrary2::CreateSmoothStopTransition([In] double maximumDuration,[In] double finalValue,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateSmoothStopTransition

Creates a parabolic-acceleration scalar transition.

The value of the animation variable at the end of the transition.

The velocity, in units/second, at the end of the transition.

The acceleration, in units/second2, during the transition.

The new parabolic-acceleration transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a parabolic-acceleration transition, the value of the animation variable changes from the initial value to the final value, ending at the specified velocity. You can control how quickly the variable reaches the final value by specifying the rate of acceleration.

The following figure shows the change in value over time of an animation variable during a parabolic-acceleration transition.

hh448627 HRESULT IUIAnimationTransitionLibrary2::CreateParabolicTransitionFromAcceleration([In] double finalValue,[In] double finalVelocity,[In] double acceleration,[Out] IUIAnimationTransition2** transition) IUIAnimationTransitionLibrary2::CreateParabolicTransitionFromAcceleration

Creates a cubic B?zier linear scalar transition.

The duration of the transition.

The value of the animation variable at the end of the transition.

The x-coordinate of the first control point.

The y-coordinate of the first control point.

The x-coordinate of the second control point.

The y-coordinate of the second control point.

The new cubic B?zier linear transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a cubic B?zier linear transition, the value of the animation variable changes from its initial value to the finalValue over the duration of the transition. The ordered pairs, (x1, y1) and (x2, y2), act as control points that provide directional information to transform the linear path of the transition into a smooth parametric curve.

The following figure shows the change in value over time for an animation variable during a cubic B?zier linear transition.

hh448615 HRESULT IUIAnimationTransitionLibrary2::CreateCubicBezierLinearTransition([In] double duration,[In] double finalValue,[In] double x1,[In] double y1,[In] double x2,[In] double y2,[Out] IUIAnimationTransition2** ppTransition) IUIAnimationTransitionLibrary2::CreateCubicBezierLinearTransition

Creates a cubic B?zier linear vector transition for each specified dimension.

The duration of the transition.

A vector (of size cDimension) that contains the final values of the animation variable at the end of the transition.

The number of dimensions to apply the transition. This parameter specifies the number of values listed in finalValue.

The x-coordinate of the first control point.

The y-coordinate of the first control point.

The x-coordinate of the second control point.

The y-coordinate of the second control point.

The new cubic B?zier linear transition.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

During a cubic B?zier linear transition, the value of the animation variable changes from its initial value to the finalValue over the duration of the transition. The ordered pairs, (x1, y1) and (x2, y2), act as control points that provide directional information to transform the linear path of the transition into a smooth parametric curve.

The following figure shows the change in value over time of an animation variable during a cubic B?zier linear transition.

hh448616 HRESULT IUIAnimationTransitionLibrary2::CreateCubicBezierLinearVectorTransition([In] double duration,[In, Buffer] const double* finalValue,[In] unsigned int cDimension,[In] double x1,[In] double y1,[In] double x2,[In] double y2,[Out] IUIAnimationTransition2** ppTransition) IUIAnimationTransitionLibrary2::CreateCubicBezierLinearVectorTransition

Defines an animation variable, which represents a visual element that can be animated.

Along with and , is a primary component for building animations. To create and manage animation variables, use .

dd316797 IUIAnimationVariable IUIAnimationVariable
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Gets the current value of the animation variable.

The current value of the animation variable.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

The results can be affected by the lower and upper bounds determined by and , respectively.

dd317002 HRESULT IUIAnimationVariable::GetValue([Out] double* value) IUIAnimationVariable::GetValue

Gets the final value of the animation variable. This is the value after all currently scheduled animations have completed.

The final value of the animation variable.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_VALUE_NOT_DETERMINED

The final value of the animation variable cannot be determined at this time.

?

The result can be affected by the lower and upper bounds determined by and , respectively.

dd316990 HRESULT IUIAnimationVariable::GetFinalValue([Out] double* finalValue) IUIAnimationVariable::GetFinalValue

Gets the previous value of the animation variable. This is the value of the animation variable before the most recent update.

The previous value of the animation variable.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

The results can be affected by the lower and upper bounds determined by and , respectively.

dd316996 HRESULT IUIAnimationVariable::GetPreviousValue([Out] double* previousValue) IUIAnimationVariable::GetPreviousValue

Gets the current value of the animation variable as an integer.

The current value of the animation variable, converted to an INT32 value.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

To specify the rounding mode to be used when converting the value, use the method.

The result can also be affected by the lower and upper bounds determined by and , respectively.

dd316991 HRESULT IUIAnimationVariable::GetIntegerValue([Out] int* value) IUIAnimationVariable::GetIntegerValue

Gets the final value of the animation variable as an integer. This is the value after all currently scheduled animations have completed.

The final value of the animation variable, converted to an INT32 value.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_VALUE_NOT_DETERMINED

The final value of the animation variable cannot be determined at this time.

?

To specify the rounding mode to be used when converting the value, use the method.

The result can also be affected by the lower and upper bounds determined by and , respectively.

dd316836 HRESULT IUIAnimationVariable::GetFinalIntegerValue([Out] int* finalValue) IUIAnimationVariable::GetFinalIntegerValue

Gets the previous value of the animation variable as an integer. This is the value of the animation variable before the most recent update.

The previous value of the animation variable, converted to an INT32 value.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

To specify the rounding mode to be used when converting the value, use the method.

The result can also be affected by the lower and upper bounds determined by and , respectively.

dd316994 HRESULT IUIAnimationVariable::GetPreviousIntegerValue([Out] int* previousValue) IUIAnimationVariable::GetPreviousIntegerValue

Gets the storyboard that is currently animating the animation variable.

The current storyboard, or null if no storyboard is currently animating the animation variable.

If the method succeeds, it returns . Otherwise, it returns an error code. See UIAnimation Error Codes for a list of error codes.

dd316831 HRESULT IUIAnimationVariable::GetCurrentStoryboard([Out] IUIAnimationStoryboard** storyboard) IUIAnimationVariable::GetCurrentStoryboard

Sets the lower bound (floor) for the animation variable. The value of the animation variable should not fall below the specified value.

The lower bound for the animation variable.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

dd317005 HRESULT IUIAnimationVariable::SetLowerBound([In] double bound) IUIAnimationVariable::SetLowerBound

Sets an upper bound (ceiling) for the animation variable. The value of the animation variable should not rise above the specified value.

The upper bound for the animation variable.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

dd317010 HRESULT IUIAnimationVariable::SetUpperBound([In] double bound) IUIAnimationVariable::SetUpperBound

Specifies the rounding mode for the animation variable.

The rounding mode for the animation variable.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

An animation variable's rounding mode determines how a floating-point value is converted to an integer. The default mode for each variable is .

dd317006 HRESULT IUIAnimationVariable::SetRoundingMode([In] UI_ANIMATION_ROUNDING_MODE mode) IUIAnimationVariable::SetRoundingMode

Sets the tag for an animation variable.

The object portion of the tag. This parameter can be null.

The identifier portion of the tag.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

A tag is a pairing of an integer identifier (id) with a COM object (object); it can be used by an application to identify an animation variable. Because null is a valid object component of a tag, the object parameter can be null.

dd317008 HRESULT IUIAnimationVariable::SetTag([In, Optional] void* object,[In] unsigned int id) IUIAnimationVariable::SetTag

Gets the tag for an animation variable.

The object portion of the tag.

The identifier portion of the tag.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Return codeDescription
UI_E_VALUE_NOT_SET

The animation variable's tag was not set.

?

A tag is a pairing of an integer identifier (id) with a COM object (object); it can be used by an application to identify an animation variable.

The parameters are optional so that the method can return both portions of the tag, or just the identifier or object portion.

dd316998 HRESULT IUIAnimationVariable::GetTag([Out, Optional] void** object,[Out, Optional] unsigned int* id) IUIAnimationVariable::GetTag

Specifies a variable change handler. This handler is notified of changes to the value of the animation variable.

A variable change handler. The specified object must implement the interface or be null. See Remarks.

If the method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

Passing null for the handler parameter causes Windows Animation to release its reference to any handler object you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

dd317011 HRESULT IUIAnimationVariable::SetVariableChangeHandler([In, Optional] IUIAnimationVariableChangeHandler* handler) IUIAnimationVariable::SetVariableChangeHandler

Specifies an integer variable change handler. This handler is notified of changes to the integer value of the animation variable.

An integer variable change handler. The specified object must implement the interface or be null. See Remarks.

If the method succeeds, it returns . Otherwise, it returns an error code. See Winodws Animation Error Codes for a list of error codes.

Passing null for the handler parameter causes Windows Animation to release its reference to any handler object you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

is called only if the rounded value has changed since the last update.

dd317013 HRESULT IUIAnimationVariable::SetVariableIntegerChangeHandler([In, Optional] IUIAnimationVariableIntegerChangeHandler* handler) IUIAnimationVariable::SetVariableIntegerChangeHandler
Initializes a new instance of the class. The manager. The initial value. HRESULT IUIAnimationManager::CreateAnimationVariable([In] double initialValue,[Out] IUIAnimationVariable** variable) Sets the tag. The @object. The id. A object describing the result of the operation. HRESULT IUIAnimationStoryboard::SetTag([In, Optional] void* object,[In] unsigned int id) Gets the tag. The @object. The id. A object describing the result of the operation. HRESULT IUIAnimationStoryboard::GetTag([Out, Optional] void** object,[Out, Optional] unsigned int* id)

Gets the current value of the animation variable.

The results can be affected by the lower and upper bounds determined by and , respectively.

dd317002 GetValue GetValue HRESULT IUIAnimationVariable::GetValue([Out] double* value)

Gets the final value of the animation variable. This is the value after all currently scheduled animations have completed.

The result can be affected by the lower and upper bounds determined by and , respectively.

dd316990 GetFinalValue GetFinalValue HRESULT IUIAnimationVariable::GetFinalValue([Out] double* finalValue)

Gets the previous value of the animation variable. This is the value of the animation variable before the most recent update.

The results can be affected by the lower and upper bounds determined by and , respectively.

dd316996 GetPreviousValue GetPreviousValue HRESULT IUIAnimationVariable::GetPreviousValue([Out] double* previousValue)

Gets the current value of the animation variable as an integer.

To specify the rounding mode to be used when converting the value, use the method.

The result can also be affected by the lower and upper bounds determined by and , respectively.

dd316991 GetIntegerValue GetIntegerValue HRESULT IUIAnimationVariable::GetIntegerValue([Out] int* value)

Gets the final value of the animation variable as an integer. This is the value after all currently scheduled animations have completed.

To specify the rounding mode to be used when converting the value, use the method.

The result can also be affected by the lower and upper bounds determined by and , respectively.

dd316836 GetFinalIntegerValue GetFinalIntegerValue HRESULT IUIAnimationVariable::GetFinalIntegerValue([Out] int* finalValue)

Gets the previous value of the animation variable as an integer. This is the value of the animation variable before the most recent update.

To specify the rounding mode to be used when converting the value, use the method.

The result can also be affected by the lower and upper bounds determined by and , respectively.

dd316994 GetPreviousIntegerValue GetPreviousIntegerValue HRESULT IUIAnimationVariable::GetPreviousIntegerValue([Out] int* previousValue)

Gets the storyboard that is currently animating the animation variable.

dd316831 GetCurrentStoryboard GetCurrentStoryboard HRESULT IUIAnimationVariable::GetCurrentStoryboard([Out] IUIAnimationStoryboard** storyboard)

Sets the lower bound (floor) for the animation variable. The value of the animation variable should not fall below the specified value.

dd317005 SetLowerBound SetLowerBound HRESULT IUIAnimationVariable::SetLowerBound([In] double bound)

Sets an upper bound (ceiling) for the animation variable. The value of the animation variable should not rise above the specified value.

dd317010 SetUpperBound SetUpperBound HRESULT IUIAnimationVariable::SetUpperBound([In] double bound)

Specifies the rounding mode for the animation variable.

An animation variable's rounding mode determines how a floating-point value is converted to an integer. The default mode for each variable is .

dd317006 SetRoundingMode SetRoundingMode HRESULT IUIAnimationVariable::SetRoundingMode([In] UI_ANIMATION_ROUNDING_MODE mode)

Defines an animation variable, which represents a visual element that can be animated in multiple dimensions.

hh448632 IUIAnimationVariable2 IUIAnimationVariable2
Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion.

Gets the number of dimensions that the animation variable is to be animated in.

The number of dimensions.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448635 HRESULT IUIAnimationVariable2::GetDimension([Out] unsigned int* dimension) IUIAnimationVariable2::GetDimension

Gets the value of the animation variable.

The value of the animation variable.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448647 HRESULT IUIAnimationVariable2::GetValue([Out] double* value) IUIAnimationVariable2::GetValue
No documentation. No documentation. No documentation. No documentation. HRESULT IUIAnimationVariable2::GetVectorValue([Out, Buffer] double* value,[In] unsigned int cDimension) IUIAnimationVariable2::GetVectorValue

Gets the animation curve of the animation variable.

The object that generates a sequence of animation curve primitives.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

The application implements the object that is referenced by the animation parameter.

hh448634 HRESULT IUIAnimationVariable2::GetCurve([In] IUnknown* animation) IUIAnimationVariable2::GetCurve

Gets the animation curve of the animation variable for the specified dimension.

The object that generates a sequence of animation curve primitives.

The number of animation curves.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

The application implements the object that is referenced by the animation parameter.

hh448648 HRESULT IUIAnimationVariable2::GetVectorCurve([In, Buffer] IUnknown** animation,[In] unsigned int cDimension) IUIAnimationVariable2::GetVectorCurve

Gets the animation curve of the animation variable for the specified dimension.

The object that generates a sequence of animation curve primitives.

The number of animation curves.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

The application implements the object that is referenced by the animation parameter.

hh448648 HRESULT IUIAnimationVariable2::GetVectorCurve([In, Buffer] IUnknown** animation,[In] unsigned int cDimension) IUIAnimationVariable2::GetVectorCurve

Gets the final value of the animation variable. This is the value after all currently scheduled animations have completed.

The final value of the animation variable.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448638 HRESULT IUIAnimationVariable2::GetFinalValue([Out] double* finalValue) IUIAnimationVariable2::GetFinalValue

Gets the final value of the animation variable for the specified dimension. This is the value after all currently scheduled animations have completed.

The final value of the animation variable.

The dimension from which to get the value of the animation variable.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448639 HRESULT IUIAnimationVariable2::GetFinalVectorValue([Out, Buffer] double* finalValue,[In] unsigned int cDimension) IUIAnimationVariable2::GetFinalVectorValue

Gets the previous value of the animation variable. This is the value of the animation variable before the most recent update.

The previous value of the animation variable.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448644 HRESULT IUIAnimationVariable2::GetPreviousValue([Out] double* previousValue) IUIAnimationVariable2::GetPreviousValue

Gets the previous value of the animation variable for the specified dimension. This is the value of the animation variable before the most recent update.

The previous value of the animation variable.

The dimension from which to get the value of the animation variable.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448645 HRESULT IUIAnimationVariable2::GetPreviousVectorValue([Out, Buffer] double* previousValue,[In] unsigned int cDimension) IUIAnimationVariable2::GetPreviousVectorValue

Gets the integer value of the animation variable.

The value of the animation variable as an integer.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448640 HRESULT IUIAnimationVariable2::GetIntegerValue([Out] int* value) IUIAnimationVariable2::GetIntegerValue

Gets the integer value of the animation variable for the specified dimension.

The value of the animation variable as an integer.

The dimension from which to get the value of the animation variable.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448641 HRESULT IUIAnimationVariable2::GetIntegerVectorValue([Out, Buffer] int* value,[In] unsigned int cDimension) IUIAnimationVariable2::GetIntegerVectorValue

Gets the final integer value of the animation variable. This is the value after all currently scheduled animations have completed.

The final value of the animation variable as an integer.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448636 HRESULT IUIAnimationVariable2::GetFinalIntegerValue([Out] int* finalValue) IUIAnimationVariable2::GetFinalIntegerValue

Gets the final integer value of the animation variable for the specified dimension. This is the value after all currently scheduled animations have completed.

The final value of the animation variable as an integer.

The dimension from which to get the value of the animation variable.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448637 HRESULT IUIAnimationVariable2::GetFinalIntegerVectorValue([Out, Buffer] int* finalValue,[In] unsigned int cDimension) IUIAnimationVariable2::GetFinalIntegerVectorValue

Gets the previous integer value of the animation variable in the specified dimension. This is the value of the animation variable before the most recent update.

The previous value of the animation variable as an integer.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448642 HRESULT IUIAnimationVariable2::GetPreviousIntegerValue([Out] int* previousValue) IUIAnimationVariable2::GetPreviousIntegerValue

Gets the previous integer value of the animation variable for the specified dimension. This is the value of the animation variable before the most recent update.

The previous value of the animation variable as an integer.

The dimension from which to get the value of the animation variable.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448643 HRESULT IUIAnimationVariable2::GetPreviousIntegerVectorValue([Out, Buffer] int* previousValue,[In] unsigned int cDimension) IUIAnimationVariable2::GetPreviousIntegerVectorValue

Gets the active storyboard for the animation variable.

The active storyboard, or null if the animation variable is not being animated.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

hh448633 HRESULT IUIAnimationVariable2::GetCurrentStoryboard([Out] IUIAnimationStoryboard2** storyboard) IUIAnimationVariable2::GetCurrentStoryboard

Sets the lower bound (floor) for the value of the animation variable. The value of the animation variable should not fall below the specified value.

The lower bound for the value of the animation variable.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

hh448650 HRESULT IUIAnimationVariable2::SetLowerBound([In] double bound) IUIAnimationVariable2::SetLowerBound

Sets the lower bound (floor) value of each specified dimension for the animation variable. The value of each animation variable should not fall below its lower bound.

A vector (of size cDimension) that contains the lower bound values of each dimension.

The number of dimensions that require lower bound values. This parameter specifies the number of values listed in bound.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

hh448651 HRESULT IUIAnimationVariable2::SetLowerBoundVector([In, Buffer] const double* bound,[In] unsigned int cDimension) IUIAnimationVariable2::SetLowerBoundVector

Sets the upper bound (ceiling) for the value of the animation variable. The value of the animation variable should not rise above the specified value.

The upper bound for the value of the animation variable.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

hh448654 HRESULT IUIAnimationVariable2::SetUpperBound([In] double bound) IUIAnimationVariable2::SetUpperBound

Sets the upper bound (ceiling) value of each specified dimension for the animation variable. The value of each animation variable should not rise above its upper bound.

A vector (of size cDimension) that contains the upper bound values of each dimension.

The number of dimensions that require upper bound values. This parameter specifies the number of values listed in bound.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

hh448655 HRESULT IUIAnimationVariable2::SetUpperBoundVector([In, Buffer] const double* bound,[In] unsigned int cDimension) IUIAnimationVariable2::SetUpperBoundVector

Sets the rounding mode of the animation variable.

The rounding mode.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

An animation variable's rounding mode determines how a floating-point value is converted to an integer. The default mode for each variable is .

hh448652 HRESULT IUIAnimationVariable2::SetRoundingMode([In] UI_ANIMATION_ROUNDING_MODE mode) IUIAnimationVariable2::SetRoundingMode

Sets the tag of the animation variable.

The object portion of the tag. This parameter can be null.

The identifier portion of the tag.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

A tag is a pairing of an integer identifier (id) with a COM object (object), and it can be used by an application to identify an animation variable. Because null is a valid object component of a tag, the object parameter can be null.

hh448653 HRESULT IUIAnimationVariable2::SetTag([In, Optional] IUnknown* object,[In] unsigned int id) IUIAnimationVariable2::SetTag

Gets the tag of the animation variable.

The object portion of the tag.

The identifier portion of the tag.

If this method succeeds, it returns . Otherwise, it returns an error code. See Windows Animation Error Codes for a list of error codes.

A tag is a pairing of an integer identifier (id) with a COM object (object); it can be used by an application to identify an animation variable.

The parameters are optional, so that the method can return both portions of the tag, or just the identifier or object portion.

hh448646 HRESULT IUIAnimationVariable2::GetTag([Out, Optional] IUnknown** object,[Out, Optional] unsigned int* id) IUIAnimationVariable2::GetTag

Specifies a handler for changes to the value of the animation variable.

The handler for changes to the value of the animation variable. This parameter can be null.

If TRUE, specifies that the EstimateNextEventTime method will incorporate handler into its estimate of the time interval until the next animation event. No default value.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Passing null for the handler parameter causes Windows Animation to release its reference to any handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the method.

hh448656 HRESULT IUIAnimationVariable2::SetVariableChangeHandler([In, Optional] IUIAnimationVariableChangeHandler2* handler,[In] BOOL fRegisterForNextAnimationEvent) IUIAnimationVariable2::SetVariableChangeHandler

Specifies a handler for changes to the integer value of the animation variable.

A reference to the handler for changes to the integer value of the animation variable. This parameter can be null.

If TRUE, specifies that the EstimateNextEventTime method will incorporate handler into its estimate of the time interval until the next animation event. No default value.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

Passing null for the handler parameter causes Windows Animation to release its reference to any handler object that you passed in earlier. This technique can be essential for breaking reference cycles without having to call the Shutdown method.

is called only if the rounded value has changed since the last update.

hh448658 HRESULT IUIAnimationVariable2::SetVariableIntegerChangeHandler([In, Optional] IUIAnimationVariableIntegerChangeHandler2* handler,[In] BOOL fRegisterForNextAnimationEvent) IUIAnimationVariable2::SetVariableIntegerChangeHandler

Specifies a handler for changes to the animation curve of the animation variable.

A reference to the handler for changes to the animation curve of the animation variable. This parameter can be null.

Returns if successful; otherwise an error code. See Windows Animation Error Codes for a list of error codes.

hh448657 HRESULT IUIAnimationVariable2::SetVariableCurveChangeHandler([In, Optional] IUIAnimationVariableCurveChangeHandler2* handler) IUIAnimationVariable2::SetVariableCurveChangeHandler

Gets the number of dimensions that the animation variable is to be animated in.

hh448635 GetDimension GetDimension HRESULT IUIAnimationVariable2::GetDimension([Out] unsigned int* dimension)

Gets the value of the animation variable.

hh448647 GetValue GetValue HRESULT IUIAnimationVariable2::GetValue([Out] double* value)

Gets the final value of the animation variable. This is the value after all currently scheduled animations have completed.

hh448638 GetFinalValue GetFinalValue HRESULT IUIAnimationVariable2::GetFinalValue([Out] double* finalValue)

Gets the previous value of the animation variable. This is the value of the animation variable before the most recent update.

hh448644 GetPreviousValue GetPreviousValue HRESULT IUIAnimationVariable2::GetPreviousValue([Out] double* previousValue)

Gets the integer value of the animation variable.

hh448640 GetIntegerValue GetIntegerValue HRESULT IUIAnimationVariable2::GetIntegerValue([Out] int* value)

Gets the final integer value of the animation variable. This is the value after all currently scheduled animations have completed.

hh448636 GetFinalIntegerValue GetFinalIntegerValue HRESULT IUIAnimationVariable2::GetFinalIntegerValue([Out] int* finalValue)

Gets the previous integer value of the animation variable in the specified dimension. This is the value of the animation variable before the most recent update.

hh448642 GetPreviousIntegerValue GetPreviousIntegerValue HRESULT IUIAnimationVariable2::GetPreviousIntegerValue([Out] int* previousValue)

Gets the active storyboard for the animation variable.

hh448633 GetCurrentStoryboard GetCurrentStoryboard HRESULT IUIAnimationVariable2::GetCurrentStoryboard([Out] IUIAnimationStoryboard2** storyboard)

Sets the lower bound (floor) for the value of the animation variable. The value of the animation variable should not fall below the specified value.

hh448650 SetLowerBound SetLowerBound HRESULT IUIAnimationVariable2::SetLowerBound([In] double bound)

Sets the upper bound (ceiling) for the value of the animation variable. The value of the animation variable should not rise above the specified value.

hh448654 SetUpperBound SetUpperBound HRESULT IUIAnimationVariable2::SetUpperBound([In] double bound)

Sets the rounding mode of the animation variable.

An animation variable's rounding mode determines how a floating-point value is converted to an integer. The default mode for each variable is .

hh448652 SetRoundingMode SetRoundingMode HRESULT IUIAnimationVariable2::SetRoundingMode([In] UI_ANIMATION_ROUNDING_MODE mode)

Defines a method for handling events related to animation variable updates.

OnValueChanged receives animation variable value updates as DOUBLE values. To receive value updates as INT32 values, use .

dd316806 IUIAnimationVariableChangeHandler IUIAnimationVariableChangeHandler

Defines a method for handling animation variable update events. handles events that occur in a specified dimension.

The OnValueChanged method receives animation variable value updates as DOUBLE values. To receive value updates as INT32 values, use the method.

hh448659 IUIAnimationVariableChangeHandler2 IUIAnimationVariableChangeHandler2

Defines a method for handling animation curve update events.

hh448661 IUIAnimationVariableCurveChangeHandler2 IUIAnimationVariableCurveChangeHandler2

Defines a method for handling animation variable update events.

OnIntegerValueChanged receives animation variable value updates as INT32 values. To receive value updates as DOUBLE values, use the method.

dd316819 IUIAnimationVariableIntegerChangeHandler IUIAnimationVariableIntegerChangeHandler

Defines a method for handling animation variable update events. handles events that occur in a specified dimension.

hh448663 IUIAnimationVariableIntegerChangeHandler2 IUIAnimationVariableIntegerChangeHandler2
Internal ManagerEventHandler Callback Return a pointer to the unmanaged version of this callback. The callback. A pointer to a shadow c++ callback HRESULT IUIAnimationManagerEventHandler::OnManagerStatusChanged([In] UI_ANIMATION_MANAGER_STATUS newStatus,[In] UI_ANIMATION_MANAGER_STATUS previousStatus) Repeat count used for Indicates that the interval between two keyframes in a storyboard should repeat indefinitely until the method is called. UI_ANIMATION_REPEAT_INDEFINITELY Indicates that the interval between two keyframes in a storyboard should repeat indefinitely until the keyframe loop terminates on the ending keyframe when the method is called. UI_ANIMATION_REPEAT_INDEFINITELY_CONCLUDE_AT_END Indicates that the interval between two keyframes in a storyboard should repeat indefinitely until the keyframe loop terminates on the starting keyframe when the method is called. UI_ANIMATION_REPEAT_INDEFINITELY_CONCLUDE_AT_START