Freigeben über


MsiOpenPackageExA-Funktion (msi.h)

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

Hinweis Initialisieren Sie COM im selben Thread, bevor Sie die Funktionen MsiOpenPackage, MsiOpenPackageEx oder MsiOpenProduct aufrufen.

 

Syntax

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

Parameter

[in] szPackagePath

Der Pfad zum Paket.

[in] dwOptions

Die Bitflags, um anzugeben, ob der Computerzustand ignoriert werden soll. Übergeben Sie 0 (null), um das MsiOpenPackage-Verhalten zu verwenden.

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

[out] hProduct

Ein Zeiger auf eine Variable, die das 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 über eine Remotedesktopverbindung nicht zu.
ERROR_INVALID_PARAMETER
Ein ungültiger Parameter wird an die Funktion übergeben.
ERROR_SUCCESS
Die Funktion wird erfolgreich abgeschlossen.
 

Wenn diese Funktion fehlschlägt, gibt sie möglicherweise einen Systemfehlercode zurück. Weitere Informationen finden Sie unter Systemfehlercodes.

Hinweise

Um ein eingeschränktes Produkthandle zu erstellen, das unabhängig vom aktuellen Computerstatus ist und nicht in der Lage ist, den aktuellen Computerstatus zu ändern, verwenden Sie MsiOpenPackageEx mit MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE in dwOptions festgelegt.

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

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

Sie können MsiDoAction für die folgenden Standardaktionen mit dem eingeschränkten Handle 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 das Handle nicht benötigt wird.

Hinweis

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 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