Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Expand Minimize

MsiOpenPackageEx function

The MsiOpenPackageEx function opens a package to use with functions that access the product database. The MsiCloseHandle function must be called with the handle when the handle is no longer needed.

Note  Initialize COM on the same thread before calling the MsiOpenPackage, MsiOpenPackageEx, or MsiOpenProduct function.

Syntax


UINT WINAPI MsiOpenPackageEx(
  _In_  LPCTSTR   szPackagePath,
  _In_  DWORD     dwOptions,
  _Out_ MSIHANDLE *hProduct
);

Parameters

szPackagePath [in]

The path to the package.

dwOptions [in]

The bit flags to indicate whether or not to ignore the computer state. Pass in 0 (zero) to use MsiOpenPackage behavior.

ConstantMeaning
MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE
1

Ignore the computer state when creating the product handle.

 

hProduct [out]

A pointer to a variable that receives the product handle.

Return value

ValueMeaning
ERROR_BAD_CONFIGURATION

The configuration information is corrupt.

ERROR_INSTALL_FAILURE

The product could not be opened.

ERROR_INSTALL_REMOTE_PROHIBITED

Windows Installer does not permit installation from a remote desktop connection.

ERROR_INVALID_PARAMETER

An invalid parameter is passed to the function.

ERROR_SUCCESS

The function completes successfully.

 

If this function fails, it may return a system error code. For more information, see System Error Codes.

Remarks

To create a restricted product handle that is independent of the current machine state and incapable of changing the current machine state, use MsiOpenPackageEx with MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE set in dwOptions.

Note that if dwOptions is MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE or 1, MsiOpenPackageEx ignores the current machine state when creating the product handle. If the value of dwOptions is 0, MsiOpenPackageEx is the same as MsiOpenPackage and creates a product handle that is dependent upon whether the package specified by szPackagePath is already installed on the computer.

The restricted handle created by using MsiOpenPackageEx with MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE only permits execution of dialogs, a subset of the standard actions, and custom actions that set properties ( Custom Action Type 35, Custom Action Type 51, and Custom Action Type 19). The restricted handle prevents the use of custom actions that run Dynamic-Link Libraries, Executable Files or Scripts.

You can call MsiDoAction on the following standard actions using the restricted handle. All other actions return ERROR_FUNCTION_NOT_CALLED if called with the restricted handle.

The MsiCloseHandle function must be called when the handle is not needed.

Requirements

Version

Windows Installer 5.0 on Windows Server 2012, Windows 8, Windows Server 2008 R2 or Windows 7. Windows Installer 4.0 or Windows Installer 4.5 on Windows Server 2008 or Windows Vista. Windows Installer on Windows Server 2003 or Windows XP. See the Windows Installer Run-Time Requirements for information about the minimum Windows service pack that is required by a Windows Installer version.

Header

Msi.h

Library

Msi.lib

DLL

Msi.dll

Unicode and ANSI names

MsiOpenPackageExW (Unicode) and MsiOpenPackageExA (ANSI)

 

 

Community Additions

ADD
Show:
© 2015 Microsoft