Freigeben über


MsiLocateComponentA-Funktion (msi.h)

Die MsiLocateComponent-Funktion gibt den vollständigen Pfad zu einer installierten Komponente ohne Produktcode zurück. Diese Funktion versucht, das Produkt mithilfe von MsiGetProductCode zu ermitteln, es ist jedoch nicht garantiert, dass das richtige Produkt für den Aufrufer gefunden wird. MsiGetComponentPath sollte nach Möglichkeit immer aufgerufen werden.

Syntax

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

Parameter

[in] szComponent

Gibt die Komponenten-ID der zu findenden Komponente an.

[out] lpPathBuf

Zeiger auf eine Variable, die den Pfad zur Komponente empfängt. Die Variable enthält das beendende NULL-Zeichen.

[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 ist dies die vollständige Größe des Puffers, einschließlich eines Leerzeichens für ein beendendes NULL-Zeichen. Wenn die MsiLocateComponent-Funktion erfolgreich war, enthält die Variable, auf die von pcchBuf verwiesen wird, die Anzahl der Zeichen ohne das beendende NULL-Zeichen. Wenn die Größe des übergebenen Puffers zu klein ist, gibt die Funktion INSTALLSTATE_MOREDATA zurück.

Wenn lpPathBuf NULL ist, kann pcchBuf NULL sein.

Rückgabewert

Wert Bedeutung
INSTALLSTATE_NOTUSED
Die angeforderte Komponente ist auf dem Computer deaktiviert.
INSTALLSTATE_ABSENT
Die Komponente ist nicht installiert. Siehe Hinweise.
INSTALLSTATE_INVALIDARG
Einer der Funktionsparameter ist ungültig.
INSTALLSTATE_LOCAL
Die Komponente wird lokal installiert.
INSTALLSTATE_MOREDATA
Der bereitgestellte Puffer war zu klein.
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. Siehe Hinweise.

Hinweise

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