| Предыдущий | Следующий |
| NS_E_WMP_UI_VIEWIDNOTFOUND | NS_E_WMP_UI_OBJECTNOTFOUND |
NS_E_WMP_UI_PASSTHROUGH
Смысл на границе, где возникает результат
Windows Media Player сообщает, что NS_E_WMP_UI_PASSTHROUGH (0xC00D0FE4) возвращается, когда проверка попадания в обложке вернула внутренний результат «пропустить дальше» вместо выбора элемента управления. Это состояние формирует XML-загрузчик обложек: он открывает пакет, находит определение .wms, создаёт представления и элементы управления, применяет атрибуты и подключает обработчики событий к графическим элементам интерфейса.
Сгенерированная часть страницы What Is уже содержит стандартное описание AllStat для этого результата. Для дополнительной проверки запишите координаты указателя, представление, z-order и элемент управления, hit-test которого передал обработку нижележащему содержимому; эти данные полезнее переустановки Player или одновременного изменения нескольких несвязанных настроек.
Порядок расследования
- Найдите первый компонент, вернувший исходный HRESULT, и пометьте это событие как первичную границу отказа.
- Сохраните исходные данные и идентичность объекта до того, как резервная обработка или очистка WMP изменит состояние.
- Восстановите непосредственно предшествующее успешное состояние, затем определите вызов или событие, после которого возник сбой.
- Выполните проверку, специфичную для этого кода: запишите координаты указателя, представление, z-order и элемент управления, hit-test которого передал обработку нижележащему содержимому.
- Внесите минимальное исправление: обрабатывайте pass-through как управляющий результат, если только внешний вызывающий код ошибочно не превращает его в сбой; затем повторите ту же операцию, которая формировала результат.
Сопутствующее состояние WMP
Эту ошибку нужно отделять от общего сбоя WMP: пакет обложки объединяет XML-определение с изображениями и скриптами, а корректность архива, корректность схемы и создание объектов во время выполнения — разные этапы. Свойства элементов управления, включая размеры изображений, минимальные/максимальные значения и поддержку дочерних элементов, проверяются уже после успешного базового разбора XML.
Характерный случай: Прозрачная область позволяет нижележащему представлению получить событие указателя. Пример локализует этап, сформировавший результат, и не предполагает одновременный отказ медиатеки, кодеков, движка обложек и ActiveX-host.
Данные, различающие причины
Сохраните первое появление исходного HRESULT до того, как повторная попытка или резервная обработка изменит диагностические данные. Следующие поля должны относиться к одному поколению объекта:
| Поле | Что записать |
|---|---|
| Решающая проверка | запишите координаты указателя, представление, z-order и элемент управления, hit-test которого передал обработку нижележащему содержимому |
| Идентичность артефакта | тип элемента управления, ID объекта и связь родитель/потомок для этого воспроизведения |
| Состояние среды выполнения | путь к ресурсу, декодированные размеры и атрибуты прозрачности/отображения для этого воспроизведения |
| Ответственный объект | имя события, первый обработчик и объявление любого дублирующего обработчика для этого воспроизведения |
| Результат нижнего уровня | путь к архиву обложки, список его элементов и выбранное определение .wms для этого воспроизведения |
| Корреляция | объявление THEME/version и currentViewID для этого воспроизведения |
В журналах сохраняйте точные пути или URL, хэши, ID объектов, смещения и порядок HRESULT, когда эти данные применимы. Не включайте учётные данные, содержимое защищённых лицензий и несвязанные данные медиатеки.
Не путайте с близкими результатами
| Результат | Другая граница |
|---|---|
NS_E_WMP_UI_OBJECTNOTFOUND | атрибуты разобраны для объекта обложки, который так и не был создан |
NS_E_WMP_UI_VIEWIDNOTFOUND | currentViewID указывает представление, не определённое в файле обложки |
NS_E_WMP_UI_SECONDHANDLER | для события, у которого уже есть обработчик, объявлен второй обработчик |
Если исходный HRESULT сопровождается более общим результатом «невозможно воспроизвести», «невозможно загрузить» или «операция не выполнена», сохраняйте сведения о более раннем событии. Поздний код может исходить от оболочки, резервного элемента или UI-слоя, а не от первичной причины.
Проверка после исправления
Повторите действие, вернувшее исходный HRESULT, и убедитесь, что тот же объект проходит прежнюю точку отказа. Успех означает достижение следующего ожидаемого состояния загрузки, разбора, списка, элемента управления или воспроизведения, а не простое исчезновение диалогового окна.
Что должно измениться при реальном исправлении
Устраняйте NS_E_WMP_UI_PASSTHROUGH на этапе, где возникает это состояние: обрабатывайте pass-through как управляющий результат, если только внешний вызывающий код ошибочно не превращает его в сбой. Затем перезагрузите или пересоздайте владеющий объект, чтобы кешированное состояние ошибки не было принято за результат исправления.
- Не переименовывайте произвольный XML в .wms и не перепаковывайте обложку без сохранения относительных путей ресурсов: это может уничтожить артефакт или состояние, необходимое для объяснения исходного результата.
- Не изменяйте одновременно несколько элементов управления до выявления первого сбоя схемы или создания объекта: так исходный HRESULT можно заменить вторичной ошибкой другого уровня.
Практическое примечание для этого кода
Используйте NS_E_WMP_UI_PASSTHROUGH, 0xC00D0FE4 и формулировку «hit-test вернул pass-through» при поиске в трассировках и базе ошибок. Держите эти ключи рядом с исходным API, ID объекта, URL или смещением файла, чтобы отличать событие от общего сообщения Player.
Технические ссылки
- Обложки Windows Media Player — нормативный или платформенный материал для этого результата.
- Структура файла описания обложки — контекст API или формата для этого результата.
- Структура XML описания обложки — документация, используемая для определения границы-источника этого результата.
- Файлы обложек и содержимое пакета — нормативный или платформенный материал для этого результата.
Нужно найти другой код? Найти другой код состояния или ошибки.