MsiGetFeatureValidStatesA-Funktion (msiquery.h)
Die MsiGetFeatureValidStates-Funktion gibt einen gültigen Installationsstatus zurück.
Syntax
UINT MsiGetFeatureValidStatesA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFeature,
[out] LPDWORD lpInstallStates
);
Parameter
[in] hInstall
Behandeln Sie die Installation, die für eine benutzerdefinierte DLL-Aktion bereitgestellt oder über MsiOpenPackage, MsiOpenPackageEx oder MsiOpenProduct abgerufen wird.
[in] szFeature
Gibt den Featurenamen an.
[out] lpInstallStates
Empfängt den Speicherort, der die gültigen Installationsstatus enthält. Für jeden gültigen Installationsstatus legt das Installationsprogramm pInstallState auf eine Kombination der folgenden Werte fest. Dieser Parameter darf nicht null sein.
Rückgabewert
Die MsiGetFeatureValidStates-Funktion gibt die folgenden Werte zurück:
Hinweise
Weitere Informationen finden Sie unter Aufrufen von Datenbankfunktionen aus Programmen.
Die MsiGetFeatureValidStates-Funktion bestimmt die Statusgültigkeit durch Abfragen aller Komponenten, die mit dem angegebenen Feature verknüpft sind, ohne den aktuellen installierten Zustand einer Komponente zu berücksichtigen.
Die möglichen gültigen Zustände für ein Feature werden wie folgt festgelegt:
- Wenn das Feature keine Komponenten umfasst, sind sowohl INSTALLSTATE_LOCAL als auch INSTALLSTATE_SOURCE gültige Zustände für das Feature.
- Wenn mindestens eine Komponente des Features das Attribut „msidbComponentAttributesLocalOnly“ oder „msidbComponentAttributesOptional“ aufweist, ist INSTALLSTATE_LOCAL ein gültiger Zustand für das Feature.
- Wenn mindestens eine Komponente des Features das Attribut „msidbComponentAttributesSourceOnly“ oder „msidbComponentAttributesOptional“ aufweist, 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 das Feature keine Ankündigungen zulässt (msidbFeatureAttributesDisallowAdvertise) oder das Feature Plattformunterstützung für Ankündigungen benötigt (msidbFeatureAttributesNoUnsupportedAdvertise) und die Plattform dies nicht unterstützt.
- INSTALLSTATE_ABSENT ist ein gültiger Zustand für das Feature, wenn seine Attribute nicht „msidbFeatureAttributesUIDisallowAbsent“ enthalten.
- Gültige Zustände für untergeordnete Features, die an das übergeordnete Feature gebunden sind (msidbFeatureAttributesFollowParent), basieren auf der Aktion oder dem Installationszustand des übergeordneten Features.
MsiGetFeatureValidStates(hProduct, "Feature1", &dwValidStates);
Wenn Feature1 Attribute von Wert 0 (lokal bevorzugen) und Feature1 über eine Komponente mit Attributen des Werts 0 (nur lokal) verfügt, ist der Wert von dwValidStates nach dem Aufruf 14. Dies gibt an, dass INSTALLSTATE_LOCAL, INSTALLSTATE_ABSENT und INSTALLSTATE_ADVERTISED für Feature1 gültig sind. Die folgende bedingte Anweisung wird zu True ausgewertet, 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 von MsiGetLastErrorRecord abrufen.
Hinweis
Der msiquery.h-Header 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 |
---|---|
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 |
Weitere Informationen
Übergeben von NULL als Argument von Windows Installer Functions