Fonction MsiGetProductInfoExA (msi.h)

La fonction MsiGetProductInfoEx retourne des informations sur les produits publiés et installés. Cette fonction peut récupérer des informations

à propos d’un instance d’un produit installé sous un compte d’utilisateur autre que l’utilisateur actuel.

Le processus d’appel doit disposer de privilèges d’administration pour un utilisateur différent de l’utilisateur actuel. La fonction MsiGetProductInfoEx ne peut pas interroger un instance d’un produit publié dans un contexte non managé par utilisateur pour un compte d’utilisateur autre que l’utilisateur actuel.

Cette fonction est une extension de la fonction MsiGetProductInfo .

Syntaxe

UINT MsiGetProductInfoExA(
  [in]                LPCSTR            szProductCode,
  [in]                LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                LPCSTR            szProperty,
  [out, optional]     LPSTR             szValue,
  [in, out, optional] LPDWORD           pcchValue
);

Paramètres

[in] szProductCode

GUID ProductCode du produit instance en cours de requête.

[in] szUserSid

Identificateur de sécurité (SID) du compte sous lequel le instance du produit interrogé existe. Une valeur NULL spécifie le SID utilisateur actuel.

SID Signification
NULL
Utilisateur actuellement connecté.
SID de l’utilisateur
Énumération d’un utilisateur spécifique 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 en cours de requête.

Nom Signification
MSIINSTALLCONTEXT_USERMANAGED
Récupère la propriété product pour les instance gérées par utilisateur du produit.
MSIINSTALLCONTEXT_USERUNMANAGED
Récupère la propriété product pour le instance non managé par utilisateur du produit.
MSIINSTALLCONTEXT_MACHINE
Récupère la propriété product pour le instance par machine du produit.

[in] szProperty

Propriété interrogée.

Propriété à récupérer. Les propriétés du tableau suivant ne peuvent être récupérées qu’à partir d’applications déjà installées. Toutes les propriétés requises sont garanties pour être disponibles, mais d’autres propriétés sont disponibles uniquement si la propriété est définie. Pour plus d'informations, consultez la rubrique
Propriétés et propriétés obligatoires.

Propriété Signification
INSTALLPROPERTY_PRODUCTSTATE
État du produit retourné sous forme de chaîne comme « 1 » pour publié et « 5 » pour installé.
INSTALLPROPERTY_HELPLINK
Lien de support. Pour plus d’informations, consultez la propriété ARPHELPLINK.
INSTALLPROPERTY_HELPTELEPHONE
Téléphone du support technique. Pour plus d’informations, consultez la propriété ARPHELPTELEPHONE.
INSTALLPROPERTY_INSTALLDATE
Dernière fois que ce produit a fait l’objet d’une maintenance. La valeur de cette propriété est remplacée chaque fois qu’un correctif est appliqué ou supprimé du produit ou que l’option de ligne de commande /v est utilisée pour réparer le produit. Si le produit n’a reçu aucune réparation ni aucun correctif, cette propriété contient l’heure à laquelle il a été installé sur cet ordinateur.
INSTALLPROPERTY_INSTALLEDLANGUAGE
Langue installée.

Windows Installer 4.5 et versions antérieures : Non pris en charge.

INSTALLPROPERTY_INSTALLEDPRODUCTNAME
Nom du produit installé. Pour plus d’informations, consultez la propriété ProductName.
INSTALLPROPERTY_INSTALLLOCATION
Emplacement d’installation. Pour plus d’informations, consultez la propriété ARPINSTALLLOCATION.
INSTALLPROPERTY_INSTALLSOURCE
Source d’installation. Pour plus d’informations, consultez la propriété SourceDir.
INSTALLPROPERTY_LOCALPACKAGE
Package mis en cache local.
INSTALLPROPERTY_PUBLISHER
Serveur de publication. Pour plus d’informations, consultez la propriété Manufacturer.
INSTALLPROPERTY_URLINFOABOUT
Informations relatives à l’URL. Pour plus d’informations, consultez la propriété ARPURLINFOABOUT.
INSTALLPROPERTY_URLUPDATEINFO
Informations de mise à jour d’URL. Pour plus d’informations, consultez la propriété ARPURLUPDATEINFO.
INSTALLPROPERTY_VERSIONMINOR
Version de produit mineure dérivée de la propriété ProductVersion .
INSTALLPROPERTY_VERSIONMAJOR
Version de produit principale dérivée de la propriété ProductVersion .
INSTALLPROPERTY_VERSIONSTRING
Version du produit. Pour plus d’informations, consultez la propriété ProductVersion.
 

Pour récupérer l’ID de produit, le propriétaire inscrit ou l’entreprise inscrite à partir d’applications installées, définissez szProperty sur l’une des valeurs de chaîne de texte suivantes.

Valeur Description
ProductID Identificateur du produit. Pour plus d’informations, consultez la propriété ProductID.
RegCompany Société inscrite pour utiliser le produit.
RegOwner Propriétaire inscrit pour utiliser le produit.
 

Pour récupérer le instance type du produit, définissez szProperty sur la valeur suivante. Cette propriété est disponible pour les produits publiés ou installés.

Valeur Description
InstanceType Une valeur manquante ou une valeur de 0 (zéro) indique une installation de produit normale. Une valeur d’un (1) indique un produit installé à l’aide d’une transformation de plusieurs instance et de la propriété MSINEWINSTANCE. Pour plus d’informations, consultez Installation de plusieurs instances de produits et de correctifs.
 

