xref: /reactos/sdk/include/psdk/msiquery.h (revision 2196a06f)
1 /*
2  * Copyright (C) 2002,2003 Mike McCormack
3  *
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.
8  *
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.
13  *
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
17  */
18 
19 #ifndef __WINE_MSIQUERY_H
20 #define __WINE_MSIQUERY_H
21 
22 #include <msi.h>
23 
24 typedef enum tagMSICONDITION
25 {
26     MSICONDITION_FALSE = 0,
27     MSICONDITION_TRUE  = 1,
28     MSICONDITION_NONE  = 2,
29     MSICONDITION_ERROR = 3,
30 } MSICONDITION;
31 
32 #define MSI_NULL_INTEGER 0x80000000
33 
34 typedef enum tagMSICOLINFO
35 {
36     MSICOLINFO_NAMES = 0,
37     MSICOLINFO_TYPES = 1
38 } MSICOLINFO;
39 
40 typedef enum tagMSICOSTTREE
41 {
42     MSICOSTTREE_SELFONLY = 0,
43     MSICOSTTREE_CHILDREN = 1,
44     MSICOSTTREE_PARENTS  = 2,
45     MSICOSTTREE_PRODUCT  = 3,
46 } MSICOSTTREE;
47 
48 typedef enum tagMSIMODIFY
49 {
50     MSIMODIFY_SEEK = -1,
51     MSIMODIFY_REFRESH = 0,
52     MSIMODIFY_INSERT = 1,
53     MSIMODIFY_UPDATE = 2,
54     MSIMODIFY_ASSIGN = 3,
55     MSIMODIFY_REPLACE = 4,
56     MSIMODIFY_MERGE = 5,
57     MSIMODIFY_DELETE = 6,
58     MSIMODIFY_INSERT_TEMPORARY = 7,
59     MSIMODIFY_VALIDATE = 8,
60     MSIMODIFY_VALIDATE_NEW = 9,
61     MSIMODIFY_VALIDATE_FIELD = 10,
62     MSIMODIFY_VALIDATE_DELETE = 11
63 } MSIMODIFY;
64 
65 #ifndef WINE_NO_UNICODE_MACROS
66 #define MSIDBOPEN_READONLY (LPCTSTR)0
67 #define MSIDBOPEN_TRANSACT (LPCTSTR)1
68 #define MSIDBOPEN_DIRECT   (LPCTSTR)2
69 #define MSIDBOPEN_CREATE   (LPCTSTR)3
70 #define MSIDBOPEN_CREATEDIRECT (LPCTSTR)4
71 #else
72 #define MSIDBOPEN_READONLY (LPCWSTR)0
73 #define MSIDBOPEN_TRANSACT (LPCWSTR)1
74 #define MSIDBOPEN_DIRECT   (LPCWSTR)2
75 #define MSIDBOPEN_CREATE   (LPCWSTR)3
76 #define MSIDBOPEN_CREATEDIRECT (LPCWSTR)4
77 #endif
78 
79 #define MSIDBOPEN_PATCHFILE 32 / sizeof(*MSIDBOPEN_READONLY)
80 
81 typedef enum tagMSIRUNMODE
82 {
83     MSIRUNMODE_ADMIN = 0,
84     MSIRUNMODE_ADVERTISE = 1,
85     MSIRUNMODE_MAINTENANCE = 2,
86     MSIRUNMODE_ROLLBACKENABLED = 3,
87     MSIRUNMODE_LOGENABLED = 4,
88     MSIRUNMODE_OPERATIONS = 5,
89     MSIRUNMODE_REBOOTATEND = 6,
90     MSIRUNMODE_REBOOTNOW = 7,
91     MSIRUNMODE_CABINET = 8,
92     MSIRUNMODE_SOURCESHORTNAMES = 9,
93     MSIRUNMODE_TARGETSHORTNAMES = 10,
94     MSIRUNMODE_RESERVED11 = 11,
95     MSIRUNMODE_WINDOWS9X = 12,
96     MSIRUNMODE_ZAWENABLED = 13,
97     MSIRUNMODE_RESERVED14 = 14,
98     MSIRUNMODE_RESERVED15 = 15,
99     MSIRUNMODE_SCHEDULED = 16,
100     MSIRUNMODE_ROLLBACK = 17,
101     MSIRUNMODE_COMMIT = 18
102 } MSIRUNMODE;
103 
104 typedef enum tagMSIDBERROR
105 {
106     MSIDBERROR_INVALIDARG = -3,
107     MSIDBERROR_MOREDATA = -2,
108     MSIDBERROR_FUNCTIONERROR = -1,
109     MSIDBERROR_NOERROR = 0,
110     MSIDBERROR_DUPLICATEKEY = 1,
111     MSIDBERROR_REQUIRED = 2,
112     MSIDBERROR_BADLINK = 3,
113     MSIDBERROR_OVERFLOW = 4,
114     MSIDBERROR_UNDERFLOW = 5,
115     MSIDBERROR_NOTINSET = 6,
116     MSIDBERROR_BADVERSION = 7,
117     MSIDBERROR_BADCASE = 8,
118     MSIDBERROR_BADGUID = 9,
119     MSIDBERROR_BADWILDCARD = 10,
120     MSIDBERROR_BADIDENTIFIER = 11,
121     MSIDBERROR_BADLANGUAGE = 12,
122     MSIDBERROR_BADFILENAME = 13,
123     MSIDBERROR_BADPATH = 14,
124     MSIDBERROR_BADCONDITION = 15,
125     MSIDBERROR_BADFORMATTED = 16,
126     MSIDBERROR_BADTEMPLATE = 17,
127     MSIDBERROR_BADDEFAULTDIR = 18,
128     MSIDBERROR_BADREGPATH = 19,
129     MSIDBERROR_BADCUSTOMSOURCE = 20,
130     MSIDBERROR_BADPROPERTY = 21,
131     MSIDBERROR_MISSINGDATA = 22,
132     MSIDBERROR_BADCATEGORY = 23,
133     MSIDBERROR_BADKEYTABLE = 24,
134     MSIDBERROR_BADMAXMINVALUES = 25,
135     MSIDBERROR_BADCABINET = 26,
136     MSIDBERROR_BADSHORTCUT= 27,
137     MSIDBERROR_STRINGOVERFLOW = 28,
138     MSIDBERROR_BADLOCALIZEATTRIB = 29
139 } MSIDBERROR;
140 
141 typedef enum tagMSIDBSTATE
142 {
143     MSIDBSTATE_ERROR = -1,
144     MSIDBSTATE_READ = 0,
145     MSIDBSTATE_WRITE = 1
146 } MSIDBSTATE;
147 
148 typedef enum tagMSITRANSFORM_VALIDATE
149 {
150     MSITRANSFORM_VALIDATE_LANGUAGE                   = 0x00000001,
151     MSITRANSFORM_VALIDATE_PRODUCT                    = 0x00000002,
152     MSITRANSFORM_VALIDATE_PLATFORM                   = 0x00000004,
153     MSITRANSFORM_VALIDATE_MAJORVERSION               = 0x00000008,
154     MSITRANSFORM_VALIDATE_MINORVERSION               = 0x00000010,
155     MSITRANSFORM_VALIDATE_UPDATEVERSION              = 0x00000020,
156     MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION         = 0x00000040,
157     MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION    = 0x00000080,
158     MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION        = 0x00000100,
159     MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION = 0x00000200,
160     MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION      = 0x00000400,
161     MSITRANSFORM_VALIDATE_UPGRADECODE                = 0x00000800
162 } MSITRANSFORM_VALIDATE;
163 
164 #ifdef __cplusplus
165 extern "C" {
166 #endif
167 
168 /* view manipulation */
169 UINT WINAPI MsiViewFetch(MSIHANDLE,MSIHANDLE*);
170 UINT WINAPI MsiViewExecute(MSIHANDLE,MSIHANDLE);
171 UINT WINAPI MsiViewClose(MSIHANDLE);
172 UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE,LPCSTR,MSIHANDLE*);
173 UINT WINAPI MsiDatabaseOpenViewW(MSIHANDLE,LPCWSTR,MSIHANDLE*);
174 #define     MsiDatabaseOpenView WINELIB_NAME_AW(MsiDatabaseOpenView)
175 MSIDBERROR WINAPI MsiViewGetErrorA(MSIHANDLE,LPSTR,LPDWORD);
176 MSIDBERROR WINAPI MsiViewGetErrorW(MSIHANDLE,LPWSTR,LPDWORD);
177 #define     MsiViewGetError WINELIB_NAME_AW(MsiViewGetError)
178 
179 MSIDBSTATE WINAPI MsiGetDatabaseState(MSIHANDLE);
180 
181 /* record manipulation */
182 MSIHANDLE WINAPI MsiCreateRecord(UINT);
183 UINT WINAPI MsiRecordClearData(MSIHANDLE);
184 UINT WINAPI MsiRecordSetInteger(MSIHANDLE,UINT,int);
185 UINT WINAPI MsiRecordSetStringA(MSIHANDLE,UINT,LPCSTR);
186 UINT WINAPI MsiRecordSetStringW(MSIHANDLE,UINT,LPCWSTR);
187 #define     MsiRecordSetString WINELIB_NAME_AW(MsiRecordSetString)
188 UINT WINAPI MsiRecordGetStringA(MSIHANDLE,UINT,LPSTR,LPDWORD);
189 UINT WINAPI MsiRecordGetStringW(MSIHANDLE,UINT,LPWSTR,LPDWORD);
190 #define     MsiRecordGetString WINELIB_NAME_AW(MsiRecordGetString)
191 UINT WINAPI MsiRecordGetFieldCount(MSIHANDLE);
192 int WINAPI MsiRecordGetInteger(MSIHANDLE,UINT);
193 UINT WINAPI MsiRecordDataSize(MSIHANDLE,UINT);
194 BOOL WINAPI MsiRecordIsNull(MSIHANDLE,UINT);
195 UINT WINAPI MsiFormatRecordA(MSIHANDLE,MSIHANDLE,LPSTR,LPDWORD);
196 UINT WINAPI MsiFormatRecordW(MSIHANDLE,MSIHANDLE,LPWSTR,LPDWORD);
197 #define     MsiFormatRecord WINELIB_NAME_AW(MsiFormatRecord)
198 UINT WINAPI MsiRecordSetStreamA(MSIHANDLE,UINT,LPCSTR);
199 UINT WINAPI MsiRecordSetStreamW(MSIHANDLE,UINT,LPCWSTR);
200 #define     MsiRecordSetStream WINELIB_NAME_AW(MsiRecordSetStream)
201 UINT WINAPI MsiRecordReadStream(MSIHANDLE,UINT,char*,LPDWORD);
202 
203 UINT WINAPI MsiDatabaseGetPrimaryKeysA(MSIHANDLE,LPCSTR,MSIHANDLE*);
204 UINT WINAPI MsiDatabaseGetPrimaryKeysW(MSIHANDLE,LPCWSTR,MSIHANDLE*);
205 #define     MsiDatabaseGetPrimaryKeys WINELIB_NAME_AW(MsiDatabaseGetPrimaryKeys)
206 
207 /* installing */
208 UINT WINAPI MsiDoActionA(MSIHANDLE,LPCSTR );
209 UINT WINAPI MsiDoActionW(MSIHANDLE,LPCWSTR );
210 #define     MsiDoAction WINELIB_NAME_AW(MsiDoAction)
211 
212 /* database transforms */
213 UINT WINAPI MsiDatabaseApplyTransformA(MSIHANDLE,LPCSTR,int);
214 UINT WINAPI MsiDatabaseApplyTransformW(MSIHANDLE,LPCWSTR,int);
215 #define     MsiDatabaseApplyTransform WINELIB_NAME_AW(MsiDatabaseApplyTransform)
216 UINT WINAPI MsiDatabaseGenerateTransformA(MSIHANDLE,MSIHANDLE,LPCSTR,int,int);
217 UINT WINAPI MsiDatabaseGenerateTransformW(MSIHANDLE,MSIHANDLE,LPCWSTR,int,int);
218 #define     MsiDatabaseGenerateTransform WINELIB_NAME_AW(MsiDatabaseGenerateTransform)
219 
220 UINT WINAPI MsiDatabaseCommit(MSIHANDLE);
221 
222 /* install state */
223 UINT WINAPI MsiGetFeatureStateA(MSIHANDLE,LPCSTR,INSTALLSTATE*,INSTALLSTATE*);
224 UINT WINAPI MsiGetFeatureStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE*,INSTALLSTATE*);
225 #define     MsiGetFeatureState WINELIB_NAME_AW(MsiGetFeatureState)
226 UINT WINAPI MsiGetFeatureValidStatesA(MSIHANDLE,LPCSTR,LPDWORD);
227 UINT WINAPI MsiGetFeatureValidStatesW(MSIHANDLE,LPCWSTR,LPDWORD);
228 #define     MsiGetFeatureValidStates WINELIB_NAME_AW(MsiGetFeatureValidStates)
229 UINT WINAPI MsiSetComponentStateA(MSIHANDLE,LPCSTR,INSTALLSTATE);
230 UINT WINAPI MsiSetComponentStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE);
231 #define     MsiSetComponentState WINELIB_NAME_AW(MsiSetComponentState)
232 UINT WINAPI MsiGetComponentStateA(MSIHANDLE,LPCSTR,INSTALLSTATE*,INSTALLSTATE*);
233 UINT WINAPI MsiGetComponentStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE*,INSTALLSTATE*);
234 #define     MsiGetComponentState WINELIB_NAME_AW(MsiGetComponentState)
235 
236 MSICONDITION WINAPI MsiEvaluateConditionA(MSIHANDLE,LPCSTR);
237 MSICONDITION WINAPI MsiEvaluateConditionW(MSIHANDLE,LPCWSTR);
238 #define     MsiEvaluateCondition WINELIB_NAME_AW(MsiEvaluateCondition)
239 
240 /* property functions */
241 UINT WINAPI MsiGetPropertyA(MSIHANDLE, LPCSTR, LPSTR, LPDWORD);
242 UINT WINAPI MsiGetPropertyW(MSIHANDLE, LPCWSTR, LPWSTR, LPDWORD);
243 #define     MsiGetProperty WINELIB_NAME_AW(MsiGetProperty)
244 
245 UINT WINAPI MsiSetPropertyA(MSIHANDLE, LPCSTR, LPCSTR);
246 UINT WINAPI MsiSetPropertyW(MSIHANDLE, LPCWSTR, LPCWSTR);
247 #define     MsiSetProperty WINELIB_NAME_AW(MsiSetProperty)
248 
249 UINT WINAPI MsiGetTargetPathA(MSIHANDLE,LPCSTR,LPSTR,LPDWORD);
250 UINT WINAPI MsiGetTargetPathW(MSIHANDLE,LPCWSTR,LPWSTR,LPDWORD);
251 #define     MsiGetTargetPath WINELIB_NAME_AW(MsiGetTargetPath)
252 
253 UINT WINAPI MsiSetTargetPathA(MSIHANDLE, LPCSTR, LPCSTR);
254 UINT WINAPI MsiSetTargetPathW(MSIHANDLE, LPCWSTR, LPCWSTR);
255 #define     MsiSetTargetPath WINELIB_NAME_AW(MsiSetTargetPath)
256 
257 UINT WINAPI MsiGetSourcePathA(MSIHANDLE,LPCSTR,LPSTR,LPDWORD);
258 UINT WINAPI MsiGetSourcePathW(MSIHANDLE,LPCWSTR,LPWSTR,LPDWORD);
259 #define     MsiGetSourcePath WINELIB_NAME_AW(MsiGetSourcePath)
260 
261 MSIHANDLE WINAPI MsiGetActiveDatabase(MSIHANDLE);
262 
263 UINT WINAPI MsiViewGetColumnInfo(MSIHANDLE, MSICOLINFO, MSIHANDLE*);
264 INT WINAPI MsiProcessMessage(MSIHANDLE, INSTALLMESSAGE, MSIHANDLE);
265 
266 UINT WINAPI MsiSetFeatureAttributesA(MSIHANDLE, LPCSTR, DWORD);
267 UINT WINAPI MsiSetFeatureAttributesW(MSIHANDLE, LPCWSTR, DWORD);
268 #define     MsiSetFeatureAttributes WINELIB_NAME_AW(MsiSetFeatureAttributes)
269 
270 UINT WINAPI MsiSetFeatureStateA(MSIHANDLE, LPCSTR, INSTALLSTATE);
271 UINT WINAPI MsiSetFeatureStateW(MSIHANDLE, LPCWSTR, INSTALLSTATE);
272 #define     MsiSetFeatureState WINELIB_NAME_AW(MsiSetFeatureState)
273 
274 UINT WINAPI MsiPreviewDialogA(MSIHANDLE, LPCSTR);
275 UINT WINAPI MsiPreviewDialogW(MSIHANDLE, LPCWSTR);
276 #define     MsiPreviewDialog WINELIB_NAME_AW(MsiPreviewDialog)
277 
278 UINT WINAPI MsiPreviewBillboardA(MSIHANDLE, LPCSTR, LPCSTR);
279 UINT WINAPI MsiPreviewBillboardW(MSIHANDLE, LPCWSTR, LPCWSTR);
280 #define     MsiPreviewBillboard WINELIB_NAME_AW(MsiPreviewBillboard)
281 
282 UINT WINAPI MsiCreateTransformSummaryInfoA(MSIHANDLE, MSIHANDLE, LPCSTR, int, int);
283 UINT WINAPI MsiCreateTransformSummaryInfoW(MSIHANDLE, MSIHANDLE, LPCWSTR, int, int);
284 #define     MsiCreateTransformSummaryInfo WINELIB_NAME_AW(MsiCreateTransformSummaryInfo)
285 
286 UINT WINAPI MsiGetSummaryInformationA(MSIHANDLE, LPCSTR, UINT, MSIHANDLE *);
287 UINT WINAPI MsiGetSummaryInformationW(MSIHANDLE, LPCWSTR, UINT, MSIHANDLE *);
288 #define     MsiGetSummaryInformation WINELIB_NAME_AW(MsiGetSummaryInformation)
289 
290 UINT WINAPI MsiSummaryInfoGetPropertyA(MSIHANDLE,UINT,PUINT,LPINT,FILETIME*,LPSTR,LPDWORD);
291 UINT WINAPI MsiSummaryInfoGetPropertyW(MSIHANDLE,UINT,PUINT,LPINT,FILETIME*,LPWSTR,LPDWORD);
292 #define     MsiSummaryInfoGetProperty WINELIB_NAME_AW(MsiSummaryInfoGetProperty)
293 
294 UINT WINAPI MsiSummaryInfoSetPropertyA(MSIHANDLE, UINT, UINT, INT, FILETIME*, LPCSTR);
295 UINT WINAPI MsiSummaryInfoSetPropertyW(MSIHANDLE, UINT, UINT, INT, FILETIME*, LPCWSTR);
296 #define     MsiSummaryInfoSetProperty WINELIB_NAME_AW(MsiSummaryInfoSetProperty)
297 
298 UINT WINAPI MsiDatabaseExportA(MSIHANDLE, LPCSTR, LPCSTR, LPCSTR);
299 UINT WINAPI MsiDatabaseExportW(MSIHANDLE, LPCWSTR, LPCWSTR, LPCWSTR);
300 #define     MsiDatabaseExport WINELIB_NAME_AW(MsiDatabaseExport)
301 
302 UINT WINAPI MsiDatabaseImportA(MSIHANDLE, LPCSTR, LPCSTR);
303 UINT WINAPI MsiDatabaseImportW(MSIHANDLE, LPCWSTR, LPCWSTR);
304 #define     MsiDatabaseImport WINELIB_NAME_AW(MsiDatabaseImport)
305 
306 UINT WINAPI MsiOpenDatabaseW(LPCWSTR, LPCWSTR, MSIHANDLE*);
307 UINT WINAPI MsiOpenDatabaseA(LPCSTR, LPCSTR, MSIHANDLE*);
308 #define     MsiOpenDatabase WINELIB_NAME_AW(MsiOpenDatabase)
309 
310 MSICONDITION WINAPI MsiDatabaseIsTablePersistentA(MSIHANDLE, LPCSTR);
311 MSICONDITION WINAPI MsiDatabaseIsTablePersistentW(MSIHANDLE, LPCWSTR);
312 #define     MsiDatabaseIsTablePersistent WINELIB_NAME_AW(MsiDatabaseIsTablePersistent)
313 
314 UINT WINAPI MsiSequenceA(MSIHANDLE, LPCSTR, INT);
315 UINT WINAPI MsiSequenceW(MSIHANDLE, LPCWSTR, INT);
316 #define     MsiSequence WINELIB_NAME_AW(MsiSequence)
317 
318 UINT WINAPI MsiSummaryInfoPersist(MSIHANDLE);
319 UINT WINAPI MsiSummaryInfoGetPropertyCount(MSIHANDLE,PUINT);
320 
321 UINT WINAPI MsiEnableUIPreview(MSIHANDLE, MSIHANDLE*);
322 BOOL WINAPI MsiGetMode(MSIHANDLE, MSIRUNMODE);
323 UINT WINAPI MsiSetMode(MSIHANDLE, MSIRUNMODE, BOOL);
324 
325 UINT WINAPI MsiViewModify(MSIHANDLE, MSIMODIFY, MSIHANDLE);
326 
327 UINT WINAPI MsiGetFeatureCostA(MSIHANDLE, LPCSTR, MSICOSTTREE, INSTALLSTATE, LPINT);
328 UINT WINAPI MsiGetFeatureCostW(MSIHANDLE, LPCWSTR, MSICOSTTREE, INSTALLSTATE, LPINT);
329 #define     MsiGetFeatureCost WINELIB_NAME_AW(MsiGetFeatureCost)
330 
331 LANGID WINAPI MsiGetLanguage(MSIHANDLE);
332 
333 UINT WINAPI MsiSetInstallLevel(MSIHANDLE, int);
334 
335 MSIHANDLE WINAPI MsiGetLastErrorRecord(void);
336 
337 #ifdef __cplusplus
338 }
339 #endif
340 
341 #endif /* __WINE_MSIQUERY_H */
342