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 元數據概觀