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"
26 [ uuid(000C1092
-0000-0000-C000
-000000000046), version(1.0) ]
27 library WindowsInstaller
29 dispinterface Installer
;
31 dispinterface Session
;
32 dispinterface Database
;
33 dispinterface SummaryInfo
;
35 dispinterface UIPreview
;
36 dispinterface FeatureInfo
;
37 dispinterface RecordList
;
38 dispinterface StringList
;
39 dispinterface Product
;
43 msiInstallStateNotUsed
= -7,
44 msiInstallStateBadConfig
= -6,
45 msiInstallStateIncomplete
= -5,
46 msiInstallStateSourceAbsent
= -4,
47 msiInstallStateInvalidArg
= -2,
48 msiInstallStateUnknown
= -1,
49 msiInstallStateBroken
= 0,
50 msiInstallStateAdvertised
= 1,
51 msiInstallStateRemoved
= 1,
52 msiInstallStateAbsent
= 2,
53 msiInstallStateLocal
= 3,
54 msiInstallStateSource
= 4,
55 msiInstallStateDefault
= 5
59 msiOpenDatabaseModeReadOnly
= 0,
60 msiOpenDatabaseModeTransact
= 1,
61 msiOpenDatabaseModeDirect
= 2,
62 msiOpenDatabaseModeCreate
= 3,
63 msiOpenDatabaseModeCreateDirect
= 4,
64 msiOpenDatabaseModePatchFile
= 32
65 } MsiOpenDatabaseMode
;
67 [ uuid(000C1090
-0000-0000-C000
-000000000046) ]
68 dispinterface Installer
72 [id(DISPID_INSTALLER_CREATERECORD
)]
73 Record
*CreateRecord
([in] long Count
);
74 [id(DISPID_INSTALLER_OPENPACKAGE
)]
76 [in] VARIANT PackagePath
,
77 [in, optional, defaultvalue(0)] long Options
);
78 [id(DISPID_INSTALLER_OPENDATABASE
)]
79 Database
*OpenDatabase
(
80 [in] BSTR DatabasePath
,
81 [in] VARIANT OpenMode
);
82 [id(DISPID_INSTALLER_INSTALLPRODUCT
)]
84 [in] BSTR PackagePath
,
85 [in, optional, defaultvalue("0")] BSTR PropertyValues
);
86 [id(DISPID_INSTALLER_REGISTRYVALUE
), propget]
90 [in, optional] VARIANT Value
);
91 [id(DISPID_INSTALLER_PRODUCTSTATE
), propget]
92 MsiInstallState ProductState
(
94 [id(DISPID_INSTALLER_PRODUCTINFO
), propget]
98 [id(DISPID_INSTALLER_PRODUCTS
), propget]
99 StringList
*Products
();
100 [id(DISPID_INSTALLER_RELATEDPRODUCTS
), propget]
101 StringList
*RelatedProducts
(
102 [in] BSTR UpgradeCode
);
105 [ uuid(000C1093
-0000-0000-C000
-000000000046) ]
110 [id(DISPID_RECORD_STRINGDATA
), propget]
111 BSTR StringData
([in] long Field
);
112 [id(DISPID_RECORD_STRINGDATA
), propput]
116 [id(DISPID_RECORD_INTEGERDATA
), propget]
117 long IntegerData
([in] long Field
);
118 [id(DISPID_RECORD_INTEGERDATA
), propput]
122 [id(DISPID_RECORD_FIELDCOUNT
), propget]
126 [ uuid(000C1095
-0000-0000-C000
-000000000046) ]
127 dispinterface StringList
131 [id(DISPID_LIST__NEWENUM
)]
133 [id(DISPID_LIST_ITEM
), propget]
134 BSTR Item
(long Index
);
135 [id(DISPID_LIST_COUNT
), propget]
139 [ uuid(000C1096
-0000-0000-C000
-000000000046) ]
140 dispinterface RecordList
146 [ uuid(000C109A
-0000-0000-C000
-000000000046) ]
147 dispinterface UIPreview
153 [ uuid(000C109B
-0000-0000-C000
-000000000046) ]
154 dispinterface SummaryInfo
158 [id(DISPID_SUMMARYINFO_PROPERTY
), propget]
159 VARIANT Property
([in] long Pid
);
160 [id(DISPID_SUMMARYINFO_PROPERTY
), propput]
164 [id(DISPID_SUMMARYINFO_PROPERTYCOUNT
), propget]
165 long PropertyCount
();
169 msiViewModifySeek
= -1,
170 msiViewModifyRefresh
= 0,
171 msiViewModifyInsert
= 1,
172 msiViewModifyUpdate
= 2,
173 msiViewModifyAssign
= 3,
174 msiViewModifyReplace
= 4,
175 msiViewModifyMerge
= 5,
176 msiViewModifyDelete
= 6,
177 msiViewModifyInsertTemporary
= 7,
178 msiViewModifyValidate
= 8,
179 msiViewModifyValidateNew
= 9,
180 msiViewModifyValidateField
= 10,
181 msiViewModifyValidateDelete
= 11,
182 } _MsiViewModify
; /* Added underscore to avoid conflict with function name */
184 [ uuid(000C109C
-0000-0000-C000
-000000000046) ]
189 [id(DISPID_VIEW_EXECUTE
)]
190 void Execute
([in, optional, defaultvalue(0)] Record
*Params
);
191 [id(DISPID_VIEW_FETCH
)]
193 [id(DISPID_VIEW_MODIFY
)]
195 [in] _MsiViewModify Mode
,
197 [id(DISPID_VIEW_CLOSE
)]
201 [ uuid(000C109D
-0000-0000-C000
-000000000046) ]
202 dispinterface Database
206 [id(DISPID_DATABASE_OPENVIEW
)]
207 View
* OpenView
([in] BSTR Sql
);
208 [id(DISPID_DATABASE_SUMMARYINFORMATION
), propget]
209 SummaryInfo
*SummaryInformation
([in, optional, defaultvalue(0)] long UpdateCount
);
213 msiDoActionStatusNoAction
= 0,
214 msiDoActionStatusSuccess
= 1,
215 msiDoActionStatusUserExit
= 2,
216 msiDoActionStatusFailure
= 3,
217 msiDoActionStatusSuspend
= 4,
218 msiDoActionStatusFinished
= 5,
219 msiDoActionStatusWrongState
= 6,
220 msiDoActionStatusBadActionData
= 7
225 msiRunModeAdvertise
= 1,
226 msiRunModeMaintenance
= 2,
227 msiRunModeRollbackEnabled
= 3,
228 msiRunModeLogEnabled
= 4,
229 msiRunModeOperations
= 5,
230 msiRunModeRebootAtEnd
= 6,
231 msiRunModeRebootNow
= 7,
232 msiRunModeCabinet
= 8,
233 msiRunModeSourceShortNames
= 9,
234 msiRunModeTargetShortNames
= 10,
235 msiRunModeWindows9x
= 12,
236 msiRunModeZawEnabled
= 13,
237 msiRunModeScheduled
= 16,
238 msiRunModeRollback
= 17,
239 msiRunModeCommit
= 18
243 msiEvaluateConditionFalse
= 0,
244 msiEvaluateConditionTrue
= 1,
245 msiEvaluateConditionNone
= 2,
246 msiEvaluateConditionError
= 3
247 } _MsiEvaluateCondition
; /* Added underscore to avoid conflict with function name */
249 [ uuid(000C109E
-0000
-0000-C000
-000000000046) ]
250 dispinterface Session
254 [id(DISPID_SESSION_INSTALLER
), propget]
255 Installer
*Installer
();
256 [id(DISPID_SESSION_PROPERTY
), propget]
257 BSTR Property
([in] BSTR Name
);
258 [id(DISPID_SESSION_PROPERTY
), propput]
262 [id(DISPID_SESSION_LANGUAGE
), propget]
264 [id(DISPID_SESSION_MODE
), propget]
265 VARIANT_BOOL Mode
([in] MsiRunMode Flag
);
266 [id(DISPID_SESSION_MODE
), propput]
268 [in] MsiRunMode Flag
,
269 [in] VARIANT_BOOL rhs
);
270 [id(DISPID_SESSION_DATABASE
), propget]
271 Database
* Database
();
272 [id(DISPID_SESSION_DOACTION
)]
273 MsiDoActionStatus DoAction
([in] BSTR Action
);
274 [id(DISPID_SESSION_EVALUATECONDITION
)]
275 _MsiEvaluateCondition EvaluateCondition
([in] BSTR Expression
);
276 [id(DISPID_SESSION_FEATURECURRENTSTATE
), propget]
277 MsiInstallState FeatureCurrentState
([in] BSTR Feature
);
278 [id(DISPID_SESSION_FEATUREREQUESTSTATE
), propget]
279 MsiInstallState FeatureRequestState
([in] BSTR Feature
);
280 [id(DISPID_SESSION_FEATUREREQUESTSTATE
), propput]
281 void FeatureRequestState
(
283 [in] MsiInstallState rhs
);
284 [id(DISPID_SESSION_SETINSTALLLEVEL
)]
285 void SetInstallLevel
([in] long Level
);
288 [ uuid(000C109F
-0000-0000-C000
-000000000046) ]
289 dispinterface FeatureInfo
295 [ uuid(000C10A0
-0000-0000-C000
-000000000046) ]
296 dispinterface Product
302 [ uuid(000C10A1
-0000-0000-C000
-000000000046) ]