Интерфейс IWICMetadataQueryReader (wincodec.h)
Предоставляет методы для получения блоков метаданных и элементов из декодера или его кадров изображений с помощью выражения запроса метаданных.
Наследование
Интерфейс IWICMetadataQueryReader наследуется от интерфейса IUnknown . IWICMetadataQueryReader также имеет следующие типы элементов:
Методы
Интерфейс IWICMetadataQueryReader содержит следующие методы.
IWICMetadataQueryReader::GetContainerFormat Возвращает формат контейнера читателей запроса метаданных. |
IWICMetadataQueryReader::GetEnumerator Возвращает перечислитель всех элементов метаданных в текущем относительном расположении в иерархии метаданных. |
IWICMetadataQueryReader::GetLocation Извлекает текущий путь относительно корневого блока метаданных. |
IWICMetadataQueryReader::GetMetadataByName Извлекает блок метаданных или элемент, идентифицируемый выражением запроса метаданных. |
Комментарии
Средство чтения запроса метаданных использует выражения запроса метаданных для доступа к внедренным метаданным. Дополнительные сведения о языке запросов метаданных см. в статье Общие сведения о языке запросов метаданных.
Преимуществом средства чтения запросов является возможность доступа к элементу метаданных за один шаг.
Средство чтения запросов также предоставляет способ обхода всего набора иерархии метаданных с помощью метода GetEnumerator . Однако использовать этот метод не рекомендуется, так как IWICMetadataBlockReader и IWICMetadataReader предоставляют более удобный и дешевый способ.
Примеры
В следующем коде показано, как получить средство чтения запросов и использовать его для получения элемента метаданных.
// Get the query reader
if (SUCCEEDED(hr))
{
hr = pFrameDecode->GetMetadataQueryReader(&pQueryReader);
}
if (SUCCEEDED(hr))
{
hr = pQueryReader->GetMetadataByName(L"/app1/ifd/{ushort=18249}", &value);
PropVariantClear(&value);
}
В следующем коде показано, как получить средство чтения запросов и использовать его для получения вложенного блока метаданных.
// Get the query reader
if (SUCCEEDED(hr))
{
hr = pFrameDecode->GetMetadataQueryReader(&pQueryReader);
}
if (SUCCEEDED(hr))
{
// Get the embedded IFD reader
hr = pQueryReader->GetMetadataByName(L"/app1/ifd", &value);
if (value.vt == VT_UNKNOWN)
{
hr = value.punkVal->QueryInterface(IID_IWICMetadataQueryReader, (void **)&pEmbedReader);
}
PropVariantClear(&value); // Clear value for new query
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP с пакетом обновления 2 (SP2), Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincodec.h |
См. также раздел
Основные понятия
Общие сведения о языке запросов метаданных