MsiGetComponentPathExA, fonction (msi.h)

La fonction MsiGetComponentPathEx renvoie le chemin complet d’un composant installé. Si le chemin de la clé du composant est une clé de Registre, la fonction retourne la clé de Registre.

Cette fonction étend la fonction MsiGetComponentPath existante pour activer la recherche de composants dans les comptes d’utilisateur et les contextes d’installation.

Syntaxe

INSTALLSTATE MsiGetComponentPathExA(
  [in]                LPCSTR            szProductCode,
  [in]                LPCSTR            szComponentCode,
  [in, optional]      LPCSTR            szUserSid,
  [in, optional]      MSIINSTALLCONTEXT dwContext,
  [out, optional]     LPSTR             lpOutPathBuffer,
  [in, out, optional] LPDWORD           pcchOutPathBuffer
);

Paramètres

[in] szProductCode

Valeur de chaîne terminée par null qui spécifie le GUID du code de produit d’une application. La fonction obtient le chemin des composants installés utilisés par cette application.

[in] szComponentCode

Valeur de chaîne terminée par null qui spécifie un GUID de code de composant. La fonction obtient le chemin d’accès d’un composant installé avec ce code de composant.

[in, optional] szUserSid

Valeur de chaîne terminée par null qui spécifie l’identificateur de sécurité (SID) d’un utilisateur dans le système. La fonction obtient les chemins des composants installés des applications installées sous les comptes d’utilisateur identifiés par ce SID. La chaîne SID spéciale s-1-1-0 (Tout le monde) spécifie tous les utilisateurs du système. Si ce paramètre a la valeur NULL, la fonction obtient le chemin d’accès d’un composant installé pour l’utilisateur actuellement connecté uniquement.

Type SID Signification
NULL
Spécifie l’utilisateur actuellement connecté.
SID de l’utilisateur
Spécifie un utilisateur particulier dans le système. Un exemple de SID utilisateur est « S-1-3-64-2415071341-1358098788-3127455600-2561 ».
s-1-1-0
Spécifie tous les utilisateurs du système.
 
Note La chaîne SID spéciale s-1-5-18 (Système) ne peut pas être utilisée pour rechercher des applications installées dans le contexte d’installation par ordinateur. La définition de la valeur sid sur s-1-5-18 renvoie ERROR_INVALID_PARAMETER. Lorsque dwContext est défini sur MSIINSTALLCONTEXT_MACHINE uniquement, szUserSid doit avoir la valeur NULL.
 

[in, optional] dwContext

Indicateur qui spécifie le contexte d’installation. La fonction obtient les chemins d’accès des composants installés des applications installées dans le contexte d’installation spécifié. Ce paramètre peut être une combinaison des valeurs suivantes.

Context Signification
MSIINSTALLCONTEXT_USERMANAGED
1
Inclure les applications installées dans le contexte d’installation gérée par utilisateur.
MSIINSTALLCONTEXT_USERUNMANAGED
2
Incluez les applications installées dans le contexte d’installation non managée par utilisateur.
MSIINSTALLCONTEXT_MACHINE
4
Inclure les applications installées dans le contexte d’installation par ordinateur. Lorsque dwInstallContext est défini sur MSIINSTALLCONTEXT_MACHINE uniquement, le paramètre szUserSID doit être NULL.

[out, optional] lpOutPathBuffer

Valeur de chaîne qui reçoit le chemin d’accès au composant. Ce paramètre peut être NULL. Si le composant est une clé de Registre, les racines du Registre sont représentées numériquement. S’il s’agit d’un chemin de sous-clé de Registre, il existe une barre oblique inverse à la fin du chemin d’accès de la clé. S’il s’agit d’un chemin de clé de valeur de Registre, il n’y a pas de barre oblique inverse à la fin. Par exemple, un chemin d’accès au Registre sur un système d’exploitation 32 bits de HKEY_CURRENT_USER\SOFTWARE\Microsoft est retourné sous la forme « 01 :\SOFTWARE\Microsoft ». Les racines de Registre retournées sur les systèmes d’exploitation 32 bits sont définies comme indiqué dans le tableau suivant.

Note Sur les systèmes d’exploitation 64 bits, une valeur de 20 est ajoutée aux racines de Registre numériques dans cette table pour les distinguer des chemins de clé de Registre sur les systèmes d’exploitation 32 bits. Par exemple, un chemin de clé de Registre de HKEY_CURRENT_USER\SOFTWARE\Microsoft est retourné sous la forme « 21 :\SOFTWARE\Microsoft\ », si le chemin du composant est une clé de Registre sur un système d’exploitation 64 bits.
 
Root Signification
HKEY_CLASSES_ROOT
00
HKEY_CURRENT_USER
01
HKEY_LOCAL_MACHINE
02
HKEY_USERS
03

[in, out, optional] pcchOutPathBuffer

Pointeur vers un emplacement qui reçoit la taille de la mémoire tampon, dans TCHAR, vers lequel pointe le paramètre szPathBuf . La valeur à cet emplacement doit être définie sur le nombre de TCHAR dans la chaîne, y compris le caractère null de fin. Si la taille de la mémoire tampon est trop petite, ce paramètre reçoit la longueur de la valeur de chaîne sans inclure le caractère null de fin dans le nombre.

Valeur retournée

La fonction MsiGetComponentPathEx retourne les valeurs suivantes.

Valeur Signification
INSTALLSTATE_NOTUSED
Le composant demandé est désactivé sur l’ordinateur.
INSTALLSTATE_BADCONFIG
Les données de configuration sont endommagées.
INSTALLSTATE_ABSENT
Le composant n’est pas installé.
INSTALLSTATE_INVALIDARG
L’un des paramètres de fonction n’est pas valide.
INSTALLSTATE_LOCAL
Le composant est installé localement.
INSTALLSTATE_SOURCE
Le composant est installé pour s’exécuter à partir de la source.
INSTALLSTATE_SOURCEABSENT
La source du composant est inaccessible.
INSTALLSTATE_UNKNOWN
Le code de produit ou l’ID de composant est inconnu.
INSTALLSTATE_BROKEN
Le composant est endommagé ou partiellement manquant d’une manière ou d’une autre et nécessite une réparation.

Remarques

La fonction MsiGetComponentPathEx peut retourner INSTALLSTATE_ABSENT ou INSTALL_STATE_UNKNOWN, pour les raisons suivantes :

  • INSTALLSTATE_ABSENT

    L’application n’a pas correctement vérifié que la fonctionnalité était installée en appelant MsiUseFeature et, si nécessaire, MsiConfigureFeature.

  • INSTALLSTATE_UNKNOWN

    La fonctionnalité n’est pas publiée. L’application doit avoir déterminé cela précédemment en appelant MsiQueryFeatureState ou MsiEnumFeatures. L’application effectue ces appels pendant son initialisation. Une application doit uniquement utiliser des fonctionnalités connues pour être publiées. Étant donné que INSTALLSTATE_UNKNOWN devait également avoir été retourné par MsiUseFeature , MsiUseFeature n’a pas été appelé ou sa valeur de retour n’a pas été correctement vérifiée.

Notes

L’en-tête msi.h définit MsiGetComponentPathEx 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. Pour plus d’informations sur le Service Pack Windows minimal requis par une version de Windows Installer, consultez Configuration requise pour le runtime Windows Installer.
Plateforme cible Windows
En-tête msi.h
Bibliothèque Msi.lib
DLL Msi.dll

Voir aussi

Fonctions spécifiques aux composants