MsiGetFeatureValidStatesW-Funktion (msiquery.h)
Die MsiGetFeatureValidStates--Funktion gibt einen gültigen Installationsstatus zurück.
Syntax
UINT MsiGetFeatureValidStatesW(
[in] MSIHANDLE hInstall,
[in] LPCWSTR szFeature,
[out] LPDWORD lpInstallStates
);
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 Featurenamen an.
[out] lpInstallStates
Empfängt den Speicherort, der die gültigen Installationszustände enthält. Für jeden gültigen Installationszustand legt das Installationsprogramm pInstallState- auf eine Kombination der folgenden Werte fest. Dieser Parameter sollte nicht null sein.
Rückgabewert
Die funktion MsiGetFeatureValidStates gibt die folgenden Werte zurück:
Bemerkungen
Siehe Aufrufen von Datenbankfunktionen aus Programmen.
Die MsiGetFeatureValidStates--Funktion bestimmt die Statusgültigkeit, indem alle Komponenten, die mit dem angegebenen Feature verknüpft sind, abfragen, ohne den aktuellen Installationsstatus einer Komponente zu berücksichtigen.
Die möglichen gültigen Zustände für ein Feature werden wie folgt bestimmt:
- Wenn das Feature keine Komponenten enthält, sind sowohl INSTALLSTATE_LOCAL als auch INSTALLSTATE_SOURCE gültige Status für das Feature.
- Wenn mindestens eine Komponente des Features über ein Attribut von msidbComponentAttributesLocalOnly oder msidbComponentAttributesOptional verfügt, ist INSTALLSTATE_LOCAL ein gültiger Zustand für das Feature.
- Wenn mindestens eine Komponente des Features über ein Attribut von msidbComponentAttributesSourceOnly oder msidbComponentAttributesOptional verfügt, ist INSTALLSTATE_SOURCE ein gültiger Zustand für das Feature.
- Wenn eine Datei einer Komponente, die zum Feature gehört, gepatcht oder aus einer komprimierten Quelle stammt, ist INSTALLSTATE_SOURCE nicht als gültiger Zustand für das Feature enthalten.
- INSTALLSTATE_ADVERTISE ist kein gültiger Zustand, wenn die Ankündigung des Features (msidbFeatureAttributesDisallowAdvertise) oder das Feature Plattformunterstützung für Werbung (msidbFeatureAttributesNoUnsupportedAdvertise) erfordert und die Plattform sie nicht unterstützt.
- INSTALLSTATE_ABSENT ist ein gültiger Zustand für das Feature, wenn seine Attribute keine msidbFeatureAttributesUIDisallowAbsent enthalten.
- Gültige Zustände für untergeordnete Features, die gekennzeichnet sind, um dem übergeordneten Feature (msidbFeatureAttributesFollowParent) zu folgen, basieren auf der Aktion oder dem Installationsstatus des übergeordneten Features.
MsiGetFeatureValidStates(hProduct, "Feature1", &dwValidStates);
Wenn Feature1 Attribute von Wert 0 hat (lokal favorisieren), und Feature1 eine Komponente mit Attributen von Wert 0 (nur lokal), der Wert von dwValidStates nach dem Aufruf 14 ist. Dies gibt an, dass INSTALLSTATE_LOCAL, INSTALLSTATE_ABSENT und INSTALLSTATE_ADVERTISED gültige Status für Feature1 sind. Die folgende bedingte Anweisung wertet "True" aus, wenn "lokal" ein gültiger Zustand für dieses Feature ist.
( dwValidStates & ( 1 << INSTALLSTATE_LOCAL ) == ( 1 << INSTALLSTATE_LOCAL ) )
Wenn die Funktion fehlschlägt, können Sie erweiterte Fehlerinformationen mithilfe MsiGetLastErrorRecordabrufen.
Anmerkung
Der header msiquery.h definiert MsiGetFeatureValidStates 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