MsiGetComponentPathExA-Funktion (msi.h)

Die Funktion MsiGetComponentPathEx gibt den vollständigen Pfad einer installierten Komponente zurück. Wenn der Schlüsselpfad für die Komponente ein Registrierungsschlüssel ist, gibt die Funktion den Registrierungsschlüssel zurück.

Diese Funktion erweitert die vorhandene MsiGetComponentPath-Funktion , um die Suche nach Komponenten für Benutzerkonten und Installationskontexte zu ermöglichen.

Syntax

INSTALLSTATE MsiGetComponentPathExA(
  [in]                LPCSTR            szProductCode,
  [in]                LPCSTR            szComponentCode,
  [in, optional]      LPCSTR            szUserSid,
  [in, optional]      MSIINSTALLCONTEXT dwContext,
  [out, optional]     LPSTR             lpOutPathBuffer,
  [in, out, optional] LPDWORD           pcchOutPathBuffer
);

Parameter

[in] szProductCode

Ein null-beendeter Zeichenfolgenwert, der die Produktcode-GUID einer Anwendung angibt. Die Funktion ruft den Pfad der installierten Komponenten ab, die von dieser Anwendung verwendet werden.

[in] szComponentCode

Ein NULL-endender Zeichenfolgenwert, der eine Komponentencode-GUID angibt. Die Funktion ruft den Pfad einer installierten Komponente mit diesem Komponentencode ab.

[in, optional] szUserSid

Ein null-beendeter Zeichenfolgenwert, der die Sicherheits-ID (SID) für einen Benutzer im System angibt. Die Funktion ruft die Pfade der installierten Komponenten von Anwendungen ab, die unter den von dieser SID identifizierten Benutzerkonten installiert sind. Die spezielle SID-Zeichenfolge s-1-1-0 (Jeder) gibt alle Benutzer im System an. Wenn dieser Parameter NULL ist, ruft die Funktion den Pfad einer installierten Komponente nur für den aktuell angemeldeten Benutzer ab.

SID-Typ Bedeutung
NULL
Gibt den aktuell angemeldeten Benutzer an.
Benutzer-SID
Gibt einen bestimmten Benutzer im System an. 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 Durchsuchen 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, optional] dwContext

Ein Flag, das den Installationskontext angibt. Die Funktion ruft die Pfade der installierten Komponenten von Anwendungen ab, die im angegebenen Installationskontext installiert sind. Für diesen Parameter ist eine Kombination der folgenden Werte gültig.

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

[out, optional] lpOutPathBuffer

Ein Zeichenfolgenwert, der den Pfad zur Komponente empfängt. Dieser Parameter kann NULL sein. Wenn die Komponente ein Registrierungsschlüssel ist, werden die Registrierungsstämme numerisch dargestellt. Wenn es sich um einen Registrierungsunterschlüsselpfad handelt, befindet sich am Ende des Schlüsselpfads ein umgekehrter Schrägstrich. Wenn es sich um einen Registrierungswertschlüsselpfad handelt, gibt es am Ende keinen umgekehrten Schrägstrich. Beispielsweise wird ein Registrierungspfad auf einem 32-Bit-Betriebssystem von HKEY_CURRENT_USER\SOFTWARE\Microsoft als "01:\SOFTWARE\Microsoft" zurückgegeben. Die unter 32-Bit-Betriebssystemen zurückgegebenen Registrierungsstamme werden wie in der folgenden Tabelle dargestellt definiert.

Hinweis Bei 64-Bit-Betriebssystemen wird den numerischen Registrierungswurzeln in dieser Tabelle ein Wert von 20 hinzugefügt, um sie von Registrierungsschlüsselpfaden auf 32-Bit-Betriebssystemen zu unterscheiden. Beispielsweise wird ein Registrierungsschlüsselpfad von HKEY_CURRENT_USER\SOFTWARE\Microsoft als "21:\SOFTWARE\Microsoft\" zurückgegeben, wenn der Komponentenpfad ein Registrierungsschlüssel für ein 64-Bit-Betriebssystem ist.
 
Root Bedeutung
HKEY_CLASSES_ROOT
00
HKEY_CURRENT_USER
01
HKEY_LOCAL_MACHINE
02
HKEY_USERS
03

[in, out, optional] pcchOutPathBuffer

Zeiger auf eine Position, die die Größe des Puffers in TCHAR empfängt, auf die der szPathBuf-Parameter verweist. Der Wert an diesem Speicherort sollte auf die Anzahl von TCHAR in der Zeichenfolge festgelegt werden, einschließlich des beendenden NULL-Zeichens. Wenn die Größe des Puffers zu klein ist, empfängt dieser Parameter die Länge des Zeichenfolgenwerts, ohne das beendende NULL-Zeichen in die Anzahl einzurechnen.

Rückgabewert

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

Wert Bedeutung
INSTALLSTATE_NOTUSED
Die angeforderte Komponente ist auf dem Computer deaktiviert.
INSTALLSTATE_BADCONFIG
Konfigurationsdaten sind beschädigt.
INSTALLSTATE_ABSENT
Die Komponente ist nicht installiert.
INSTALLSTATE_INVALIDARG
Einer der Funktionsparameter ist ungültig.
INSTALLSTATE_LOCAL
Die Komponente wird lokal installiert.
INSTALLSTATE_SOURCE
Die Komponente wird installiert, um von der Quelle aus ausgeführt zu werden.
INSTALLSTATE_SOURCEABSENT
Auf die Komponentenquelle kann nicht zugegriffen werden.
INSTALLSTATE_UNKNOWN
Der Produktcode oder die Komponenten-ID ist unbekannt.
INSTALLSTATE_BROKEN
Die Komponente ist beschädigt oder fehlt teilweise und muss repariert werden.

Hinweise

Die MsiGetComponentPathEx-Funktion kann aus den folgenden Gründen INSTALLSTATE_ABSENT oder INSTALL_STATE_UNKNOWN zurückgeben:

  • INSTALLSTATE_ABSENT

    Die Anwendung hat nicht ordnungsgemäß sichergestellt, dass das Feature installiert wurde, indem msiUseFeature und ggf. MsiConfigureFeature aufgerufen wurde.

  • INSTALLSTATE_UNKNOWN

    Das Feature wird nicht veröffentlicht. Die Anwendung sollte dies zuvor durch Aufrufen von MsiQueryFeatureState oder MsiEnumFeatures ermittelt haben. Die Anwendung führt diese Aufrufe aus, während sie initialisiert wird. Eine Anwendung sollte nur Features verwenden, von denen bekannt ist, dass sie veröffentlicht werden. Da INSTALLSTATE_UNKNOWN auch von MsiUseFeature zurückgegeben werden sollte, wurde entweder MsiUseFeature nicht aufgerufen, oder sein Rückgabewert wurde nicht ordnungsgemäß überprüft.

Hinweis

Der msi.h-Header definiert MsiGetComponentPathEx 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. 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

Weitere Informationen

Komponentenspezifische Funktionen