MsiSetFeatureStateW-Funktion (msiquery.h)
Die MsiSetFeatureState--Funktion legt ein Feature auf einen angegebenen Zustand fest.
Syntax
UINT MsiSetFeatureStateW(
[in] MSIHANDLE hInstall,
[in] LPCWSTR szFeature,
[in] INSTALLSTATE iState
);
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] iState
Gibt den festzulegenden Zustand an. Dieser Parameter kann einer der folgenden Werte sein:
Rückgabewert
Die MsiSetFeatureState--Funktion gibt die folgenden Werte zurück:
Bemerkungen
Die MsiSetFeatureState--Funktion fordert eine Änderung des Auswahlzustands eines Features in der Feature- Tabelle und den untergeordneten Elementen an. Der Aktionszustand aller Komponenten, die mit den geänderten Featuredatensätzen verknüpft sind, werden wiederum entsprechend aktualisiert, basierend auf dem neuen Featureauswahlstatus.
Die MsiSetInstallLevel--Funktion muss aufgerufen werden, bevor MsiSetFeatureStateaufgerufen wird.
Wenn MsiSetFeatureState- aufgerufen wird, versucht das Installationsprogramm, den Aktionsstatus jeder Komponente festzulegen, die mit dem angegebenen Feature an den angegebenen Zustand gebunden ist. Es gibt jedoch häufige Situationen, in denen die Anforderung nicht vollständig implementiert werden kann. Wenn z. B. ein Feature an zwei Komponenten gebunden ist, enthält Komponente A und Komponente B über die FeatureComponents Tabelle, und Komponente A verfügt über das msidbComponentAttributesLocalOnly Attribut und Komponente B verfügt über das msidbComponentAttributesSourceOnly Attribut. Wenn MsiSetFeatureState- in diesem Fall mit einem angeforderten Status von INSTALLSTATE_LOCAL oder INSTALLSTATE_SOURCE aufgerufen wird, kann die Anforderung für beide Komponenten nicht vollständig implementiert werden. In diesem Fall sind beide Komponenten aktiviert, wobei Komponente A auf "Lokal" und "Komponente B" auf "Quelle" festgelegt ist.
Wenn mehrere Features mit einer einzelnen Komponente (einem gemeinsamen Szenario) verknüpft sind, wird der endgültige Aktionsstatus dieser Komponente wie folgt bestimmt:
- Wenn mindestens ein Feature die lokale Installation der Komponente erfordert, wird das Feature mit einem lokalen Status installiert.
- Wenn mindestens ein Feature die Ausführung der Komponente aus der Quelle erfordert, wird das Feature mit einem Quellstatus installiert.
- Wenn mindestens ein Feature das Entfernen der Komponente erfordert, ist der Aktionszustand nicht vorhanden.
Wenn die Funktion fehlschlägt, können Sie erweiterte Fehlerinformationen mithilfe MsiGetLastErrorRecordabrufen.
Anmerkung
Der msiquery.h-Header definiert MsiSetFeatureState 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 |