Partager via


MsiLocateComponentA, fonction (msi.h)

La fonction MsiLocateComponent retourne le chemin d’accès complet à un composant installé sans code de produit. Cette fonction tente de déterminer le produit à l’aide de MsiGetProductCode, mais n’est pas garantie de trouver le produit correct pour l’appelant. MsiGetComponentPath doit toujours être appelée lorsque cela est possible.

Syntaxe

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

Paramètres

[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. La variable inclut le caractère null de fin.

[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. Lors de l’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. Une fois la fonction MsiLocateComponent réussie, la variable pointée par pcchBuf contient le nombre de caractères non compris le caractère null de fin. Si la taille de la mémoire tampon passée est trop petite, la fonction retourne INSTALLSTATE_MOREDATA.

Si lpPathBuf a la valeur Null, pcchBuf peut être null.

Valeur de retour

Valeur Signification
INSTALLSTATE_NOTUSED
Le composant demandé est désactivé sur l’ordinateur.
INSTALLSTATE_ABSENT
Le composant n’est pas installé. Voir les remarques.
INSTALLSTATE_INVALIDARG
L’un des paramètres de fonction n’est pas valide.
INSTALLSTATE_LOCAL
Le composant est installé localement.
INSTALLSTATE_MOREDATA
La mémoire tampon fournie était trop petite.
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 du composant est inconnu. Voir les remarques.

Remarques

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

  • INSTALLSTATE_ABSENT

    L’application n’a pas vérifié correctement 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 son initialisation. 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.

Note

L’en-tête msi.h définit MsiLocateComponent 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. 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
d’en-tête msi.h
bibliothèque Msi.lib
DLL Msi.dll

Voir aussi

Component-Specific Functions