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
Tópicos relacionados