Что означает код HRESULT 0x802A0106 (UI_E_TRANSITION_ALREADY_USED)?

 
Предыдущий Следующий
UI_E_LOOPS_OVERLAP UI_E_TRANSITION_NOT_IN_STORYBOARD

UI_E_TRANSITION_ALREADY_USED

Что означает UI_E_TRANSITION_ALREADY_USED

UI_E_TRANSITION_ALREADY_USED означает, что один и тот же объект перехода Windows Animation уже был добавлен в storyboard и повторно используется там, где требуется новый экземпляр. Это ограничение жизненного цикла объекта, а не проблема счётчика ссылок COM.

Что проверить

  • Зафиксируйте место создания transition и все вызовы, которыми он добавлялся в storyboard.
  • Проверьте кэширование: объект перехода нельзя безусловно хранить как «шаблон» и затем присоединять к нескольким storyboard.
  • Отличайте этот код от UI_E_DIFFERENT_OWNER: там объект принадлежит другому animation manager, здесь он уже использован.

Как исправить

Повторно используйте параметры перехода, а не сам COM-объект: создавайте отдельный transition для каждого места в storyboard. Дополнительный AddRef не снимает ограничение членства и лишь увеличивает время жизни того же экземпляра.

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


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