Что означает код HRESULT 0x802A0107 (UI_E_TRANSITION_NOT_IN_STORYBOARD)?

 
Предыдущий Следующий
UI_E_TRANSITION_ALREADY_USED UI_E_TRANSITION_ECLIPSED

UI_E_TRANSITION_NOT_IN_STORYBOARD

Что означает результат

Значение 0X802A0107 возникает на границе Windows Animation Manager storyboard/transition lifecycle; конкретная проверка для этого случая — transition / не / в / storyboard. Диагностику начинайте с producer, object generation и входного state, а не с последнего пользовательского сообщения.

Storyboard или transition могут оставаться scheduled/sealed/used после визуального завершения, поэтому reuse должен опираться на API status, а не на предположение caller.

Конкретные признаки из исходного EN-описания

  • UI_E_TRANSITION_ALREADY_USED indicates membership elsewhere or earlier; NOT_IN_STORYBOARD means membership is absent here.
  • It marks an operation referenced a transition that was never added to the target storyboard.
  • When it is returned, the pointer can be valid and owned by the right manager yet still have no membership in this storyboard.
  • Next: Keep returned transition identity with its storyboard record.

Что сохранить до retry

  • animation manager/storyboard/transition identity и lifecycle generation.
  • manager update time, schedule/status и callback ordering.
  • точный IUIAnimation* method и первый HRESULT.

Для timeline ошибок фиксируйте update time и callback ordering: reentrancy или поздний update способны сделать старое действие недопустимым для уже изменившегося object state.

Проверка причинной границы

Сравните failing и working trace той же операции. Поле или state, соответствующий «transition / не / в / storyboard», должен быть единственным существенным отличием.

Для «transition / не / в / storyboard» сопоставьте storyboard/transition status и manager update time. Визуальное положение объекта не заменяет lifecycle-state, который Windows Animation Manager считает активным.

Исправление и повтор

Приведите storyboard/transition к состоянию, разрешающему операцию «transition / не / в / storyboard», либо создайте новый объект для overlapping work; затем подтвердите поведение на том же animation timeline.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.