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 搭配 SP2、Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincodec.h |
另請參閱
概念