MsiProvideComponentW, fonction (msi.h)
La fonction MsiProvideComponent retourne le chemin d’accès complet du composant, en effectuant toute installation nécessaire. Cette fonction invite la source si nécessaire et incrémente le nombre d’utilisation de la fonctionnalité.
Syntaxe
UINT MsiProvideComponentW(
[in] LPCWSTR szProduct,
[in] LPCWSTR szFeature,
[in] LPCWSTR szComponent,
[in] DWORD dwInstallMode,
[out] LPWSTR lpPathBuf,
[in, out] LPDWORD pcchPathBuf
);
Paramètres
[in] szProduct
Spécifie le code de produit du produit qui contient la fonctionnalité avec le composant nécessaire.
[in] szFeature
Spécifie l’ID de fonctionnalité de la fonctionnalité avec le composant nécessaire.
[in] szComponent
Spécifie le code du composant nécessaire.
[in] dwInstallMode
Définit le mode d’installation. Ce paramètre peut prendre les valeurs suivantes.
Valeur | Signification |
---|---|
|
Fournissez le composant et effectuez toute installation nécessaire pour fournir le composant. Si le fichier de 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. |
|
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. |
|
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. |
|
Appelez MsiReinstallFeature pour réinstaller la fonctionnalité à l’aide de ce paramètre pour le paramètre dwReinstallMode , puis fournissez le composant. |
|
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. |
[out] lpPathBuf
Pointeur vers une variable qui reçoit le chemin d’accès au composant. Ce paramètre peut avoir la valeur Null.
[in, out] pcchPathBuf
Pointeur vers une variable qui spécifie la taille, en caractères, de la mémoire tampon vers laquelle pointe 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 a la valeur null, pcchBuf peut avoir la valeur Null.
Valeur retournée
Valeur | Signification |
---|---|
|
Les données de configuration sont endommagées. |
|
La fonctionnalité est absente ou rompue. cette erreur est retournée pour dwInstallMode = INSTALLMODE_EXISTING. |
|
L'installation a échoué. |
|
Le composant demandé est désactivé sur l’ordinateur. |
|
Un paramètre non valide a été transmis à la fonction. |
|
La fonction s’est terminée avec succès. |
|
L’ID de fonctionnalité n’identifie pas une fonctionnalité connue. |
|
Le code de produit n’identifie pas un produit connu. |
|
Un produit non reconnu ou un nom de fonctionnalité a été passé à la fonction. |
|
Le dépassement de mémoire tampon est retourné. |
|
Impossible de détecter une source. |
Pour plus d’informations, consultez Messages d’erreur affichés.
Remarques
Une fois la fonction MsiProvideComponent réussie, le paramètre pcchPathBuf contient la longueur de la chaîne dans lpPathBuf.
La fonction MsiProvideComponent combine les fonctionnalités de MsiUseFeature, MsiConfigureFeature et MsiGetComponentPath. Vous pouvez utiliser la fonction MsiProvideComponent pour simplifier la séquence d’appels. Toutefois, étant donné que cette fonction incrémente le nombre d’utilisations, utilisez-la avec précaution pour éviter des nombres d’utilisation incorrects. La fonction MsiProvideComponent offre également moins de flexibilité que la série d’appels individuels.
Si l’application se remet d’une situation inattendue, l’application a probablement déjà appelé MsiUseFeature et incrémenté le nombre d’utilisations. Dans ce cas, l’application doit appeler MsiConfigureFeature au lieu de MsiProvideComponent pour éviter d’incrémenter à nouveau le nombre.
L’option INSTALLMODE_EXISTING ne peut pas être utilisée en combinaison avec l’indicateur REINSTALLMODE.
Les fonctionnalités avec des composants contenant un fichier endommagé ou une version incorrecte d’un fichier doivent être réinstallées explicitement par l’utilisateur ou par l’appel de l’application MsiReinstallFeature.
Notes
L’en-tête msi.h définit MsiProvideComponent 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. Windows Installer sur Windows Server 2003 ou Windows XP. 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 |