[try 2, sorry] msi: Expand IDL file to contain XP automation interfaces.

Misha Koshelev mk144210 at bcm.tmc.edu
Mon Feb 26 23:59:01 CST 2007


Ok, sorry, I missed a few things that changed last time in function
parameters and enums.

Changelog:

	* msi: Expand IDL file to contain XP automation interfaces.
-------------- next part --------------
From 22ca9d0f6fe3e52d504094d8965bb5b689134720 Mon Sep 17 00:00:00 2001
From: Misha Koshelev <mk144210 at bcm.tmc.edu>
Date: Mon, 26 Feb 2007 23:55:43 -0600
Subject: msi: Expand IDL file to contain XP automation interfaces.
---
 dlls/msi/msiserver.idl       |  171 +++++++++++++++++++++++++++++++++++++++++-
 dlls/msi/msiserver_dispids.h |   40 ++++++++++
 2 files changed, 205 insertions(+), 6 deletions(-)

diff --git a/dlls/msi/msiserver.idl b/dlls/msi/msiserver.idl
index 136242d..8735b7c 100644
--- a/dlls/msi/msiserver.idl
+++ b/dlls/msi/msiserver.idl
@@ -42,7 +42,9 @@ library WindowsInstaller
     dispinterface FeatureInfo;
     dispinterface RecordList;
     dispinterface StringList;
-    
+    dispinterface Product;
+    dispinterface Patch;
+
     typedef enum {
         msiUILevelNoChange = 0,
         msiUILevelDefault = 1,
@@ -52,7 +54,8 @@ library WindowsInstaller
         msiUILevelFull = 5,
         msiUILevelHideCancel = 32,
         msiUILevelProgressOnly = 64,
-        msiUILevelEndDialog = 128
+        msiUILevelEndDialog = 128,
+        msiUILevelSourceResOnly = 256
     } MsiUILevel;
 
     typedef enum {
@@ -86,7 +89,8 @@ library WindowsInstaller
 
     typedef enum {
         msiInstallTypeDefault = 0,
-        msiInstallTypeNetworkImage = 1
+        msiInstallTypeNetworkImage = 1,
+        msiInstallTypeSingleInstance = 2
     } MsiInstallType;
 
     typedef enum {
@@ -127,6 +131,14 @@ library WindowsInstaller
         msiRunModeCommit = 18
     } MsiRunMode;
 
+    typedef enum {
+        msiInstallContextFirstVisible = 0,
+        msiInstallContextUserManaged = 1,
+        msiInstallContextUser = 2,
+        msiInstallContextMachine = 4,
+        msiInstallContextAllUserManaged = 8
+    } MsiInstallContext;
+
     [
         uuid(000C1090-0000-0000-C000-000000000046),
         helpcontext(0x00002328)
@@ -139,7 +151,9 @@ library WindowsInstaller
         [id(DISPID_INSTALLER_CREATERECORD)]
             Record* CreateRecord([in] long Count);
         [id(DISPID_INSTALLER_OPENPACKAGE)]
-            Session* OpenPackage([in] VARIANT PackagePath);
+            Session* OpenPackage(
+                [in] VARIANT PackagePath,
+                [in, optional, defaultvalue(0)] long Options);
         [id(DISPID_INSTALLER_OPENPRODUCT)]
             Session* OpenProduct([in] BSTR ProductCode);
         [id(DISPID_INSTALLER_OPENDATABASE)]
@@ -300,6 +314,41 @@ library WindowsInstaller
                 [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);
     };
 
     [
@@ -698,8 +747,118 @@ library WindowsInstaller
     };
 
     typedef enum {
-        msiDatabaseNullInteger = 0x80000000  /* -2147483648 from oleview, but widl makes it into two "-"'s 
-  				              * which screws up msiserver.h */
+        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),
+        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 {
diff --git a/dlls/msi/msiserver_dispids.h b/dlls/msi/msiserver_dispids.h
index db39ec0..093efb0 100644
--- a/dlls/msi/msiserver_dispids.h
+++ b/dlls/msi/msiserver_dispids.h
@@ -63,6 +63,13 @@ #define DISPID_INSTALLER_FORCESOURCELIST
 #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
@@ -138,3 +145,36 @@ #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