MsiEnumComponentCostsA-Funktion (msiquery.h)
Die MsiEnumComponentCosts-Funktion listet den Speicherplatz pro Laufwerk auf, der für die Installation einer Komponente erforderlich ist. Diese Informationen werden benötigt, um die für alle Laufwerke erforderlichen Speicherplatzkosten auf der Benutzeroberfläche anzuzeigen. Die zurückgegebenen Speicherplatzkosten werden in Vielfachen von 512 Bytes ausgedrückt.
MsiEnumComponentCosts sollte nur ausgeführt werden, nachdem das Installationsprogramm die Dateikalkulation abgeschlossen hat und nach der CostFinalize-Aktion. Weitere Informationen finden Sie unter Dateikostenberechnung.
Syntax
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
);
Parameter
[in] hInstall
Behandeln Sie die Installation, die für eine benutzerdefinierte DLL-Aktion bereitgestellt oder über MsiOpenPackage, MsiOpenPackageEx oder MsiOpenProduct abgerufen wird.
[in] szComponent
Eine NULL-beendete Zeichenfolge, die den Namen der Komponente angibt, wie er in der Spalte Komponente der Tabelle Component aufgeführt ist. Dieser Parameter kann NULL sein. Wenn szComponent NULL oder eine leere Zeichenfolge ist, zählt MsiEnumComponentCosts den gesamten Speicherplatz pro Laufwerk auf, das während der Installation verwendet wird. In diesem Fall wird iState ignoriert. Die Kosten für das Installationsprogramm umfassen die Kosten für das Zwischenspeichern der Datenbank im sicheren Ordner sowie die Kosten für die Erstellung des Installationsskripts. Beachten Sie, dass der während der Installation verwendete Speicherplatz insgesamt größer sein kann als der nach der Installation der Komponente belegte Speicherplatz.
[in] dwIndex
0-basierter Index für Laufwerke. Dieser Parameter sollte für den ersten Aufruf der MsiEnumComponentCosts-Funktion 0 sein und für nachfolgende Aufrufe inkrementiert werden.
[in] iState
Angeforderter Komponentenstatus, der aufgezählt werden soll. Wenn szComponent als NULL oder eine leere Zeichenfolge übergeben wird, ignoriert das Installationsprogramm den iState-Parameter .
[out] szDriveBuf
Puffer, der den Laufwerksnamen enthält, einschließlich des NULL-Abschlusszeichens. Dies ist eine leere Zeichenfolge im Falle eines Fehlers.
[in, out] pcchDriveBuf
Zeiger auf eine Variable, die in TCHARs die Größe des Puffers angibt, auf den der lpDriveBuf-Parameter verweist. Diese Größe sollte das beendende NULL-Zeichen enthalten. Wenn der bereitgestellte Puffer zu klein ist, enthält die Variable, auf die von pcchDriveBuf verwiesen wird, die Anzahl der Zeichen ohne null-Abschlussator.
[out] piCost
Kosten für die Komponente pro Laufwerk, ausgedrückt in Vielfachen von 512 Bytes. Dieser Wert ist 0, wenn ein Fehler aufgetreten ist. Der in piCost zurückgegebene Wert ist der endgültige Speicherplatz, der von der Komponente nach der Installation verwendet wird. Wenn szComponent als NULL oder eine leere Zeichenfolge übergeben wird, legt das Installationsprogramm den Wert bei piCost auf 0 fest.
[out] piTempCost
Die Komponentenkosten pro Laufwerk für die Dauer der Installation oder 0, wenn ein Fehler aufgetreten ist. Der Wert in *piTempCost stellt die temporären Speicherplatzanforderungen für die Dauer der Installation dar. Dieser temporäre Platzbedarf ist nur für die Dauer der Installation erforderlich. Dies wirkt sich nicht auf den endgültigen Speicherplatzbedarf aus.
Rückgabewert
Rückgabewert | Bedeutung |
---|---|
|
Die Konfigurationsdaten sind beschädigt. |
|
Es wurde ein ungültiger Parameter an die Funktion übergeben. |
|
Es gibt keine weiteren Laufwerke, die zurückgegeben werden können. |
|
Ein Wert wurde aufgelistet. |
|
Die Komponente fehlt. |
|
Die Kostenkalkulation ist nicht abgeschlossen. |
|
Puffer nicht groß genug für den Laufwerksnamen. |
|
Das angegebene Handle ist ungültig oder inaktiv. |
Hinweise
Die empfohlene Methode zum Auflisten der Speicherplatzkosten pro Laufwerk lautet wie folgt. Beginnen Sie damit, dass dwIndex auf 0 festgelegt ist, und erhöhen Sie ihn nach jedem Aufruf um eins. Setzen Sie die Enumeration fort, solange MsiEnumComponentCosts ERROR_SUCCESS zurückgibt.
MsiEnumComponentCosts kann aus benutzerdefinierten Aktionen aufgerufen werden.
Die Gesamtkosten der endgültigen Datenträgerkosten für die Installation sind die Summe der Kosten aller Komponenten zuzüglich der Kosten für den Windows Installer (szComponent = null).
Hinweis
Der msiquery.h-Header definiert MsiEnumComponentCosts als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.0 oder Windows Installer 4.5 unter Windows Server 2008 oder Windows Vista. Windows Installer unter Windows Server 2003 oder Windows XP |
Zielplattform | Windows |
Kopfzeile | msiquery.h |
Bibliothek | Msi.lib |
DLL | Msi.dll |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für