Partager via


MsiOpenPackageExA, fonction (msi.h)

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

Remarque Initialiser COM sur le même thread avant d’appeler laMsiOpenPackage , MsiOpenPackageExou fonction 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 ignorer ou non l’état de l’ordinateur. Transmettez 0 (zéro) pour utiliser comportement de 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 de retour

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 l’ordinateur 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 du 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 dialogues, un sous-ensemble des actions standard et des actions personnalisées qui définissent des propriétés (type d’action personnalisé 35, type d’action personnalisé 51et type d’action personnalisée 19). Le handle restreint empêche l’utilisation d’actions personnalisées qui exécutent des bibliothèques Dynamic-Link, 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.

Note

L’en-tête msi.h définit MsiOpenPackageEx comme 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.

Exigences

Exigence Valeur
client minimum 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. Consultez la configuration requise de Windows Installer Run-Time pour plus d’informations sur le service pack Windows minimal requis par une version de Windows Installer.
plateforme cible Windows
d’en-tête msi.h
bibliothèque Msi.lib
DLL Msi.dll