Misha Koshelev : msi: Expand IDL file to contain some OLE automation interface functions.

Alexandre Julliard julliard at wine.codeweavers.com
Tue May 1 07:39:29 CDT 2007


Module: wine
Branch: master
Commit: bb55acb57753c91b720f6fba99961c9ab3edf54b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bb55acb57753c91b720f6fba99961c9ab3edf54b

Author: Misha Koshelev <mk144210 at bcm.edu>
Date:   Mon Apr 30 20:53:49 2007 -0500

msi: Expand IDL file to contain some OLE automation interface functions.

---

 dlls/msi/automation.c        |    1 +
 dlls/msi/msiserver.idl       |   93 ++++++++++++++++++++++++++++++++++++++++++
 dlls/msi/msiserver_dispids.h |   36 ++++++++++++++++
 3 files changed, 130 insertions(+), 0 deletions(-)

diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c
index 8714906..229978e 100644
--- a/dlls/msi/automation.c
+++ b/dlls/msi/automation.c
@@ -33,6 +33,7 @@
 #include "wine/unicode.h"
 
 #include "msiserver.h"
+#include "msiserver_dispids.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(msi);
 
diff --git a/dlls/msi/msiserver.idl b/dlls/msi/msiserver.idl
index 9966d90..4d6c00b 100644
--- a/dlls/msi/msiserver.idl
+++ b/dlls/msi/msiserver.idl
@@ -16,6 +16,7 @@
  * 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";
@@ -42,6 +43,10 @@ library WindowsInstaller
     {
     properties:
     methods:
+        [id(DISPID_INSTALLER_OPENPACKAGE)]
+            Session* OpenPackage(
+                [in] VARIANT Path,
+                [in, optional, defaultvalue(0)] long OptionalOption);
     }
 
     [ uuid(000C1093-0000-0000-C000-000000000046) ]
@@ -49,6 +54,12 @@ library WindowsInstaller
     {
     properties:
     methods:
+        [id(DISPID_RECORD_STRINGDATA), propget]
+            BSTR StringData([in] long FieldNumber);
+        [id(DISPID_RECORD_STRINGDATA), propput]
+            void StringData(
+                [in] long FieldNumber,
+                [in] BSTR rhs);
     }
 
     [ uuid(000C1095-0000-0000-C000-000000000046) ]
@@ -84,6 +95,12 @@ library WindowsInstaller
     {
         properties:
         methods:
+        [id(DISPID_VIEW_EXECUTE)]
+            void Execute([in, optional, defaultvalue(0)] Record *OptionalRecord);
+        [id(DISPID_VIEW_FETCH)]
+            Record* Fetch();
+        [id(DISPID_VIEW_CLOSE)]
+            void Close();
     }
 
     [ uuid(000C109D-0000-0000-C000-000000000046) ]
@@ -91,13 +108,89 @@ library WindowsInstaller
     {
         properties:
         methods:
+        [id(DISPID_DATABASE_OPENVIEW)]
+            View* OpenView([in] BSTR QueryString);
     }
 
+    typedef enum {
+        msiDoActionStatusNoAction = 0,
+        msiDoActionStatusSuccess = 1,
+        msiDoActionStatusUserExit = 2,
+        msiDoActionStatusFailure = 3,
+        msiDoActionStatusSuspend = 4,
+        msiDoActionStatusFinished = 5,
+        msiDoActionStatusWrongState = 6,
+        msiDoActionStatusBadActionData = 7
+    } MsiDoActionStatus;
+
+    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 {
+        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;
+
     [ uuid(000C109E-0000-0000-C000-000000000046) ]
     dispinterface Session
     {
     properties:
     methods:
+        [id(DISPID_SESSION_PROPERTY), propget]
+            BSTR Property([in] BSTR PropertyName);
+        [id(DISPID_SESSION_PROPERTY), propput]
+            void Property(
+                [in] BSTR PropertyName,
+                [in] BSTR rhs);
+        [id(DISPID_SESSION_LANGUAGE), propget]
+            long Language();
+        [id(DISPID_SESSION_MODE), propget]
+            VARIANT_BOOL Mode([in] MsiRunMode runMode);
+        [id(DISPID_SESSION_MODE), propput]
+            void Mode(
+                [in] MsiRunMode runMode,
+                [in] VARIANT_BOOL rhs);
+        [id(DISPID_SESSION_DATABASE), propget]
+            Database* Database();
+        [id(DISPID_SESSION_DOACTION)]
+            MsiDoActionStatus DoAction([in] BSTR ActionString);
+        [id(DISPID_SESSION_FEATURECURRENTSTATE), propget]
+            MsiInstallState FeatureCurrentState([in] BSTR FeatureName);
+        [id(DISPID_SESSION_FEATUREREQUESTSTATE), propget]
+            MsiInstallState FeatureRequestState([in] BSTR FeatureName);
+        [id(DISPID_SESSION_FEATUREREQUESTSTATE), propput]
+            void FeatureRequestState(
+                [in] BSTR FeatureName,
+                [in] MsiInstallState rhs);
+        [id(DISPID_SESSION_SETINSTALLLEVEL)]
+            void SetInstallLevel([in] long InstallLevel);
     }
 
     [ uuid(000C109F-0000-0000-C000-000000000046) ]
diff --git a/dlls/msi/msiserver_dispids.h b/dlls/msi/msiserver_dispids.h
new file mode 100644
index 0000000..1c7a17f
--- /dev/null
+++ b/dlls/msi/msiserver_dispids.h
@@ -0,0 +1,36 @@
+/*
+ * 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_OPENPACKAGE 2
+
+#define DISPID_RECORD_STRINGDATA 1
+
+#define DISPID_VIEW_EXECUTE 1
+#define DISPID_VIEW_FETCH 2
+#define DISPID_VIEW_CLOSE 4
+
+#define DISPID_DATABASE_OPENVIEW 3
+
+#define DISPID_SESSION_PROPERTY 2
+#define DISPID_SESSION_LANGUAGE 3
+#define DISPID_SESSION_MODE 4
+#define DISPID_SESSION_DATABASE 5
+#define DISPID_SESSION_DOACTION 8
+#define DISPID_SESSION_FEATURECURRENTSTATE 13
+#define DISPID_SESSION_FEATUREREQUESTSTATE 14
+#define DISPID_SESSION_SETINSTALLLEVEL 19




More information about the wine-cvs mailing list