The
MsiCloseHandle function closes an open installation handle.
Syntax
UINT MsiCloseHandle(
__in MSIHANDLE hAny
);
Parameters
- hAny [in]
-
Specifies any open installation handle.
Return Value
| Value | Meaning |
| ERROR_INVALID_HANDLE | An invalid handle was passed to the function. |
| ERROR_SUCCESS | The function succeeded. |
Remarks
MsiCloseHandle must be called from the same thread that requested the creation of the handle.
The following functions supply handles that should be closed after use by calling
MsiCloseHandle:
MsiCreateRecord
MsiGetActiveDatabase
MsiGetLastErrorRecord
MsiOpenPackage
MsiOpenProduct
MsiOpenDatabase
MsiDatabaseOpenView
MsiViewFetch
MsiViewGetColumnInfo
MsiDatabaseGetPrimaryKeys
MsiGetSummaryInformation
MsiEnableUIPreview
Note that when writing custom actions, it is recommended to use variables of type PMSIHANDLE because the installer closes PMSIHANDLE objects as they go out of scope, whereas you must close MSIHANDLE objects by calling
MsiCloseHandle.
For example, if you use code like this:
MSIHANDLE hRec = MsiCreateRecord(3);
Change it to:
PMSIHANDLE hRec = MsiCreateRecord(3);
Requirements
| Version | Requires Windows Installer 4.0 on Windows Server 2008 or Windows Vista. Windows Installer on Windows Server 2003, Windows XP, and Windows 2000. |
| Header | Declared in Msi.h. |
| Library | Use Msi.lib. |
| DLL | Requires Msi.dll. |
See Also
Handle Management Functions
Send comments about this topic to Microsoft
Build date: 6/5/2008