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
Temas relacionados