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

В этом разделе объясняется, как зарегистрировать обработчик предварительной версии, связанный с данным типом данных. В целях иллюстрации в примерах в этом разделе используется тип файла 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) обработчика. Здесь показан пример подраздела ProgID xyzfile , который связывает обработчик 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

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

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

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