Tipo de acción personalizada 1
Esta acción personalizada llama a una biblioteca de vínculos dinámicos (DLL) escrita en C o C++.
Source
El DLL se genera a partir de una secuencia binaria temporal. El campo Source de la tabla CustomAction contiene una clave para la tabla Binary.
La columna Data de la tabla Binary contiene los datos de la secuencia. Se asigna una secuencia aparte para cada fila. Los nuevos datos binarios se pueden insertar desde un archivo mediante MsiRecordSetStream seguido de MsiViewModify para insertar el registro en la tabla. Cuando se invoca la acción personalizada, los datos de la secuencia se copian en un archivo temporal que luego se procesa según el tipo de acción personalizada.
Valor del tipo
Incluya los bits de marca siguientes en la columna Type de la tabla CustomAction para especificar el tipo numérico básico.
Constantes | Hexadecimal | Decimal |
---|---|---|
msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData | 0x001 | 1 |
Destino
El archivo DLL se llama mediante el punto de entrada denominado en el campo Target de la tabla CustomAction, pasando un único argumento que es el identificador a la sesión de instalación actual. El nombre del punto de entrada especificado en la tabla debe coincidir con el exportado desde el archivo DLL. Tenga en cuenta que si la función de entrada no la especifica un archivo .DEF o una especificación de vinculador /EXPORT:, el nombre puede estar precedido por un carácter de subrayado y tener un sufijo "@4". La función a la que se llama debe especificar la convención de llamada __stdcall.
Opciones de procesamiento de devolución
Incluya bits de marca opcionales en la columna Type de la tabla CustomAction para especificar las opciones de procesamiento de devolución. Para ver una descripción de las opciones y los valores, consulte Opciones de procesamiento de devolución de acción personalizada.
Opciones de programación de ejecución
Incluya bits de marca opcionales en la columna Type de la tabla CustomAction para especificar las opciones de programación de ejecución. Estas opciones controlan la ejecución múltiple de acciones personalizadas. Para obtener una descripción de las opciones, consulte Opciones de programación de ejecución de acciones personalizadas.
Opciones de ejecución en script
Incluya bits de marca opcionales en la columna Type de la tabla CustomAction para especificar las opciones de ejecución en script. Estas opciones copian el código de acción en el script de ejecución, reversión o confirmación. Para obtener una descripción de las opciones, consulte Opciones de ejecución de acciones personalizadas en script.
Valores devueltos
Consulte Valores devueltos de acción personalizada.
Comentarios
Una acción personalizada que llama a una biblioteca de vínculos dinámicos (DLL) requiere un identificador para la sesión de instalación. Si también se trata de una acción personalizada de ejecución diferida, es posible que la sesión ya no exista durante la ejecución del script de instalación. Para obtener información sobre cómo una acción personalizada de este tipo puede obtener información de contexto, consulte Obtención de información de contexto para acciones personalizadas de ejecución diferida.
Cuando se exporta una tabla de base de datos, cada secuencia se escribe como un archivo independiente en la subcarpeta con el nombre de la tabla, usando la clave principal como nombre de archivo (columna Name para la tabla Binary), con una extensión predeterminada ".ibd". El nombre debe usar el formato 8.3 si el sistema de archivos o el sistema de control de versiones no admite nombres de archivo largos. El archivo de almacenamiento persistente reemplaza los datos de la secuencia por el nombre del archivo usado, de modo que los datos se puedan encontrar cuando se importe la tabla.
Temas relacionados