MsiGetFeatureCostA-Funktion (msiquery.h)
Die MsiGetFeatureCost--Funktion gibt den Speicherplatz zurück, der von einem Feature und den ausgewählten untergeordneten und übergeordneten Features benötigt wird.
Syntax
UINT MsiGetFeatureCostA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFeature,
[in] MSICOSTTREE iCostTree,
[in] INSTALLSTATE iState,
[out] LPINT piCost
);
Parameter
[in] hInstall
Behandeln Sie die Installation, die für eine benutzerdefinierte DLL-Aktion bereitgestellt wird, oder erhalten Sie über MsiOpenPackage, MsiOpenPackageEx-oder MsiOpenProduct-.
[in] szFeature
Gibt den Namen des Features an.
[in] iCostTree
Gibt den Wert an, den die Funktion zum Ermitteln der Speicherplatzanforderungen verwendet. Dieser Parameter kann einer der folgenden Werte sein:
[in] iState
Gibt den Installationsstatus an. Dieser Parameter kann einer der folgenden Werte sein:
[out] piCost
Empfängt die Speicherplatzanforderungen in Einheiten von 512 Bytes. Dieser Parameter darf nicht null sein.
Rückgabewert
Die MsiGetFeatureCost--Funktion gibt die folgenden Werte zurück:
Bemerkungen
Siehe Aufrufen von Datenbankfunktionen aus Programmen.
Mit der MsiGetFeatureCost--Funktion gibt der MSICOSTTREE_SELFONLY Wert den Gesamtspeicher (in Einheiten von 512 Byte) an, der nur für das angegebene Feature erforderlich ist. Dieser zurückgegebene Wert enthält nicht die untergeordneten oder übergeordneten Features des angegebenen Features. Diese Gesamtkosten bestehen aus den Datenträgerkosten, die jeder Komponente zugeordnet sind, die mit dem Feature verknüpft ist.
Der wert MSICOSTTREE_CHILDREN gibt die Gesamtmenge an Speicherplatz (in Einheiten von 512 Byte) an, die für das angegebene Feature und seine untergeordneten Elemente erforderlich sind. Für jedes Feature besteht die Gesamtkosten aus den Datenträgerkosten, die jeder Komponente zugeordnet sind, die mit dem Feature verknüpft ist.
Der wert MSICOSTTREE_PARENTS gibt die Gesamtmenge an Speicherplatz (in Einheiten von 512 Byte) an, die für das angegebene Feature und seine übergeordneten Features erforderlich sind (bis zum Stamm der Featuretabelle). Für jedes Feature besteht die Gesamtkosten aus den Datenträgerkosten, die jeder Komponente zugeordnet sind, die mit dem Feature verknüpft ist.
MsiGetFeatureCost- hängt von mehreren anderen Funktionen ab, um erfolgreich zu sein. Im folgenden Beispiel wird die Reihenfolge veranschaulicht, in der diese Funktionen aufgerufen werden müssen:
MSIHANDLE hInstall; //product handle, must be closed
int iCost; //cost returned by MsiGetFeatureCost
MsiOpenPackage("Path to package....",&hInstall); //"Path to package...." should be replaced with the full path to the package to be opened
MsiDoAction(hInstall,"CostInitialize"); //
MsiDoAction(hInstall,"FileCost");
MsiDoAction(hInstall,"CostFinalize");
MsiDoAction(hInstall,"InstallValidate");
MsiGetFeatureCost(hInstall,"FeatureName",MSICOSTTREE_SELFONLY,INSTALLSTATE_ABSENT,&iCost);
MsiCloseHandle(hInstall); //close the open product handle
Der Prozess zum Abfragen der Kosten für features, die entfernt werden sollen, unterscheidet sich geringfügig:
MSIHANDLE hInstall; //product handle, must be closed
int iCost; //cost returned by MsiGetFeatureCost
MsiOpenPackage("Path to package....",&hInstall); //"Path to package...." should be replaced with the full path to the package to be opened
MsiDoAction(hInstall,"CostInitialize"); //
MsiDoAction(hInstall,"FileCost");
MsiDoAction(hInstall,"CostFinalize");
MsiSetFeatureState(hInstall,"FeatureName",INSTALLSTATE_ABSENT); //set the feature's state to "not installed"
MsiDoAction(hInstall,"InstallValidate");
MsiGetFeatureCost(hInstall,"FeatureName",MSICOSTTREE_SELFONLY,INSTALLSTATE_ABSENT,&iCost);
MsiCloseHandle(hInstall); //close the open product handle
Wenn die Funktion fehlschlägt, können Sie erweiterte Fehlerinformationen mithilfe MsiGetLastErrorRecordabrufen.
Anmerkung
Der header msiquery.h definiert MsiGetFeatureCost als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, 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 |
---|---|
mindestens unterstützte 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- | Fenster |
Header- | msiquery.h |
Library | Msi.lib |
DLL- | Msi.dll |
Siehe auch
Installationsprogrammauswahlfunktionen
Übergeben von Null als Argument von Windows Installer-Funktionen