IWICMetadataQueryReader インターフェイス (wincodec.h)
メタデータ クエリ式を使用してデコーダーまたはそのイメージ フレームからメタデータ ブロックと項目を取得するためのメソッドを公開します。
継承
IWICMetadataQueryReader インターフェイスは、IUnknown インターフェイスから継承します。 IWICMetadataQueryReader には、次の種類のメンバーもあります。
メソッド
IWICMetadataQueryReader インターフェイスには、これらのメソッドがあります。
IWICMetadataQueryReader::GetContainerFormat メタデータ クエリ リーダーコンテナー形式を取得します。 |
IWICMetadataQueryReader::GetEnumerator メタデータ階層内の現在の相対位置にあるすべてのメタデータ項目の列挙子を取得します。 |
IWICMetadataQueryReader::GetLocation ルート メタデータ ブロックに対する現在のパスを取得します。 |
IWICMetadataQueryReader::GetMetadataByName メタデータ クエリ式によって識別されるメタデータ ブロックまたは項目を取得します。 |
注釈
メタデータ クエリ リーダーは、メタデータ クエリ式を使用して埋め込みメタデータにアクセスします。 メタデータ クエリ言語の詳細については、「 メタデータ クエリ言語の概要」を参照してください。
クエリ リーダーの利点は、1 つのステップでメタデータ項目にアクセスできることです。
クエリ リーダーは、 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 |
関連項目
概念