MsiGetComponentPathA-Funktion (msi.h)

Die MsiGetComponentPath-Funktion gibt den vollständigen Pfad zu einer installierten Komponente zurück. Wenn es sich beim Schlüsselpfad der Komponente um einen Registrierungsschlüssel handelt, wird der Registrierungsschlüssel zurückgegeben.

Syntax

INSTALLSTATE MsiGetComponentPathA(
  [in]      LPCSTR  szProduct,
  [in]      LPCSTR  szComponent,
  [out]     LPSTR   lpPathBuf,
  [in, out] LPDWORD pcchBuf
);

Parameter

[in] szProduct

Gibt den Produktcode für das Clientprodukt an.

[in] szComponent

Gibt die Komponenten-ID der zu ermittelnden Komponente an.

[out] lpPathBuf

Zeiger auf eine Variable, die 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 Registrierungsstammdaten, die unter 32-Bit-Betriebssystemen zurückgegeben werden, werden wie in der folgenden Tabelle dargestellt definiert.

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

[in, out] pcchBuf

Zeiger auf eine Variable, die die Größe des Puffers in Zeichen angibt, auf den der lpPathBuf-Parameter verweist. Bei der Eingabe entspricht dies der vollständigen Größe des Puffers, einschließlich eines Leerzeichens für ein abschließendes NULL-Zeichen. Wenn der übergebene Puffer zu klein ist, enthält die zurückgegebene Anzahl nicht das abschließende NULL-Zeichen.

Wenn lpPathBuf NULL ist, kann pcchBuf NULL sein.

Rückgabewert

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

Wert Bedeutung
INSTALLSTATE_NOTUSED
Die angeforderte Komponente ist auf dem Computer deaktiviert.
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 auszuführen.
INSTALLSTATE_SOURCEABSENT
Auf die Komponentenquelle kann nicht zugegriffen werden.
INSTALLSTATE_UNKNOWN
Der Produktcode oder die Komponenten-ID ist unbekannt.

Hinweise

Nach erfolgreicher Ausführung der MsiGetComponentPath-Funktion enthält der parameter pcchBuf die Länge der Zeichenfolge in lpPathBuf.

Die MsiGetComponentPath-Funktion gibt möglicherweise INSTALLSTATE_ABSENT oder INSTALL_STATE_UNKNOWN aus den folgenden Gründen zurück:

  • 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 der Rückgabewert wurde nicht ordnungsgemäß überprüft.

Hinweis

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

   
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. 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