Freigeben über


MsiProvideQualifiedComponentExA-Funktion (msi.h)

Die MsiProvideQualifiedComponentEx-Funktion gibt den vollständigen Komponentenpfad für eine qualifizierte Komponente zurück, die von einem Produkt veröffentlicht wird und alle erforderlichen Installationen durchführt. Diese Funktion fordert bei Bedarf zur Quelle auf und erhöht die Nutzungsanzahl für das Feature.

Syntax

UINT MsiProvideQualifiedComponentExA(
  [in]      LPCSTR  szCategory,
  [in]      LPCSTR  szQualifier,
  [in]      DWORD   dwInstallMode,
  [in]      LPCSTR  szProduct,
  [in]      DWORD   dwUnused1,
  [in]      DWORD   dwUnused2,
  [out]     LPSTR   lpPathBuf,
  [in, out] LPDWORD pcchPathBuf
);

Parameter

[in] szCategory

Gibt die Komponenten-ID an, die für die angeforderte Komponente angegeben wird. 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 PublishComponent-Tabelle.

[in] szQualifier

Gibt einen Qualifizierer in eine Liste der Werbekomponenten an (aus PublishComponent Table).

[in] dwInstallMode

Definiert den Installationsmodus. Dieser Parameter kann einer der folgenden Werte sein:

Wert Bedeutung
INSTALLMODE_DEFAULT
Stellen Sie die Komponente bereit, und führen Sie alle erforderlichen Installationen aus, um die Komponente bereitzustellen. Wenn die Schlüsseldatei einer Komponente im angeforderten Feature oder einem übergeordneten Feature fehlt, installieren Sie das Feature mit MsiReinstallFeature- neu, wobei die folgenden Flagbits festgelegt sind: REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA und REINSTALLMODE_SHORTCUT.
INSTALLMODE_EXISTING
Geben Sie die Komponente nur an, 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
Geben Sie die Komponente nur an, 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.

INSTALLMODE_EXISTING
Geben Sie die Komponente nur an, wenn das Feature vorhanden ist, oder geben Sie ERROR_FILE_NOT_FOUND zurück.
Kombination aus den FLAGS "REINSTALLMODE"
Rufen Sie MsiReinstallFeature- auf, um das Feature mithilfe dieses Parameters für den parameter dwReinstallMode neu zu installieren, und stellen Sie dann die Komponente bereit.
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.

[in] szProduct

Gibt das Produkt an, das mit der qualifizierten Komponente übereinstimmt. Wenn dies null ist, funktioniert diese API genauso wie MsiProvideQualifiedComponent.

[in] dwUnused1

Reserviert. Muss null sein.

[in] dwUnused2

Reserviert. Muss null sein.

[out] lpPathBuf

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

[in, out] pcchPathBuf

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

Wert Bedeutung
ERROR_INDEX_ABSENT
Komponentenqualifizierer ungültig oder nicht vorhanden.
ERROR_SUCCESS
Die Funktion wurde erfolgreich abgeschlossen.
ERROR_FILE_NOT_FOUND
Das Feature ist nicht vorhanden oder unterbrochen. 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
Siehe Fehlercodes.
Initialisierungsfehler
Fehler im Zusammenhang mit der Initialisierung.

Bemerkungen

Nach Erfolg der MsiProvideQualifiedComponentEx--Funktion enthält der pcchPathBuf Parameter 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 sie den Anwendungsaufruf MsiReinstallFeature.

Anmerkung

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

Siehe auch

Component-Specific Funktionen

Angezeigte Fehlermeldungen

Fehlercodes

Initialisierungsfehler

Multiple-Package Installationen