diff options
Diffstat (limited to 'libmsi/msiserver.idl')
-rw-r--r-- | libmsi/msiserver.idl | 558 |
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; } +} |