Получение свойств для нескольких объектов по формату объекта

Помимо массового извлечения свойств для коллекции идентификаторов объектов приложение также может выполнять массовое извлечение свойств для всех объектов определенного типа. Как и в предыдущем примере, массовое извлечение для заданного типа требует, чтобы драйвер устройства поддерживал массовые извлечения.

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

Интерфейс Описание
интерфейс IPortableDeviceContent Предоставляет доступ к методам, зависящим от содержимого.
интерфейс IPortableDeviceKeyCollection Используется для идентификации свойств, которые необходимо извлечь.
интерфейс IPortableDeviceProperties Используется для определения того, поддерживает ли данный драйвер массовые операции.
Интерфейс IPortableDevicePropertiesBulk Поддерживает операцию массового извлечения.
интерфейс IPortableDevicePropVariantCollection Используется для хранения идентификаторов объектов для массовой операции.

 

Функция ReadContentPropertiesBulkFilteringFormat в модуле ContentProperties.cpp примера приложения демонстрирует операцию массового извлечения для объектов определенного типа или формата.

Код, найденный в функции ReadContentPropertiesBulkFilteringFormat, почти идентичен коду, найденном в функции ReadContentPropertiesBulk. (Полное описание этой функции см. в теме Получение свойств для нескольких объектов.)

Одно основное различие возникает при очереди операции. При фильтрации по типу или формату метод IPortableDevicePropertiesBulk::QueueGetValuesByObjectFormat вызывается вместо метода IPortableDevicePropertiesBulk::QueueGetValuesByObjectList.

hr = pPropertiesBulk->QueueGetValuesByObjectFormat(WPD_OBJECT_FORMAT_WMA,
                                                   WPD_DEVICE_OBJECT_ID,
                                                   100,
                                                   pPropertiesToRead,
                                                   pCallback,
                                                   &guidContext);

интерфейс IPortableDevice

интерфейс IPortableDeviceContent

интерфейс IPortableDeviceKeyCollection

интерфейс IPortableDeviceProperties

Интерфейс IPortableDevicePropertiesBulk

интерфейс IPortableDevicePropVariantCollection

Руководство по программированию