Partager via


MsiProvideQualifiedComponentExW, fonction (msi.h)

La fonction MsiProvideQualifiedComponentEx retourne le chemin d’accès complet du composant qualifié publié par un produit et effectue toute installation nécessaire. Cette fonction invite la source si nécessaire et incrémente le nombre d’utilisations de la fonctionnalité.

Syntaxe

UINT MsiProvideQualifiedComponentExW(
  [in]      LPCWSTR szCategory,
  [in]      LPCWSTR szQualifier,
  [in]      DWORD   dwInstallMode,
  [in]      LPCWSTR szProduct,
  [in]      DWORD   dwUnused1,
  [in]      DWORD   dwUnused2,
  [out]     LPWSTR  lpPathBuf,
  [in, out] LPDWORD pcchPathBuf
);

Paramètres

[in] szCategory

Spécifie l’ID de composant qui pour le composant demandé. Ce n’est peut-être pas le GUID du composant lui-même, mais plutôt un serveur qui fournit la fonctionnalité correcte, comme dans la colonne ComponentId de la table PublishComponent.

[in] szQualifier

Spécifie un qualificateur dans une liste de composants publicitaires (à partir de PublishComponent Table).

[in] dwInstallMode

Définit le mode d’installation. Ce paramètre peut être l’une des valeurs suivantes.

Valeur Signification
INSTALLMODE_DEFAULT
Fournissez le composant et effectuez toute installation nécessaire pour fournir le composant. Si le fichier clé d’un composant dans la fonctionnalité demandée ou un parent de fonctionnalité est manquant, réinstallez la fonctionnalité à l’aide de MsiReinstallFeature avec les bits d’indicateur suivants définis : REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA et REINSTALLMODE_SHORTCUT.
INSTALLMODE_EXISTING
Fournissez le composant uniquement si la fonctionnalité existe. Sinon, retournez ERROR_FILE_NOT_FOUND.

Ce mode vérifie que le fichier de clé du composant existe.

INSTALLMODE_NODETECTION
Fournissez le composant uniquement si la fonctionnalité existe. Sinon, retournez ERROR_FILE_NOT_FOUND.

Ce mode vérifie uniquement que le composant est inscrit et ne vérifie pas que le fichier de clé du composant existe.

INSTALLMODE_EXISTING
Fournissez le composant uniquement si la fonctionnalité existe, sinon retournez ERROR_FILE_NOT_FOUND.
combinaison des indicateurs REINSTALLMODE
Appelez MsiReinstallFeature pour réinstaller la fonctionnalité à l’aide de ce paramètre pour le paramètre dwReinstallMode, puis fournissez le composant.
INSTALLMODE_NOSOURCERESOLUTION
Fournissez le composant uniquement si l’état d’installation de la fonctionnalité est INSTALLSTATE_LOCAL. Si l’état d’installation de la fonctionnalité est INSTALLSTATE_SOURCE, retournez ERROR_INSTALL_SOURCE_ABSENT. Sinon, retournez ERROR_FILE_NOT_FOUND. Ce mode vérifie uniquement que le composant est inscrit et ne vérifie pas que le fichier de clé existe.

[in] szProduct

Spécifie le produit à mettre en correspondance qui a publié le composant qualifié. S’il s’agit de null, cette API fonctionne de la même façon que MsiProvideQualifiedComponent.

[in] dwUnused1

Réservé. Doit être égal à zéro.

[in] dwUnused2

Réservé. Doit être égal à zéro.

[out] lpPathBuf

Pointeur vers une variable qui reçoit le chemin d’accès au composant. Ce paramètre peut être null.

[in, out] pcchPathBuf

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. Si la mémoire tampon passée est trop petite, le nombre retourné n’inclut pas le caractère null de fin.

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

Valeur de retour

Valeur Signification
ERROR_INDEX_ABSENT
Qualificateur de composant non valide ou non présent.
ERROR_SUCCESS
La fonction s’est terminée correctement.
ERROR_FILE_NOT_FOUND
La fonctionnalité est absente ou interrompue. cette erreur est retournée pour dwInstallMode = INSTALLMODE_EXISTING.
ERROR_UNKNOWN_COMPONENT
Le composant spécifié est inconnu.
Une erreur liée à une action
Consultez codes d’erreur.
erreur d’initialisation
Une erreur liée à l’initialisation s’est produite.

Remarques

En cas de réussite de la fonction msiProvideQualifiedComponentEx , le paramètre pcchPathBuf contient la longueur de la chaîne dans lpPathBuf.

Les fonctionnalités avec des composants contenant un fichier endommagé ou la version incorrecte d’un fichier doivent être réinstallées explicitement par l’utilisateur ou en appelant l’application MsiReinstallFeature.

Note

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

messages d’erreur affichés

codes d’erreur

erreur d’initialisation

Multiple-Package Installations