Share via


MsiOpenPackageExA, fonction (msi.h)

La fonction MsiOpenPackageEx ouvre un package à utiliser avec des fonctions qui accèdent à la base de données du produit. La fonction MsiCloseHandle doit être appelée avec le handle lorsque le handle n’est plus nécessaire.

Note Initialisez COM sur le même thread avant d’appeler la fonction MsiOpenPackage, MsiOpenPackageEx ou MsiOpenProduct .

 

Syntaxe

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

Paramètres

[in] szPackagePath

Chemin d'accès au package.

[in] dwOptions

Indicateurs de bits pour indiquer s’il faut ou non ignorer l’état de l’ordinateur. Passez 0 (zéro) pour utiliser le comportement MsiOpenPackage .

Constant Signification
MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE
1
Ignorez l’état de l’ordinateur lors de la création du handle de produit.

[out] hProduct

Pointeur vers une variable qui reçoit le handle de produit.

Valeur retournée

Valeur Signification
ERROR_BAD_CONFIGURATION
Les informations de configuration sont endommagées.
ERROR_INSTALL_FAILURE
Impossible d’ouvrir le produit.
ERROR_INSTALL_REMOTE_PROHIBITED
Windows Installer n’autorise pas l’installation à partir d’une connexion Bureau à distance.
ERROR_INVALID_PARAMETER
Un paramètre non valide est passé à la fonction .
ERROR_SUCCESS
La fonction s’exécute correctement.
 

Si cette fonction échoue, elle peut retourner un code d’erreur système. Pour plus d’informations, consultez Codes d’erreur système.

Remarques

Pour créer un handle de produit restreint indépendant de l’état actuel de la machine et incapable de modifier l’état actuel de l’ordinateur, utilisez MsiOpenPackageEx avec MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE défini dans dwOptions.

Notez que si dwOptions est MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE ou 1, MsiOpenPackageEx ignore l’état actuel de l’ordinateur lors de la création du handle de produit. Si la valeur de dwOptions est 0, MsiOpenPackageEx est identique à MsiOpenPackage et crée un handle de produit qui dépend si le package spécifié par szPackagePath est déjà installé sur l’ordinateur.

Le handle restreint créé à l’aide de MsiOpenPackageEx avec MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE autorise uniquement l’exécution de boîtes de dialogue, d’un sous-ensemble d’actions standard et d’actions personnalisées qui définissent des propriétés ( Type d’action personnalisée 35, Type d’action personnalisée 51 et Type d’action personnalisée 19). Le handle restreint empêche l’utilisation d’actions personnalisées qui exécutent des bibliothèques de liens dynamiques, des fichiers exécutables ou des scripts.

Vous pouvez appeler MsiDoAction sur les actions standard suivantes à l’aide du handle restreint. Toutes les autres actions retournent ERROR_FUNCTION_NOT_CALLED si elles sont appelées avec le handle restreint.

La fonction MsiCloseHandle doit être appelée lorsque le handle n’est pas nécessaire.

Notes

L’en-tête msi.h définit MsiOpenPackageEx comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. Windows Installer sur Windows Server 2003 ou Windows XP. Pour plus d’informations sur le Service Pack Windows requis par une version de Windows Installer, consultez Configuration requise pour le runtime Windows.
Plateforme cible Windows
En-tête msi.h
Bibliothèque Msi.lib
DLL Msi.dll