Compartir a través de


Función MsiOpenPackageExW (msi.h)

La función MsiOpenPackageEx abre un paquete para usarlo con funciones que acceden a la base de datos del producto. Se debe llamar a la función MsiCloseHandle con el identificador cuando el identificador ya no es necesario.

Nota Inicialice COM en el mismo subproceso antes de llamar a la función MsiOpenPackage, MsiOpenPackageEx o MsiOpenProduct .

 

Sintaxis

UINT MsiOpenPackageExW(
  [in]  LPCWSTR   szPackagePath,
  [in]  DWORD     dwOptions,
  [out] MSIHANDLE *hProduct
);

Parámetros

[in] szPackagePath

La ruta de acceso al paquete.

[in] dwOptions

Marcas de bits para indicar si se omitirá o no el estado del equipo. Pase 0 (cero) para usar el comportamiento MsiOpenPackage .

Constante Significado
MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE
1
Omita el estado del equipo al crear el identificador del producto.

[out] hProduct

Puntero a una variable que recibe el identificador del producto.

Valor devuelto

Valor Significado
ERROR_BAD_CONFIGURATION
La información de configuración está dañada.
ERROR_INSTALL_FAILURE
No se pudo abrir el producto.
ERROR_INSTALL_REMOTE_PROHIBITED
Windows Installer no permite la instalación desde una conexión a Escritorio remoto.
ERROR_INVALID_PARAMETER
Se pasa un parámetro no válido a la función .
ERROR_SUCCESS
La función se completa correctamente.
 

Si se produce un error en esta función, puede devolver un código de error del sistema. Para obtener más información, vea Códigos de error del sistema.

Comentarios

Para crear un identificador de producto restringido que sea independiente del estado actual de la máquina e incapaz de cambiar el estado de la máquina actual, use MsiOpenPackageEx con MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE establecido en dwOptions.

Tenga en cuenta que si dwOptions es MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE o 1, MsiOpenPackageEx omite el estado actual de la máquina al crear el identificador del producto. Si el valor de dwOptions es 0, MsiOpenPackageEx es el mismo que MsiOpenPackage y crea un identificador de producto que depende de si el paquete especificado por szPackagePath ya está instalado en el equipo.

El identificador restringido creado mediante MsiOpenPackageEx con MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE solo permite la ejecución de diálogos, un subconjunto de las acciones estándar y las acciones personalizadas que establecen propiedades ( Tipo de acción personalizada 35, Tipo de acción personalizada 51 y Tipo de acción personalizada 19). El identificador restringido impide el uso de acciones personalizadas que ejecutan bibliotecas de vínculos dinámicos, archivos ejecutables o scripts.

Puede llamar a MsiDoAction en las siguientes acciones estándar mediante el identificador restringido. Todas las demás acciones devuelven ERROR_FUNCTION_NOT_CALLED si se llama con el identificador restringido.

Se debe llamar a la función MsiCloseHandle cuando no se necesite el identificador.

Nota:

El encabezado msi.h define MsiOpenPackageEx como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Windows Installer en Windows Server 2003 o Windows XP. Consulte Windows Installer para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer.
Plataforma de destino Windows
Encabezado msi.h
Library Msi.lib
Archivo DLL Msi.dll