msi: automation: Implement Session::EvaluateCondition.
[wine/gsoc_dplay.git] / dlls / msi / msiserver.idl
blobcd6621f993ce53cc5fb05a2962fda5a8881d0f1e
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_OPENPACKAGE)]
63 Session* OpenPackage(
64 [in] VARIANT PackagePath,
65 [in, optional, defaultvalue(0)] long Options);
66 [id(DISPID_INSTALLER_REGISTRYVALUE), propget]
67 BSTR RegistryValue(
68 [in] VARIANT Root,
69 [in] BSTR Key,
70 [in, optional] VARIANT Value);
71 [id(DISPID_INSTALLER_PRODUCTSTATE), propget]
72 MsiInstallState ProductState(
73 [in] BSTR Product);
74 [id(DISPID_INSTALLER_PRODUCTS), propget]
75 StringList *Products();
78 [ uuid(000C1093-0000-0000-C000-000000000046) ]
79 dispinterface Record
81 properties:
82 methods:
83 [id(DISPID_RECORD_STRINGDATA), propget]
84 BSTR StringData([in] long Field);
85 [id(DISPID_RECORD_STRINGDATA), propput]
86 void StringData(
87 [in] long Field,
88 [in] BSTR rhs);
91 [ uuid(000C1095-0000-0000-C000-000000000046) ]
92 dispinterface StringList
94 properties:
95 methods:
96 [id(DISPID_STRINGLIST_ITEM), propget]
97 BSTR Item(long Index);
98 [id(DISPID_STRINGLIST_COUNT), propget]
99 long Count();
102 [ uuid(000C1096-0000-0000-C000-000000000046) ]
103 dispinterface RecordList
105 properties:
106 methods:
109 [ uuid(000C109A-0000-0000-C000-000000000046) ]
110 dispinterface UIPreview
112 properties:
113 methods:
116 [ uuid(000C109B-0000-0000-C000-000000000046) ]
117 dispinterface SummaryInfo
119 properties:
120 methods:
123 [ uuid(000C109C-0000-0000-C000-000000000046) ]
124 dispinterface View
126 properties:
127 methods:
128 [id(DISPID_VIEW_EXECUTE)]
129 void Execute([in, optional, defaultvalue(0)] Record *Params);
130 [id(DISPID_VIEW_FETCH)]
131 Record* Fetch();
132 [id(DISPID_VIEW_CLOSE)]
133 void Close();
136 [ uuid(000C109D-0000-0000-C000-000000000046) ]
137 dispinterface Database
139 properties:
140 methods:
141 [id(DISPID_DATABASE_OPENVIEW)]
142 View* OpenView([in] BSTR Sql);
145 typedef enum {
146 msiDoActionStatusNoAction = 0,
147 msiDoActionStatusSuccess = 1,
148 msiDoActionStatusUserExit = 2,
149 msiDoActionStatusFailure = 3,
150 msiDoActionStatusSuspend = 4,
151 msiDoActionStatusFinished = 5,
152 msiDoActionStatusWrongState = 6,
153 msiDoActionStatusBadActionData = 7
154 } MsiDoActionStatus;
156 typedef enum {
157 msiRunModeAdmin = 0,
158 msiRunModeAdvertise = 1,
159 msiRunModeMaintenance = 2,
160 msiRunModeRollbackEnabled = 3,
161 msiRunModeLogEnabled = 4,
162 msiRunModeOperations = 5,
163 msiRunModeRebootAtEnd = 6,
164 msiRunModeRebootNow = 7,
165 msiRunModeCabinet = 8,
166 msiRunModeSourceShortNames = 9,
167 msiRunModeTargetShortNames = 10,
168 msiRunModeWindows9x = 12,
169 msiRunModeZawEnabled = 13,
170 msiRunModeScheduled = 16,
171 msiRunModeRollback = 17,
172 msiRunModeCommit = 18
173 } MsiRunMode;
175 typedef enum {
176 msiEvaluateConditionFalse = 0,
177 msiEvaluateConditionTrue = 1,
178 msiEvaluateConditionNone = 2,
179 msiEvaluateConditionError = 3
180 } _MsiEvaluateCondition; /* Added underscore to avoid conflict with function name */
182 [ uuid(000C109E-0000-0000-C000-000000000046) ]
183 dispinterface Session
185 properties:
186 methods:
187 [id(DISPID_SESSION_INSTALLER), propget]
188 Installer *Installer();
189 [id(DISPID_SESSION_PROPERTY), propget]
190 BSTR Property([in] BSTR Name);
191 [id(DISPID_SESSION_PROPERTY), propput]
192 void Property(
193 [in] BSTR Name,
194 [in] BSTR rhs);
195 [id(DISPID_SESSION_LANGUAGE), propget]
196 long Language();
197 [id(DISPID_SESSION_MODE), propget]
198 VARIANT_BOOL Mode([in] MsiRunMode Flag);
199 [id(DISPID_SESSION_MODE), propput]
200 void Mode(
201 [in] MsiRunMode Flag,
202 [in] VARIANT_BOOL rhs);
203 [id(DISPID_SESSION_DATABASE), propget]
204 Database* Database();
205 [id(DISPID_SESSION_DOACTION)]
206 MsiDoActionStatus DoAction([in] BSTR Action);
207 [id(DISPID_SESSION_EVALUATECONDITION)]
208 _MsiEvaluateCondition EvaluateCondition([in] BSTR Expression);
209 [id(DISPID_SESSION_FEATURECURRENTSTATE), propget]
210 MsiInstallState FeatureCurrentState([in] BSTR Feature);
211 [id(DISPID_SESSION_FEATUREREQUESTSTATE), propget]
212 MsiInstallState FeatureRequestState([in] BSTR Feature);
213 [id(DISPID_SESSION_FEATUREREQUESTSTATE), propput]
214 void FeatureRequestState(
215 [in] BSTR Feature,
216 [in] MsiInstallState rhs);
217 [id(DISPID_SESSION_SETINSTALLLEVEL)]
218 void SetInstallLevel([in] long Level);
221 [ uuid(000C109F-0000-0000-C000-000000000046) ]
222 dispinterface FeatureInfo
224 properties:
225 methods:
228 [ uuid(000C10A0-0000-0000-C000-000000000046) ]
229 dispinterface Product
231 properties:
232 methods:
235 [ uuid(000C10A1-0000-0000-C000-000000000046) ]
236 dispinterface Patch
238 properties:
239 methods: