Share via


MsiProvideQualifiedComponentW-Funktion (msi.h)

Die MsiProvideQualifiedComponent-Funktion gibt den vollständigen Komponentenpfad für eine qualifizierte Komponente zurück und führt jede erforderliche Installation aus. Diese Funktion fordert bei Bedarf zur Eingabe der Quelle auf und erhöht die Nutzungsanzahl für das Feature.

Syntax

UINT MsiProvideQualifiedComponentW(
  [in]      LPCWSTR szCategory,
  [in]      LPCWSTR szQualifier,
  [in]      DWORD   dwInstallMode,
  [out]     LPWSTR  lpPathBuf,
  [in, out] LPDWORD pcchPathBuf
);

Parameter

[in] szCategory

Gibt die Komponenten-ID für die angeforderte Komponente an. Dies ist möglicherweise nicht die GUID für die Komponente selbst, sondern ein Server, der die richtige Funktionalität bereitstellt, wie in der Spalte ComponentId der Tabelle PublishComponent.

[in] szQualifier

Gibt einen Qualifizierer in einer Liste von Werbekomponenten an (aus PublishComponent Table).

[in] dwInstallMode

Definiert den Installationsmodus. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
INSTALLMODE_DEFAULT
Stellt die Komponente bereit und führt alle für die Bereitstellung der Komponente erforderlichen Installationen aus. Wenn die Schlüsseldatei einer Komponente im angeforderten Feature oder ein übergeordnetes Feature fehlt, installieren Sie das Feature mithilfe von MsiReinstallFeature neu, wobei die folgenden Flagbits festgelegt sind: REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA und REINSTALLMODE_SHORTCUT.
INSTALLMODE_EXISTING
Stellt die Komponente nur bereit, wenn das Feature vorhanden ist. Andernfalls wird ERROR_FILE_NOT_FOUND zurückgegeben.

Dieser Modus überprüft, ob die Schlüsseldatei der Komponente vorhanden ist.

INSTALLMODE_NODETECTION
Stellt die Komponente nur bereit, wenn das Feature vorhanden ist. Andernfalls wird ERROR_FILE_NOT_FOUND zurückgegeben.

Dieser Modus überprüft nur, ob die Komponente registriert ist, und überprüft nicht, ob die Schlüsseldatei der Komponente vorhanden ist.

Kombination der REINSTALLMODE-Flags
Rufen Sie MsiReinstallFeature auf, um das Feature mit diesem Parameter für den dwReinstallMode-Parameter neu zu installieren, und geben Sie dann die Komponente an.
INSTALLMODE_NOSOURCERESOLUTION
Geben Sie die Komponente nur an, wenn der Installationsstatus des Features INSTALLSTATE_LOCAL ist. Wenn der Installationsstatus des Features INSTALLSTATE_SOURCE ist, geben Sie ERROR_INSTALL_SOURCE_ABSENT zurück. Andernfalls wird ERROR_FILE_NOT_FOUND zurückgegeben. Dieser Modus überprüft nur, ob die Komponente registriert ist, und überprüft nicht, ob die Schlüsseldatei vorhanden ist.

[out] lpPathBuf

Zeiger auf eine Variable, die den Pfad zur Komponente empfängt. Dieser Parameter kann NULL sein.

[in, out] pcchPathBuf

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

Wert Bedeutung
ERROR_INDEX_ABSENT
Der Komponentenqualifizierer ist ungültig oder fehlt.
ERROR_SUCCESS
Die Funktion wurde erfolgreich abgeschlossen.
ERROR_FILE_NOT_FOUND
Das Feature ist nicht vorhanden oder nicht vorhanden. Dieser Fehler wird für dwInstallMode = INSTALLMODE_EXISTING zurückgegeben.
ERROR_UNKNOWN_COMPONENT
Die angegebene Komponente ist unbekannt.
Ein Fehler im Zusammenhang mit einer Aktion
Weitere Informationen finden Sie unter Fehlercodes.
Initialisierungsfehler
Fehler im Zusammenhang mit der Initialisierung.

Hinweise

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

Features mit Komponenten, die eine beschädigte Datei oder die falsche Version einer Datei enthalten, müssen vom Benutzer explizit neu installiert werden oder indem die Anwendung MsiReinstallFeature aufruft.

Hinweis

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

Angezeigte Fehlermeldungen

Fehlercodes

Initialisierungsfehler

Installationen mit mehreren Paketen