MsiGetComponentPathA-Funktion (msi.h)
Die MsiGetComponentPath--Funktion gibt den vollständigen Pfad zu einer installierten Komponente zurück. Wenn der Schlüsselpfad für die Komponente ein Registrierungsschlüssel ist, 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 komponente an, die gefunden werden soll.
[out] lpPathBuf
Zeiger auf eine Variable, die den Pfad zur Komponente empfängt. Dieser Parameter kann null sein. Wenn es sich bei der Komponente um einen Registrierungsschlüssel handelt, werden die Registrierungswurzeln numerisch dargestellt. Wenn es sich um einen Registrierungsunterschlüsselpfad handelt, gibt es einen umgekehrten Schrägstrich am Ende des Schlüsselpfads. 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 registrierungsbasierten Wurzeln, die auf 32-Bit-Betriebssystemen zurückgegeben werden, werden wie in der folgenden Tabelle dargestellt definiert.
Wurzel | Bedeutung |
---|---|
|
00 |
|
01 |
|
02 |
|
03 |
[in, out] pcchBuf
Zeigen Sie auf eine Variable, die die Größe des Puffers in Zeichen angibt, auf den der lpPathBuf-Parameter verweist. Bei eingaben ist dies die vollständige Größe des Puffers, einschließlich eines Leerzeichens für ein endendes NULL-Zeichen. Wenn der übergebene Puffer zu klein ist, enthält die zurückgegebene Anzahl nicht das endende Nullzeichen.
Wenn lpPathBuf- null ist, kann pcchBuf- null sein.
Rückgabewert
Die MsiGetComponentPath--Funktion gibt die folgenden Werte zurück.
Wert | Bedeutung |
---|---|
|
Die angeforderte Komponente ist auf dem Computer deaktiviert. |
|
Die Komponente ist nicht installiert. |
|
Einer der Funktionsparameter ist ungültig. |
|
Die Komponente wird lokal installiert. |
|
Die Komponente wird installiert, um von der Quelle aus ausgeführt zu werden. |
|
Auf die Komponentenquelle kann nicht zugegriffen werden. |
|
Der Produktcode oder die Komponenten-ID ist unbekannt. |
Bemerkungen
Nach Erfolg der MsiGetComponentPath--Funktion enthält der pcchBuf Parameter 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- aufgerufen und ggf. MsiConfigureFeature.
- 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, die bekannt sind, dass sie veröffentlicht werden. Da INSTALLSTATE_UNKNOWN auch von MsiUseFeature- zurückgegeben werden sollten, wurde entweder MsiUseFeature- nicht aufgerufen oder der Rückgabewert wurde nicht ordnungsgemäß überprüft.
Anmerkung
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
Anforderung | Wert |
---|---|
mindestens unterstützte 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 von einer Windows Installer-Version erforderlichen Windows-Service Pack finden Sie unter den Windows Installer-Run-Time Anforderungen. |
Zielplattform- | Fenster |
Header- | msi.h |
Library | Msi.lib |
DLL- | Msi.dll |