MsiProvideComponentW-Funktion (msi.h)
Die MsiProvideComponent--Funktion gibt den vollständigen Komponentenpfad zurück und führt alle erforderlichen Installationen aus. Diese Funktion fordert bei Bedarf zur Quelle auf und erhöht die Nutzungsanzahl für das Feature.
Syntax
UINT MsiProvideComponentW(
[in] LPCWSTR szProduct,
[in] LPCWSTR szFeature,
[in] LPCWSTR szComponent,
[in] DWORD dwInstallMode,
[out] LPWSTR lpPathBuf,
[in, out] LPDWORD pcchPathBuf
);
Parameter
[in] szProduct
Gibt den Produktcode für das Produkt an, das das Feature mit der erforderlichen Komponente enthält.
[in] szFeature
Gibt die Feature-ID des Features mit der erforderlichen Komponente an.
[in] szComponent
Gibt den Komponentencode der erforderlichen Komponente an.
[in] dwInstallMode
Definiert den Installationsmodus. Dieser Parameter kann einer der folgenden Werte sein:
Wert | Bedeutung |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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
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 |
---|---|
|
Die Konfigurationsdaten sind beschädigt. |
|
Das Feature ist nicht vorhanden oder unterbrochen. Dieser Fehler wird für dwInstallMode = INSTALLMODE_EXISTING zurückgegeben. |
|
Fehler bei der Installation. |
|
Die angeforderte Komponente ist auf dem Computer deaktiviert. |
|
An die Funktion wurde ein ungültiger Parameter übergeben. |
|
Die Funktion wurde erfolgreich abgeschlossen. |
|
Die Feature-ID identifiziert kein bekanntes Feature. |
|
Der Produktcode identifiziert kein bekanntes Produkt. |
|
Ein nicht erkanntes Produkt oder ein Featurename wurde an die Funktion übergeben. |
|
Der Pufferüberlauf wird zurückgegeben. |
|
Eine Quelle kann nicht erkannt werden. |
Weitere Informationen finden Sie unter Angezeigte Fehlermeldungen.
Bemerkungen
Nach Erfolg der MsiProvideComponent-Funktion enthält der pcchPathBuf Parameter die Länge der Zeichenfolge in lpPathBuf.
Die MsiProvideComponent-Funktion kombiniert die Funktionalität MsiUseFeature, MsiConfigureFeatureund MsiGetComponentPath. Sie können die MsiProvideComponent--Funktion verwenden, um die Aufrufsequenz zu vereinfachen. Da diese Funktion jedoch die Nutzungsanzahl erhöht, verwenden Sie sie mit Vorsicht, um ungenaue Verwendungsanzahlen zu verhindern. Die MsiProvideComponent Funktion bietet auch weniger Flexibilität als die Reihe einzelner Aufrufe.
Wenn die Anwendung aus einer unerwarteten Situation wiederhergestellt wird, hat die Anwendung wahrscheinlich bereits MsiUseFeature- aufgerufen und die Nutzungsanzahl erhöht. In diesem Fall sollte die Anwendung MsiConfigureFeature- anstelle von MsiProvideComponent- aufrufen, um zu vermeiden, dass die Anzahl erneut erhöht wird.
Die option INSTALLMODE_EXISTING kann nicht in Kombination mit dem FLAG "REINSTALLMODE" verwendet werden.
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 MsiProvideComponent 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 |