Partager via


MsiQueryComponentStateA, fonction (msi.h)

La fonction MsiQueryComponentState retourne l’état installé d’un composant. Cette fonction peut interroger un composant d’un instance d’un produit installé sous des comptes d’utilisateur autres que l’utilisateur actuel, à condition que le produit ne soit pas publié dans le contexte non managé par utilisateur pour un compte d’utilisateur autre que l’utilisateur actuel. Le processus appelant doit disposer de privilèges administratifs pour obtenir des informations sur un produit installé pour un utilisateur autre que l’utilisateur actuel.

Syntaxe

UINT MsiQueryComponentStateA(
  [in]  LPCSTR            szProductCode,
  [in]  LPCSTR            szUserSid,
  [in]  MSIINSTALLCONTEXT dwContext,
  [in]  LPCSTR            szComponentCode,
  [out] INSTALLSTATE      *pdwState
);

Paramètres

[in] szProductCode

Spécifie le GUID ProductCode pour le produit qui contient le composant.

[in] szUserSid

Spécifie l’identificateur de sécurité (SID) du compte sous lequel le instance du produit interrogé existe. Si dwContext n’est pas MSIINSTALLCONTEXT_MACHINE, null spécifie l’utilisateur actuel.

Type de SID Signification
NULL
NULL désigne l’utilisateur actuellement connecté.
SID de l’utilisateur
Spécifie l’énumération d’un utilisateur particulier dans le système. Un exemple de SID utilisateur est « S-1-3-64-2415071341-1358098788-3127455600-2561 ».
 
Note La chaîne SID spéciale « S-1-5-18 » (système) ne peut pas être utilisée pour énumérer les produits installés en tant que machine. Si dwContext est MSIINSTALLCONTEXT_MACHINE, szUserSid doit avoir la valeur Null.
 

[in] dwContext

Le contexte d’installation du produit instance interrogé.

Nom Signification
MSIINSTALLCONTEXT_USERMANAGED
Récupère l’état du composant pour les instance gérées par utilisateur du produit.
MSIINSTALLCONTEXT_USERUNMANAGED
Récupère l’état du composant pour les instance non managés par utilisateur du produit.
MSIINSTALLCONTEXT_MACHINE
Récupère l’état du composant pour le instance par machine du produit.

[in] szComponentCode

Spécifie le composant interrogé. GUID de code de composant du composant, tel qu’il se trouve dans la colonne ComponentID de la table Component .

[out] pdwState

État d’installation du composant pour le produit instance spécifié. Ce paramètre peut retourner l’une des valeurs suivantes ou null.

Valeur Signification
INSTALLSTATE_LOCAL
Le composant est installé localement.
INSTALLSTATE_SOURCE
Le composant est installé pour s’exécuter à partir de la source.

Valeur retournée

La fonction MsiQueryComponentState retourne les valeurs suivantes.

Valeur Signification
ERROR_ACCESS_DENIED
Le processus appelant doit disposer de privilèges administratifs pour obtenir des informations sur un produit installé pour un utilisateur autre que l’utilisateur actuel.
ERROR_BAD_CONFIGURATION
Les données de configuration sont endommagées.
ERROR_INVALID_PARAMETER
Un paramètre non valide a été transmis à la fonction.
ERROR_SUCCESS
La fonction s’est terminée avec succès.
ERROR_UNKNOWN_COMPONENT
L’ID de composant n’identifie pas un composant connu.
ERROR_UNKNOWN_PRODUCT
Le code de produit n’identifie pas un produit connu.
ERROR_FUNCTION_FAILED
Échecs qui ne peuvent pas être attribués à un code d’erreur Windows.
ERROR_MORE_DATA
Mémoire tampon trop petite pour obtenir le SID utilisateur.
 

Pour plus d’informations, consultez Messages d’erreur affichés.

Remarques

Notes

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

Voir aussi

Composant

Messages d’erreur affichés

Fonctions de sélection du programme d’installation

Non pris en charge par Windows Installer 2.0 et antérieur

ProductCode