Partilhar via


Como registrar um manipulador de visualização

Este tópico explica como registrar um manipulador de visualização associado a um determinado tipo de dados. Para fins de ilustração, os exemplos neste tópico usam um tipo de arquivo .xyz. O registo de um manipulador de pré-visualização é um registo baseado na associação de ficheiro padrão.

Instruções

1º Passo:

Primeiro, uma extensão de nome de arquivo está associada a um ProgID. A entrada a seguir associa a subchave xyzfile ProgID à extensão de nome de arquivo .xyz.

HKEY_CLASSES_ROOT
   .xyz
      (Default) = [REG_SZ] xyzfile

A subchave xyzfile ProgID é armazenada com os outros ProgIDs, conforme mostrado aqui:

HKEY_CLASSES_ROOT
   xyzfile

Cada subchave ProgID do manipulador de visualização contém uma subchave chamada shellex que contém uma subchave sempre nomeada {8895b1c6-b41f-4c1c-a562-0d564250836f}. A presença dessa subchave informa ao sistema que o manipulador é um manipulador de visualização.

O valor padrão da subchave {8895b1c6-b41f-4c1c-a562-0d564250836f} é o identificador de classe (CLSID) do manipulador. Um exemplo da subchave xyzfile ProgID é mostrado aqui, associando um manipulador de 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º Passo:

Em seguida, adicione a subchave sob CLSID para o seu manipulador de pré-visualização. Um exemplo é mostrado aqui. Segue-se uma explicação das entradas individuais.

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

O valor padrão para sua subchave (aqui, {ec3a629a-a47c-4245-bc78-b4b63d0e3154}) não é necessário ou usado. No entanto, defini-lo como uma cadeia de caracteres não localizada pode ajudá-lo a depurar problemas de registro.

O sinal de subtração (-101) no recurso .dll na entrada DisplayName existe por motivos herdados. A entrada Ícone, por outro lado, não requer um sinal de subtração.

O valor AppID fornece uma referência ao AppID do aplicativo associado à extensão de nome de arquivo (armazenado em HKEY_CLASSES_ROOT\APPID. O valor usado aqui—{6d2b5079-2f0b-48dd-ab7f-97cec514d30b}—é a ID do host substituto Prevhost.exe. Os manipuladores de visualização de 32 bits devem usar AppID {534A1E02-D58F-44f0-B58B-36CBED287C7C} quando instalados em sistemas operacionais de 64 bits.

As entradas sob a subchave InprocServer32 incluem uma referência de volta para a subchave ProgID da extensão de nome de arquivo, assim como uma entrada para um VersionIndependentProgID.

3º Passo:

Finalmente, o manipulador de visualização deve ser adicionado à lista de todos os manipuladores de visualização. Essa lista é usada como uma otimização pelo sistema para enumerar todos os manipuladores de visualização registrados para fins de exibição. Novamente, o valor padrão não é necessário, ele simplesmente ajuda no processo de depuração.

Observação

No Windows 7, se o aplicativo estiver instalado para todos os usuários do computador, use HKEY_LOCAL_MACHINE; Se for apenas para um usuário, use 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

Manipuladores de Pré-visualização e Host de Pré-visualização do Shell

Desenvolvimento de manipuladores de pré-visualização

Diretrizes do manipulador de visualização