[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