MsiGetComponentPathExW-Funktion (msi.h)
Die MsiGetComponentPathEx--Funktion gibt den vollständigen Pfad zu 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 Suchvorgänge für Komponenten über Benutzerkonten und Installationskontexte hinweg zu ermöglichen.
Syntax
INSTALLSTATE MsiGetComponentPathExW(
[in] LPCWSTR szProductCode,
[in] LPCWSTR szComponentCode,
[in, optional] LPCWSTR szUserSid,
[in, optional] MSIINSTALLCONTEXT dwContext,
[out, optional] LPWSTR lpOutPathBuffer,
[in, out, optional] LPDWORD pcchOutPathBuffer
);
Parameter
[in] szProductCode
Ein null-beendeter Zeichenfolgenwert, der die GUID des Produktcodes einer Anwendung angibt. Die Funktion ruft den Pfad der installierten Komponenten ab, die von dieser Anwendung verwendet werden.
[in] szComponentCode
Ein null-beendeter 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.
[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. Dieser Parameter kann eine Kombination aus den folgenden Werten sein.
[out, optional] lpOutPathBuffer
Ein Zeichenfolgenwert, der 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, optional] pcchOutPathBuffer
Zeigen Sie auf eine Position, die die Größe des Puffers in TCHAR-empfängt, auf die der szPathBuf-Parameter verweist. Der Wert in dieser Position sollte auf die Anzahl der TCHAR- in der Zeichenfolge festgelegt werden, einschließlich des endenden NULL-Zeichens. Wenn die Größe des Puffers zu klein ist, empfängt dieser Parameter die Länge des Zeichenfolgenwerts, ohne das endende NULL-Zeichen in die Anzahl einzuzählen.
Rückgabewert
Die MsiGetComponentPathEx--Funktion gibt die folgenden Werte zurück.
Wert | Bedeutung |
---|---|
|
Die angeforderte Komponente ist auf dem Computer deaktiviert. |
|
Konfigurationsdaten sind beschädigt. |
|
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. |
|
Die Komponente ist beschädigt oder fehlt teilweise auf irgendeine Weise und erfordert Reparatur. |
Bemerkungen
Die funktion MsiGetComponentPathEx kann aus folgenden Gründen INSTALLSTATE_ABSENT oder INSTALL_STATE_UNKNOWNzurückgeben:
- 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 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 |
---|---|
mindestens unterstützte Client- | Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. 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 |