MsiEnumComponentsExA-Funktion (msi.h)

Die Funktion MsiEnumComponentsEx listet installierte Komponenten auf. Die Funktion ruft den Komponentencode für eine Komponente jedes Mal ab, wenn sie aufgerufen wird. Der Komponentencode ist die Zeichenfolgen-GUID, die für die Komponente, Version und Sprache eindeutig ist.

Windows Installer 4.5 oder früher: Nicht unterstützt. Diese Funktion ist ab Windows Installer 5.0 verfügbar.

Syntax

UINT MsiEnumComponentsExA(
  [in, optional]  LPCSTR            szUserSid,
  [in]            DWORD             dwContext,
  [in]            DWORD             dwIndex,
  [out, optional] CHAR [39]         szInstalledComponentCode,
  [out, optional] MSIINSTALLCONTEXT *pdwInstalledContext,
  [out, optional] LPSTR             szSid,
  [in, out]       LPDWORD           pcchSid
);

Parameter

[in, optional] szUserSid

Eine NULL-beendete Zeichenfolge, die einen Sicherheitsbezeichner (SID) enthält. Die Enumeration der installierten Komponenten erstreckt sich auf Benutzer, die von dieser SID identifiziert werden. Die spezielle SID-Zeichenfolge s-1-1-0 (Jeder) gibt eine Enumeration aller installierten Komponenten für alle Produkte aller Benutzer im System an. Ein anderer SID-Wert als s-1-1-0 gibt eine Benutzer-SID für einen bestimmten Benutzer an und beschränkt die Enumeration auf Instanzen von Anwendungen, die vom angegebenen Benutzer installiert werden.

SID-Typ Bedeutung
NULL
Gibt den aktuell angemeldeten Benutzer an.
Benutzer-SID
Eine Enumeration für einen bestimmten Benutzer im System. Ein Beispiel für eine Benutzer-SID ist "S-1-3-64-2415071341-1358098788-3127455600-2561".
s-1-1-0
Gibt alle Benutzer im System an.
 
Hinweis  

Die spezielle SID-Zeichenfolge s-1-5-18 (System) kann nicht zum Auflisten von Anwendungen verwendet werden, die im Installationskontext pro Computer installiert sind. Wenn Sie den SID-Wert auf s-1-5-18 festlegen, wird ERROR_INVALID_PARAMETER zurückgegeben. Wenn dwContext nur auf MSIINSTALLCONTEXT_MACHINE festgelegt ist, muss szUserSidNULL sein.

 

[in] dwContext

Ein Flag, das die Enumeration der installierten Komponente auf Instanzen von Produkten beschränkt, die im angegebenen Installationskontext installiert sind. Die Enumeration enthält nur Produktinstanzen, die von den von szUserSid angegebenen Benutzern installiert wurden.

Flag Bedeutung
MSIINSTALLCONTEXT_USERMANAGED
1
Schließen Sie Produkte ein, die im benutzerseitig verwalteten Installationskontext vorhanden sind.
MSIINSTALLCONTEXT_USERUNMANAGED
2
Schließen Sie Produkte ein, die im nicht verwalteten Installationskontext pro Benutzer vorhanden sind.
MSIINSTALLCONTEXT_MACHINE
4
Schließen Sie Produkte ein, die im Installationskontext pro Computer vorhanden sind. Wenn dwInstallContext nur auf MSIINSTALLCONTEXT_MACHINE festgelegt ist, muss der szUserSID-ParameterNULL sein.

[in] dwIndex

Gibt den Index der abzurufenden Komponente an. Dieser Parameter muss null (0) für den ersten Aufruf der MsiEnumComponentsEx-Funktion sein. Für jeden nachfolgenden Aufruf muss der Index um 1 erhöht werden. Der Index sollte nur erhöht werden, wenn der vorherige Aufruf der Funktion ERROR_SUCCESS zurückgibt. Komponenten werden nicht sortiert und können von der Funktion in beliebiger Reihenfolge zurückgegeben werden.

[out, optional] szInstalledComponentCode

Ein Ausgabepuffer, der die Komponentencode-GUID für die installierte Komponente empfängt. Die Länge des Puffers sollte groß genug sein, um einen null-beendeten Zeichenfolgenwert zu enthalten, der den Komponentencode enthält. Die ersten 38 TCHAR-Zeichen empfangen die GUID für die Komponente, und das 39. Zeichen erhält ein beendendes NULL-Zeichen.

