[msi, 2/5, try 5] msi: Expand IDL file to contain all OLE automation interfaces.

Misha Koshelev mk144210 at bcm.tmc.edu
Sun Mar 4 12:56:27 CST 2007


As in its previous incarnations (no changes here), this patch adds the
full dispinterfaces and DISPIDS that match native installer version 3.0.

Changelog:

	* msi: Expand IDL file to contain all OLE automation interfaces.
-------------- next part --------------
From 57be97708b0cac1e0b5d558ce7ce2a59f3cfc1db Mon Sep 17 00:00:00 2001
From: Misha Koshelev <mk144210 at bcm.tmc.edu>
Date: Sun, 4 Mar 2007 12:27:46 -0600
Subject: msi: Expand IDL file to contain all OLE automation interfaces.
---
 dlls/msi/msiserver.idl       |  873 +++++++++++++++++++++++++++++++++++++++---
 dlls/msi/msiserver_dispids.h |  180 +++++++++
 2 files changed, 993 insertions(+), 60 deletions(-)

diff --git a/dlls/msi/msiserver.idl b/dlls/msi/msiserver.idl
index 9966d90..8735b7c 100644
--- a/dlls/msi/msiserver.idl
+++ b/dlls/msi/msiserver.idl
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2007 Mike McCormack
+ * Copyright (C) 2007 Misha Koshelev
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -16,14 +17,21 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#include "msiserver_dispids.h"
 import "unknwn.idl";
 import "wtypes.idl";
 import "objidl.idl";
 import "oaidl.idl";
 
