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
C++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.
Constant Meaning - 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
Value | Meaning |
---|---|
|
The configuration information is corrupt. |
|
The product could not be opened. |
|
Windows Installer does not permit installation from a remote desktop connection. |
|
An invalid parameter is passed to the function. |
|
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.
- ADMIN
- ADVERTISE
- INSTALL
- SEQUENCE
- AppSearch action
- CCPSearch
- CostFinalize
- CostInitialize
- FileCost
- FindRelatedProducts
- IsolateComponents action
- LaunchConditions
- MigrateFeatureStates
- ResolveSource
- RMCCPSearch
- ValidateProductID
The MsiCloseHandle function must be called when the handle is not needed.
Requirements
Version | Windows Installer 5.0 on 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, Windows XP, and Windows 2000. 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) |
Send comments about this topic to Microsoft
Build date: 8/13/2009
© 2009 Microsoft Corporation. All rights reserved.