Decoder-Specific レジストリエントリ
すべてのエンコーダーとデコーダーに必要なレジストリ エントリに加えて、デコーダー専用に次のレジストリ エントリが必要です。
これらのエントリは、Windows イメージング コンポーネント (WIC) デコーダーのカテゴリにデコーダーを登録します。 これらのエントリの最初の GUID は、 WICBitmapDecoders のカテゴリ識別子 (CATID) です。
HKEY_CLASSES_ROOT
CLSID
{7ED96837-96F0-4812-B211-F13C24117ED3}
Instance
{Decoder CLSID}
CLSID = {Decoder CLSID}
FriendlyName = {Name of Decoder}
「Windows イメージング コンポーネントのしくみ」の 「検出と仲裁 」セクションで説明したように、特定のイメージの適切なデコーダーを実行時に検出できるようにするメカニズムは、イメージ ファイルに埋め込まれている識別パターンとデコーダーのレジストリ エントリで指定されたパターンとの照合に基づいています。 デコーダーの実行時検出を有効にするには、次のようにイメージ形式の一意の識別パターンを登録する必要があります。 次の表に示すように、 EndOfStream エントリ (省略可能) を除き、これらすべてのレジストリ エントリが必要です。
HKEY_CLASSES_ROOT
CLSID
{Decoder CLSID}
Patterns
{0}
Position = Offset in block
Length = Length of pattern
Pattern = Pattern to match
Mask = FF FF FF FF
EndOfStream = 0|1
値 | 説明 |
---|---|
[位置] | パターンが見つかるファイルへのオフセット。 |
長さ | パターンの長さ。 |
Pattern | パターンを構成する実際のビット。 これらは、検出中にイメージ ファイル内の識別パターンと照合されるビットです。 |
マスク | パターンでワイルドカード値を使用できます。 マスクは、パターンとマスクに対して論理 AND 演算を実行することによって適用されます。 マスク内の値が 0 のビットに対応するパターン内のビットは無視されます。 |
EndOfStream | 識別パターンのオフセットは、先頭ではなく、ストリームの末尾から計算する必要があります。 一部の画像形式では、識別パターンがファイルの末尾またはその近くに配置されます。 既定では最初からシークするため、パターンがファイルの末尾に近い場合を除き、このエントリを省略できます。 |
コーデックは、複数の識別パターンをサポートできます。 その場合は、 HKEY_CLASSES_ROOT\CLSID\{Decoder CLSID}\Patternsのすべてのキーを繰り返し、数値キー (例では 0) を使用してさまざまなパターンを区別します。 各パターンのキーの下に 4 つの値をそれぞれ含める必要があります。
メタデータ リーダーを使用したコンテナー形式の登録
コーデックの新しいコンテナー形式を作成する場合は、メタデータ ライターの場合と同様に、イメージ内のメタデータ ブロックのメタデータ リーダーの検出をサポートするレジストリ エントリも作成する必要があります。 次のエントリは、コンテナー形式でサポートされているメタデータ形式ごとに、メタデータ リーダーのクラス識別子 (CLSID) の下に作成する必要があります。 (コーデックでタグ付けされたイメージ ファイル形式 (TIFF) コンテナーを使用している場合、この情報はレジストリに既に存在します)。
HKEY_CLASSES_ROOT
CLSID
{Metadata Reader CLSID}
Containers
{Container Format GUID}
Position = Offset relative to its container
Pattern = Pattern used for metadata header
Mask = FF FF FF FF
DataOffset = Offset from beginning of header
メタデータ リーダーのエントリは検出にも使用されるため、デコーダーのエントリとよく似ています。 これらのエントリは、コンテナーでサポートされているメタデータ リーダーを検索し、 IWICMetadataBlockReader 実装がメタデータ リーダーを要求したときに適切なものを選択するために、コンポーネント ファクトリによって使用されます。
値 | 説明 |
---|---|
[位置] | メタデータ ヘッダーが見つかるメタデータ ブロックのコンテナー内のオフセット。 最上位レベルのメタデータ ブロックの場合、これはファイル ストリーム内のオフセットです。 他のメタデータ ブロックに入れ子になったメタデータ ブロックの場合は、含まれているメタデータ ブロックに対する相対オフセットです。 |
Pattern | パターンを構成する実際のビット。 これらは、検出中にイメージ ファイル内の識別パターンと照合されるビットです。 |
マスク | メタデータ ヘッダーは、一般にメタデータ ハンドラーによって定義されます。 何らかの理由でパターンがコンテナー内で異なる形式である必要がある場合を除き、リーダーごとに標準メタデータ ヘッダーを使用する必要があります。 |
DataOffset | 実際のデータが開始されるメタデータ ヘッダーの先頭からのオフセット。 メタデータがヘッダーからの特定のオフセットに配置されていない場合は、このエントリを省略できます。 |
関連トピック
-
概念