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 #include "msiserver_dispids.h"
27 typedef unsigned long MSIHANDLE;
28 typedef int INSTALLMESSAGE;
29 typedef int MSICONDITION;
30 typedef int MSIRUNMODE;
31 typedef int INSTALLSTATE;
36 uuid(7BDE2046-D03B-4ffc-B84C-A098F38CFF0B),
40 interface IWineMsiRemoteDatabase : IUnknown
42 HRESULT IsTablePersistent( [in] BSTR table, [out] MSICONDITION *persistent );
43 HRESULT GetPrimaryKeys( [in] BSTR table, [out] MSIHANDLE *keys );
44 HRESULT GetSummaryInformation( [in] UINT updatecount, [out] MSIHANDLE *suminfo );
45 HRESULT OpenView( [in] BSTR query, [out] MSIHANDLE *view );
46 HRESULT SetMsiHandle( [in] MSIHANDLE handle );
50 uuid(902B3592-9D08-4dfd-A593-D07C52546421),
54 interface IWineMsiRemotePackage : IUnknown
56 HRESULT SetMsiHandle( [in] MSIHANDLE handle );
57 HRESULT GetActiveDatabase( [out] MSIHANDLE *handle );
58 HRESULT GetProperty( [in] BSTR property, [out] BSTR *value, [out] DWORD *size );
59 HRESULT SetProperty( [in] BSTR property, [in] BSTR value );
60 HRESULT ProcessMessage( [in] INSTALLMESSAGE message, [in] MSIHANDLE record );
61 HRESULT DoAction( [in] BSTR action );
62 HRESULT Sequence( [in] BSTR table, [in] int sequence );
63 HRESULT GetTargetPath( [in] BSTR folder, [out] BSTR *value, [out] DWORD *size );
64 HRESULT SetTargetPath( [in] BSTR folder, [in] BSTR value );
65 HRESULT GetSourcePath( [in] BSTR folder, [out] BSTR *value, [out] DWORD *size );
66 HRESULT GetMode( [in] MSIRUNMODE mode, [out] BOOL *ret );
67 HRESULT GetFeatureState( [in] BSTR feature, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action );
68 HRESULT SetFeatureState( [in] BSTR feature, [in] INSTALLSTATE state );
69 HRESULT GetComponentState( [in] BSTR component, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action );
70 HRESULT SetComponentState( [in] BSTR component, [in] INSTALLSTATE state );
71 HRESULT GetLanguage( [out] LANGID *language );
72 HRESULT SetInstallLevel( [in] int level );
73 HRESULT FormatRecord( [in] MSIHANDLE record, [out] BSTR *value );
74 HRESULT EvaluateCondition( [in] BSTR condition );
75 HRESULT GetFeatureCost( [in] BSTR feature, [in] INT cost_tree, [in] INSTALLSTATE state, [out] INT *cost);
79 uuid(56D58B64-8780-4c22-A8BC-8B0B29E4A9F8),
83 interface IWineMsiRemoteCustomAction : IUnknown
85 HRESULT GetActionInfo( [in] LPCGUID guid, [out] INT *type, [out] MSIHANDLE *handle, [out] BSTR *dllname,
86 [out] BSTR *function, [out] IWineMsiRemotePackage **package );
89 [ uuid(000C1092-0000-0000-C000-000000000046), version(1.0) ]
90 library WindowsInstaller
92 dispinterface Installer;
94 dispinterface Session;
95 dispinterface Database;
96 dispinterface SummaryInfo;
98 dispinterface UIPreview;
99 dispinterface FeatureInfo;
100 dispinterface RecordList;
101 dispinterface StringList;
102 dispinterface Product;
106 msiInstallStateNotUsed = -7,
107 msiInstallStateBadConfig = -6,
108 msiInstallStateIncomplete = -5,
109 msiInstallStateSourceAbsent = -4,
110 msiInstallStateInvalidArg = -2,
111 msiInstallStateUnknown = -1,
112 msiInstallStateBroken = 0,
113 msiInstallStateAdvertised = 1,
114 msiInstallStateRemoved = 1,
115 msiInstallStateAbsent = 2,
116 msiInstallStateLocal = 3,
117 msiInstallStateSource = 4,
118 msiInstallStateDefault = 5
122 msiOpenDatabaseModeReadOnly = 0,
123 msiOpenDatabaseModeTransact = 1,
124 msiOpenDatabaseModeDirect = 2,
125 msiOpenDatabaseModeCreate = 3,
126 msiOpenDatabaseModeCreateDirect = 4,
127 msiOpenDatabaseModePatchFile = 32
128 } MsiOpenDatabaseMode;
131 msiUILevelNoChange = 0,
132 msiUILevelDefault = 1,
135 msiUILevelReduced = 4,
137 msiUILevelHideCancel = 32,
138 msiUILevelProgressOnly = 64,
139 msiUILevelEndDialog = 128,
140 msiUILevelSourceResOnly = 256
143 [ uuid(000C1090-0000-0000-C000-000000000046) ]
144 dispinterface Installer
147 [id(DISPID_INSTALLER_UILEVEL)]
150 [id(DISPID_INSTALLER_CREATERECORD)]
151 Record *CreateRecord([in] long Count);
152 [id(DISPID_INSTALLER_OPENPACKAGE)]
153 Session* OpenPackage(
154 [in] VARIANT PackagePath,
155 [in, optional, defaultvalue(0)] long Options);
156 [id(DISPID_INSTALLER_OPENDATABASE)]
157 Database *OpenDatabase(
158 [in] BSTR DatabasePath,
159 [in] VARIANT OpenMode);
160 [id(DISPID_INSTALLER_INSTALLPRODUCT)]
162 [in] BSTR PackagePath,
163 [in, optional, defaultvalue("0")] BSTR PropertyValues);
164 [id(DISPID_INSTALLER_VERSION)]
166 [id(DISPID_INSTALLER_REGISTRYVALUE), propget]
170 [in, optional] VARIANT Value);
171 [id(DISPID_INSTALLER_PRODUCTSTATE), propget]
172 MsiInstallState ProductState(
174 [id(DISPID_INSTALLER_PRODUCTINFO), propget]
177 [in] BSTR Attribute);
178 [id(DISPID_INSTALLER_PRODUCTS), propget]
179 StringList *Products();
180 [id(DISPID_INSTALLER_RELATEDPRODUCTS), propget]
181 StringList *RelatedProducts(
182 [in] BSTR UpgradeCode);
185 [ uuid(000C1093-0000-0000-C000-000000000046) ]
190 [id(DISPID_RECORD_STRINGDATA), propget]
191 BSTR StringData([in] long Field);
192 [id(DISPID_RECORD_STRINGDATA), propput]
196 [id(DISPID_RECORD_INTEGERDATA), propget]
197 long IntegerData([in] long Field);
198 [id(DISPID_RECORD_INTEGERDATA), propput]
202 [id(DISPID_RECORD_FIELDCOUNT), propget]
206 [ uuid(000C1095-0000-0000-C000-000000000046) ]
207 dispinterface StringList
211 [id(DISPID_LIST__NEWENUM)]
213 [id(DISPID_LIST_ITEM), propget]
214 BSTR Item(long Index);
215 [id(DISPID_LIST_COUNT), propget]
219 [ uuid(000C1096-0000-0000-C000-000000000046) ]
220 dispinterface RecordList
226 [ uuid(000C109A-0000-0000-C000-000000000046) ]
227 dispinterface UIPreview
233 [ uuid(000C109B-0000-0000-C000-000000000046) ]
234 dispinterface SummaryInfo
238 [id(DISPID_SUMMARYINFO_PROPERTY), propget]
239 VARIANT Property([in] long Pid);
240 [id(DISPID_SUMMARYINFO_PROPERTY), propput]
244 [id(DISPID_SUMMARYINFO_PROPERTYCOUNT), propget]
245 long PropertyCount();
249 msiViewModifySeek = -1,
250 msiViewModifyRefresh = 0,
251 msiViewModifyInsert = 1,
252 msiViewModifyUpdate = 2,
253 msiViewModifyAssign = 3,
254 msiViewModifyReplace = 4,
255 msiViewModifyMerge = 5,
256 msiViewModifyDelete = 6,
257 msiViewModifyInsertTemporary = 7,
258 msiViewModifyValidate = 8,
259 msiViewModifyValidateNew = 9,
260 msiViewModifyValidateField = 10,
261 msiViewModifyValidateDelete = 11,
262 } _MsiViewModify; /* Added underscore to avoid conflict with function name */
264 [ uuid(000C109C-0000-0000-C000-000000000046) ]
269 [id(DISPID_VIEW_EXECUTE)]
270 void Execute([in, optional, defaultvalue(0)] Record *Params);
271 [id(DISPID_VIEW_FETCH)]
273 [id(DISPID_VIEW_MODIFY)]
275 [in] _MsiViewModify Mode,
277 [id(DISPID_VIEW_CLOSE)]
281 [ uuid(000C109D-0000-0000-C000-000000000046) ]
282 dispinterface Database
286 [id(DISPID_DATABASE_OPENVIEW)]
287 View* OpenView([in] BSTR Sql);
288 [id(DISPID_DATABASE_SUMMARYINFORMATION), propget]
289 SummaryInfo *SummaryInformation([in, optional, defaultvalue(0)] long UpdateCount);
293 msiDoActionStatusNoAction = 0,
294 msiDoActionStatusSuccess = 1,
295 msiDoActionStatusUserExit = 2,
296 msiDoActionStatusFailure = 3,
297 msiDoActionStatusSuspend = 4,
298 msiDoActionStatusFinished = 5,
299 msiDoActionStatusWrongState = 6,
300 msiDoActionStatusBadActionData = 7
305 msiRunModeAdvertise = 1,
306 msiRunModeMaintenance = 2,
307 msiRunModeRollbackEnabled = 3,
308 msiRunModeLogEnabled = 4,
309 msiRunModeOperations = 5,
310 msiRunModeRebootAtEnd = 6,
311 msiRunModeRebootNow = 7,
312 msiRunModeCabinet = 8,
313 msiRunModeSourceShortNames = 9,
314 msiRunModeTargetShortNames = 10,
315 msiRunModeWindows9x = 12,
316 msiRunModeZawEnabled = 13,
317 msiRunModeScheduled = 16,
318 msiRunModeRollback = 17,
319 msiRunModeCommit = 18
323 msiEvaluateConditionFalse = 0,
324 msiEvaluateConditionTrue = 1,
325 msiEvaluateConditionNone = 2,
326 msiEvaluateConditionError = 3
327 } _MsiEvaluateCondition; /* Added underscore to avoid conflict with function name */
330 msiMessageStatusError = -1,
331 msiMessageStatusNone = 0,
332 msiMessageStatusOk = 1,
333 msiMessageStatusCancel = 2,
334 msiMessageStatusAbort = 3,
335 msiMessageStatusRetry = 4,
336 msiMessageStatusIgnore = 5,
337 msiMessageStatusYes = 6,
338 msiMessageStatusNo = 7
342 msiMessageTypeFatalExit = 0,
343 msiMessageTypeError = 0x01000000,
344 msiMessageTypeWarning = 0x02000000,
345 msiMessageTypeUser = 0x03000000,
346 msiMessageTypeInfo = 0x04000000,
347 msiMessageTypeFilesInUse = 0x05000000,
348 msiMessageTypeResolveSource = 0x06000000,
349 msiMessageTypeOutOfDiskSpace = 0x07000000,
350 msiMessageTypeActionStart = 0x08000000,
351 msiMessageTypeActionData = 0x09000000,
352 msiMessageTypeProgress = 0x0a000000,
353 msiMessageTypeCommonData = 0x0b000000,
354 msiMessageTypeOk = 0,
355 msiMessageTypeOkCancel = 1,
356 msiMessageTypeAbortRetryIgnore = 2,
357 msiMessageTypeYesNoCancel = 3,
358 msiMessageTypeYesNo = 4,
359 msiMessageTypeRetryCancel = 5,
360 msiMessageTypeDefault1 = 0,
361 msiMessageTypeDefault2 = 256,
362 msiMessageTypeDefault3 = 512
365 [ uuid(000C109E-0000-0000-C000-000000000046) ]
366 dispinterface Session
370 [id(DISPID_SESSION_INSTALLER), propget]
371 Installer *Installer();
372 [id(DISPID_SESSION_PROPERTY), propget]
373 BSTR Property([in] BSTR Name);
374 [id(DISPID_SESSION_PROPERTY), propput]
378 [id(DISPID_SESSION_LANGUAGE), propget]
380 [id(DISPID_SESSION_MODE), propget]
381 VARIANT_BOOL Mode([in] MsiRunMode Flag);
382 [id(DISPID_SESSION_MODE), propput]
384 [in] MsiRunMode Flag,
385 [in] VARIANT_BOOL rhs);
386 [id(DISPID_SESSION_DATABASE), propget]
387 Database* Database();
388 [id(DISPID_SESSION_DOACTION)]
389 MsiDoActionStatus DoAction([in] BSTR Action);
390 [id(DISPID_SESSION_EVALUATECONDITION)]
391 _MsiEvaluateCondition EvaluateCondition([in] BSTR Expression);
392 [id(DISPID_SESSION_MESSAGE)]
393 MsiMessageStatus Message(
394 [in] MsiMessageType Kind,
395 [in] Record *Record);
396 [id(DISPID_SESSION_FEATURECURRENTSTATE), propget]
397 MsiInstallState FeatureCurrentState([in] BSTR Feature);
398 [id(DISPID_SESSION_FEATUREREQUESTSTATE), propget]
399 MsiInstallState FeatureRequestState([in] BSTR Feature);
400 [id(DISPID_SESSION_FEATUREREQUESTSTATE), propput]
401 void FeatureRequestState(
403 [in] MsiInstallState rhs);
404 [id(DISPID_SESSION_SETINSTALLLEVEL)]
405 void SetInstallLevel([in] long Level);
408 [ uuid(000C109F-0000-0000-C000-000000000046) ]
409 dispinterface FeatureInfo
415 [ uuid(000C10A0-0000-0000-C000-000000000046) ]
416 dispinterface Product
422 [ uuid(000C10A1-0000-0000-C000-000000000046) ]