Partager via


MsiEnumComponentCostsW, 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 d’espace disque requis pour tous les lecteurs de 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 coût des fichiers .

Syntaxe

UINT MsiEnumComponentCostsW(
  [in]      MSIHANDLE    hInstall,
  [in]      LPCWSTR      szComponent,
  [in]      DWORD        dwIndex,
  [in]      INSTALLSTATE iState,
  [out]     LPWSTR       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, MsiOpenPackageExou 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 composant . Ce paramètre peut être null. Si szComponent est null ou une chaîne vide, MsiEnumComponentCosts énumère l’espace disque total utilisé pendant l’installation. Dans ce cas, iState est ignoré. Les coûts du programme d’installation incluent ces coûts pour la 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 basé sur 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 chaîne Null ou vide, le programme d’installation ignore le paramètre iState.

[out] szDriveBuf

Mémoire tampon qui contient le nom du lecteur, y compris le terminateur 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, dans les 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 non compris le pointeur 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 chaîne Null ou vide, le programme d’installation définit la valeur à 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 les exigences d’espace temporaires pendant la durée de l’installation. Cette exigence d’espace temporaire est nécessaire uniquement pour la durée de l’installation. Cela n’affecte pas la dernière exigence d’espace disque.

Valeur de retour

Valeur de retour Signification
ERROR_INVALID_HANDLE_STATE
Les données de configuration sont endommagées.
ERROR_INVALID_PARAMETER
Un paramètre non valide a été passé à la fonction.
ERROR_NO_MORE_ITEMS
Il n’y a plus de lecteurs à retourner.
ERROR_SUCCESS
Une valeur a été énumérée.
ERROR_UNKNOWN_COMPONENT
Le composant est manquant.
ERROR_FUNCTION_NOT_CALLED
Le coût n’est pas terminé.
ERROR_MORE_DATA
Mémoire tampon insuffisante pour le nom du lecteur.
ERROR_INVALID_HANDLE
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 dwIndex défini sur 0 et incrémentez-le d’un après chaque appel. Poursuivez 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).

Note

L’en-tête msiquery.h définit MsiEnumComponentCosts 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
plateforme cible Windows
d’en-tête msiquery.h
bibliothèque Msi.lib
DLL Msi.dll