Compartilhar 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 registro de um manipulador de visualização é um registro padrão baseado em associação de arquivos.

Instruções

Etapa 1:

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

HKEY_CLASSES_ROOT
   .xyz
      (Default) = [REG_SZ] xyzfile

A subchave progID xyzfile é 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 chamada {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 CLSID (identificador de classe) 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}

Etapa 2:

Em seguida, adicione a subchave em CLSID para o manipulador de visualização. Um exemplo é mostrado aqui. Veja a seguir 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 da subchave (aqui, {ec3a629a-a47c-4245-bc78-b4b63d0e3154}) não é necessário ou usado. No entanto, defini-la 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 (armazenada em HKEY_CLASSES_ROOT\APPID. O valor usado aqui ({6d2b5079-2f0b-48dd-ab7f-97cec514d30b}) é a ID do host substituto Prevhost.exe. Os manipuladores de versão prévia de 32 bits devem usar AppID {534A1E02-D58F-44f0-B58B-36CBED287C7C} quando instalado em sistemas operacionais de 64 bits.

As entradas na subchave InprocServer32 incluem uma referência à subchave ProgID da extensão de nome de arquivo, bem como uma entrada para um VersionIndependentProgID.

Etapa 3:

Por fim, 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 auxilia 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 para apenas 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

Visualizar manipuladores e host de visualização do Shell

Criando manipuladores de visualização

Diretrizes do manipulador de visualização