Partager via


MsiQueryFeatureStateExA, fonction (msi.h)

La fonction MsiQueryFeatureStateEx retourne l’état installé d’une fonctionnalité de produit. Cette fonction peut être utilisée pour interroger n’importe quelle fonctionnalité d’une instance d’un produit installé sous le compte d’ordinateur ou tout contexte sous le compte d’utilisateur actuel ou le contexte géré par l’utilisateur sous n’importe quel compte d’utilisateur autre que l’utilisateur actuel. Un utilisateur doit disposer de privilèges d’administration pour obtenir des informations sur un produit installé pour un utilisateur autre que l’utilisateur actuel.

Syntaxe

UINT MsiQueryFeatureStateExA(
  [in]            LPCSTR            szProductCode,
  [in]            LPCSTR            szUserSid,
  [in]            MSIINSTALLCONTEXT dwContext,
  [in]            LPCSTR            szFeature,
  [out, optional] INSTALLSTATE      *pdwState
);

Paramètres

[in] szProductCode

ProductCode GUID du produit qui contient la fonctionnalité d’intérêt.

[in] szUserSid

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

Type de SID Signification
NULL
NULL indique l’utilisateur actuellement connecté.
SID 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-135809878-3127455600-2561 ».
 
Remarque La chaîne SID spéciale s-1-5-18 (système) ne peut pas être utilisée pour énumérer les fonctionnalités des produits installés en tant que machine. Si dwContext est MSIINSTALLCONTEXT_MACHINE, szUserSid doit être null.
 

[in] dwContext

Contexte d’installation de l’instance de produit interrogée.

Nom Signification
MSIINSTALLCONTEXT_USERMANAGED
Récupère l’état de la fonctionnalité pour l’instance gérée par l’utilisateur du produit.
MSIINSTALLCONTEXT_USERUNMANAGED
Récupère l’état de la fonctionnalité pour l’instance non managée par utilisateur du produit.
Remarque Lorsque la requête est effectuée sur un produit installé sous le contexte non managé par utilisateur pour un compte d’utilisateur autre que l’utilisateur actuel, la fonction échoue.
 
MSIINSTALLCONTEXT_MACHINE
Récupère l’état de la fonctionnalité pour l’instance par ordinateur du produit.

[in] szFeature

Spécifie la fonctionnalité interrogée. Identificateur de la fonctionnalité comme indiqué dans la colonne Fonctionnalité de la table fonctionnalité .

[out, optional] pdwState

État d’installation de la fonctionnalité pour l’instance de produit spécifiée. Ce paramètre peut retourner l’une des valeurs suivantes ou null.

Valeur Signification
INSTALLSTATE_ADVERTISED
Cette fonctionnalité est annoncée.
INSTALLSTATE_LOCAL
La fonctionnalité est installée localement.
INSTALLSTATE_SOURCE
La fonctionnalité est installée pour s’exécuter à partir de la source.

Valeur de retour

La fonction MsiQueryFeatureStateEx retourne les valeurs suivantes.

Valeur Signification
ERROR_ACCESS_DENIED
Un utilisateur doit disposer de privilèges d’administration 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é passé à la fonction.
ERROR_SUCCESS
La fonction s’est terminée correctement.
ERROR_UNKNOWN_FEATURE
L’ID de fonctionnalité n’identifie pas une fonctionnalité connue.
ERROR_UNKNOWN_PRODUCT
Le code du produit n’identifie pas un produit connu.
ERROR_FUNCTION_FAILED
Une défaillance interne inattendue.
 

Pour plus d’informations, consultez Afficher les messages d’erreur.

Remarques

La fonction MsiQueryFeatureStateEx ne valide pas que la fonctionnalité est réellement accessible. La fonction MsiQueryFeatureStateEx ne valide pas l’ID de fonctionnalité. ERROR_UNKNOWN_FEATURE est retourné pour n’importe quel ID de fonctionnalité inconnu. Lorsque la requête est effectuée sur un produit installé sous le contexte non managé par utilisateur pour un compte d’utilisateur autre que l’utilisateur actuel, la fonction échoue. Dans ce cas, la fonction retourne ERROR_UNKNOWN_FEATURE, ou si le produit est publié uniquement (non installé), ERROR_UNKNOWN_PRODUCT est retourné.

Note

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

Voir aussi

messages d’erreur affichés

de la table de fonctionnalités

MsiQueryFeatureState

non pris en charge dans Windows Installer 2.0 et versions antérieures

ProductCode

fonctions d’état système