Windows Dev Center

IUIAnimationStoryboard::Schedule method

Directs the storyboard to schedule itself for play.

Syntax


HRESULT Schedule(
  [in]            UI_ANIMATION_SECONDS           timeNow,
  [out, optional] UI_ANIMATION_SCHEDULING_RESULT *schedulingResult
);

Parameters

timeNow [in]

The current time.

schedulingResult [out, optional]

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

Return value

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

Remarks

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 UI_ANIMATION_SCHEDULING_INSUFFICIENT_PRIORITY.

If this method is called from a handler for OnStoryboardStatusChanged events, the schedulingResult parameter is set to UI_ANIMATION_SCHEDULING_DEFERRED. 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 UI_ANIMATION_STORYBOARD_INSUFFICIENT_PRIORITY.

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

Examples

The following example gets the current time and schedules the storyboard. For an additional example, see Schedule a Storyboard.


// Get the current time and schedule the storyboard
UI_ANIMATION_SECONDS secondsNow;
hr = m_pAnimationTimer->GetTime(
    &secondsNow
    );
if (SUCCEEDED(hr))
{
    UI_ANIMATION_SCHEDULING_RESULT schedulingResult;
    hr = pStoryboard->Schedule(
        secondsNow,
        &schedulingResult
        );
    if (SUCCEEDED(hr))
    {
        if (schedulingResult == UI_ANIMATION_SCHEDULING_SUCCEEDED)
        {
            ...
        }
        else
        {
            ...
        }
    }
}

Requirements

Minimum supported client

Windows 7, Windows Vista and Platform Update for Windows Vista [desktop apps | Windows Store apps]

Minimum supported server

None supported [desktop apps | Windows Store apps]

Header

UIAnimation.h

IDL

UIAnimation.idl

DLL

UIAnimation.dll

See also

IUIAnimationStoryboard
IUIAnimationStoryboard::Abandon
IUIAnimationStoryboard::Conclude
IUIAnimationStoryboard::Finish
IUIAnimationStoryboard::GetStatus
IUIAnimationTimer::GetTime
UI_ANIMATION_SCHEDULING_RESULT
UI_ANIMATION_STORYBOARD_STATUS

 

 

Community Additions

ADD
Show:
© 2015 Microsoft