Les propriétés du tableau suivant peuvent être récupérées à partir d’applications publiées ou installées. Ces propriétés ne peuvent pas être récupérées pour les instances de produit installées dans un contexte non managé par utilisateur pour les comptes d’utilisateur autres que celui de l’utilisateur actuel.

Propriété Description
INSTALLPROPERTY_TRANSFORMS Transformations :
INSTALLPROPERTY_LANGUAGE Langue du produit.
INSTALLPROPERTY_PRODUCTNAME Nom du produit lisible par l’homme. Pour plus d’informations, consultez la propriété ProductName.
INSTALLPROPERTY_ASSIGNMENTTYPE Est égal à 0 (zéro) si le produit est publié ou installé par utilisateur.

Est égale à un (1) si le produit est publié ou installé par ordinateur pour tous les utilisateurs.

INSTALLPROPERTY_PACKAGECODE Identificateur du package à partir duquel un produit est installé. Pour plus d’informations, consultez la propriété Codes de package .
INSTALLPROPERTY_VERSION Version de produit dérivée de la propriété ProductVersion.
INSTALLPROPERTY_PRODUCTICON Icône principale du package. Pour plus d’informations, consultez la propriété ARPPRODUCTICON.
INSTALLPROPERTY_PACKAGENAME Nom du package d’installation d’origine.
INSTALLPROPERTY_AUTHORIZED_LUA_APP Une valeur de un (1) indique un produit qui peut être utilisé par des non-administrateurs à l’aide de la mise à jour corrective du contrôle de compte d’utilisateur (UAC). Une valeur manquante ou 0 (zéro) indique que la mise à jour corrective des privilèges minimum n’est pas activée. Disponible dans Windows Installer 3.0 ou versions ultérieures.

[out, optional] szValue

Pointeur vers une mémoire tampon qui reçoit la valeur de la propriété. Cette mémoire tampon doit être suffisamment grande pour contenir les informations. Si la mémoire tampon est trop petite, la fonction retourne ERROR_MORE_DATA et définit *pcchValue sur le nombre de TCHAR dans la valeur, sans inclure le caractère NULL de fin.

Si lpValue a la valeur NULL et que pcchValue est défini sur un pointeur valide, la fonction retourne ERROR_SUCCESS et définit *pcchValue sur le nombre de TCHAR dans la valeur, sans inclure le caractère NULL de fin. La fonction peut ensuite être appelée à nouveau pour récupérer la valeur, avec la mémoire tampon lpValue suffisamment grande pour contenir *pcchValue + 1 caractères.

Si lpValue et pcchValue sont tous deux définis sur NULL, la fonction retourne ERROR_SUCCESS si la valeur existe, sans récupérer la valeur.

[in, out, optional] pcchValue

Pointeur vers une variable qui spécifie le nombre de TCHAR dans la mémoire tampon lpValue . Lorsque la fonction retourne, ce paramètre est défini sur la taille de la valeur demandée, que la fonction copie ou non la valeur dans la mémoire tampon spécifiée. La taille est retournée sous la forme du nombre de TCHAR dans la valeur demandée, sans inclure le caractère null de fin.

Ce paramètre peut être défini sur NULL uniquement si lpValue a également la valeur NULL. Sinon, la fonction retourne ERROR_INVALID_PARAMETER.

Valeur retournée

La fonction MsiGetProductInfoEx retourne les valeurs suivantes.

Code de retour Description
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 est passé à la fonction .
ERROR_MORE_DATA
Une mémoire tampon est trop petite pour contenir les données demandées.
ERROR_SUCCESS
La fonction s’est terminée avec succès.
ERROR_UNKNOWN_PRODUCT
Le produit n’est ni déconseillé ni désinstallé.
ERROR_UNKNOWN_PROPERTY
La propriété n’est pas reconnue.
Note La fonction MsiGetProductInfo retourne ERROR_UNKNOWN_PROPERTY si l’application interrogée est annoncée et non installée.
 
ERROR_FUNCTION_FAILED
Défaillance interne inattendue.

Remarques

Lorsque la fonction MsiGetProductInfoEx retourne, le paramètre pcchValue contient la longueur de la chaîne stockée dans la mémoire tampon. Le nombre retourné n’inclut pas le caractère null de fin. Si la mémoire tampon n’est pas assez grande, MsiGetProductInfoEx retourne ERROR_MORE_DATA, et le paramètre pcchValue contient la taille de la chaîne, dans TCHAR, sans compter le caractère null.

La fonction MsiGetProductInfoEx (INSTALLPROPERTY_LOCALPACKAGE) retourne un chemin d’accès au package mis en cache. Le package mis en cache est destiné uniquement à un usage interne. Les installations en mode maintenance doivent être appelées via les fonctions MsiConfigureFeature, MsiConfigureProduct ou MsiConfigureProductEx .

La fonction MsiGetProductInfo retourne ERROR_UNKNOWN_PROPERTY si l’application interrogée est annoncée et non installée. Par exemple, si l’application est annoncée et non installée, une requête pour INSTALLPROPERTY_INSTALLLOCATION retourne une erreur de ERROR_UNKNOWN_PROPERTY.

Notes

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

ARPHELPLINK

ARPHELPTELEPHONE

ARPINSTALLLOCATION

ARPPRODUCTICON

ARPURLINFOABOUT

ARPURLUPDATEINFO

Fabricant

MsiConfigureFeature

MsiConfigureProduct

MsiConfigureProductEx

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

Codes de package

ProductCode

IDProduit

ProductName

ProductVersion

Propriétés

Propriétés obligatoires

SourceDir

Fonctions d’état du système