Freigeben über


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.

Dezimalwert Bedeutung
2
INSTALLSTATE_ADVERTISED
Das Feature kann angekündigt werden.
4
INSTALLSTATE_ABSENT
Das Feature kann nicht vorhanden sein.
8
INSTALLSTATE_LOCAL
Das Feature kann auf dem lokalen Laufwerk installiert werden.
16
INSTALLSTATE_SOURCE
Das Feature kann für die Ausführung über quelle, CD-ROM oder Netzwerk konfiguriert werden.
32
INSTALLSTATE_DEFAULT
Das Feature kann für die Verwendung des Standardspeicherorts konfiguriert werden: lokal oder quelle.

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.
Nach dem Aufrufen von MsiGetFeatureValidStates kann eine bedingte Anweisung verwendet werden, um die gültigen Installationszustände eines Features zu testen. Der folgende Aufruf von MsiGetFeatureValidStates ruft beispielsweise den Installationsstatus von Feature1 ab.
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

Installerauswahlfunktionen

Übergeben von NULL als Argument von Windows Installer Functions