Compartir a través de


Cómo registrar un controlador de vista previa

En este tema se explica cómo registrar un controlador de vista previa asociado a un tipo de datos determinado. Para los fines de la ilustración, los ejemplos de este tema usan un tipo de archivo .xyz. El registro de un controlador de vista previa es un registro estándar basado en la asociación de archivos.

Instrucciones

Paso 1:

En primer lugar, una extensión de nombre de archivo está asociada a un ProgID. La siguiente entrada asocia la subclave xyzfile ProgID con la extensión de nombre de archivo .xyz.

HKEY_CLASSES_ROOT
   .xyz
      (Default) = [REG_SZ] xyzfile

La subclave xyzfile ProgID se almacena con los demás ProgID, como se muestra aquí:

HKEY_CLASSES_ROOT
   xyzfile

Cada subclave ProgID del controlador de vista previa contiene una subclave denominada shellex que contiene una subclave siempre denominada {8895b1c6-b41f-4c1c-a562-0d564250836f}. La presencia de esa subclave indica al sistema que el controlador es un controlador de vista previa.

El valor predeterminado de la subclave {8895b1c6-b41f-4c1c-a562-0d564250836f} es el identificador de clase (CLSID) del controlador. Aquí se muestra un ejemplo de la subclave xyzfile ProgID, asociando un controlador 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}

Paso 2:

A continuación, agregue la subclave en CLSID para el controlador de vista previa. Aquí se muestra un ejemplo. A continuación se explica una explicación de las entradas individuales.

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

El valor predeterminado de la subclave (aquí, {ec3a629a-a47c-4245-bc78-b4b63d0e3154}) no es obligatorio ni se usa. Sin embargo, establecerla en una cadena no localizada puede ayudarle a depurar problemas de registro.

El signo menos (-101) del recurso .dll de la entrada DisplayName existe por motivos heredados. Por otro lado, la entrada Icono no requiere un signo menos.

El valor de AppID proporciona una referencia al AppID de la aplicación asociada a la extensión de nombre de archivo (almacenada en HKEY_CLASSES_ROOT\APPID. El valor que se usa aquí({6d2b5079-2f0b-48dd-ab7f-97cec514d30b}) es el identificador del host suplente de Prevhost.exe. Los controladores de vista previa de 32 bits deben usar AppID {534A1E02-D58F-44f0-B58B-36CBED287C7C} cuando se instalan en sistemas operativos de 64 bits.

Las entradas de la subclave InprocServer32 incluyen una referencia a la subclave ProgID de la extensión de nombre de archivo, así como una entrada para un VersionIndependentProgID.

Paso 3:

Por último, el controlador de vista previa debe agregarse a la lista de todos los controladores de vista previa. El sistema usa esta lista como optimización para enumerar todos los controladores de vista previa registrados con fines de visualización. De nuevo, el valor predeterminado no es necesario, simplemente ayuda en el proceso de depuración.

Nota

En Windows 7, si la aplicación está instalada para todos los usuarios del equipo, use HKEY_LOCAL_MACHINE; si solo para un usuario, 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

Controladores de vista previa y host de vista previa de Shell

Compilar controladores de vista previa

Directrices del controlador de versión preliminar