summaryrefslogtreecommitdiffstats
path: root/libmsi/msiserver.idl
diff options
context:
space:
mode:
Diffstat (limited to 'libmsi/msiserver.idl')
-rw-r--r--libmsi/msiserver.idl558
1 files changed, 558 insertions, 0 deletions
diff --git a/libmsi/msiserver.idl b/libmsi/msiserver.idl
new file mode 100644
index 0000000..669d7f2
--- /dev/null
+++ b/libmsi/msiserver.idl
@@ -0,0 +1,558 @@
+/*
+ * 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
+ * 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
+ */
+
+#include "msiserver_dispids.h"
+import "unknwn.idl";
+import "wtypes.idl";
+import "objidl.idl";
+import "oaidl.idl";
+
+cpp_quote("#if 0")
+typedef unsigned long MSIHANDLE;
+typedef int INSTALLMESSAGE;
+typedef int MSICONDITION;
+typedef int MSIRUNMODE;
+typedef int INSTALLSTATE;
+cpp_quote("#endif")
+
+[
+ uuid(7BDE2046-D03B-4ffc-B84C-A098F38CFF0B),
+ oleautomation,
+ object
+]
+interface IWineMsiRemoteDatabase : IUnknown
+{
+ HRESULT IsTablePersistent( [in] LPCWSTR table, [out] MSICONDITION *persistent );
+ HRESULT GetPrimaryKeys( [in] LPCWSTR table, [out] MSIHANDLE *keys );
+ HRESULT GetSummaryInformation( [in] UINT updatecount, [out] MSIHANDLE *suminfo );
+ HRESULT OpenView( [in] LPCWSTR query, [out] MSIHANDLE *view );
+ HRESULT SetMsiHandle( [in] MSIHANDLE handle );
+}
+
+[
+ uuid(902B3592-9D08-4dfd-A593-D07C52546421),
+ oleautomation,
+ object
+]
+interface IWineMsiRemotePackage : IUnknown
+{
+ HRESULT SetMsiHandle( [in] MSIHANDLE handle );
+ HRESULT GetActiveDatabase( [out] MSIHANDLE *handle );
+ HRESULT GetProperty( [in] BSTR property, [out, size_is(*size)] BSTR value, [in, out] DWORD *size );
+ HRESULT SetProperty( [in] BSTR property, [in] BSTR value );
+ HRESULT ProcessMessage( [in] INSTALLMESSAGE message, [in] MSIHANDLE record );
+ HRESULT DoAction( [in] BSTR action );
+ HRESULT Sequence( [in] BSTR table, [in] int sequence );
+ HRESULT GetTargetPath( [in] BSTR folder, [out, size_is(*size)] BSTR value, [in, out] DWORD *size );
+ HRESULT SetTargetPath( [in] BSTR folder, [in] BSTR value );
+ HRESULT GetSourcePath( [in] BSTR folder, [out, size_is(*size)] BSTR value, [in, out] DWORD *size );
+ HRESULT GetMode( [in] MSIRUNMODE mode, [out] BOOL *ret );
+ HRESULT SetMode( [in] MSIRUNMODE mode, [in] BOOL state );
+ HRESULT GetFeatureState( [in] BSTR feature, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action );
+ HRESULT SetFeatureState( [in] BSTR feature, [in] INSTALLSTATE state );
+ HRESULT GetComponentState( [in] BSTR component, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action );
+ HRESULT SetComponentState( [in] BSTR component, [in] INSTALLSTATE state );
+ HRESULT GetLanguage( [out] LANGID *language );
+ HRESULT SetInstallLevel( [in] int level );
+ HRESULT FormatRecord( [in] MSIHANDLE record, [out] BSTR *value );
+ HRESULT EvaluateCondition( [in] BSTR condition );
+ HRESULT GetFeatureCost( [in] BSTR feature, [in] INT cost_tree, [in] INSTALLSTATE state, [out] INT *cost );
+ HRESULT EnumComponentCosts( [in] BSTR component, [in] DWORD index, [in] INSTALLSTATE state,
+ [out, size_is(*buflen)] BSTR drive, [in, out] DWORD *buflen, [out] INT *cost, [out] INT *temp );
+}
+
+[
+ uuid(56D58B64-8780-4c22-A8BC-8B0B29E4A9F8),
+ oleautomation,
+ object
+]
+interface IWineMsiRemoteCustomAction : IUnknown
+{
+ HRESULT GetActionInfo( [in] LPCGUID guid, [out] INT *type, [out] MSIHANDLE *handle, [out] BSTR *dllname,
+ [out] BSTR *function, [out] IWineMsiRemotePackage **package );
+}
+
+[
+ uuid(000c101c-0000-0000-c000-000000000046),
+ oleautomation,
+ object
+]
+interface IMsiServer : IUnknown
+{
+ /* FIXME: methods */
+}
+
+[
+ uuid(000c101d-0000-0000-c000-000000000046),
+ oleautomation,
+ object
+]
+interface IMsiMessage : IUnknown
+{
+ /* FIXME: methods */
+}
+
+[
+ uuid(000c1025-0000-0000-c000-000000000046),
+ oleautomation,
+ object
+]
+interface IMsiCustomAction : IUnknown
+{
+ /* FIXME: methods */
+}
+
+[
+ uuid(000c1033-0000-0000-c000-000000000046),
+ oleautomation,
+ object
+]
+interface IMsiRemoteAPI : IUnknown
+{
+ /* FIXME: methods */
+}
+
+[
+ helpstring("Msi install server"),
+ progid("IMsiServer"),
+ uuid(000c101c-0000-0000-c000-000000000046)
+]
+coclass MsiServer { interface IMsiServer; }
+
+[
+ helpstring("Microsoft Windows Installer Message RPC"),
+ progid("WindowsInstaller.Message"),
+ uuid(000c101d-0000-0000-c000-000000000046)
+]
+coclass MsiServerMessage { interface IMsiMessage; }
+
+[
+ threading(both),
+ uuid(000c103e-0000-0000-c000-000000000046)
+]
+coclass PSFactoryBuffer { interface IPSFactoryBuffer; }
+
+[
+ uuid(000c1082-0000-0000-c000-000000000046)
+]
+coclass MsiTransform { }
+
+[
+ uuid(000c1084-0000-0000-c000-000000000046)
+]
+coclass MsiDatabase { }
+
+[
+ uuid(000c1086-0000-0000-c000-000000000046)
+]
+coclass MsiPatch { }
+
+[
+ threading(apartment),
+ uuid(000c1094-0000-0000-c000-000000000046)
+]
+/* FIXME: unidentified class */
+coclass MsiServerX3 { interface IMsiServer; }
+
+[
+ uuid(ba26e6fa-4f27-4f56-953a-3f90272018aa)
+]
+coclass WineMsiRemoteCustomAction { interface WineMsiRemoteCustomAction; }
+
+[
+ uuid(902b3592-9d08-4dfd-a593-d07c52546421)
+]
+coclass WineMsiRemotePackage { interface WineMsiRemotePackage; }
+
+
+[ uuid(000C1092-0000-0000-C000-000000000046), version(1.0) ]
+library WindowsInstaller
+{
+ dispinterface Installer;
+ dispinterface Record;
+ dispinterface Session;
+ dispinterface Database;
+ dispinterface SummaryInfo;
+ dispinterface View;
+ dispinterface UIPreview;
+ dispinterface FeatureInfo;
+ dispinterface RecordList;
+ dispinterface StringList;
+ dispinterface Product;
+ dispinterface Patch;
+
+ 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 {
+ msiOpenDatabaseModeReadOnly = 0,
+ msiOpenDatabaseModeTransact = 1,
+ msiOpenDatabaseModeDirect = 2,
+ msiOpenDatabaseModeCreate = 3,
+ msiOpenDatabaseModeCreateDirect = 4,
+ msiOpenDatabaseModePatchFile = 32
+ } MsiOpenDatabaseMode;
+
+ typedef enum {
+ msiUILevelNoChange = 0,
+ msiUILevelDefault = 1,
+ msiUILevelNone = 2,
+ msiUILevelBasic = 3,
+ msiUILevelReduced = 4,
+ msiUILevelFull = 5,
+ msiUILevelHideCancel = 32,
+ msiUILevelProgressOnly = 64,
+ msiUILevelEndDialog = 128,
+ msiUILevelSourceResOnly = 256
+ } MsiUILevel;
+
+ [ uuid(000C1090-0000-0000-C000-000000000046) ]
+ 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_SUMMARYINFORMATION)]
+ SummaryInfo* SummaryInformation(
+ [in] BSTR PackagePath,
+ [in, optional, defaultvalue(0)] long UpdateCount);
+ [id(DISPID_INSTALLER_OPENDATABASE)]
+ Database *OpenDatabase(
+ [in] BSTR DatabasePath,
+ [in] VARIANT OpenMode);
+ [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)]
+ BSTR Version();
+ [id(DISPID_INSTALLER_LASTERRORRECORD)]
+ Record* LastErrorRecord();
+ [id(DISPID_INSTALLER_REGISTRYVALUE), propget]
+ BSTR RegistryValue(
+ [in] VARIANT Root,
+ [in] BSTR Key,
+ [in, optional] VARIANT Value);
+ [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_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_PRODUCTSTATE), propget]
+ MsiInstallState ProductState(
+ [in] BSTR Product);
+ [id(DISPID_INSTALLER_PRODUCTINFO), propget]
+ BSTR ProductInfo(
+ [in] BSTR Product,
+ [in] BSTR Attribute);
+ [id(DISPID_INSTALLER_PRODUCTS), propget]
+ StringList *Products();
+ [id(DISPID_INSTALLER_RELATEDPRODUCTS), propget]
+ StringList *RelatedProducts(
+ [in] BSTR UpgradeCode);
+ }
+
+ [ uuid(000C1093-0000-0000-C000-000000000046) ]
+ 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_FIELDCOUNT), propget]
+ long FieldCount();
+ }
+
+ [ uuid(000C1095-0000-0000-C000-000000000046) ]
+ dispinterface StringList
+ {
+ properties:
+ methods:
+ [id(DISPID_LIST__NEWENUM)]
+ IUnknown _NewEnum();
+ [id(DISPID_LIST_ITEM), propget]
+ BSTR Item(long Index);
+ [id(DISPID_LIST_COUNT), propget]
+ long Count();
+ }
+
+ [ uuid(000C1096-0000-0000-C000-000000000046) ]
+ dispinterface RecordList
+ {
+ properties:
+ methods:
+ }
+
+ [ uuid(000C109A-0000-0000-C000-000000000046) ]
+ dispinterface UIPreview
+ {
+ properties:
+ methods:
+ }
+
+ [ uuid(000C109B-0000-0000-C000-000000000046) ]
+ 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();
+ }
+
+ 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 function name */
+
+ [ uuid(000C109C-0000-0000-C000-000000000046) ]
+ 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_CLOSE)]
+ void Close();
+ }
+
+ [ uuid(000C109D-0000-0000-C000-000000000046) ]
+ dispinterface Database
+ {
+ properties:
+ methods:
+ [id(DISPID_DATABASE_OPENVIEW)]
+ View* OpenView([in] BSTR Sql);
+ [id(DISPID_DATABASE_SUMMARYINFORMATION), propget]
+ SummaryInfo *SummaryInformation([in, optional, defaultvalue(0)] long UpdateCount);
+ }
+
+ 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 {
+ 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 = 0x01000000,
+ msiMessageTypeWarning = 0x02000000,
+ msiMessageTypeUser = 0x03000000,
+ msiMessageTypeInfo = 0x04000000,
+ msiMessageTypeFilesInUse = 0x05000000,
+ msiMessageTypeResolveSource = 0x06000000,
+ msiMessageTypeOutOfDiskSpace = 0x07000000,
+ msiMessageTypeActionStart = 0x08000000,
+ msiMessageTypeActionData = 0x09000000,
+ msiMessageTypeProgress = 0x0a000000,
+ msiMessageTypeCommonData = 0x0b000000,
+ msiMessageTypeOk = 0,
+ msiMessageTypeOkCancel = 1,
+ msiMessageTypeAbortRetryIgnore = 2,
+ msiMessageTypeYesNoCancel = 3,
+ msiMessageTypeYesNo = 4,
+ msiMessageTypeRetryCancel = 5,
+ msiMessageTypeDefault1 = 0,
+ msiMessageTypeDefault2 = 256,
+ msiMessageTypeDefault3 = 512
+ } MsiMessageType;
+
+ [ uuid(000C109E-0000-0000-C000-000000000046) ]
+ 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_DOACTION)]
+ MsiDoActionStatus DoAction([in] BSTR Action);
+ [id(DISPID_SESSION_EVALUATECONDITION)]
+ _MsiEvaluateCondition EvaluateCondition([in] BSTR Expression);
+ [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_SETINSTALLLEVEL)]
+ void SetInstallLevel([in] long Level);
+ }
+
+ [ uuid(000C109F-0000-0000-C000-000000000046) ]
+ dispinterface FeatureInfo
+ {
+ properties:
+ methods:
+ }
+
+ [ uuid(000C10A0-0000-0000-C000-000000000046) ]
+ dispinterface Product
+ {
+ properties:
+ methods:
+ }
+
+ [ uuid(000C10A1-0000-0000-C000-000000000046) ]
+ dispinterface Patch
+ {
+ properties:
+ methods:
+ }
+
+ [
+ helpstring("Microsoft Windows Installer"),
+ threading(apartment),
+ progid("WindowsInstaller.Installer"),
+ uuid(000c1090-0000-0000-c000-000000000046)
+ ]
+ coclass MsiInstaller { interface Installer; }
+}