From bb55acb57753c91b720f6fba99961c9ab3edf54b Mon Sep 17 00:00:00 2001 From: Misha Koshelev Date: Mon, 30 Apr 2007 20:53:49 -0500 Subject: [PATCH] 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(+) create mode 100644 dlls/msi/msiserver_dispids.h diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c index 87149065dc0..229978efa0f 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 9966d90c37f..4d6c00b6759 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 00000000000..1c7a17f5af3 --- /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