Freigeben über


MsiOpenPackageExA-Funktion (msi.h)

Die MsiOpenPackageEx--Funktion öffnet ein Paket zur Verwendung mit Funktionen, die auf die Produktdatenbank zugreifen. Die MsiCloseHandle--Funktion muss mit dem Handle aufgerufen werden, wenn der Handle nicht mehr benötigt wird.

Hinweis Com auf demselben Thread initialisieren, bevor sie die MsiOpenPackage-, MsiOpenPackageEx-oder MsiOpenProduct-Funktion aufrufen.

 

Syntax

UINT MsiOpenPackageExA(
  [in]  LPCSTR    szPackagePath,
  [in]  DWORD     dwOptions,
  [out] MSIHANDLE *hProduct
);

Parameter

[in] szPackagePath

Der Pfad zum Paket.

[in] dwOptions

Die Bitkennzeichnungen, die angeben, ob der Computerzustand ignoriert werden soll. Übergeben Sie 0 (Null), um MsiOpenPackage Verhalten zu verwenden.

Konstante Bedeutung
MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE
1
Ignorieren Sie den Computerstatus beim Erstellen des Produkthandles.

[out] hProduct

Ein Zeiger auf eine Variable, die den Produkthandle empfängt.

Rückgabewert

Wert Bedeutung
ERROR_BAD_CONFIGURATION
Die Konfigurationsinformationen sind beschädigt.
ERROR_INSTALL_FAILURE
Das Produkt konnte nicht geöffnet werden.
ERROR_INSTALL_REMOTE_PROHIBITED
Windows Installer lässt die Installation von einer Remotedesktopverbindung nicht zu.
ERROR_INVALID_PARAMETER
An die Funktion wird ein ungültiger Parameter übergeben.
ERROR_SUCCESS
Die Funktion wird erfolgreich abgeschlossen.
 

Wenn diese Funktion fehlschlägt, wird möglicherweise ein Systemfehlercode zurückgegeben. Weitere Informationen finden Sie unter Systemfehlercodes.

Bemerkungen

Verwenden Sie MsiOpenPackageEx- mit MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE in dwOptionsfestgelegt, um einen eingeschränkten Produkthandle zu erstellen, der unabhängig vom aktuellen Computerstatus ist und nicht in der Lage ist, den aktuellen Computerzustand zu ändern.

Wenn dwOptions- MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE oder 1 ist, ignoriert MsiOpenPackageEx den aktuellen Computerstatus beim Erstellen des Produkthandles ignoriert. Wenn der Wert von dwOptions 0 ist, ist MsiOpenPackageEx- identisch mit MsiOpenPackage und erstellt ein Produkthandle, das davon abhängt, ob das durch szPackagePath- angegebene Paket bereits auf dem Computer installiert ist.

Das eingeschränkte Handle, das mithilfe von MsiOpenPackageEx- mit MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE nur die Ausführung von Dialogfeldern, einer Teilmenge der Standardaktionen und benutzerdefinierten Aktionen ermöglicht, die Eigenschaften festlegen ( benutzerdefinierter Aktionstyp 35, benutzerdefinierter Aktionstyp 51und benutzerdefinierten Aktionstyp 19). Das eingeschränkte Handle verhindert die Verwendung von benutzerdefinierten Aktionen, die Dynamic-Link Bibliotheken, ausführbare Dateien oder Skriptsausgeführt werden.

Sie können MsiDoAction- für die folgenden Standardaktionen mithilfe des eingeschränkten Handles aufrufen. Alle anderen Aktionen geben ERROR_FUNCTION_NOT_CALLED zurück, wenn sie mit dem eingeschränkten Handle aufgerufen werden.

Die MsiCloseHandle--Funktion muss aufgerufen werden, wenn der Handle nicht benötigt wird.

Anmerkung

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