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

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

Инструкции

Шаг 1.

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

HKEY_CLASSES_ROOT
   .xyz
      (Default) = [REG_SZ] xyzfile

Подраздел ProgID xyzfile хранится вместе с другими идентификаторами 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. Значение, используемое здесь : {6d2b5079-2f0b-48dd-ab7f-97cec514d30b}— это идентификатор Prevhost.exe суррогатного узла. 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

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

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

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