MsiEnumComponentCostsA, fonction (msiquery.h)
La fonction MsiEnumComponentCosts énumère l’espace disque par lecteur requis pour installer un composant. Ces informations sont nécessaires pour afficher le coût de l’espace disque requis pour tous les lecteurs dans l’interface utilisateur. Les coûts d’espace disque retournés sont exprimés en multiples de 512 octets.
MsiEnumComponentCosts ne doit être exécuté qu’une fois que le programme d’installation a terminé le coût des fichiers et après l’action CostFinalize. Pour plus d’informations, consultez Calcul du coût des fichiers.
Syntaxe
UINT MsiEnumComponentCostsA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szComponent,
[in] DWORD dwIndex,
[in] INSTALLSTATE iState,
[out] LPSTR szDriveBuf,
[in, out] LPDWORD pcchDriveBuf,
[out] LPINT piCost,
[out] LPINT piTempCost
);
Paramètres
[in] hInstall
Gérez l’installation fournie à une action personnalisée DLL ou obtenue via MsiOpenPackage, MsiOpenPackageEx ou MsiOpenProduct.
[in] szComponent
Chaîne terminée par null spécifiant le nom du composant tel qu’il est répertorié dans la colonne Composant de la table Component. Ce paramètre peut avoir la valeur Null. Si szComponent a la valeur Null ou une chaîne vide, MsiEnumComponentCosts énumère l’espace disque total par lecteur utilisé pendant l’installation. Dans ce cas, iState est ignoré. Les coûts du programme d’installation incluent les coûts de mise en cache de la base de données dans le dossier sécurisé, ainsi que le coût de création du script d’installation. Notez que l’espace disque total utilisé pendant l’installation peut être supérieur à l’espace utilisé après l’installation du composant.
[in] dwIndex
Index de base 0 pour les lecteurs. Ce paramètre doit être égal à zéro pour le premier appel à la fonction MsiEnumComponentCosts , puis incrémenté pour les appels suivants.
[in] iState
État du composant demandé à énumérer. Si szComponent est passé en tant que Null ou une chaîne vide, le programme d’installation ignore le paramètre iState .
[out] szDriveBuf
Mémoire tampon contenant le nom du lecteur, y compris la marque de fin Null. Il s’agit d’une chaîne vide en cas d’erreur.
[in, out] pcchDriveBuf
Pointeur vers une variable qui spécifie la taille, en TCHAR, de la mémoire tampon pointée par le paramètre lpDriveBuf . Cette taille doit inclure le caractère null de fin. Si la mémoire tampon fournie est trop petite, la variable pointée par pcchDriveBuf contient le nombre de caractères qui n’inclut pas la marque de fin Null.
[out] piCost
Coût du composant par lecteur exprimé en multiples de 512 octets. Cette valeur est 0 si une erreur s’est produite. La valeur retournée dans piCost est l’espace disque final utilisé par le composant après l’installation. Si szComponent est passé en tant que Null ou une chaîne vide, le programme d’installation définit la valeur sur piCost sur 0.
[out] piTempCost
Coût du composant par lecteur pendant la durée de l’installation, ou 0 si une erreur s’est produite. La valeur dans *piTempCost représente l’espace temporaire requis pour la durée de l’installation. Cet espace temporaire est nécessaire uniquement pour la durée de l’installation. Cela n’affecte pas l’espace disque final requis.
Valeur retournée
Valeur renvoyée | Signification |
---|---|
|
Les données de configuration sont endommagées. |
|
Un paramètre non valide a été transmis à la fonction. |
|
Il n’y a plus de lecteurs à retourner. |
|
Une valeur a été énumérée. |
|
Le composant est manquant. |
|
L’estimation des coûts n’est pas terminée. |
|
La mémoire tampon n’est pas suffisamment grande pour le nom du lecteur. |
|
Le handle fourni n’est pas valide ou inactif. |
Remarques
La méthode recommandée pour énumérer les coûts d’espace disque par lecteur est la suivante. Commencez par le paramètre dwIndex défini sur 0 et incrémentez-le d’un après chaque appel. Continuez l’énumération tant que MsiEnumComponentCosts retourne ERROR_SUCCESS.
MsiEnumComponentCosts peut être appelé à partir d’actions personnalisées.
Le coût total du disque final pour l’installation est la somme des coûts de tous les composants, plus le coût de Windows Installer (szComponent = null).
Notes
L’en-tête msiquery.h définit MsiEnumComponentCosts 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. La combinaison 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 |
Plateforme cible | Windows |
En-tête | msiquery.h |
Bibliothèque | Msi.lib |
DLL | Msi.dll |