msi: automation: Implement Installer::RelatedProducts.
[wine/wine-kai.git] / dlls / msi / msiserver.idl
blob5721319eddb0385bbcf1e2ca0c9d4fd768400b9a
1 /*
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"
20 import "unknwn.idl";
21 import "wtypes.idl";
22 import "objidl.idl";
23 import "oaidl.idl";
25 [ uuid(000C1092-0000-0000-C000-000000000046), version(1.0) ]
26 library WindowsInstaller
28 dispinterface Installer;
29 dispinterface Record;
30 dispinterface Session;
31 dispinterface Database;
32 dispinterface SummaryInfo;
33 dispinterface View;
34 dispinterface UIPreview;
35 dispinterface FeatureInfo;
36 dispinterface RecordList;
37 dispinterface StringList;
38 dispinterface Product;
39 dispinterface Patch;
41 typedef enum {
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
55 } MsiInstallState;
57 [ uuid(000C1090-0000-0000-C000-000000000046) ]
58 dispinterface Installer
60 properties:
61 methods:
62 [id(DISPID_INSTALLER_CREATERECORD)]
63 Record *CreateRecord([in] long Count);
64 [id(DISPID_INSTALLER_OPENPACKAGE)]
65 Session* OpenPackage(
66 [in] VARIANT PackagePath,
67 [in, optional, defaultvalue(0)] long Options);
68 [id(DISPID_INSTALLER_INSTALLPRODUCT)]
69 void InstallProduct(
70 [in] BSTR PackagePath,
71 [in, optional, defaultvalue("0")] BSTR PropertyValues);
72 [id(DISPID_INSTALLER_REGISTRYVALUE), propget]
73 BSTR RegistryValue(
74 [in] VARIANT Root,
75 [in] BSTR Key,
76 [in, optional] VARIANT Value);
77 [id(DISPID_INSTALLER_PRODUCTSTATE), propget]
78 MsiInstallState ProductState(
79 [in] BSTR Product);
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) ]
88 dispinterface Record
90 properties:
91 methods:
92 [id(DISPID_RECORD_STRINGDATA), propget]
93 BSTR StringData([in] long Field);
94 [id(DISPID_RECORD_STRINGDATA), propput]
95 void StringData(
96 [in] long Field,
97 [in] BSTR rhs);
98 [id(DISPID_RECORD_INTEGERDATA), propget]
99 long IntegerData([in] long Field);
100 [id(DISPID_RECORD_INTEGERDATA), propput]
101 void IntegerData(
102 [in] long Field,
103 [in] long rhs);
104 [id(DISPID_RECORD_FIELDCOUNT), propget]
105 long FieldCount();
108 [ uuid(000C1095-0000-0000-C000-000000000046) ]
109 dispinterface StringList
111 properties:
112 methods:
113 [id(DISPID_STRINGLIST_ITEM), propget]
114 BSTR Item(long Index);
115 [id(DISPID_STRINGLIST_COUNT), propget]
116 long Count();
119 [ uuid(000C1096-0000-0000-C000-000000000046) ]
120 dispinterface RecordList
122 properties:
123 methods:
126 [ uuid(000C109A-0000-0000-C000-000000000046) ]
127 dispinterface UIPreview
129 properties:
130 methods:
133 [ uuid(000C109B-0000-0000-C000-000000000046) ]
134 dispinterface SummaryInfo
136 properties:
137 methods:
140 typedef enum {
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) ]
157 dispinterface View
159 properties:
160 methods:
161 [id(DISPID_VIEW_EXECUTE)]
162 void Execute([in, optional, defaultvalue(0)] Record *Params);
163 [id(DISPID_VIEW_FETCH)]
164 Record* Fetch();
165 [id(DISPID_VIEW_MODIFY)]
166 void Modify(
167 [in] _MsiViewModify Mode,
168 Record *Record);
169 [id(DISPID_VIEW_CLOSE)]
170 void Close();
173 [ uuid(000C109D-0000-0000-C000-000000000046) ]
174 dispinterface Database
176 properties:
177 methods:
178 [id(DISPID_DATABASE_OPENVIEW)]
179 View* OpenView([in] BSTR Sql);
182 typedef enum {
183 msiDoActionStatusNoAction = 0,
184 msiDoActionStatusSuccess = 1,
185 msiDoActionStatusUserExit = 2,
186 msiDoActionStatusFailure = 3,
187 msiDoActionStatusSuspend = 4,
188 msiDoActionStatusFinished = 5,
189 msiDoActionStatusWrongState = 6,
190 msiDoActionStatusBadActionData = 7
191 } MsiDoActionStatus;
193 typedef enum {
194 msiRunModeAdmin = 0,
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
210 } MsiRunMode;
212 typedef enum {
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
222 properties:
223 methods:
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]
229 void Property(
230 [in] BSTR Name,
231 [in] BSTR rhs);
232 [id(DISPID_SESSION_LANGUAGE), propget]
233 long Language();
234 [id(DISPID_SESSION_MODE), propget]
235 VARIANT_BOOL Mode([in] MsiRunMode Flag);
236 [id(DISPID_SESSION_MODE), propput]
237 void Mode(
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(
252 [in] BSTR Feature,
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
261 properties:
262 methods:
265 [ uuid(000C10A0-0000-0000-C000-000000000046) ]
266 dispinterface Product
268 properties:
269 methods:
272 [ uuid(000C10A1-0000-0000-C000-000000000046) ]
273 dispinterface Patch
275 properties:
276 methods: