schedsvc: Print an error if the service couldn't start monitoring the tasks directory.
[wine.git] / dlls / msi / msiserver.idl
blob4eb33fe4d713626694d6fc797cd8af9d68454eb5
1 /*
2 * Copyright (C) 2007 Mike McCormack
3 * Copyright (C) 2007 Misha Koshelev
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.
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.
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
20 #pragma makedep ident
21 #pragma makedep register
22 #pragma makedep regtypelib
24 #include "msiserver_dispids.h"
25 import "unknwn.idl";
26 import "wtypes.idl";
27 import "objidl.idl";
28 import "oaidl.idl";
31 uuid(000c101c-0000-0000-c000-000000000046),
32 oleautomation,
33 object
35 interface IMsiServer : IUnknown
37 /* FIXME: methods */
41 uuid(000c101d-0000-0000-c000-000000000046),
42 oleautomation,
43 object
45 interface IMsiMessage : IUnknown
47 /* FIXME: methods */
51 uuid(000c1025-0000-0000-c000-000000000046),
52 oleautomation,
53 object
55 interface IMsiCustomAction : IUnknown
57 /* FIXME: methods */
61 uuid(000c1033-0000-0000-c000-000000000046),
62 oleautomation,
63 object
65 interface IMsiRemoteAPI : IUnknown
67 /* FIXME: methods */
71 helpstring("Msi install server"),
72 progid("IMsiServer"),
73 uuid(000c101c-0000-0000-c000-000000000046)
75 coclass MsiServer { interface IMsiServer; }
78 helpstring("Microsoft Windows Installer Message RPC"),
79 progid("WindowsInstaller.Message"),
80 uuid(000c101d-0000-0000-c000-000000000046)
82 coclass MsiServerMessage { interface IMsiMessage; }
85 threading(both),
86 uuid(000c103e-0000-0000-c000-000000000046)
88 coclass PSFactoryBuffer { interface IPSFactoryBuffer; }
91 helpstring("Microsoft Windows Installer"),
92 threading(apartment),
93 progid("WindowsInstaller.Installer"),
94 uuid(000c1090-0000-0000-c000-000000000046)
96 coclass MsiInstaller { interface Installer; }
99 uuid(000c1082-0000-0000-c000-000000000046)
101 coclass MsiTransform { }
104 uuid(000c1084-0000-0000-c000-000000000046)
106 coclass MsiDatabase { }
109 uuid(000c1086-0000-0000-c000-000000000046)
111 coclass MsiPatch { }
114 threading(apartment),
115 uuid(000c1094-0000-0000-c000-000000000046)
117 /* FIXME: unidentified class */
118 coclass MsiServerX3 { interface IMsiServer; }
121 uuid(ba26e6fa-4f27-4f56-953a-3f90272018aa)
123 coclass WineMsiRemoteCustomAction { interface WineMsiRemoteCustomAction; }
125 [ uuid(000C1092-0000-0000-C000-000000000046), version(1.0) ]
126 library WindowsInstaller
128 dispinterface Installer;
129 dispinterface Record;
130 dispinterface Session;
131 dispinterface Database;
132 dispinterface SummaryInfo;
133 dispinterface View;
134 dispinterface UIPreview;
135 dispinterface FeatureInfo;
136 dispinterface RecordList;
137 dispinterface StringList;
138 dispinterface Product;
139 dispinterface Patch;
141 typedef enum {
142 msiInstallStateNotUsed = -7,
143 msiInstallStateBadConfig = -6,
144 msiInstallStateIncomplete = -5,
145 msiInstallStateSourceAbsent = -4,
146 msiInstallStateInvalidArg = -2,
147 msiInstallStateUnknown = -1,
148 msiInstallStateBroken = 0,
149 msiInstallStateAdvertised = 1,
150 msiInstallStateRemoved = 1,
151 msiInstallStateAbsent = 2,
152 msiInstallStateLocal = 3,
153 msiInstallStateSource = 4,
154 msiInstallStateDefault = 5
155 } MsiInstallState;
157 typedef enum {
158 msiOpenDatabaseModeReadOnly = 0,
159 msiOpenDatabaseModeTransact = 1,
160 msiOpenDatabaseModeDirect = 2,
161 msiOpenDatabaseModeCreate = 3,
162 msiOpenDatabaseModeCreateDirect = 4,
163 msiOpenDatabaseModePatchFile = 32
164 } MsiOpenDatabaseMode;
166 typedef enum {
167 msiUILevelNoChange = 0,
168 msiUILevelDefault = 1,
169 msiUILevelNone = 2,
170 msiUILevelBasic = 3,
171 msiUILevelReduced = 4,
172 msiUILevelFull = 5,
173 msiUILevelHideCancel = 32,
174 msiUILevelProgressOnly = 64,
175 msiUILevelEndDialog = 128,
176 msiUILevelSourceResOnly = 256
177 } MsiUILevel;
179 [ uuid(000C1090-0000-0000-C000-000000000046) ]
180 dispinterface Installer
182 properties:
183 [id(DISPID_INSTALLER_UILEVEL)]
184 MsiUILevel UILevel;
185 methods:
186 [id(DISPID_INSTALLER_CREATERECORD)]
187 Record *CreateRecord([in] long Count);
188 [id(DISPID_INSTALLER_OPENPACKAGE)]
189 Session* OpenPackage(
190 [in] VARIANT PackagePath,
191 [in, defaultvalue(0)] long Options);
192 [id(DISPID_INSTALLER_OPENPRODUCT)]
193 Session* OpenProduct(
194 [in] BSTR ProductCode);
195 [id(DISPID_INSTALLER_SUMMARYINFORMATION)]
196 SummaryInfo* SummaryInformation(
197 [in] BSTR PackagePath,
198 [in, defaultvalue(0)] long UpdateCount);
199 [id(DISPID_INSTALLER_OPENDATABASE)]
200 Database *OpenDatabase(
201 [in] BSTR DatabasePath,
202 [in] VARIANT OpenMode);
203 [id(DISPID_INSTALLER_ENABLELOG)]
204 void EnableLog(
205 [in] BSTR LogMode,
206 [in] BSTR LogFile);
207 [id(DISPID_INSTALLER_INSTALLPRODUCT)]
208 void InstallProduct(
209 [in] BSTR PackagePath,
210 [in, defaultvalue("0")] BSTR PropertyValues);
211 [id(DISPID_INSTALLER_VERSION)]
212 BSTR Version();
213 [id(DISPID_INSTALLER_LASTERRORRECORD)]
214 Record* LastErrorRecord();
215 [id(DISPID_INSTALLER_REGISTRYVALUE), propget]
216 BSTR RegistryValue(
217 [in] VARIANT Root,
218 [in] BSTR Key,
219 [in, optional] VARIANT Value);
220 [id(DISPID_INSTALLER_ENVIRONMENT), propget]
221 BSTR Environment([in] BSTR Variable);
222 [id(DISPID_INSTALLER_ENVIRONMENT), propput]
223 void Environment(
224 [in] BSTR Variable,
225 [in] BSTR rhs);
226 [id(DISPID_INSTALLER_FILEATTRIBUTES)]
227 long FileAttributes([in] BSTR FilePath);
228 [id(DISPID_INSTALLER_FILESIZE)]
229 long FileSize([in] BSTR FilePath);
230 [id(DISPID_INSTALLER_FILEVERSION)]
231 BSTR FileVersion(
232 [in] BSTR FilePath,
233 [in, optional] VARIANT Language);
234 [id(DISPID_INSTALLER_PRODUCTSTATE), propget]
235 MsiInstallState ProductState(
236 [in] BSTR Product);
237 [id(DISPID_INSTALLER_PRODUCTINFO), propget]
238 BSTR ProductInfo(
239 [in] BSTR Product,
240 [in] BSTR Attribute);
241 [id(DISPID_INSTALLER_PRODUCTS), propget]
242 StringList *Products();
243 [id(DISPID_INSTALLER_RELATEDPRODUCTS), propget]
244 StringList *RelatedProducts(
245 [in] BSTR UpgradeCode);
248 [ uuid(000C1093-0000-0000-C000-000000000046) ]
249 dispinterface Record
251 properties:
252 methods:
253 [id(DISPID_RECORD_STRINGDATA), propget]
254 BSTR StringData([in] long Field);
255 [id(DISPID_RECORD_STRINGDATA), propput]
256 void StringData(
257 [in] long Field,
258 [in] BSTR rhs);
259 [id(DISPID_RECORD_INTEGERDATA), propget]
260 long IntegerData([in] long Field);
261 [id(DISPID_RECORD_INTEGERDATA), propput]
262 void IntegerData(
263 [in] long Field,
264 [in] long rhs);
265 [id(DISPID_RECORD_FIELDCOUNT), propget]
266 long FieldCount();
269 [ uuid(000C1095-0000-0000-C000-000000000046) ]
270 dispinterface StringList
272 properties:
273 methods:
274 [id(DISPID_LIST__NEWENUM)]
275 IUnknown _NewEnum();
276 [id(DISPID_LIST_ITEM), propget]
277 BSTR Item(long Index);
278 [id(DISPID_LIST_COUNT), propget]
279 long Count();
282 [ uuid(000C1096-0000-0000-C000-000000000046) ]
283 dispinterface RecordList
285 properties:
286 methods:
289 [ uuid(000C109A-0000-0000-C000-000000000046) ]
290 dispinterface UIPreview
292 properties:
293 methods:
296 [ uuid(000C109B-0000-0000-C000-000000000046) ]
297 dispinterface SummaryInfo
299 properties:
300 methods:
301 [id(DISPID_SUMMARYINFO_PROPERTY), propget]
302 VARIANT Property([in] long Pid);
303 [id(DISPID_SUMMARYINFO_PROPERTY), propput]
304 void Property(
305 [in] long Pid,
306 [in] VARIANT rhs);
307 [id(DISPID_SUMMARYINFO_PROPERTYCOUNT), propget]
308 long PropertyCount();
311 typedef enum {
312 msiViewModifySeek = -1,
313 msiViewModifyRefresh = 0,
314 msiViewModifyInsert = 1,
315 msiViewModifyUpdate = 2,
316 msiViewModifyAssign = 3,
317 msiViewModifyReplace = 4,
318 msiViewModifyMerge = 5,
319 msiViewModifyDelete = 6,
320 msiViewModifyInsertTemporary = 7,
321 msiViewModifyValidate = 8,
322 msiViewModifyValidateNew = 9,
323 msiViewModifyValidateField = 10,
324 msiViewModifyValidateDelete = 11,
325 } _MsiViewModify; /* Added underscore to avoid conflict with function name */
327 [ uuid(000C109C-0000-0000-C000-000000000046) ]
328 dispinterface View
330 properties:
331 methods:
332 [id(DISPID_VIEW_EXECUTE)]
333 void Execute([in, defaultvalue(0)] Record *Params);
334 [id(DISPID_VIEW_FETCH)]
335 Record* Fetch();
336 [id(DISPID_VIEW_MODIFY)]
337 void Modify(
338 [in] _MsiViewModify Mode,
339 Record *Record);
340 [id(DISPID_VIEW_CLOSE)]
341 void Close();
344 [ uuid(000C109D-0000-0000-C000-000000000046) ]
345 dispinterface Database
347 properties:
348 methods:
349 [id(DISPID_DATABASE_OPENVIEW)]
350 View* OpenView([in] BSTR Sql);
351 [id(DISPID_DATABASE_SUMMARYINFORMATION), propget]
352 SummaryInfo *SummaryInformation([in, defaultvalue(0)] long UpdateCount);
355 typedef enum {
356 msiDoActionStatusNoAction = 0,
357 msiDoActionStatusSuccess = 1,
358 msiDoActionStatusUserExit = 2,
359 msiDoActionStatusFailure = 3,
360 msiDoActionStatusSuspend = 4,
361 msiDoActionStatusFinished = 5,
362 msiDoActionStatusWrongState = 6,
363 msiDoActionStatusBadActionData = 7
364 } MsiDoActionStatus;
366 typedef enum {
367 msiRunModeAdmin = 0,
368 msiRunModeAdvertise = 1,
369 msiRunModeMaintenance = 2,
370 msiRunModeRollbackEnabled = 3,
371 msiRunModeLogEnabled = 4,
372 msiRunModeOperations = 5,
373 msiRunModeRebootAtEnd = 6,
374 msiRunModeRebootNow = 7,
375 msiRunModeCabinet = 8,
376 msiRunModeSourceShortNames = 9,
377 msiRunModeTargetShortNames = 10,
378 msiRunModeWindows9x = 12,
379 msiRunModeZawEnabled = 13,
380 msiRunModeScheduled = 16,
381 msiRunModeRollback = 17,
382 msiRunModeCommit = 18
383 } MsiRunMode;
385 typedef enum {
386 msiEvaluateConditionFalse = 0,
387 msiEvaluateConditionTrue = 1,
388 msiEvaluateConditionNone = 2,
389 msiEvaluateConditionError = 3
390 } _MsiEvaluateCondition; /* Added underscore to avoid conflict with function name */
392 typedef enum {
393 msiMessageStatusError = -1,
394 msiMessageStatusNone = 0,
395 msiMessageStatusOk = 1,
396 msiMessageStatusCancel = 2,
397 msiMessageStatusAbort = 3,
398 msiMessageStatusRetry = 4,
399 msiMessageStatusIgnore = 5,
400 msiMessageStatusYes = 6,
401 msiMessageStatusNo = 7
402 } MsiMessageStatus;
404 typedef enum {
405 msiMessageTypeFatalExit = 0,
406 msiMessageTypeError = 0x01000000,
407 msiMessageTypeWarning = 0x02000000,
408 msiMessageTypeUser = 0x03000000,
409 msiMessageTypeInfo = 0x04000000,
410 msiMessageTypeFilesInUse = 0x05000000,
411 msiMessageTypeResolveSource = 0x06000000,
412 msiMessageTypeOutOfDiskSpace = 0x07000000,
413 msiMessageTypeActionStart = 0x08000000,
414 msiMessageTypeActionData = 0x09000000,
415 msiMessageTypeProgress = 0x0a000000,
416 msiMessageTypeCommonData = 0x0b000000,
417 msiMessageTypeOk = 0,
418 msiMessageTypeOkCancel = 1,
419 msiMessageTypeAbortRetryIgnore = 2,
420 msiMessageTypeYesNoCancel = 3,
421 msiMessageTypeYesNo = 4,
422 msiMessageTypeRetryCancel = 5,
423 msiMessageTypeDefault1 = 0,
424 msiMessageTypeDefault2 = 256,
425 msiMessageTypeDefault3 = 512
426 } MsiMessageType;
428 [ uuid(000C109E-0000-0000-C000-000000000046) ]
429 dispinterface Session
431 properties:
432 methods:
433 [id(DISPID_SESSION_INSTALLER), propget]
434 Installer *Installer();
435 [id(DISPID_SESSION_PROPERTY), propget]
436 BSTR Property([in] BSTR Name);
437 [id(DISPID_SESSION_PROPERTY), propput]
438 void Property(
439 [in] BSTR Name,
440 [in] BSTR rhs);
441 [id(DISPID_SESSION_LANGUAGE), propget]
442 long Language();
443 [id(DISPID_SESSION_MODE), propget]
444 VARIANT_BOOL Mode([in] MsiRunMode Flag);
445 [id(DISPID_SESSION_MODE), propput]
446 void Mode(
447 [in] MsiRunMode Flag,
448 [in] VARIANT_BOOL rhs);
449 [id(DISPID_SESSION_DATABASE), propget]
450 Database* Database();
451 [id(DISPID_SESSION_DOACTION)]
452 MsiDoActionStatus DoAction([in] BSTR Action);
453 [id(DISPID_SESSION_EVALUATECONDITION)]
454 _MsiEvaluateCondition EvaluateCondition([in] BSTR Expression);
455 [id(DISPID_SESSION_MESSAGE)]
456 MsiMessageStatus Message(
457 [in] MsiMessageType Kind,
458 [in] Record *Record);
459 [id(DISPID_SESSION_FEATURECURRENTSTATE), propget]
460 MsiInstallState FeatureCurrentState([in] BSTR Feature);
461 [id(DISPID_SESSION_FEATUREREQUESTSTATE), propget]
462 MsiInstallState FeatureRequestState([in] BSTR Feature);
463 [id(DISPID_SESSION_FEATUREREQUESTSTATE), propput]
464 void FeatureRequestState(
465 [in] BSTR Feature,
466 [in] MsiInstallState rhs);
467 [id(DISPID_SESSION_SETINSTALLLEVEL)]
468 void SetInstallLevel([in] long Level);
471 [ uuid(000C109F-0000-0000-C000-000000000046) ]
472 dispinterface FeatureInfo
474 properties:
475 methods:
478 [ uuid(000C10A0-0000-0000-C000-000000000046) ]
479 dispinterface Product
481 properties:
482 methods:
485 [ uuid(000C10A1-0000-0000-C000-000000000046) ]
486 dispinterface Patch
488 properties:
489 methods: