Compartir a través de


Función MsiOpenPackageExA (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 sea necesario.

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

 

Sintaxis

UINT MsiOpenPackageExA(
  [in]  LPCSTR    szPackagePath,
  [in]  DWORD     dwOptions,
  [out] MSIHANDLE *hProduct
);

Parámetros

[in] szPackagePath

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 comportamiento de 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.

Observaciones

Para crear un identificador de producto restringido que sea independiente del estado actual de la máquina e incapaz de cambiar el estado actual de la máquina, 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 acciones personalizadas que establecen propiedades ( tipo de acción personalizada 35, tipo de acción personalizada 51y tipo de acción personalizada 19). El identificador restringido impide el uso de acciones personalizadas que ejecutan Dynamic-Link Bibliotecas, archivos ejecutables de o scripts de .

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 necesita 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 Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido 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 Run-Time Requirements (Requisitos de Windows Installer) para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer.
de la plataforma de destino de Windows
encabezado de msi.h
biblioteca de Msi.lib
DLL de Msi.dll