次の方法で共有


IWICMetadataQueryReader インターフェイス (wincodec.h)

メタデータ クエリ式を使用してデコーダーまたはそのイメージ フレームからメタデータ ブロックと項目を取得するためのメソッドを公開します。

継承

IWICMetadataQueryReader インターフェイスは、IUnknown インターフェイスから継承します。 IWICMetadataQueryReader には、次の種類のメンバーもあります。

メソッド

IWICMetadataQueryReader インターフェイスには、これらのメソッドがあります。

 
IWICMetadataQueryReader::GetContainerFormat

メタデータ クエリ リーダーコンテナー形式を取得します。
IWICMetadataQueryReader::GetEnumerator

メタデータ階層内の現在の相対位置にあるすべてのメタデータ項目の列挙子を取得します。
IWICMetadataQueryReader::GetLocation

ルート メタデータ ブロックに対する現在のパスを取得します。
IWICMetadataQueryReader::GetMetadataByName

メタデータ クエリ式によって識別されるメタデータ ブロックまたは項目を取得します。

注釈

メタデータ クエリ リーダーは、メタデータ クエリ式を使用して埋め込みメタデータにアクセスします。 メタデータ クエリ言語の詳細については、「 メタデータ クエリ言語の概要」を参照してください。

クエリ リーダーの利点は、1 つのステップでメタデータ項目にアクセスできることです。

クエリ リーダーは、 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 メタデータの概要