[out, optional] pdwInstalledContext

Ein Flag, das dem Installationskontext die Anwendung gibt, die die Komponente installiert hat.

Flag Bedeutung
MSIINSTALLCONTEXT_USERMANAGED
1
Die Anwendung wird im benutzerseitig verwalteten Installationskontext installiert.
MSIINSTALLCONTEXT_USERUNMANAGED
2
Die Anwendung wird im nicht verwalteten Installationskontext pro Benutzer installiert.
MSIINSTALLCONTEXT_MACHINE
4
Die Anwendung wird im Installationskontext pro Computer installiert.

[out, optional] szSid

Empfängt den Sicherheitsbezeichner (Security Identifier, SID), der den Benutzer identifiziert, der die Anwendung installiert hat, die die Komponente besitzt. Der Speicherort empfängt eine leere Zeichenfolge, wenn dieser instance der Anwendung in einem Installationskontext pro Computer installiert ist.

Die Länge des Puffers an diesem Speicherort sollte groß genug sein, um einen null-beendeten Zeichenfolgenwert zu enthalten, der die SID enthält. Wenn der Puffer zu klein ist, gibt die Funktion ERROR_MORE_DATA zurück, und die Position, auf die von pcchSid verwiesen wird, empfängt die Anzahl von TCHAR in der SID, ohne das beendende NULL-Zeichen.

Wenn szSid auf NULL festgelegt ist und pcchSid ein gültiger Zeiger auf einen Speicherort im Arbeitsspeicher ist, gibt die Funktion ERROR_SUCCESS zurück, und der Speicherort empfängt die Anzahl von TCHAR in der SID, ohne das beendende NULL-Zeichen. Die Funktion kann dann erneut aufgerufen werden, um den Wert abzurufen, wobei die Größe des szSid-Puffers so groß ist, dass er *pcchSid + 1 Zeichen enthält.

SID-Typ Bedeutung
leere Zeichenfolge
Die Anwendung wird in einem Installationskontext pro Computer installiert.
Benutzer-SID
Die SID für den Benutzer im System, das die Anwendung installiert hat.

[in, out] pcchSid

Empfängt die Anzahl von TCHAR in der SID, ohne das beendende NULL-Zeichen. Wenn die Funktion zurückgibt, wird diese Variable auf die Größe der angeforderten SID festgelegt, unabhängig davon, ob die Funktion die SID erfolgreich kopieren und das NULL-Zeichen in den Pufferspeicherort kopieren kann, auf den szSid verweist. Die Größe wird als Anzahl von TCHAR im angeforderten Wert zurückgegeben, ohne das beendende NULL-Zeichen.

Dieser Parameter kann nur auf NULL festgelegt werden, wenn szSid ebenfalls NULL ist, andernfalls gibt die Funktion ERROR_INVALID_PARAMETER zurück. Wenn szSid und pcchSid auf NULL festgelegt sind, gibt die Funktion ERROR_SUCCESS zurück, wenn die SID vorhanden ist, ohne den SID-Wert abzurufen.

Rückgabewert

Die MsiEnumProductsEx-Funktion gibt einen der folgenden Werte zurück.

Rückgabecode Beschreibung
ERROR_ACCESS_DENIED
Administratorrechte sind erforderlich, um Komponenten von Anwendungen aufzulisten, die von anderen Benutzern als dem aktuellen Benutzer installiert werden.
ERROR_BAD_CONFIGURATION
Die Konfigurationsdaten sind beschädigt.
ERROR_INVALID_PARAMETER
Ein ungültiger Parameter wird an die Funktion übergeben.
ERROR_NO_MORE_ITEMS
Es gibt keine weiteren Komponenten, die aufgelistet werden müssen.
ERROR_SUCCESS
Die Funktion wurde erfolgreich ausgeführt.
ERROR_MORE_DATA
Der bereitgestellte Puffer war zu klein, um den gesamten Wert aufzunehmen.
ERROR_FUNCTION_FAILED
Fehler bei der Funktion.

Hinweise

Hinweis

Der msi.h-Header definiert MsiEnumComponentsEx als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code 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. Informationen zum mindestens 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