다음을 통해 공유


IWICMetadataQueryReader 인터페이스(wincodec.h)

메타데이터 쿼리 식을 사용하여 디코더 또는 해당 이미지 프레임에서 메타데이터 블록 및 항목을 검색하는 메서드를 노출합니다.

상속

IWICMetadataQueryReader 인터페이스는 IUnknown 인터페이스에서 상속됩니다. IWICMetadataQueryReader 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IWICMetadataQueryReader 인터페이스에는 이러한 메서드가 있습니다.

 
IWICMetadataQueryReader::GetContainerFormat

메타데이터 쿼리 판독기 컨테이너 형식을 가져옵니다.
IWICMetadataQueryReader::GetEnumerator

메타데이터 계층 내의 현재 상대 위치에 있는 모든 메타데이터 항목의 열거자를 가져옵니다.
IWICMetadataQueryReader::GetLocation

루트 메타데이터 블록을 기준으로 현재 경로를 검색합니다.
IWICMetadataQueryReader::GetMetadataByName

메타데이터 쿼리 식으로 식별된 메타데이터 블록 또는 항목을 검색합니다.

설명

메타데이터 쿼리 판독기는 메타데이터 쿼리 식을 사용하여 포함된 메타데이터에 액세스합니다. 메타데이터 쿼리 언어에 대한 자세한 내용은 메타데이터 쿼리 언어 개요를 참조하세요.

쿼리 판독기의 이점은 단일 단계에서 메타데이터 항목에 액세스할 수 있다는 것입니다.

또한 쿼리 판독기는 GetEnumerator 메서드의 도움을 받아 메타데이터 계층 구조의 전체 집합을 트래버스하는 방법을 제공합니다. 그러나 IWICMetadataBlockReaderIWICMetadataReader 는 더 편리하고 저렴한 방법을 제공하므로 이 메서드를 사용하지 않는 것이 좋습니다.

예제

다음 코드에서는 쿼리 판독기를 가져와 메타데이터 항목을 검색하는 데 사용하는 방법을 보여 줍니다.

// 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 SP2, Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 wincodec.h

추가 정보

개념

메타데이터 쿼리 언어 개요

이미지 메타데이터 읽기 및 쓰기 개요

WIC 메타데이터 개요