Поделиться через


Получение атрибутов метаданных

[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Он был заменен средством чтения исходного кода и модуля записи приемника. Средство чтения исходного кода и модуль записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код по возможности использовал средство чтения исходного кода и модуль записи приемника вместо пакета SDK для Windows Media Format 11. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Чтобы получить атрибут из заголовка файла, необходимо знать номер потока и индекс атрибута. Вы можете использовать метод IWMHeaderInfo3::GetAttributeIndices , чтобы получить индексы для всех атрибутов с одинаковым именем или всех индексов на одном языке. Как и другие методы IWMHeaderInfo3, GetAttributeIndices имеет дело с одним потоком или со всеми атрибутами уровня файла с помощью потока 0. Вы можете использовать 0xFFFF для номера потока, чтобы получить глобальные индексы, соответствующие вашим условиям, во всем файле, независимо от номера потока.

Когда вы знаете индекс атрибута, который вы хотите получить, вызовите IWMHeaderInfo3::GetAttributeByIndexEx , чтобы получить атрибут . Необходимо выполнить два вызова GetAttributeByIndexEx для каждого полученного атрибута. При первом вызове передайте значение NULL для имен и указателей буфера данных, чтобы получить необходимый размер. Затем выделите буферы указанного размера и выполните второй вызов для получения имени и данных.

Пример кода, показывающий, как получить атрибуты метаданных, см. в разделе Получение всех метаданных в файле.

Работа с метаданными