2 * Copyright (C) 2007 Mike McCormack
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #include "msiserver_dispids.h"
25 [ uuid(000C1092-0000-0000-C000-000000000046), version(1.0) ]
26 library WindowsInstaller
28 dispinterface Installer;
30 dispinterface Session;
31 dispinterface Database;
32 dispinterface SummaryInfo;
34 dispinterface UIPreview;
35 dispinterface FeatureInfo;
36 dispinterface RecordList;
37 dispinterface StringList;
38 dispinterface Product;
42 msiInstallStateNotUsed = -7,
43 msiInstallStateBadConfig = -6,
44 msiInstallStateIncomplete = -5,
45 msiInstallStateSourceAbsent = -4,
46 msiInstallStateInvalidArg = -2,
47 msiInstallStateUnknown = -1,
48 msiInstallStateBroken = 0,
49 msiInstallStateAdvertised = 1,
50 msiInstallStateRemoved = 1,
51 msiInstallStateAbsent = 2,
52 msiInstallStateLocal = 3,
53 msiInstallStateSource = 4,
54 msiInstallStateDefault = 5
57 [ uuid(000C1090-0000-0000-C000-000000000046) ]
58 dispinterface Installer
62 [id(DISPID_INSTALLER_CREATERECORD)]
63 Record *CreateRecord([in] long Count);
64 [id(DISPID_INSTALLER_OPENPACKAGE)]
66 [in] VARIANT PackagePath,
67 [in, optional, defaultvalue(0)] long Options);
68 [id(DISPID_INSTALLER_INSTALLPRODUCT)]
70 [in] BSTR PackagePath,
71 [in, optional, defaultvalue("0")] BSTR PropertyValues);
72 [id(DISPID_INSTALLER_REGISTRYVALUE), propget]
76 [in, optional] VARIANT Value);
77 [id(DISPID_INSTALLER_PRODUCTSTATE), propget]
78 MsiInstallState ProductState(
80 [id(DISPID_INSTALLER_PRODUCTS), propget]
81 StringList *Products();
82 [id(DISPID_INSTALLER_RELATEDPRODUCTS), propget]
83 StringList *RelatedProducts(
84 [in] BSTR UpgradeCode);
87 [ uuid(000C1093-0000-0000-C000-000000000046) ]
92 [id(DISPID_RECORD_STRINGDATA), propget]
93 BSTR StringData([in] long Field);
94 [id(DISPID_RECORD_STRINGDATA), propput]
98 [id(DISPID_RECORD_INTEGERDATA), propget]
99 long IntegerData([in] long Field);
100 [id(DISPID_RECORD_INTEGERDATA), propput]
104 [id(DISPID_RECORD_FIELDCOUNT), propget]
108 [ uuid(000C1095-0000-0000-C000-000000000046) ]
109 dispinterface StringList
113 [id(DISPID_STRINGLIST_ITEM), propget]
114 BSTR Item(long Index);
115 [id(DISPID_STRINGLIST_COUNT), propget]
119 [ uuid(000C1096-0000-0000-C000-000000000046) ]
120 dispinterface RecordList
126 [ uuid(000C109A-0000-0000-C000-000000000046) ]
127 dispinterface UIPreview
133 [ uuid(000C109B-0000-0000-C000-000000000046) ]
134 dispinterface SummaryInfo
141 msiViewModifySeek = -1,
142 msiViewModifyRefresh = 0,
143 msiViewModifyInsert = 1,
144 msiViewModifyUpdate = 2,
145 msiViewModifyAssign = 3,
146 msiViewModifyReplace = 4,
147 msiViewModifyMerge = 5,
148 msiViewModifyDelete = 6,
149 msiViewModifyInsertTemporary = 7,
150 msiViewModifyValidate = 8,
151 msiViewModifyValidateNew = 9,
152 msiViewModifyValidateField = 10,
153 msiViewModifyValidateDelete = 11,
154 } _MsiViewModify; /* Added underscore to avoid conflict with function name */
156 [ uuid(000C109C-0000-0000-C000-000000000046) ]
161 [id(DISPID_VIEW_EXECUTE)]
162 void Execute([in, optional, defaultvalue(0)] Record *Params);
163 [id(DISPID_VIEW_FETCH)]
165 [id(DISPID_VIEW_MODIFY)]
167 [in] _MsiViewModify Mode,
169 [id(DISPID_VIEW_CLOSE)]
173 [ uuid(000C109D-0000-0000-C000-000000000046) ]
174 dispinterface Database
178 [id(DISPID_DATABASE_OPENVIEW)]
179 View* OpenView([in] BSTR Sql);
183 msiDoActionStatusNoAction = 0,
184 msiDoActionStatusSuccess = 1,
185 msiDoActionStatusUserExit = 2,
186 msiDoActionStatusFailure = 3,
187 msiDoActionStatusSuspend = 4,
188 msiDoActionStatusFinished = 5,
189 msiDoActionStatusWrongState = 6,
190 msiDoActionStatusBadActionData = 7
195 msiRunModeAdvertise = 1,
196 msiRunModeMaintenance = 2,
197 msiRunModeRollbackEnabled = 3,
198 msiRunModeLogEnabled = 4,
199 msiRunModeOperations = 5,
200 msiRunModeRebootAtEnd = 6,
201 msiRunModeRebootNow = 7,
202 msiRunModeCabinet = 8,
203 msiRunModeSourceShortNames = 9,
204 msiRunModeTargetShortNames = 10,
205 msiRunModeWindows9x = 12,
206 msiRunModeZawEnabled = 13,
207 msiRunModeScheduled = 16,
208 msiRunModeRollback = 17,
209 msiRunModeCommit = 18
213 msiEvaluateConditionFalse = 0,
214 msiEvaluateConditionTrue = 1,
215 msiEvaluateConditionNone = 2,
216 msiEvaluateConditionError = 3
217 } _MsiEvaluateCondition; /* Added underscore to avoid conflict with function name */
219 [ uuid(000C109E-0000-0000-C000-000000000046) ]
220 dispinterface Session
224 [id(DISPID_SESSION_INSTALLER), propget]
225 Installer *Installer();
226 [id(DISPID_SESSION_PROPERTY), propget]
227 BSTR Property([in] BSTR Name);
228 [id(DISPID_SESSION_PROPERTY), propput]
232 [id(DISPID_SESSION_LANGUAGE), propget]
234 [id(DISPID_SESSION_MODE), propget]
235 VARIANT_BOOL Mode([in] MsiRunMode Flag);
236 [id(DISPID_SESSION_MODE), propput]
238 [in] MsiRunMode Flag,
239 [in] VARIANT_BOOL rhs);
240 [id(DISPID_SESSION_DATABASE), propget]
241 Database* Database();
242 [id(DISPID_SESSION_DOACTION)]
243 MsiDoActionStatus DoAction([in] BSTR Action);
244 [id(DISPID_SESSION_EVALUATECONDITION)]
245 _MsiEvaluateCondition EvaluateCondition([in] BSTR Expression);
246 [id(DISPID_SESSION_FEATURECURRENTSTATE), propget]
247 MsiInstallState FeatureCurrentState([in] BSTR Feature);
248 [id(DISPID_SESSION_FEATUREREQUESTSTATE), propget]
249 MsiInstallState FeatureRequestState([in] BSTR Feature);
250 [id(DISPID_SESSION_FEATUREREQUESTSTATE), propput]
251 void FeatureRequestState(
253 [in] MsiInstallState rhs);
254 [id(DISPID_SESSION_SETINSTALLLEVEL)]
255 void SetInstallLevel([in] long Level);
258 [ uuid(000C109F-0000-0000-C000-000000000046) ]
259 dispinterface FeatureInfo
265 [ uuid(000C10A0-0000-0000-C000-000000000046) ]
266 dispinterface Product
272 [ uuid(000C10A1-0000-0000-C000-000000000046) ]