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 中繼資料概觀