Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

Search Results for "MsiOpenDatabase" in [All]

msi

.
Summary
The MsiOpenDatabase function opens a database file for data access. This function returns a handle that should be closed using MsiCloseHandle.
.

static extern uint MsiOpenDatabase(string szDatabasePath, IntPtr phPersist, out IntPtr phDatabase);

.
Documentation
[MsiOpenDatabase] on MSDN
.

The sample application below demonstrates how to use MsiRecordSetString, MsiOpenDatabase, MsiCreateRecord, MsiCloseHandle, MsiDatabaseOpenView, MsiViewExecute, MsiDatabaseCommit, and MsiViewClose in C# to modify a property value in an MSI database. To run it, simply create a new Windows Console application and replace the code that Visual Studio gives you with the code below. You may have to modify the namespace name. The sample as-is requires a valid MSI database named SETUP.msi, with a property named PROPERTY1 in the Property table, to be located in C:\. You can of course change the path to your MSI database in the calls to ChangeMSIProperty() in Main() and use any existing property you wish.

.

    static extern int MsiOpenDatabase(string szDatabasePath, IntPtr phPersist, out IntPtr phDatabase);

.

    // Open mode constants for MsiOpenDatabase.

.

        WINDOWS_MESSAGE_CODES returnValue = (WINDOWS_MESSAGE_CODES)MsiOpenDatabase(path, persist, out msiHandle);

.

            throw new MsiInstallationSupportException(string.Format(CultureInfo.InvariantCulture, "MsiOpenDatabase returned error code {0}.", returnValue.ToString()));


 
Access PInvoke.net directly from VS: