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 "MsiDatabaseCommit" in [All]

msi

.

static extern int MsiDatabaseCommit(IntPtr hDatabase);

.

Declare Function MsiDatabaseCommit Lib "msi.dll" (TODO) As TODO

.
Documentation
[MsiDatabaseCommit] on MSDN
.

The documentation specifies a string for the persist parameter, but any calls to MsiDatabaseCommit are ignored unless this call is given an IntPtr with the desired open mode, e.g. (IntPtr)2.

.

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 MsiDatabaseCommit(IntPtr hDatabase);

.

            returnValue = (WINDOWS_MESSAGE_CODES)MsiDatabaseCommit(msiHandle);

.

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


 
Access PInvoke.net directly from VS: