Поделиться через


записи реестра Decoder-Specific

Помимо записей реестра, необходимых для всех кодировщиков и декодеров, для декодеров требуются следующие записи реестра.

Эти записи регистрируют декодировщик в категории декодирования компонентов образов Windows (WIC). Первый GUID в этих записях — это идентификатор категории (CATID) для WICBitmapDecoders.

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
Ценность Описание
Позиция Смещение в файл, где можно найти шаблон.
Длина Длина шаблона.
Рисунок Фактические биты, составляющие шаблон. Это биты, которые соответствуют шаблону идентификации в файле изображения во время обнаружения.
Маска Позволяет использовать подстановочные знаки в шаблонах. Маска применяется путем выполнения логической операции AND в шаблоне и маске. Любой бит в шаблоне, соответствующий биту в маске со значением 0, игнорируется.
EndOfStream Смещение шаблона идентификации должно вычисляться с конца потока, а не с самого начала. Некоторые форматы изображений размещают шаблон идентификации в конце файла или рядом с ним. Так как по умолчанию используется поиск с самого начала, если шаблон не находится в конце файла, можно опустить эту запись.

 

Кодек может поддерживать несколько шаблонов идентификации. В этом случае необходимо повторить все ключи в HKEY_CLASSES_ROOT\CLSID\{Decoder CLSID}\Patternsи использовать числовый ключ (0 в примере), чтобы различать разные шаблоны. Необходимо включить каждое из четырех значений в ключ для каждого шаблона.

Регистрация формата контейнера с помощью средств чтения метаданных

Если вы создаете новый формат контейнера для кодека, необходимо также создать записи реестра для поддержки обнаружения средств чтения метаданных для блоков метаданных в образах так же, как и для записи метаданных. Следующие записи необходимо создать под идентификатором класса (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 реализации запрашивает средство чтения метаданных.

Ценность Описание
Позиция Смещение в контейнере блока метаданных, где можно найти заголовок метаданных. Для блоков метаданных верхнего уровня это смещение в потоке файлов. Для блоков метаданных, вложенных в другие блоки метаданных, это смещение относительно содержащего блока метаданных.
Рисунок Фактические биты, составляющие шаблон. Это биты, которые соответствуют шаблону идентификации в файле изображения во время обнаружения.
Маска Заголовок метаданных обычно определяется обработчиком метаданных. Для каждого средства чтения следует использовать стандартный заголовок метаданных, если по какой-то причине шаблон должен иметь другой формат в контейнере.
DataOffset Смещение от начала заголовка метаданных, с которого начинаются фактические данные. В случаях, когда метаданные не находятся в определенном смещение от заголовка, эта запись может быть опущена.

 

концептуальные

Encoder-Specific записи реестра

интеграция с коллекцией фотографий Windows и проводника Windows

Как написать WIC-Enabled CODEC

обзор компонента образов Windows