-[ uuid(000C1092-0000-0000-C000-000000000046), version(1.0) ]
+[
+    uuid(000C1092-0000-0000-C000-000000000046),
+    version(1.0),
+    helpstring("Microsoft Windows Installer Object Library")
+]
 library WindowsInstaller
 {
+    /* TLib :
+     * Forward declare all types defined in this typelib */
     dispinterface Installer;
     dispinterface Record;
     dispinterface Session;
@@ -37,87 +45,832 @@ library WindowsInstaller
     dispinterface Product;
     dispinterface Patch;
 
-    [ uuid(000C1090-0000-0000-C000-000000000046) ]
-    dispinterface Installer
-    {
-    properties:
-    methods:
-    }
-
-    [ uuid(000C1093-0000-0000-C000-000000000046) ]
-    dispinterface Record
-    {
-    properties:
-    methods:
-    }
-
-    [ uuid(000C1095-0000-0000-C000-000000000046) ]
-    dispinterface StringList
-    {
+    typedef enum {
+        msiUILevelNoChange = 0,
+        msiUILevelDefault = 1,
+        msiUILevelNone = 2,
+        msiUILevelBasic = 3,
+        msiUILevelReduced = 4,
+        msiUILevelFull = 5,
+        msiUILevelHideCancel = 32,
+        msiUILevelProgressOnly = 64,
+        msiUILevelEndDialog = 128,
+        msiUILevelSourceResOnly = 256
+    } MsiUILevel;
+
+    typedef enum {
+        msiInstallStateNotUsed = -7,
+        msiInstallStateBadConfig = -6,
+        msiInstallStateIncomplete = -5,
+        msiInstallStateSourceAbsent = -4,
+        msiInstallStateInvalidArg = -2,
+        msiInstallStateUnknown = -1,
+        msiInstallStateBroken = 0,
+        msiInstallStateAdvertised = 1,
+        msiInstallStateRemoved = 1,
+        msiInstallStateAbsent = 2,
+        msiInstallStateLocal = 3,
+        msiInstallStateSource = 4,
+        msiInstallStateDefault = 5
+    } MsiInstallState;
+
+    typedef enum {
+        msiReinstallModeFileMissing = 2,
+        msiReinstallModeFileOlderVersion = 4,
+        msiReinstallModeFileEqualVersion = 8,
+        msiReinstallModeFileExact = 16,
+        msiReinstallModeFileVerify = 32,
+        msiReinstallModeFileReplace = 64,
+        msiReinstallModeMachineData = 128,
+        msiReinstallModeUserData = 256,
+        msiReinstallModeShortcut = 512,
+        msiReinstallModePackage = 1024
+    } MsiReinstallMode;
+
+    typedef enum {
+        msiInstallTypeDefault = 0,
+        msiInstallTypeNetworkImage = 1,
+        msiInstallTypeSingleInstance = 2
+    } MsiInstallType;
+
+    typedef enum {
+        msiInstallModeNoSourceResolution = -3,
+        msiInstallModeNoDetection = -2,
+        msiInstallModeExisting = -1,
+        msiInstallModeDefault = 0
+    } MsiInstallMode;
+
+    typedef enum {
+        msiSignatureInfoCertificate = 0,
+        msiSignatureInfoHash = 1
+    } MsiSignatureInfo;
+
+    typedef enum {
+        msiReadStreamInteger = 0,
+        msiReadStreamBytes = 1,
+        msiReadStreamAnsi = 2,
+        msiReadStreamDirect = 3
+    } MsiReadStream;
+
+    typedef enum {
+        msiRunModeAdmin = 0,
+        msiRunModeAdvertise = 1,
+        msiRunModeMaintenance = 2,
+        msiRunModeRollbackEnabled = 3,
+        msiRunModeLogEnabled = 4,
+        msiRunModeOperations = 5,
+        msiRunModeRebootAtEnd = 6,
+        msiRunModeRebootNow = 7,
+        msiRunModeCabinet = 8,
+        msiRunModeSourceShortNames = 9,
+        msiRunModeTargetShortNames = 10,
+        msiRunModeWindows9x = 12,
+        msiRunModeZawEnabled = 13,
+        msiRunModeScheduled = 16,
+        msiRunModeRollback = 17,
+        msiRunModeCommit = 18
+    } MsiRunMode;
+
+    typedef enum {
+        msiInstallContextFirstVisible = 0,
+        msiInstallContextUserManaged = 1,
+        msiInstallContextUser = 2,
+        msiInstallContextMachine = 4,
+        msiInstallContextAllUserManaged = 8
+    } MsiInstallContext;
+
+    [
+        uuid(000C1090-0000-0000-C000-000000000046),
+        helpcontext(0x00002328)
+    ]
+    dispinterface Installer {
         properties:
+        [id(DISPID_INSTALLER_UILEVEL)]
+            MsiUILevel UILevel;
         methods:
-    }
+        [id(DISPID_INSTALLER_CREATERECORD)]
+            Record* CreateRecord([in] long Count);
+        [id(DISPID_INSTALLER_OPENPACKAGE)]
+            Session* OpenPackage(
+                [in] VARIANT PackagePath,
+                [in, optional, defaultvalue(0)] long Options);
+        [id(DISPID_INSTALLER_OPENPRODUCT)]
+            Session* OpenProduct([in] BSTR ProductCode);
+        [id(DISPID_INSTALLER_OPENDATABASE)]
+            Database* OpenDatabase(
+                [in] BSTR DatabasePath,
+                [in] VARIANT OpenMode);
+        [id(DISPID_INSTALLER_SUMMARYINFORMATION), propget]
+            SummaryInfo* SummaryInformation(
+                [in] BSTR PackagePath,
+                [in, optional, defaultvalue(0)] long UpdateCount);
+        [id(DISPID_INSTALLER_ENABLELOG)]
+            void EnableLog(
+                [in] BSTR LogMode,
+                [in] BSTR LogFile);
+        [id(DISPID_INSTALLER_INSTALLPRODUCT)]
+            void InstallProduct(
+                [in] BSTR PackagePath,
+                [in, optional, defaultvalue("0")] BSTR PropertyValues);
+        [id(DISPID_INSTALLER_VERSION), propget]
+            BSTR Version();
+        [id(DISPID_INSTALLER_LASTERRORRECORD)]
+            Record* LastErrorRecord();
+        [id(DISPID_INSTALLER_REGISTRYVALUE)]
+            BSTR RegistryValue(
+                [in] VARIANT Root,
+                [in] BSTR Key,
+                [in, optional] VARIANT Value);
+        [id(DISPID_INSTALLER_FILEATTRIBUTES)]
+            long FileAttributes([in] BSTR FilePath);
+        [id(DISPID_INSTALLER_FILESIZE)]
+            long FileSize([in] BSTR FilePath);
+        [id(DISPID_INSTALLER_FILEVERSION)]
+            BSTR FileVersion(
+                [in] BSTR FilePath,
+                [in, optional] VARIANT Language);
+        [id(DISPID_INSTALLER_ENVIRONMENT), propget]
+            BSTR Environment([in] BSTR Variable);
+        [id(DISPID_INSTALLER_ENVIRONMENT), propput]
+            void Environment(
+                [in] BSTR Variable,
+                [in] BSTR rhs);
+        [id(DISPID_INSTALLER_PRODUCTSTATE), propget]
+            MsiInstallState ProductState([in] BSTR Product);
+        [id(DISPID_INSTALLER_PRODUCTINFO), propget]
+            BSTR ProductInfo(
+                [in] BSTR Product,
+                [in] BSTR Attribute);
+        [id(DISPID_INSTALLER_CONFIGUREPRODUCT)]
+            void ConfigureProduct(
+                [in] BSTR Product,
+                [in] long InstallLevel,
+                [in] MsiInstallState InstallState);
+        [id(DISPID_INSTALLER_REINSTALLPRODUCT)]
+            void ReinstallProduct(
+                [in] BSTR Product,
+                [in] MsiReinstallMode ReinstallMode);
+        [id(DISPID_INSTALLER_COLLECTUSERINFO)]
+            void CollectUserInfo([in] BSTR Product);
+        [id(DISPID_INSTALLER_APPLYPATCH)]
+            void ApplyPatch(
+                [in] BSTR PatchPackage,
+                [in] BSTR InstallPackage,
+                [in] MsiInstallType InstallType,
+                [in] BSTR CommandLine);
+        [id(DISPID_INSTALLER_FEATUREPARENT), propget]
+            BSTR FeatureParent(
+                [in] BSTR Product,
+                [in] BSTR Feature);
+        [id(DISPID_INSTALLER_FEATURESTATE), propget]
+            MsiInstallState FeatureState(
+                [in] BSTR Product,
+                [in] BSTR Feature);
+        [id(DISPID_INSTALLER_USEFEATURE)]
+            void UseFeature(
+                [in] BSTR Product,
+                [in] BSTR Feature,
+                [in] MsiInstallMode InstallMode);
+        [id(DISPID_INSTALLER_FEATUREUSAGECOUNT), propget]
+            long FeatureUsageCount(
+                [in] BSTR Product,
+                [in] BSTR Feature);
+        [id(DISPID_INSTALLER_FEATUREUSAGEDATE), propget]
+            DATE FeatureUsageDate(
+                [in] BSTR Product,
+                [in] BSTR Feature);
+        [id(DISPID_INSTALLER_CONFIGUREFEATURE)]
+            void ConfigureFeature(
+                [in] BSTR Product,
+                [in] BSTR Feature,
+                [in] MsiInstallState InstallState);
+        [id(DISPID_INSTALLER_REINSTALLFEATURE)]
+            void ReinstallFeature(
+                [in] BSTR Product,
+                [in] BSTR Feature,
+                [in] MsiReinstallMode ReinstallMode);
+        [id(DISPID_INSTALLER_PROVIDECOMPONENT)]
+            BSTR ProvideComponent(
+                [in] BSTR Product,
+                [in] BSTR Feature,
+                [in] BSTR Component,
+                [in] long InstallMode);
+        [id(DISPID_INSTALLER_COMPONENTPATH), propget]
+            BSTR ComponentPath(
+                [in] BSTR Product,
+                [in] BSTR Component);
+        [id(DISPID_INSTALLER_PROVIDEQUALIFIEDCOMPONENT)]
+            BSTR ProvideQualifiedComponent(
+                [in] BSTR Category,
+                [in] BSTR Qualifier,
+                [in] long InstallMode);
+        [id(DISPID_INSTALLER_QUALIFIERDESCRIPTION), propget]
+            BSTR QualifierDescription(
+                [in] BSTR Category,
+                [in] BSTR Qualifier);
+        [id(DISPID_INSTALLER_COMPONENTQUALIFIERS), propget]
+            StringList* ComponentQualifiers([in] BSTR Category);
+        [id(DISPID_INSTALLER_PRODUCTS), propget]
+            StringList* Products();
+        [id(DISPID_INSTALLER_FEATURES), propget]
+            StringList* Features([in] BSTR Product);
+        [id(DISPID_INSTALLER_COMPONENTS), propget]
+            StringList* Components();
+        [id(DISPID_INSTALLER_COMPONENTCLIENTS), propget]
+            StringList* ComponentClients([in] BSTR Component);
+        [id(DISPID_INSTALLER_PATCHES), propget]
+            StringList* Patches([in] BSTR Product);
+        [id(DISPID_INSTALLER_RELATEDPRODUCTS), propget]
+            StringList* RelatedProducts([in] BSTR UpgradeCode);
+        [id(DISPID_INSTALLER_PATCHINFO), propget]
+            BSTR PatchInfo(
+                [in] BSTR Patch,
+                [in] BSTR Attribute);
+        [id(DISPID_INSTALLER_PATCHTRANSFORMS), propget]
+            BSTR PatchTransforms(
+                [in] BSTR Product,
+                [in] BSTR Patch);
+        [id(DISPID_INSTALLER_ADDSOURCE)]
+            void AddSource(
+                [in] BSTR Product,
+                [in] BSTR User,
+                [in] BSTR Source);
+        [id(DISPID_INSTALLER_CLEARSOURCELIST)]
+            void ClearSourceList(
+                [in] BSTR Product,
+                [in] BSTR User);
+        [id(DISPID_INSTALLER_FORCESOURCELISTRESOLUTION)]
+            void ForceSourceListResolution(
+                [in] BSTR Product,
+                [in] BSTR User);
+        [id(DISPID_INSTALLER_GETSHORTCUTTARGET), propget]
+            Record* GetShortcutTarget([in] BSTR ShortcutPath);
+        [id(DISPID_INSTALLER_FILEHASH)]
+            Record* FileHash(
+                [in] BSTR FilePath,
+                [in] long Options);
+        [id(DISPID_INSTALLER_FILESIGNATUREINFO)]
+            SAFEARRAY(unsigned char) FileSignatureInfo(
+                [in] BSTR FilePath,
+                [in] long Options,
+                [in] MsiSignatureInfo Format);
+        [id(DISPID_INSTALLER_REMOVEPATCHES)]
+            void RemovePatches(
+                [in] BSTR PatchList,
+                [in] BSTR Product,
+                [in] MsiInstallType UninstallType,
+                [in, optional, defaultvalue("0")] BSTR PropertyList);
+        [id(DISPID_INSTALLER_APPLYMULTIPLEPATCHES)]
+            void ApplyMultiplePatches(
+                [in] BSTR PatchPackage,
+                [in] BSTR Product,
+                [in] BSTR PropertiesList);
+        [id(DISPID_INSTALLER_PRODUCT), propget]
+            Product* Product(
+                [in] BSTR Product,
+                [in] BSTR UserSid,
+                [in] MsiInstallContext iContext);
+        [id(DISPID_INSTALLER_PATCH), propget]
+            Patch* Patch(
+                [in] BSTR PatchCode,
+                [in] BSTR ProductCode,
+                [in] BSTR UserSid,
+                [in] MsiInstallContext iContext);
+        [id(DISPID_INSTALLER_PRODUCTSEX), propget]
+            RecordList* ProductsEx(
+                [in] BSTR Product,
+                [in] BSTR UserSid,
+                [in] long Contexts);
+        [id(DISPID_INSTALLER_PATCHESEX), propget]
+            RecordList* PatchesEx(
+                [in] BSTR Product,
+                [in] BSTR UserSid,
+                [in] long Contexts,
+                [in] long filter);
+        [id(DISPID_INSTALLER_EXTRACTPATCHXMLDATA)]
+            BSTR ExtractPatchXMLData([in] BSTR PatchPath);
+    };
 
-    [ uuid(000C1096-0000-0000-C000-000000000046) ]
-    dispinterface RecordList
-    {
+    [
+        uuid(000C1093-0000-0000-C000-000000000046),
+        helpcontext(0x00002454)
+    ]
+    dispinterface Record {
         properties:
         methods:
-    }
+        [id(DISPID_RECORD_STRINGDATA), propget]
+            BSTR StringData([in] long Field);
+        [id(DISPID_RECORD_STRINGDATA), propput]
+            void StringData(
+                [in] long Field,
+                [in] BSTR rhs);
+        [id(DISPID_RECORD_INTEGERDATA), propget]
+            long IntegerData([in] long Field);
+        [id(DISPID_RECORD_INTEGERDATA), propput]
+            void IntegerData(
+                [in] long Field,
+                [in] long rhs);
+        [id(DISPID_RECORD_SETSTREAM)]
+            void SetStream(
+                [in] long Field,
+                [in] BSTR FilePath);
+        [id(DISPID_RECORD_READSTREAM)]
+            BSTR ReadStream(
+                [in] long Field,
+                [in] long Length,
+                [in] MsiReadStream Format);
+        [id(DISPID_RECORD_FIELDCOUNT), propget]
+            long FieldCount();
+        [id(DISPID_RECORD_ISNULL), propget]
+            VARIANT_BOOL IsNull([in] long Field);
+        [id(DISPID_RECORD_DATASIZE), propget]
+            long DataSize([in] long Field);
+        [id(DISPID_RECORD_CLEARDATA)]
+            void ClearData();
+        [id(DISPID_RECORD_FORMATTEXT)]
+            BSTR FormatText();
+    };
 
-    [ uuid(000C109A-0000-0000-C000-000000000046) ]
-    dispinterface UIPreview
-    {
+    typedef enum {
+        msiDoActionStatusNoAction = 0,
+        msiDoActionStatusSuccess = 1,
+        msiDoActionStatusUserExit = 2,
+        msiDoActionStatusFailure = 3,
+        msiDoActionStatusSuspend = 4,
+        msiDoActionStatusFinished = 5,
+        msiDoActionStatusWrongState = 6,
+        msiDoActionStatusBadActionData = 7
+    } MsiDoActionStatus;
+
+    typedef enum {
+        msiEvaluateConditionFalse = 0,
+        msiEvaluateConditionTrue = 1,
+        msiEvaluateConditionNone = 2,
+        msiEvaluateConditionError = 3
+    } _MsiEvaluateCondition; /* Added underscore to avoid conflict with function name */
+
+    typedef enum {
+        msiMessageStatusError = -1,
+        msiMessageStatusNone = 0,
+        msiMessageStatusOk = 1,
+        msiMessageStatusCancel = 2,
+        msiMessageStatusAbort = 3,
+        msiMessageStatusRetry = 4,
+        msiMessageStatusIgnore = 5,
+        msiMessageStatusYes = 6,
+        msiMessageStatusNo = 7
+    } MsiMessageStatus;
+
+    typedef enum {
+        msiMessageTypeFatalExit = 0,
+        msiMessageTypeError = 16777216,
+        msiMessageTypeWarning = 33554432,
+        msiMessageTypeUser = 50331648,
+        msiMessageTypeInfo = 67108864,
+        msiMessageTypeFilesInUse = 83886080,
+        msiMessageTypeResolveSource = 100663296,
+        msiMessageTypeOutOfDiskSpace = 117440512,
+        msiMessageTypeActionStart = 134217728,
+        msiMessageTypeActionData = 150994944,
+        msiMessageTypeProgress = 167772160,
+        msiMessageTypeCommonData = 184549376,
+        msiMessageTypeOk = 0,
+        msiMessageTypeOkCancel = 1,
+        msiMessageTypeAbortRetryIgnore = 2,
+        msiMessageTypeYesNoCancel = 3,
+        msiMessageTypeYesNo = 4,
+        msiMessageTypeRetryCancel = 5,
+        msiMessageTypeDefault1 = 0,
+        msiMessageTypeDefault2 = 256,
+        msiMessageTypeDefault3 = 512
+    } MsiMessageType;
+
+    typedef enum {
+        msiCostTreeSelfOnly = 0,
+        msiCostTreeChildren = 1,
+        msiCostTreeParents = 2
+    } MsiCostTree;
+
+    typedef enum {
+        msiDatabaseStateRead = 0,
+        msiDatabaseStateWrite = 1
+    } MsiDatabaseState;
+
+    [
+        uuid(000C109E-0000-0000-C000-000000000046),
+        helpcontext(0x000025e4)
+    ]
+    dispinterface Session {
         properties:
         methods:
-    }
+        [id(DISPID_SESSION_INSTALLER), propget]
+            Installer* Installer();
+        [id(DISPID_SESSION_PROPERTY), propget]
+            BSTR Property([in] BSTR Name);
+        [id(DISPID_SESSION_PROPERTY), propput]
+            void Property(
+                [in] BSTR Name,
+                [in] BSTR rhs);
+        [id(DISPID_SESSION_LANGUAGE), propget]
+            long Language();
+        [id(DISPID_SESSION_MODE), propget]
+            VARIANT_BOOL Mode([in] MsiRunMode Flag);
+        [id(DISPID_SESSION_MODE), propput]
+            void Mode(
+                [in] MsiRunMode Flag,
+                [in] VARIANT_BOOL rhs);
+        [id(DISPID_SESSION_DATABASE), propget]
+            Database* Database();
+        [id(DISPID_SESSION_SOURCEPATH), propget]
+            BSTR SourcePath([in] BSTR Folder);
+        [id(DISPID_SESSION_TARGETPATH), propget]
+            BSTR TargetPath([in] BSTR Folder);
+        [id(DISPID_SESSION_TARGETPATH), propput]
+            void TargetPath(
+                [in] BSTR Folder,
+                [in] BSTR rhs);
+        [id(DISPID_SESSION_DOACTION)]
+            MsiDoActionStatus DoAction([in] BSTR Action);
+        [id(DISPID_SESSION_SEQUENCE)]
+            MsiDoActionStatus Sequence(
+                [in] BSTR Table,
+                [in, optional] VARIANT Mode);
+        [id(DISPID_SESSION_EVALUATECONDITION)]
+            _MsiEvaluateCondition EvaluateCondition([in] BSTR Expression);
+        [id(DISPID_SESSION_FORMATRECORD)]
+            BSTR FormatRecord([in] Record* Record);
+        [id(DISPID_SESSION_MESSAGE)]
+            MsiMessageStatus Message(
+                [in] MsiMessageType Kind,
+                [in] Record* Record);
+        [id(DISPID_SESSION_FEATURECURRENTSTATE), propget]
+            MsiInstallState FeatureCurrentState([in] BSTR Feature);
+        [id(DISPID_SESSION_FEATUREREQUESTSTATE), propget]
+            MsiInstallState FeatureRequestState([in] BSTR Feature);
+        [id(DISPID_SESSION_FEATUREREQUESTSTATE), propput]
+            void FeatureRequestState(
+                [in] BSTR Feature,
+                [in] MsiInstallState rhs);
+        [id(DISPID_SESSION_FEATUREVALIDSTATES), propget]
+            long FeatureValidStates([in] BSTR Feature);
+        [id(DISPID_SESSION_FEATURECOST), propget]
+            long FeatureCost(
+                [in] BSTR Feature,
+                [in] MsiCostTree CostTree,
+                [in] MsiInstallState State);
+        [id(DISPID_SESSION_COMPONENTCURRENTSTATE), propget]
+            MsiInstallState ComponentCurrentState([in] BSTR Component);
+        [id(DISPID_SESSION_COMPONENTREQUESTSTATE), propget]
+            MsiInstallState ComponentRequestState([in] BSTR Component);
+        [id(DISPID_SESSION_COMPONENTREQUESTSTATE), propput]
+            void ComponentRequestState(
+                [in] BSTR Component,
+                [in] MsiInstallState rhs);
+        [id(DISPID_SESSION_SETINSTALLLEVEL)]
+            void SetInstallLevel([in] long Level);
+        [id(DISPID_SESSION_VERIFYDISKSPACE), propget]
+            VARIANT_BOOL VerifyDiskSpace();
+        [id(DISPID_SESSION_PRODUCTPROPERTY), propget]
+            BSTR ProductProperty([in] BSTR Property);
+        [id(DISPID_SESSION_FEATUREINFO), propget]
+            FeatureInfo* FeatureInfo([in] BSTR Feature);
+        [id(DISPID_SESSION_COMPONENTCOSTS), propget]
+            RecordList* ComponentCosts(
+                [in] BSTR Component,
+                [in] MsiInstallState State);
+    };
+
+    typedef enum {
+        msiTransformErrorNone = 0,
+        msiTransformErrorAddExistingRow = 1,
+        msiTransformErrorDeleteNonExistingRow = 2,
+        msiTransformErrorAddExistingTable = 4,
+        msiTransformErrorDeleteNonExistingTable = 8,
+        msiTransformErrorUpdateNonExistingRow = 16,
+        msiTransformErrorChangeCodePage = 32,
+        msiTransformErrorViewTransform = 256
+    } MsiTransformError;
+
+    typedef enum {
+        msiTransformValidationNone = 0,
+        msiTransformValidationLanguage = 1,
+        msiTransformValidationProduct = 2,
+        msiTransformValidationPlatform = 4,
+        msiTransformValidationMajorVer = 8,
+        msiTransformValidationMinorVer = 16,
+        msiTransformValidationUpdateVer = 32,
+        msiTransformValidationLess = 64,
+        msiTransformValidationLessOrEqual = 128,
+        msiTransformValidationEqual = 256,
+        msiTransformValidationGreaterOrEqual = 512,
+        msiTransformValidationGreater = 1024,
+        msiTransformValidationUpgradeCode = 2048
+    } MsiTransformValidation;
 
-    [ uuid(000C109B-0000-0000-C000-000000000046) ]
-    dispinterface SummaryInfo
-    {
+    [
+        uuid(000C109D-0000-0000-C000-000000000046),
+        helpcontext(0x0000251c)
+    ]
+    dispinterface Database {
         properties:
         methods:
-    }
+        [id(DISPID_DATABASE_DATABASESTATE), propget]
+            MsiDatabaseState DatabaseState();
+        [id(DISPID_DATABASE_SUMMARYINFORMATION), propget]
+            SummaryInfo* SummaryInformation([in, optional, defaultvalue(0)] long UpdateCount);
+        [id(DISPID_DATABASE_OPENVIEW)]
+            View* OpenView([in] BSTR Sql);
+        [id(DISPID_DATABASE_COMMIT)]
+            void Commit();
+        [id(DISPID_DATABASE_PRIMARYKEYS), propget]
+            Record* PrimaryKeys([in] BSTR Table);
+        [id(DISPID_DATABASE_IMPORT)]
+            void Import(
+                [in] BSTR Folder,
+                [in] BSTR File);
+        [id(DISPID_DATABASE_EXPORT)]
+            void Export(
+                [in] BSTR Table,
+                [in] BSTR Folder,
+                [in] BSTR File);
+        [id(DISPID_DATABASE_MERGE)]
+            VARIANT_BOOL Merge(
+                [in] Database* Database,
+                [in, optional, defaultvalue("0")] BSTR ErrorTable);
+        [id(DISPID_DATABASE_GENERATETRANSFORM)]
+            VARIANT_BOOL GenerateTransform(
+                [in] Database* ReferenceDatabase,
+                [in, optional, defaultvalue("0")] BSTR TransformFile);
+        [id(DISPID_DATABASE_APPLYTRANSFORM)]
+            void ApplyTransform(
+                [in] BSTR TransformFile,
+                [in] MsiTransformError ErrorConditions);
+        [id(DISPID_DATABASE_ENABLEUIPREVIEW)]
+            UIPreview* EnableUIPreview();
+        [id(DISPID_DATABASE_TABLEPERSISTENT), propget]
+            _MsiEvaluateCondition TablePersistent([in] BSTR Table);
+        [id(DISPID_DATABASE_CREATETRANSFORMSUMMARYINFO)]
+            void CreateTransformSummaryInfo(
+                [in] Database* ReferenceDatabase,
+                [in] BSTR TransformFile,
+                [in] MsiTransformError ErrorConditions,
+                [in] MsiTransformValidation Validation);
+    };
 
-    [ uuid(000C109C-0000-0000-C000-000000000046) ]
-    dispinterface View
-    {
+    [
+        uuid(000C109B-0000-0000-C000-000000000046),
+        helpcontext(0x00002580)
+    ]
+    dispinterface SummaryInfo {
         properties:
         methods:
-    }
+        [id(DISPID_SUMMARYINFO_PROPERTY), propget]
+            VARIANT Property([in] long Pid);
+        [id(DISPID_SUMMARYINFO_PROPERTY), propput]
+            void Property(
+                [in] long Pid,
+                [in] VARIANT rhs);
+        [id(DISPID_SUMMARYINFO_PROPERTYCOUNT), propget]
+            long PropertyCount();
+        [id(DISPID_SUMMARYINFO_PERSIST)]
+            void Persist();
+    };
 
-    [ uuid(000C109D-0000-0000-C000-000000000046) ]
-    dispinterface Database
-    {
+    typedef enum {
+        msiViewModifySeek = -1,
+        msiViewModifyRefresh = 0,
+        msiViewModifyInsert = 1,
+        msiViewModifyUpdate = 2,
+        msiViewModifyAssign = 3,
+        msiViewModifyReplace = 4,
+        msiViewModifyMerge = 5,
+        msiViewModifyDelete = 6,
+        msiViewModifyInsertTemporary = 7,
+        msiViewModifyValidate = 8,
+        msiViewModifyValidateNew = 9,
+        msiViewModifyValidateField = 10,
+        msiViewModifyValidateDelete = 11
+    } _MsiViewModify; /* Added underscore to avoid conflict with MsiViewModify function in msiquery.h */
+
+    typedef enum {
+        msiColumnInfoNames = 0,
+        msiColumnInfoTypes = 1
+    } MsiColumnInfo;
+
+    [
+        uuid(000C109C-0000-0000-C000-000000000046),
+        helpcontext(0x000024b8)
+    ]
+    dispinterface View {
+        properties:
+        methods:
+        [id(DISPID_VIEW_EXECUTE)]
+            void Execute([in, optional, defaultvalue(0)] Record* Params);
+        [id(DISPID_VIEW_FETCH)]
+            Record* Fetch();
+        [id(DISPID_VIEW_MODIFY)]
+            void Modify(
+                [in] _MsiViewModify Mode,
+                Record* Record);
+        [id(DISPID_VIEW_COLUMNINFO), propget]
+            Record* ColumnInfo([in] MsiColumnInfo Info);
+        [id(DISPID_VIEW_CLOSE)]
+            void Close();
+        [id(DISPID_VIEW_GETERROR)]
+            BSTR GetError();
+    };
+
+    [
+        uuid(000C109A-0000-0000-C000-000000000046),
+        helpcontext(0x00002648)
+    ]
+    dispinterface UIPreview {
+        properties:
+        methods:
+        [id(DISPID_UIPREVIEW_PROPERTY), propget]
+            BSTR Property([in] BSTR Name);
+        [id(DISPID_UIPREVIEW_PROPERTY), propput]
+            void Property(
+                [in] BSTR Name,
+                [in] BSTR rhs);
+        [id(DISPID_UIPREVIEW_VIEWDIALOG)]
+            void ViewDialog([in] BSTR Dialog);
+        [id(DISPID_UIPREVIEW_VIEWBILLBOARD)]
+            void ViewBillboard(
+                [in] BSTR Control,
+                [in] BSTR Billboard);
+    };
+
+    [
+        uuid(000C109F-0000-0000-C000-000000000046),
+        helpcontext(0x0000238c)
+    ]
+    dispinterface FeatureInfo {
         properties:
+        [id(DISPID_FEATUREINFO_ATTRIBUTES)]
+            long Attributes;
         methods:
-    }
-
-    [ uuid(000C109E-0000-0000-C000-000000000046) ]
-    dispinterface Session
-    {
-    properties:
-    methods:
-    }
-
-    [ uuid(000C109F-0000-0000-C000-000000000046) ]
-    dispinterface FeatureInfo
-    {
+        [id(DISPID_FEATUREINFO_TITLE), propget]
+            BSTR Title();
+        [id(DISPID_FEATUREINFO_DESCRIPTION), propget]
+            BSTR Description();
+    };
+
+    [
+        uuid(000C1096-0000-0000-C000-000000000046),
+        helpcontext(0x000023f3)
+    ]
+    dispinterface RecordList {
+        properties:
+        methods:
+        [id(DISPID_RECORDLIST__NEWENUM)]
+            IUnknown _NewEnum();
+        [id(DISPID_RECORDLIST_ITEM), propget]
+            Record* Item(long Index);
+        [id(DISPID_RECORDLIST_COUNT), propget]
+            long Count();
+    };
+
+    [
+        uuid(000C1095-0000-0000-C000-000000000046),
+        helpcontext(0x000023f0)
+    ]
+    dispinterface StringList {
         properties:
         methods:
-    }
+        [id(DISPID_STRINGLIST__NEWENUM)]
+            IUnknown _NewEnum();
+        [id(DISPID_STRINGLIST_ITEM), propget]
+            BSTR Item(long Index);
+        [id(DISPID_STRINGLIST_COUNT), propget]
+            long Count();
+    };
 
-    [ uuid(000C10A0-0000-0000-C000-000000000046) ]
-    dispinterface Product
-    {
+    typedef enum {
+        msiInstallSourceTypeUnknown = 0,
+        msiInstallSourceTypeNetwork = 1,
+        msiInstallSourceTypeURL = 2,
+        msiInstallSourceTypeMedia = 4
+    } MsiInstallSourceType;
+
+    [
+        uuid(000C10A0-0000-0000-C000-000000000046),
+        helpcontext(0x00002396)
+    ]
+    dispinterface Product {
         properties:
         methods:
-    }
+        [id(DISPID_PRODUCT_PRODUCTCODE), propget]
+            BSTR ProductCode();
+        [id(DISPID_PRODUCT_USERSID), propget]
+            BSTR UserSid();
+        [id(DISPID_PRODUCT_CONTEXT), propget]
+            MsiInstallContext Context();
+        [id(DISPID_PRODUCT_STATE), propget]
+            MsiInstallState State();
+        [id(DISPID_PRODUCT_INSTALLPROPERTY), propget]
+            BSTR InstallProperty([in] BSTR Name);
+        [id(DISPID_PRODUCT_COMPONENTSTATE), propget]
+            MsiInstallState ComponentState([in] BSTR Component);
+        [id(DISPID_PRODUCT_FEATURESTATE), propget]
+            MsiInstallState FeatureState([in] BSTR Feature);
+        [id(DISPID_PRODUCT_SOURCES), propget]
+            StringList* Sources([in] long SourceType);
+        [id(DISPID_PRODUCT_MEDIADISKS), propget]
+            RecordList* MediaDisks();
+        [id(DISPID_PRODUCT_SOURCELISTADDSOURCE)]
+            void SourceListAddSource(
+                [in] MsiInstallSourceType iSourceType,
+                [in] BSTR Source,
+                [in] long dwIndex);
+        [id(DISPID_PRODUCT_SOURCELISTADDMEDIADISK)]
+            void SourceListAddMediaDisk(
+                [in] long dwDiskId,
+                [in] BSTR VolumeLabel,
+                [in] BSTR DiskPrompt);
+        [id(DISPID_PRODUCT_SOURCELISTCLEARSOURCE)]
+            void SourceListClearSource(
+                [in] MsiInstallSourceType iSourceType,
+                [in] BSTR Source);
+        [id(DISPID_PRODUCT_SOURCELISTCLEARMEDIADISK)]
+            void SourceListClearMediaDisk([in] long iDiskId);
+        [id(DISPID_PRODUCT_SOURCELISTCLEARALL)]
+            void SourceListClearAll([in] MsiInstallSourceType iSourceType);
+        [id(DISPID_PRODUCT_SOURCELISTFORCERESOLUTION)]
+            void SourceListForceResolution();
+        [id(DISPID_PRODUCT_SOURCELISTINFO), propget]
+            BSTR SourceListInfo([in] BSTR Property);
+        [id(DISPID_PRODUCT_SOURCELISTINFO), propput]
+            void SourceListInfo(
+                [in] BSTR Property,
+                [in] BSTR retval);
+    };
 
-    [ uuid(000C10A1-0000-0000-C000-000000000046) ]
-    dispinterface Patch
-    {
+    [
+        uuid(000C10A1-0000-0000-C000-000000000046),
+        helpcontext(0x000023aa)
+    ]
+    dispinterface Patch {
         properties:
         methods:
-    }
-}
+        [id(DISPID_PATCH_PATCHCODE), propget]
+            BSTR PatchCode();
+        [id(DISPID_PATCH_PRODUCTCODE), propget]
+            BSTR ProductCode();
+        [id(DISPID_PATCH_USERSID), propget]
+            BSTR UserSid();
+        [id(DISPID_PATCH_CONTEXT), propget]
+            MsiInstallContext Context();
+        [id(DISPID_PATCH_STATE), propget]
+            MsiInstallState State();
+        [id(DISPID_PATCH_SOURCES), propget]
+            StringList* Sources([in] long SourceType);
+        [id(DISPID_PATCH_MEDIADISKS), propget]
+            RecordList* MediaDisks();
+        [id(DISPID_PATCH_SOURCELISTADDSOURCE)]
+            void SourceListAddSource(
+                [in] MsiInstallSourceType iSourceType,
+                [in] BSTR Source,
+                [in] long dwIndex);
+        [id(DISPID_PATCH_SOURCELISTADDMEDIADISK)]
+            void SourceListAddMediaDisk(
+                [in] long dwDiskId,
+                [in] BSTR VolumeLabel,
+                [in] BSTR DiskPrompt);
+        [id(DISPID_PATCH_SOURCELISTCLEARSOURCE)]
+            void SourceListClearSource(
+                [in] MsiInstallSourceType iSourceType,
+                [in] BSTR Source);
+        [id(DISPID_PATCH_SOURCELISTCLEARMEDIADISK)]
+            void SourceListClearMediaDisk([in] long iDiskId);
+        [id(DISPID_PATCH_SOURCELISTCLEARALL)]
+            void SourceListClearAll([in] MsiInstallSourceType iSourceType);
+        [id(DISPID_PATCH_SOURCELISTFORCERESOLUTION)]
+            void SourceListForceResolution();
+        [id(DISPID_PATCH_SOURCELISTINFO), propget]
+            BSTR SourceListInfo([in] BSTR Property);
+        [id(DISPID_PATCH_SOURCELISTINFO), propput]
+            void SourceListInfo(
+                [in] BSTR Property,
+                [in] BSTR retval);
+        [id(DISPID_PATCH_PATCHPROPERTY), propget]
+            BSTR PatchProperty([in] BSTR Property);
+    };
+
+    typedef enum {
+        msiDatabaseNullInteger = -2147483648
+    } Constants;
+
+    typedef enum {
+        msiOpenDatabaseModeReadOnly = 0,
+        msiOpenDatabaseModeTransact = 1,
+        msiOpenDatabaseModeDirect = 2,
+        msiOpenDatabaseModeCreate = 3,
+        msiOpenDatabaseModeCreateDirect = 4,
+        msiOpenDatabaseModePatchFile = 32
+    } MsiOpenDatabaseMode;
+
+    typedef enum {
+        msiSignatureOptionInvalidHashFatal = 1
+    } MsiSignatureOption;
+};
diff --git a/dlls/msi/msiserver_dispids.h b/dlls/msi/msiserver_dispids.h
new file mode 100644
index 0000000..093efb0
--- /dev/null
+++ b/dlls/msi/msiserver_dispids.h
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2007 Misha Koshelev
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#define DISPID_INSTALLER_UILEVEL 6
+#define DISPID_INSTALLER_CREATERECORD 1
+#define DISPID_INSTALLER_OPENPACKAGE 2
+#define DISPID_INSTALLER_OPENPRODUCT 3
+#define DISPID_INSTALLER_OPENDATABASE 4
+#define DISPID_INSTALLER_SUMMARYINFORMATION 5
+#define DISPID_INSTALLER_ENABLELOG 7
+#define DISPID_INSTALLER_INSTALLPRODUCT 8
+#define DISPID_INSTALLER_VERSION 9
+#define DISPID_INSTALLER_LASTERRORRECORD 10
+#define DISPID_INSTALLER_REGISTRYVALUE 11
+#define DISPID_INSTALLER_FILEATTRIBUTES 13
+#define DISPID_INSTALLER_FILESIZE 15
+#define DISPID_INSTALLER_FILEVERSION 16
+#define DISPID_INSTALLER_ENVIRONMENT 12
+#define DISPID_INSTALLER_PRODUCTSTATE 17
+#define DISPID_INSTALLER_PRODUCTINFO 18
+#define DISPID_INSTALLER_CONFIGUREPRODUCT 19
+#define DISPID_INSTALLER_REINSTALLPRODUCT 20
+#define DISPID_INSTALLER_COLLECTUSERINFO 21
+#define DISPID_INSTALLER_APPLYPATCH 22
+#define DISPID_INSTALLER_FEATUREPARENT 23
+#define DISPID_INSTALLER_FEATURESTATE 24
+#define DISPID_INSTALLER_USEFEATURE 25
+#define DISPID_INSTALLER_FEATUREUSAGECOUNT 26
+#define DISPID_INSTALLER_FEATUREUSAGEDATE 27
+#define DISPID_INSTALLER_CONFIGUREFEATURE 28
+#define DISPID_INSTALLER_REINSTALLFEATURE 29
+#define DISPID_INSTALLER_PROVIDECOMPONENT 30
+#define DISPID_INSTALLER_COMPONENTPATH 31
+#define DISPID_INSTALLER_PROVIDEQUALIFIEDCOMPONENT 32
+#define DISPID_INSTALLER_QUALIFIERDESCRIPTION 33
+#define DISPID_INSTALLER_COMPONENTQUALIFIERS 34
+#define DISPID_INSTALLER_PRODUCTS 35
+#define DISPID_INSTALLER_FEATURES 36
+#define DISPID_INSTALLER_COMPONENTS 37
+#define DISPID_INSTALLER_COMPONENTCLIENTS 38
+#define DISPID_INSTALLER_PATCHES 39
+#define DISPID_INSTALLER_RELATEDPRODUCTS 40
+#define DISPID_INSTALLER_PATCHINFO 41
+#define DISPID_INSTALLER_PATCHTRANSFORMS 42
+#define DISPID_INSTALLER_ADDSOURCE 43
+#define DISPID_INSTALLER_CLEARSOURCELIST 44
+#define DISPID_INSTALLER_FORCESOURCELISTRESOLUTION 45
+#define DISPID_INSTALLER_GETSHORTCUTTARGET 46
+#define DISPID_INSTALLER_FILEHASH 47
+#define DISPID_INSTALLER_FILESIGNATUREINFO 48
+#define DISPID_INSTALLER_REMOVEPATCHES 49
+#define DISPID_INSTALLER_APPLYMULTIPLEPATCHES 51
+#define DISPID_INSTALLER_PRODUCT 53
+#define DISPID_INSTALLER_PATCH 56
+#define DISPID_INSTALLER_PRODUCTSEX 52
+#define DISPID_INSTALLER_PATCHESEX 55
+#define DISPID_INSTALLER_EXTRACTPATCHXMLDATA 57
+
+#define DISPID_RECORD_STRINGDATA 1
+#define DISPID_RECORD_INTEGERDATA 2
+#define DISPID_RECORD_SETSTREAM 3
+#define DISPID_RECORD_READSTREAM 4
+#define DISPID_RECORD_FIELDCOUNT 0
+#define DISPID_RECORD_ISNULL 6
+#define DISPID_RECORD_DATASIZE 5
+#define DISPID_RECORD_CLEARDATA 7
+#define DISPID_RECORD_FORMATTEXT 8
+
+#define DISPID_SESSION_INSTALLER 1
+#define DISPID_SESSION_PROPERTY 2
+#define DISPID_SESSION_LANGUAGE 3
+#define DISPID_SESSION_MODE 4
+#define DISPID_SESSION_DATABASE 5
+#define DISPID_SESSION_SOURCEPATH 6
+#define DISPID_SESSION_TARGETPATH 7
+#define DISPID_SESSION_DOACTION 8
+#define DISPID_SESSION_SEQUENCE 9
+#define DISPID_SESSION_EVALUATECONDITION 10
+#define DISPID_SESSION_FORMATRECORD 11
+#define DISPID_SESSION_MESSAGE 12
+#define DISPID_SESSION_FEATURECURRENTSTATE 13
+#define DISPID_SESSION_FEATUREREQUESTSTATE 14
+#define DISPID_SESSION_FEATUREVALIDSTATES 15
+#define DISPID_SESSION_FEATURECOST 16
+#define DISPID_SESSION_COMPONENTCURRENTSTATE 17
+#define DISPID_SESSION_COMPONENTREQUESTSTATE 18
+#define DISPID_SESSION_SETINSTALLLEVEL 19
+#define DISPID_SESSION_VERIFYDISKSPACE 20
+#define DISPID_SESSION_PRODUCTPROPERTY 21
+#define DISPID_SESSION_FEATUREINFO 22
+#define DISPID_SESSION_COMPONENTCOSTS 23
+
+#define DISPID_DATABASE_DATABASESTATE 1
+#define DISPID_DATABASE_SUMMARYINFORMATION 2
+#define DISPID_DATABASE_OPENVIEW 3
+#define DISPID_DATABASE_COMMIT 4
+#define DISPID_DATABASE_PRIMARYKEYS 5
+#define DISPID_DATABASE_IMPORT 6
+#define DISPID_DATABASE_EXPORT 7
+#define DISPID_DATABASE_MERGE 8
+#define DISPID_DATABASE_GENERATETRANSFORM 9
+#define DISPID_DATABASE_APPLYTRANSFORM 10
+#define DISPID_DATABASE_ENABLEUIPREVIEW 11
+#define DISPID_DATABASE_TABLEPERSISTENT 12
+#define DISPID_DATABASE_CREATETRANSFORMSUMMARYINFO 13
+
+#define DISPID_SUMMARYINFO_PROPERTY 1
+#define DISPID_SUMMARYINFO_PROPERTYCOUNT 2
+#define DISPID_SUMMARYINFO_PERSIST 3
+
+#define DISPID_VIEW_EXECUTE 1
+#define DISPID_VIEW_FETCH 2
+#define DISPID_VIEW_MODIFY 3
+#define DISPID_VIEW_COLUMNINFO 5
+#define DISPID_VIEW_CLOSE 4
+#define DISPID_VIEW_GETERROR 6
+
+#define DISPID_UIPREVIEW_PROPERTY 1
+#define DISPID_UIPREVIEW_VIEWDIALOG 2
+#define DISPID_UIPREVIEW_VIEWBILLBOARD 3
+
+#define DISPID_FEATUREINFO_ATTRIBUTES 3
+#define DISPID_FEATUREINFO_TITLE 1
+#define DISPID_FEATUREINFO_DESCRIPTION 2
+
+#define DISPID_RECORDLIST__NEWENUM -4
+#define DISPID_RECORDLIST_ITEM 0
+#define DISPID_RECORDLIST_COUNT 1
+
+#define DISPID_STRINGLIST__NEWENUM -4
+#define DISPID_STRINGLIST_ITEM 0
+#define DISPID_STRINGLIST_COUNT 1
+
+#define DISPID_PRODUCT_PRODUCTCODE 1
+#define DISPID_PRODUCT_USERSID 2
+#define DISPID_PRODUCT_CONTEXT 3
+#define DISPID_PRODUCT_STATE 4
+#define DISPID_PRODUCT_INSTALLPROPERTY 5
+#define DISPID_PRODUCT_COMPONENTSTATE 6
+#define DISPID_PRODUCT_FEATURESTATE 7
+#define DISPID_PRODUCT_SOURCES 14
+#define DISPID_PRODUCT_MEDIADISKS 15
+#define DISPID_PRODUCT_SOURCELISTADDSOURCE 8
+#define DISPID_PRODUCT_SOURCELISTADDMEDIADISK 9
+#define DISPID_PRODUCT_SOURCELISTCLEARSOURCE 10
+#define DISPID_PRODUCT_SOURCELISTCLEARMEDIADISK 11
+#define DISPID_PRODUCT_SOURCELISTCLEARALL 12
+#define DISPID_PRODUCT_SOURCELISTFORCERESOLUTION 13
+#define DISPID_PRODUCT_SOURCELISTINFO 16
+
+#define DISPID_PATCH_PATCHCODE 1
+#define DISPID_PATCH_PRODUCTCODE 2
+#define DISPID_PATCH_USERSID 3
+#define DISPID_PATCH_CONTEXT 4
+#define DISPID_PATCH_STATE 5
+#define DISPID_PATCH_SOURCES 12
+#define DISPID_PATCH_MEDIADISKS 13
+#define DISPID_PATCH_SOURCELISTADDSOURCE 6
+#define DISPID_PATCH_SOURCELISTADDMEDIADISK 7
+#define DISPID_PATCH_SOURCELISTCLEARSOURCE 8
+#define DISPID_PATCH_SOURCELISTCLEARMEDIADISK 9
+#define DISPID_PATCH_SOURCELISTCLEARALL 10
+#define DISPID_PATCH_SOURCELISTFORCERESOLUTION 11
+#define DISPID_PATCH_SOURCELISTINFO 14
+#define DISPID_PATCH_PATCHPROPERTY 15
-- 
1.4.1



More information about the wine-patches mailing list