次の方法で共有


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 実際のデータが開始されるメタデータ ヘッダーの先頭からのオフセット。 メタデータがヘッダーからの特定のオフセットに配置されていない場合は、このエントリを省略できます。

 

概念

エンコーダー固有のレジストリ エントリ

Windows フォト ギャラリーと Windows エクスプローラーとの統合

WIC-Enabled コーデックを記述する方法

Windows Imaging コンポーネントの概要