ReactOS  0.4.14-dev-52-g6116262
msiserver.idl
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2007 Mike McCormack
3  * Copyright (C) 2007 Misha Koshelev
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18  */
19 
20 #pragma makedep ident
21 #pragma makedep register
22 #pragma makedep regtypelib
23 
24 #include "msiserver_dispids.h"
25 import "unknwn.idl";
26 import "wtypes.idl";
27 import "objidl.idl";
28 import "oaidl.idl";
29 
30 cpp_quote("#if 0")
31 typedef unsigned long MSIHANDLE;
32 typedef int INSTALLMESSAGE;
33 typedef int MSICONDITION;
34 typedef int MSIRUNMODE;
35 typedef int INSTALLSTATE;
36 cpp_quote("#endif")
37 
38 [
39  uuid(7BDE2046-D03B-4ffc-B84C-A098F38CFF0B),
41  object
42 ]
44 {
50 }
51 
52 [
53  uuid(902B3592-9D08-4dfd-A593-D07C52546421),
55  object
56 ]
58 {
61  HRESULT GetProperty( [in] BSTR property, [out, size_is(*size)] BSTR value, [in, out] DWORD *size );
65  HRESULT Sequence( [in] BSTR table, [in] int sequence );
66  HRESULT GetTargetPath( [in] BSTR folder, [out, size_is(*size)] BSTR value, [in, out] DWORD *size );
68  HRESULT GetSourcePath( [in] BSTR folder, [out, size_is(*size)] BSTR value, [in, out] DWORD *size );
73  HRESULT GetComponentState( [in] BSTR component, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action );
75  HRESULT GetLanguage( [out] LANGID *language );
79  HRESULT GetFeatureCost( [in] BSTR feature, [in] INT cost_tree, [in] INSTALLSTATE state, [out] INT *cost );
81  [out, size_is(*buflen)] BSTR drive, [in, out] DWORD *buflen, [out] INT *cost, [out] INT *temp );
82 }
83 
84 [
85  uuid(56D58B64-8780-4c22-A8BC-8B0B29E4A9F8),
87  object
88 ]
90 {
92  [out] BSTR *function, [out] IWineMsiRemotePackage **package );
93 }
94 
95 [
96  uuid(000c101c-0000-0000-c000-000000000046),
98  object
99 ]
100 interface IMsiServer : IUnknown
101 {
102  /* FIXME: methods */
103 }
104 
105 [
106  uuid(000c101d-0000-0000-c000-000000000046),
108  object
109 ]
111 {
112  /* FIXME: methods */
113 }
114 
115 [
116  uuid(000c1025-0000-0000-c000-000000000046),
118  object
119 ]
121 {
122  /* FIXME: methods */
123 }
124 
125 [
126  uuid(000c1033-0000-0000-c000-000000000046),
128  object
129 ]
131 {
132  /* FIXME: methods */
133 }
134 
135 [
136  helpstring("Msi install server"),
137  progid("IMsiServer"),
138  uuid(000c101c-0000-0000-c000-000000000046)
139 ]
140 coclass MsiServer { interface IMsiServer; }
141 
142 [
143  helpstring("Microsoft Windows Installer Message RPC"),
144  progid("WindowsInstaller.Message"),
145  uuid(000c101d-0000-0000-c000-000000000046)
146 ]
147 coclass MsiServerMessage { interface IMsiMessage; }
148 
149 [
150  threading(both),
151  uuid(000c103e-0000-0000-c000-000000000046)
152 ]
153 coclass PSFactoryBuffer { interface IPSFactoryBuffer; }
154 
155 [
156  helpstring("Microsoft Windows Installer"),
158  progid("WindowsInstaller.Installer"),
159  uuid(000c1090-0000-0000-c000-000000000046)
160 ]
161 coclass MsiInstaller { interface Installer; }
162 
163 [
164  uuid(000c1082-0000-0000-c000-000000000046)
165 ]
166 coclass MsiTransform { }
167 
168 [
169  uuid(000c1084-0000-0000-c000-000000000046)
170 ]
171 coclass MsiDatabase { }
172 
173 [
174  uuid(000c1086-0000-0000-c000-000000000046)
175 ]
176 coclass MsiPatch { }
177 
178 [
180  uuid(000c1094-0000-0000-c000-000000000046)
181 ]
182 /* FIXME: unidentified class */
183 coclass MsiServerX3 { interface IMsiServer; }
184 
185 [
186  uuid(ba26e6fa-4f27-4f56-953a-3f90272018aa)
187 ]
189 
190 [
191  uuid(902b3592-9d08-4dfd-a593-d07c52546421)
192 ]
193 coclass WineMsiRemotePackage { interface WineMsiRemotePackage; }
194 
195 [ uuid(000C1092-0000-0000-C000-000000000046), version(1.0) ]
197 {
198  dispinterface Installer;
199  dispinterface Record;
200  dispinterface Session;
201  dispinterface Database;
202  dispinterface SummaryInfo;
203  dispinterface View;
204  dispinterface UIPreview;
205  dispinterface FeatureInfo;
206  dispinterface RecordList;
207  dispinterface StringList;
208  dispinterface Product;
209  dispinterface Patch;
210 
211  typedef enum {
225  } MsiInstallState;
226 
227  typedef enum {
235 
236  typedef enum {
247  } MsiUILevel;
248 
249  [ uuid(000C1090-0000-0000-C000-000000000046) ]
250  dispinterface Installer
251  {
252  properties:
254  MsiUILevel UILevel;
255  methods:
257  Record *CreateRecord([in] long Count);
259  Session* OpenPackage(
260  [in] VARIANT PackagePath,
261  [in, defaultvalue(0)] long Options);
263  Session* OpenProduct(
264  [in] BSTR ProductCode);
266  SummaryInfo* SummaryInformation(
267  [in] BSTR PackagePath,
268  [in, defaultvalue(0)] long UpdateCount);
270  Database *OpenDatabase(
271  [in] BSTR DatabasePath,
272  [in] VARIANT OpenMode);
274  void EnableLog(
275  [in] BSTR LogMode,
276  [in] BSTR LogFile);
278  void InstallProduct(
279  [in] BSTR PackagePath,
280  [in, defaultvalue("0")] BSTR PropertyValues);
282  BSTR Version();
284  Record* LastErrorRecord();
286  BSTR RegistryValue(
287  [in] VARIANT Root,
288  [in] BSTR Key,
289  [in, optional] VARIANT Value);
290  [id(DISPID_INSTALLER_ENVIRONMENT), propget]
291  BSTR Environment([in] BSTR Variable);
292  [id(DISPID_INSTALLER_ENVIRONMENT), propput]
293  void Environment(
294  [in] BSTR Variable,
295  [in] BSTR rhs);
297  long FileAttributes([in] BSTR FilePath);
299  long FileSize([in] BSTR FilePath);
301  BSTR FileVersion(
302  [in] BSTR FilePath,
303  [in, optional] VARIANT Language);
305  MsiInstallState ProductState(
306  [in] BSTR Product);
307  [id(DISPID_INSTALLER_PRODUCTINFO), propget]
308  BSTR ProductInfo(
309  [in] BSTR Product,
310  [in] BSTR Attribute);
311  [id(DISPID_INSTALLER_PRODUCTS), propget]
312  StringList *Products();
314  StringList *RelatedProducts(
315  [in] BSTR UpgradeCode);
316  }
317 
318  [ uuid(000C1093-0000-0000-C000-000000000046) ]
319  dispinterface Record
320  {
321  properties:
322  methods:
323  [id(DISPID_RECORD_STRINGDATA), propget]
324  BSTR StringData([in] long Field);
325  [id(DISPID_RECORD_STRINGDATA), propput]
326  void StringData(
327  [in] long Field,
328  [in] BSTR rhs);
329  [id(DISPID_RECORD_INTEGERDATA), propget]
330  long IntegerData([in] long Field);
331  [id(DISPID_RECORD_INTEGERDATA), propput]
332  void IntegerData(
333  [in] long Field,
334  [in] long rhs);
335  [id(DISPID_RECORD_FIELDCOUNT), propget]
336  long FieldCount();
337  }
338 
339  [ uuid(000C1095-0000-0000-C000-000000000046) ]
340  dispinterface StringList
341  {
342  properties:
343  methods:
345  IUnknown _NewEnum();
346  [id(DISPID_LIST_ITEM), propget]
347  BSTR Item(long Index);
348  [id(DISPID_LIST_COUNT), propget]
349  long Count();
350  }
351 
352  [ uuid(000C1096-0000-0000-C000-000000000046) ]
353  dispinterface RecordList
354  {
355  properties:
356  methods:
357  }
358 
359  [ uuid(000C109A-0000-0000-C000-000000000046) ]
360  dispinterface UIPreview
361  {
362  properties:
363  methods:
364  }
365 
366  [ uuid(000C109B-0000-0000-C000-000000000046) ]
367  dispinterface SummaryInfo
368  {
369  properties:
370  methods:
371  [id(DISPID_SUMMARYINFO_PROPERTY), propget]
372  VARIANT Property([in] long Pid);
373  [id(DISPID_SUMMARYINFO_PROPERTY), propput]
374  void Property(
375  [in] long Pid,
376  [in] VARIANT rhs);
378  long PropertyCount();
379  }
380 
381  typedef enum {
382  msiViewModifySeek = -1,
388  msiViewModifyMerge = 5,
395  } _MsiViewModify; /* Added underscore to avoid conflict with function name */
396 
397  [ uuid(000C109C-0000-0000-C000-000000000046) ]
398  dispinterface View
399  {
400  properties:
401  methods:
403  void Execute([in, defaultvalue(0)] Record *Params);
405  Record* Fetch();
407  void Modify(
409  Record *Record);
411  void Close();
412  }
413 
414  [ uuid(000C109D-0000-0000-C000-000000000046) ]
415  dispinterface Database
416  {
417  properties:
418  methods:
420  View* OpenView([in] BSTR Sql);
422  SummaryInfo *SummaryInformation([in, defaultvalue(0)] long UpdateCount);
423  }
424 
425  typedef enum {
426  msiDoActionStatusNoAction = 0,
434  } MsiDoActionStatus;
435 
436  typedef enum {
453  } MsiRunMode;
454 
455  typedef enum {
460  } _MsiEvaluateCondition; /* Added underscore to avoid conflict with function name */
461 
462  typedef enum {
473 
474  typedef enum {
476  msiMessageTypeError = 0x01000000,
477  msiMessageTypeWarning = 0x02000000,
478  msiMessageTypeUser = 0x03000000,
479  msiMessageTypeInfo = 0x04000000,
496  } MsiMessageType;
497 
498  [ uuid(000C109E-0000-0000-C000-000000000046) ]
499  dispinterface Session
500  {
501  properties:
502  methods:
503  [id(DISPID_SESSION_INSTALLER), propget]
504  Installer *Installer();
505  [id(DISPID_SESSION_PROPERTY), propget]
506  BSTR Property([in] BSTR Name);
507  [id(DISPID_SESSION_PROPERTY), propput]
508  void Property(
509  [in] BSTR Name,
510  [in] BSTR rhs);
511  [id(DISPID_SESSION_LANGUAGE), propget]
512  long Language();
513  [id(DISPID_SESSION_MODE), propget]
515  [id(DISPID_SESSION_MODE), propput]
516  void Mode(
517  [in] MsiRunMode Flag,
518  [in] VARIANT_BOOL rhs);
519  [id(DISPID_SESSION_DATABASE), propget]
520  Database* Database();
522  MsiDoActionStatus DoAction([in] BSTR Action);
524  _MsiEvaluateCondition EvaluateCondition([in] BSTR Expression);
527  [in] MsiMessageType Kind,
528  [in] Record *Record);
530  MsiInstallState FeatureCurrentState([in] BSTR Feature);
532  MsiInstallState FeatureRequestState([in] BSTR Feature);
534  void FeatureRequestState(
535  [in] BSTR Feature,
536  [in] MsiInstallState rhs);
538  void SetInstallLevel([in] long Level);
539  }
540 
541  [ uuid(000C109F-0000-0000-C000-000000000046) ]
542  dispinterface FeatureInfo
543  {
544  properties:
545  methods:
546  }
547 
548  [ uuid(000C10A0-0000-0000-C000-000000000046) ]
549  dispinterface Product
550  {
551  properties:
552  methods:
553  }
554 
555  [ uuid(000C10A1-0000-0000-C000-000000000046) ]
556  dispinterface Patch
557  {
558  properties:
559  methods:
560  }
561 }
WindowsInstaller::enum msiDoActionStatusUserExit
int INSTALLMESSAGE
Definition: msiserver.idl:32
#define DISPID_SESSION_LANGUAGE
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2343
#define DISPID_INSTALLER_OPENPACKAGE
INTERNETFEATURELIST feature
Definition: misc.c:1689
HRESULT Sequence([in] BSTR table, [in] int sequence)
GLint level
Definition: gl.h:1546
PVOID PVOID PWCHAR PVOID Environment
Definition: env.c:45
WindowsInstaller::enum msiDoActionStatusWrongState
PCWSTR Expression
Definition: tftpd.h:59
HRESULT GetLanguage([out] LANGID *language)
IN PVOID IN PVOID IN USHORT Version
Definition: pci.h:359
Definition: fci.c:115
#define DISPID_INSTALLER_OPENPRODUCT
WindowsInstaller::enum msiDoActionStatusFinished
HRESULT SetComponentState([in] BSTR component, [in] INSTALLSTATE state)
_In_ ULONG Mode
Definition: hubbusif.h:303
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define DISPID_INSTALLER_PRODUCTS
#define DISPID_INSTALLER_FILESIZE
#define DISPID_INSTALLER_ENABLELOG
#define DISPID_RECORD_INTEGERDATA
#define DISPID_INSTALLER_SUMMARYINFORMATION
VOID Execute(LPTSTR Path)
Definition: stats.c:407
HRESULT GetSummaryInformation([in] UINT updatecount, [out] MSIHANDLE *suminfo)
#define DISPID_SESSION_EVALUATECONDITION
#define DISPID_INSTALLER_OPENDATABASE
WindowsInstaller::enum msiDoActionStatusBadActionData
#define DISPID_LIST_ITEM
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
Definition: exfuncs.h:1015
#define DISPID_INSTALLER_CREATERECORD
struct _Patch Patch
#define DISPID_SESSION_PROPERTY
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
Definition: wmitypes.h:55
#define DISPID_INSTALLER_FILEVERSION
#define DISPID_SESSION_DOACTION
WORD LANGID
Definition: typedefs.h:79
#define DISPID_LIST__NEWENUM
#define DISPID_INSTALLER_UILEVEL
OLECHAR * BSTR
Definition: compat.h:1934
#define DISPID_SESSION_FEATURECURRENTSTATE
FT_Library library
Definition: cffdrivr.c:654
int MSIRUNMODE
Definition: msiserver.idl:34
#define DISPID_LIST_COUNT
HRESULT SetMode([in] MSIRUNMODE mode, [in] BOOL state)
enum OPTION_FLAGS Options
Definition: stats.c:44
#define DISPID_SUMMARYINFO_PROPERTYCOUNT
int32_t INT
Definition: typedefs.h:56
short VARIANT_BOOL
Definition: compat.h:1931
#define DISPID_INSTALLER_FILEATTRIBUTES
coclass AMMultiMediaStream cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") cpp_quote("DEFINE_GUID(CLSID_AMAudioStream
unsigned long MSIHANDLE
Definition: msiserver.idl:25
coclass TestTypelib::Coclass3 oleautomation
Definition: tmarshal.idl:199
HRESULT SetFeatureState([in] BSTR feature, [in] INSTALLSTATE state)
PCWSTR FilePath
static const CHAR suminfo[]
Definition: db.c:2211
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD * Record
Definition: ketypes.h:256
HRESULT GetComponentState([in] BSTR component, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action)
const GUID * guid
WindowsInstaller::enum msiDoActionStatusSuccess
HRESULT IsTablePersistent([in] LPCWSTR table, [out] MSICONDITION *persistent)
unsigned int BOOL
Definition: ntddk_ex.h:94
#define DISPID_INSTALLER_VERSION
HRESULT GetMode([in] MSIRUNMODE mode, [out] BOOL *ret)
HRESULT EvaluateCondition([in] BSTR condition)
HRESULT SetProperty([in] BSTR property, [in] BSTR value)
GLenum condition
Definition: glext.h:9255
WindowsInstaller::enum _MsiViewModify
static const WCHAR version[]
Definition: asmname.c:64
GLuint index
Definition: glext.h:6031
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
Definition: fltkernel.h:1230
HRESULT SetMsiHandle([in] MSIHANDLE handle)
Definition: msg.h:41
root entry for file system trees
Definition: entries.h:148
#define DISPID_SUMMARYINFO_PROPERTY
GLsizeiptr size
Definition: glext.h:5919
HRESULT SetTargetPath([in] BSTR folder, [in] BSTR value)
HRESULT OpenView([in] LPCWSTR query, [out] MSIHANDLE *view)
LONG HRESULT
Definition: typedefs.h:77
#define DISPID_VIEW_CLOSE
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG Action
Definition: fsrtlfuncs.h:738
#define DISPID_INSTALLER_PRODUCTINFO
#define DISPID_RECORD_STRINGDATA
Definition: xml2sdb.h:79
HRESULT SetMsiHandle([in] MSIHANDLE handle)
static const UCHAR Index[8]
Definition: usbohci.c:18
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
HRESULT GetFeatureState([in] BSTR feature, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action)
#define DISPID_SESSION_INSTALLER
coclass PSFactoryBuffer threading(apartment)
HRESULT FormatRecord([in] MSIHANDLE record, [out] BSTR *value)
coclass MsiServer progid("WindowsInstaller.Message")
#define DISPID_SESSION_MODE
CHAR Message[80]
Definition: alive.c:5
#define DISPID_INSTALLER_LASTERRORRECORD
int ret
HRESULT GetFeatureCost([in] BSTR feature, [in] INT cost_tree, [in] INSTALLSTATE state, [out] INT *cost)
static struct message * sequence
Definition: subclass.c:48
coclass MsiServer helpstring("Microsoft Windows Installer Message RPC")
#define DISPID_SESSION_SETINSTALLLEVEL
static int state
Definition: maze.c:121
HRESULT DoAction([in] BSTR action)
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
Definition: fsrtlfuncs.h:108
#define DISPID_VIEW_MODIFY
int MSICONDITION
Definition: msiserver.idl:33
#define DISPID_INSTALLER_PRODUCTSTATE
GLenum mode
Definition: glext.h:6217
#define DISPID_RECORD_FIELDCOUNT
HRESULT GetActiveDatabase([out] MSIHANDLE *handle)
#define DISPID_INSTALLER_RELATEDPRODUCTS
#define DISPID_VIEW_FETCH
PWSTR DatabasePath
Definition: database.c:31
#define DISPID_DATABASE_SUMMARYINFORMATION
_In_ DWORD Property
Definition: setupapi.h:1545
int INSTALLSTATE
Definition: msiserver.idl:35
const WCHAR * action
Definition: action.c:7783
GLuint in
Definition: glext.h:9616
Definition: sacdrv.h:267
#define DISPID_DATABASE_OPENVIEW
HRESULT GetProperty([in] BSTR property, [out, size_is(*size)] BSTR value, [in, out] DWORD *size)
static calc_node_t temp
Definition: rpn_ieee.c:38
#define DISPID_SESSION_FEATUREREQUESTSTATE
unsigned int UINT
Definition: ndis.h:50
WindowsInstaller::enum msiDoActionStatusFailure
#define DISPID_VIEW_EXECUTE
HRESULT GetTargetPath([in] BSTR folder, [out, size_is(*size)] BSTR value, [in, out] DWORD *size)
#define DISPID_INSTALLER_ENVIRONMENT
WindowsInstaller::enum msiDoActionStatusSuspend
GLenum GLuint id
Definition: glext.h:5579
static void DoAction(HWND hwnd, INT iAction, WPARAM wParam, LPARAM lParam)
HRESULT GetSourcePath([in] BSTR folder, [out, size_is(*size)] BSTR value, [in, out] DWORD *size)
HRESULT SetInstallLevel([in] int level)
#define DISPID_SESSION_DATABASE
HRESULT ProcessMessage([in] INSTALLMESSAGE message, [in] MSIHANDLE record)
#define DISPID_INSTALLER_INSTALLPRODUCT
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
HRESULT GetActionInfo([in] LPCGUID guid, [out] INT *type, [out] MSIHANDLE *handle, [out] BSTR *dllname, [out] BSTR *function, [out] IWineMsiRemotePackage **package)
#define DISPID_SESSION_MESSAGE
void * object
Definition: jmemsys.h:48
HRESULT GetPrimaryKeys([in] LPCWSTR table, [out] MSIHANDLE *keys)
#define DISPID_INSTALLER_REGISTRYVALUE
coclass MsiServer uuid(000c101d-0000-0000-c000-000000000046)] coclass MsiServerMessage
Definition: msiserver.idl:145
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)