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


Регистрация обработчика предварительного просмотра

В этом разделе объясняется, как зарегистрировать обработчик предварительной версии, связанный с заданным типом данных. В целях иллюстрации примеры в этом разделе используют тип файла Xyz. Регистрация обработчика предварительной версии — это стандартная регистрация на основе сопоставления файлов.

Инструкции

Шаг 1.

Во-первых, расширение имени файла связано с ProgID. Следующая запись связывает подраздел xyzfile ProgID с расширением имени файла Xyz.

HKEY_CLASSES_ROOT
   .xyz
      (Default) = [REG_SZ] xyzfile

Вложенный ключ xyzfile ProgID хранится вместе с другими идентификаторами ProgID, как показано здесь.

HKEY_CLASSES_ROOT
   xyzfile

Каждый подраздел ProgID обработчика предварительного просмотра содержит подраздел с именем shellex, который, в свою очередь, содержит ещё один подраздел с именем всегда, именуемый {8895b1c6-b41f-4c1c-a562-0d564250836f}. Наличие этого подключа сообщает системе, что обработчик является обработчиком предпросмотра.

Значение по умолчанию {8895b1c6-b41f-4c1c-a562-0d564250836f} — это идентификатор класса (CLSID) обработчика. Пример подраздела xyzfile ProgID показан ниже, связывающийся с обработчиком CLSID {ec3a629a-a47c-4245-bc78-b4b63d0e3154}.

HKEY_CLASSES_ROOT
   xyzfile
      shellex
         {8895b1c6-b41f-4c1c-a562-0d564250836f}
            (Default) = [REG_SZ] {ec3a629a-a47c-4245-bc78-b4b63d0e3154}

Шаг 2.

Затем добавьте подраздел в CLSID для обработчика предварительного просмотра. Ниже показан пример. Объяснение отдельных записей следует.

HKEY_CLASSES_ROOT
   CLSID
      {ec3a629a-a47c-4245-bc78-b4b63d0e3154}
         (Default) = [REG_SZ] Fabricam XYZ Preview Handler
         DisplayName = [REG_SZ] @myhandler.dll,-101
         Icon = [REG_SZ] myhandler.dll,201
         AppID = [REG_SZ] {6d2b5079-2f0b-48dd-ab7f-97cec514d30b}
         InprocServer32
            (Default) = [REG_EXPAND_SZ] %ProgramFiles%\Fabricam\myhandler.dll
            ThreadingModel = [REG_SZ] Apartment
            ProgID = [REG_SZ] xyzfile
            VersionIndependentProgID = [REG_SZ] Version IndependentProgID

Значение по умолчанию для подраздела (здесь {ec3a629a-a47c-4245-bc78-b4b63d0e3154}) не требуется и не используется. Однако установка нелокализованной строки может помочь устранить ошибки при регистрации.

Знак минуса (-101) в ресурсе .dll в записи DisplayName существует по устаревшим причинам. С другой стороны, запись значка не требует знака минуса.

Значение AppID содержит ссылку на AppID приложения, связанного с расширением имени файла (хранящегося в HKEY_CLASSES_ROOT\APPID). Значение, используемое здесь — это идентификатор суррогатного узла Prevhost.exe: {6d2b5079-2f0b-48dd-ab7f-97cec514d30b}. 32-разрядные обработчики предварительной версии должны использовать AppID {534A1E02-D58F-44f0-B58B-36CBED287C7C} при установке в 64-разрядных операционных системах.

Записи в подразделе InprocServer32 включают ссылку на подраздел ProgID расширения имени файла, а также запись для VersionIndependentProgID.

Шаг 3.

Наконец, обработчик предварительного просмотра должен быть добавлен в список всех обработчиков предварительного просмотра. Этот список используется в качестве оптимизации системой для перечисления всех зарегистрированных обработчиков предварительной версии для отображения. Опять же, значение по умолчанию не требуется, оно просто помогает в процессе отладки.

Заметка

В Windows 7, если приложение установлено для всех пользователей компьютера, используйте HKEY_LOCAL_MACHINE; Если для одного пользователя используется только один пользователь, используйте HKEY_CURRENT_USER.

 

HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
   SOFTWARE
      Microsoft
         Windows
            CurrentVersion
               PreviewHandlers
                  {ec3a629a-a47c-4245-bc78-b4b63d0e3154}
                     (Default) = [REG_SZ] Fabricam XYZ Preview Handler

обработчики предварительного просмотра и хост предварительного просмотра оболочки

создание обработчиков предварительного просмотра

Инструкции по обработчику предварительных просмотров