MsiQueryComponentStateA-Funktion (msi.h)

Die MsiQueryComponentState-Funktion gibt den installierten Zustand für eine Komponente zurück. Diese Funktion kann eine Komponente eines instance eines Produkts abfragen, das unter anderen Benutzerkonten als dem aktuellen Benutzer installiert ist, vorausgesetzt, das Produkt wird nicht unter dem benutzerspezifischen nicht verwalteten Kontext für ein anderes Benutzerkonto als den aktuellen Benutzer angekündigt. Der aufrufende Prozess muss über Administratorrechte verfügen, um Informationen zu einem Produkt abzurufen, das für einen anderen Benutzer oder eine andere Benutzerin als den aktuellen Benutzer bzw. die aktuelle Benutzerin installiert ist.

Syntax

UINT MsiQueryComponentStateA(
  [in]  LPCSTR            szProductCode,
  [in]  LPCSTR            szUserSid,
  [in]  MSIINSTALLCONTEXT dwContext,
  [in]  LPCSTR            szComponentCode,
  [out] INSTALLSTATE      *pdwState
);

Parameter

[in] szProductCode

Gibt die ProductCode-GUID für das Produkt an, das die Komponente enthält.

[in] szUserSid

Gibt die Sicherheits-ID (SID) des Kontos an, unter dem die instance des abgefragten Produkts vorhanden ist. Wenn dwContext nicht MSIINSTALLCONTEXT_MACHINE ist, gibt NULL den aktuellen Benutzer an.

Typ der SID Bedeutung
NULL
NULL gibt den derzeit angemeldeten Benutzer an.
Benutzer-SID
Gibt die Enumeration für einen bestimmten Benutzer im System an. Ein Beispiel für die Benutzer-SID ist "S-1-3-64-2415071341-1358098788-3127455600-2561".
 
Hinweis Die spezielle SID-Zeichenfolge "S-1-5-18" (System) kann nicht verwendet werden, um computerintern installierte Produkte aufzulisten. Wenn dwContextMSIINSTALLCONTEXT_MACHINE ist, muss szUserSid NULL sein.
 

[in] dwContext

Der Installationskontext des abgefragten Produkts instance.

Name Bedeutung
MSIINSTALLCONTEXT_USERMANAGED
Ruft den Zustand der Komponente für die benutzerseitig verwaltete instance des Produkts ab.
MSIINSTALLCONTEXT_USERUNMANAGED
Ruft den Zustand der Komponente für den benutzerspezifischen nicht verwalteten instance des Produkts ab.
MSIINSTALLCONTEXT_MACHINE
Ruft den Zustand der Komponente für die computerspezifische instance des Produkts ab.

[in] szComponentCode

Gibt die abgefragte Komponente an. Komponentencode-GUID der Komponente, wie in der Spalte ComponentID der Component-Tabelle zu finden.

[out] pdwState

Installationsstatus der Komponente für das angegebene Produkt instance. Dieser Parameter kann einen der folgenden oder NULL-Werte zurückgeben.

Wert Bedeutung
INSTALLSTATE_LOCAL
Die Komponente wird lokal installiert.
INSTALLSTATE_SOURCE
Die Komponente wird installiert, um von der Quelle aus auszuführen.

Rückgabewert

Die MsiQueryComponentState-Funktion gibt die folgenden Werte zurück.

Wert Bedeutung
ERROR_ACCESS_DENIED
Der aufrufende Prozess muss über Administratorrechte verfügen, um Informationen zu einem Produkt abzurufen, das für einen anderen Benutzer oder eine andere Benutzerin als den aktuellen Benutzer bzw. die aktuelle Benutzerin installiert ist.
ERROR_BAD_CONFIGURATION
Die Konfigurationsdaten sind beschädigt.
ERROR_INVALID_PARAMETER
Es wurde ein ungültiger Parameter an die Funktion übergeben.
ERROR_SUCCESS
Die Funktion wurde erfolgreich abgeschlossen.
ERROR_UNKNOWN_COMPONENT
Die Komponenten-ID identifiziert keine bekannte Komponente.
ERROR_UNKNOWN_PRODUCT
Der Produktcode identifiziert kein bekanntes Produkt.
ERROR_FUNCTION_FAILED
Fehler, die keinem Windows-Fehlercode zugeordnet werden können.
ERROR_MORE_DATA
Puffer zu klein, um die Benutzer-SID abzurufen.
 

Weitere Informationen finden Sie unter Angezeigte Fehlermeldungen.

Hinweise

Hinweis

Der msi.h-Header definiert MsiQueryComponentState 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. Informationen zum minimal erforderlichen Windows Service Pack für eine Windows Installer-Version finden Sie unter Windows Installer – Laufzeitanforderungen.
Zielplattform Windows
Kopfzeile msi.h
Bibliothek Msi.lib
DLL Msi.dll

Weitere Informationen

Komponente

Angezeigte Fehlermeldungen

Installerauswahlfunktionen

In Windows Installer 2.0 und früher nicht unterstützt

ProductCode