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
21 #pragma makedep register
22 #pragma makedep regtypelib
24 #include
"msiserver_dispids.h"
31 uuid(000c101c
-0000-0000-c000
-000000000046),
35 interface IMsiServer
: IUnknown
41 uuid(000c101d
-0000-0000-c000
-000000000046),
45 interface IMsiMessage
: IUnknown
51 uuid(000c1025
-0000-0000-c000
-000000000046),
55 interface IMsiCustomAction
: IUnknown
61 uuid(000c1033
-0000-0000-c000
-000000000046),
65 interface IMsiRemoteAPI
: IUnknown
71 helpstring("Msi install server"),
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
; }
86 uuid(000c103e
-0000
-0000-c000
-000000000046)
88 coclass PSFactoryBuffer
{ interface IPSFactoryBuffer
; }
91 helpstring("Microsoft Windows Installer"),
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)
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
;
134 dispinterface UIPreview
;
135 dispinterface FeatureInfo
;
136 dispinterface RecordList
;
137 dispinterface StringList
;
138 dispinterface Product
;
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
158 msiOpenDatabaseModeReadOnly
= 0,
159 msiOpenDatabaseModeTransact
= 1,
160 msiOpenDatabaseModeDirect
= 2,
161 msiOpenDatabaseModeCreate
= 3,
162 msiOpenDatabaseModeCreateDirect
= 4,
163 msiOpenDatabaseModePatchFile
= 32
164 } MsiOpenDatabaseMode
;
167 msiUILevelNoChange
= 0,
168 msiUILevelDefault
= 1,
171 msiUILevelReduced
= 4,
173 msiUILevelHideCancel
= 32,
174 msiUILevelProgressOnly
= 64,
175 msiUILevelEndDialog
= 128,
176 msiUILevelSourceResOnly
= 256
179 [ uuid(000C1090
-0000-0000-C000
-000000000046) ]
180 dispinterface Installer
183 [id(DISPID_INSTALLER_UILEVEL
)]
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
)]
207 [id(DISPID_INSTALLER_INSTALLPRODUCT
)]
209 [in] BSTR PackagePath
,
210 [in, defaultvalue("0")] BSTR PropertyValues
);
211 [id(DISPID_INSTALLER_VERSION
)]
213 [id(DISPID_INSTALLER_LASTERRORRECORD
)]
214 Record
* LastErrorRecord
();
215 [id(DISPID_INSTALLER_REGISTRYVALUE
), propget]
219 [in, optional] VARIANT Value
);
220 [id(DISPID_INSTALLER_ENVIRONMENT
), propget]
221 BSTR Environment
([in] BSTR Variable
);
222 [id(DISPID_INSTALLER_ENVIRONMENT
), propput]
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
)]
233 [in, optional] VARIANT Language
);
234 [id(DISPID_INSTALLER_PRODUCTSTATE
), propget]
235 MsiInstallState ProductState
(
237 [id(DISPID_INSTALLER_PRODUCTINFO
), propget]
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) ]
253 [id(DISPID_RECORD_STRINGDATA
), propget]
254 BSTR StringData
([in] long Field
);
255 [id(DISPID_RECORD_STRINGDATA
), propput]
259 [id(DISPID_RECORD_INTEGERDATA
), propget]
260 long IntegerData
([in] long Field
);
261 [id(DISPID_RECORD_INTEGERDATA
), propput]
265 [id(DISPID_RECORD_FIELDCOUNT
), propget]
269 [ uuid(000C1095
-0000-0000-C000
-000000000046) ]
270 dispinterface StringList
274 [id(DISPID_LIST__NEWENUM
)]
276 [id(DISPID_LIST_ITEM
), propget]
277 BSTR Item
(long Index
);
278 [id(DISPID_LIST_COUNT
), propget]
282 [ uuid(000C1096
-0000-0000-C000
-000000000046) ]
283 dispinterface RecordList
289 [ uuid(000C109A
-0000-0000-C000
-000000000046) ]
290 dispinterface UIPreview
296 [ uuid(000C109B
-0000-0000-C000
-000000000046) ]
297 dispinterface SummaryInfo
301 [id(DISPID_SUMMARYINFO_PROPERTY
), propget]
302 VARIANT Property
([in] long Pid
);
303 [id(DISPID_SUMMARYINFO_PROPERTY
), propput]
307 [id(DISPID_SUMMARYINFO_PROPERTYCOUNT
), propget]
308 long PropertyCount
();
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) ]
332 [id(DISPID_VIEW_EXECUTE
)]
333 void Execute
([in, defaultvalue(0)] Record
*Params
);
334 [id(DISPID_VIEW_FETCH
)]
336 [id(DISPID_VIEW_MODIFY
)]
338 [in] _MsiViewModify Mode
,
340 [id(DISPID_VIEW_CLOSE
)]
344 [ uuid(000C109D
-0000-0000-C000
-000000000046) ]
345 dispinterface Database
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
);
356 msiDoActionStatusNoAction
= 0,
357 msiDoActionStatusSuccess
= 1,
358 msiDoActionStatusUserExit
= 2,
359 msiDoActionStatusFailure
= 3,
360 msiDoActionStatusSuspend
= 4,
361 msiDoActionStatusFinished
= 5,
362 msiDoActionStatusWrongState
= 6,
363 msiDoActionStatusBadActionData
= 7
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
386 msiEvaluateConditionFalse
= 0,
387 msiEvaluateConditionTrue
= 1,
388 msiEvaluateConditionNone
= 2,
389 msiEvaluateConditionError
= 3
390 } _MsiEvaluateCondition
; /* Added underscore to avoid conflict with function name */
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
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
428 [ uuid(000C109E
-0000
-0000-C000
-000000000046) ]
429 dispinterface Session
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]
441 [id(DISPID_SESSION_LANGUAGE
), propget]
443 [id(DISPID_SESSION_MODE
), propget]
444 VARIANT_BOOL Mode
([in] MsiRunMode Flag
);
445 [id(DISPID_SESSION_MODE
), propput]
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
(
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
478 [ uuid(000C10A0
-0000-0000-C000
-000000000046) ]
479 dispinterface Product
485 [ uuid(000C10A1
-0000-0000-C000
-000000000046) ]