MsiGetComponentPathA, fonction (msi.h)

La fonction MsiGetComponentPath retourne le chemin d’accès complet à un composant installé. Si le chemin de clé du composant est une clé de Registre, la clé de Registre est retournée.

Syntaxe

INSTALLSTATE MsiGetComponentPathA(
  [in]      LPCSTR  szProduct,
  [in]      LPCSTR  szComponent,
  [out]     LPSTR   lpPathBuf,
  [in, out] LPDWORD pcchBuf
);

Paramètres

[in] szProduct

Spécifie le code du produit pour le produit client.

[in] szComponent

Spécifie l’ID de composant du composant à localiser.

[out] lpPathBuf

Pointeur vers une variable qui reçoit le chemin d’accès au composant. Ce paramètre peut avoir la valeur 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 de clé. S’il s’agit d’un chemin de clé de valeur de Registre, il n’existe aucune 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é comme « 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 de cette table pour les distinguer des chemins de clés 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] pcchBuf

Pointeur vers une variable qui spécifie la taille, en caractères, de la mémoire tampon pointée par le paramètre lpPathBuf . En entrée, il s’agit de la taille complète de la mémoire tampon, y compris un espace pour un caractère null de fin. Si la mémoire tampon passée est trop petite, le nombre retourné n’inclut pas le caractère null de fin.

Si lpPathBuf est null, pcchBuf peut être null.

Valeur retournée

La fonction MsiGetComponentPath retourne les valeurs suivantes.

Valeur Signification
INSTALLSTATE_NOTUSED
Le composant demandé est désactivé sur l’ordinateur.
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.

Remarques

Une fois la fonction MsiGetComponentPath réussie, le paramètre pcchBuf contient la longueur de la chaîne dans lpPathBuf.

La fonction MsiGetComponentPath 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é a été 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 qu’elle initialise. Une application ne doit utiliser que des fonctionnalités connues pour être publiées. Étant donné que INSTALLSTATE_UNKNOWN doit également être 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 MsiGetComponentPath 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. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre 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

   
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. 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
En-tête msi.h
Bibliothèque Msi.lib
DLL Msi.dll

Voir aussi

Fonctions spécifiques aux composants