Reactos
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
24typedef 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
34typedef enum tagMSICOLINFO
35{
36 MSICOLINFO_NAMES = 0,
37 MSICOLINFO_TYPES = 1
38} MSICOLINFO;
39
40typedef enum tagMSICOSTTREE
41{
42 MSICOSTTREE_SELFONLY = 0,
43 MSICOSTTREE_CHILDREN = 1,
44 MSICOSTTREE_PARENTS = 2,
45 MSICOSTTREE_PRODUCT = 3,
46} MSICOSTTREE;
47
48typedef 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
81typedef 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
104typedef 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
141typedef enum tagMSIDBSTATE
142{
143 MSIDBSTATE_ERROR = -1,
144 MSIDBSTATE_READ = 0,
145 MSIDBSTATE_WRITE = 1
146} MSIDBSTATE;
147
148typedef enum tagMSITRANSFORM_ERROR
149{
150 MSITRANSFORM_ERROR_ADDEXISTINGROW = 0x00000001,
151 MSITRANSFORM_ERROR_DELMISSINGROW = 0x00000002,
152 MSITRANSFORM_ERROR_ADDEXISTINGTABLE = 0x00000004,
153 MSITRANSFORM_ERROR_DELMISSINGTABLE = 0x00000008,
154 MSITRANSFORM_ERROR_UPDATEMISSINGROW = 0x00000010,
155 MSITRANSFORM_ERROR_CHANGECODEPAGE = 0x00000020,
156 MSITRANSFORM_ERROR_VIEWTRANSFORM = 0x00000100
157} MSITRANSFORM_ERROR;
158
159typedef enum tagMSITRANSFORM_VALIDATE
160{
161 MSITRANSFORM_VALIDATE_LANGUAGE = 0x00000001,
162 MSITRANSFORM_VALIDATE_PRODUCT = 0x00000002,
163 MSITRANSFORM_VALIDATE_PLATFORM = 0x00000004,
164 MSITRANSFORM_VALIDATE_MAJORVERSION = 0x00000008,
165 MSITRANSFORM_VALIDATE_MINORVERSION = 0x00000010,
166 MSITRANSFORM_VALIDATE_UPDATEVERSION = 0x00000020,
167 MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION = 0x00000040,
168 MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION = 0x00000080,
169 MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION = 0x00000100,
170 MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION = 0x00000200,
171 MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION = 0x00000400,
172 MSITRANSFORM_VALIDATE_UPGRADECODE = 0x00000800
173} MSITRANSFORM_VALIDATE;
174
175#ifdef __cplusplus
176extern "C" {
177#endif
178
179/* view manipulation */
180UINT WINAPI MsiViewFetch(MSIHANDLE,MSIHANDLE*);
181UINT WINAPI MsiViewExecute(MSIHANDLE,MSIHANDLE);
182UINT WINAPI MsiViewClose(MSIHANDLE);
183UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE,LPCSTR,MSIHANDLE*);
184UINT WINAPI MsiDatabaseOpenViewW(MSIHANDLE,LPCWSTR,MSIHANDLE*);
185#define MsiDatabaseOpenView WINELIB_NAME_AW(MsiDatabaseOpenView)
186MSIDBERROR WINAPI MsiViewGetErrorA(MSIHANDLE,LPSTR,LPDWORD);
187MSIDBERROR WINAPI MsiViewGetErrorW(MSIHANDLE,LPWSTR,LPDWORD);
188#define MsiViewGetError WINELIB_NAME_AW(MsiViewGetError)
189
190MSIDBSTATE WINAPI MsiGetDatabaseState(MSIHANDLE);
191
192/* record manipulation */
193MSIHANDLE WINAPI MsiCreateRecord(UINT);
194UINT WINAPI MsiRecordClearData(MSIHANDLE);
195UINT WINAPI MsiRecordSetInteger(MSIHANDLE,UINT,int);
196UINT WINAPI MsiRecordSetStringA(MSIHANDLE,UINT,LPCSTR);
197UINT WINAPI MsiRecordSetStringW(MSIHANDLE,UINT,LPCWSTR);
198#define MsiRecordSetString WINELIB_NAME_AW(MsiRecordSetString)
199UINT WINAPI MsiRecordGetStringA(MSIHANDLE,UINT,LPSTR,LPDWORD);
200UINT WINAPI MsiRecordGetStringW(MSIHANDLE,UINT,LPWSTR,LPDWORD);
201#define MsiRecordGetString WINELIB_NAME_AW(MsiRecordGetString)
202UINT WINAPI MsiRecordGetFieldCount(MSIHANDLE);
203int WINAPI MsiRecordGetInteger(MSIHANDLE,UINT);
204UINT WINAPI MsiRecordDataSize(MSIHANDLE,UINT);
205BOOL WINAPI MsiRecordIsNull(MSIHANDLE,UINT);
206UINT WINAPI MsiFormatRecordA(MSIHANDLE,MSIHANDLE,LPSTR,LPDWORD);
207UINT WINAPI MsiFormatRecordW(MSIHANDLE,MSIHANDLE,LPWSTR,LPDWORD);
208#define MsiFormatRecord WINELIB_NAME_AW(MsiFormatRecord)
209UINT WINAPI MsiRecordSetStreamA(MSIHANDLE,UINT,LPCSTR);
210UINT WINAPI MsiRecordSetStreamW(MSIHANDLE,UINT,LPCWSTR);
211#define MsiRecordSetStream WINELIB_NAME_AW(MsiRecordSetStream)
212UINT WINAPI MsiRecordReadStream(MSIHANDLE,UINT,char*,LPDWORD);
213
214UINT WINAPI MsiDatabaseGetPrimaryKeysA(MSIHANDLE,LPCSTR,MSIHANDLE*);
215UINT WINAPI MsiDatabaseGetPrimaryKeysW(MSIHANDLE,LPCWSTR,MSIHANDLE*);
216#define MsiDatabaseGetPrimaryKeys WINELIB_NAME_AW(MsiDatabaseGetPrimaryKeys)
217
218/* installing */
219UINT WINAPI MsiDoActionA(MSIHANDLE,LPCSTR );
220UINT WINAPI MsiDoActionW(MSIHANDLE,LPCWSTR );
221#define MsiDoAction WINELIB_NAME_AW(MsiDoAction)
222
223/* database transforms */
224UINT WINAPI MsiDatabaseApplyTransformA(MSIHANDLE,LPCSTR,int);
225UINT WINAPI MsiDatabaseApplyTransformW(MSIHANDLE,LPCWSTR,int);
226#define MsiDatabaseApplyTransform WINELIB_NAME_AW(MsiDatabaseApplyTransform)
227UINT WINAPI MsiDatabaseGenerateTransformA(MSIHANDLE,MSIHANDLE,LPCSTR,int,int);
228UINT WINAPI MsiDatabaseGenerateTransformW(MSIHANDLE,MSIHANDLE,LPCWSTR,int,int);
229#define MsiDatabaseGenerateTransform WINELIB_NAME_AW(MsiDatabaseGenerateTransform)
230
231UINT WINAPI MsiDatabaseCommit(MSIHANDLE);
232
233/* install state */
234UINT WINAPI MsiGetFeatureStateA(MSIHANDLE,LPCSTR,INSTALLSTATE*,INSTALLSTATE*);
235UINT WINAPI MsiGetFeatureStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE*,INSTALLSTATE*);
236#define MsiGetFeatureState WINELIB_NAME_AW(MsiGetFeatureState)
237UINT WINAPI MsiGetFeatureValidStatesA(MSIHANDLE,LPCSTR,LPDWORD);
238UINT WINAPI MsiGetFeatureValidStatesW(MSIHANDLE,LPCWSTR,LPDWORD);
239#define MsiGetFeatureValidStates WINELIB_NAME_AW(MsiGetFeatureValidStates)
240UINT WINAPI MsiSetComponentStateA(MSIHANDLE,LPCSTR,INSTALLSTATE);
241UINT WINAPI MsiSetComponentStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE);
242#define MsiSetComponentState WINELIB_NAME_AW(MsiSetComponentState)
243UINT WINAPI MsiGetComponentStateA(MSIHANDLE,LPCSTR,INSTALLSTATE*,INSTALLSTATE*);
244UINT WINAPI MsiGetComponentStateW(MSIHANDLE,LPCWSTR,INSTALLSTATE*,INSTALLSTATE*);
245#define MsiGetComponentState WINELIB_NAME_AW(MsiGetComponentState)
246
247MSICONDITION WINAPI MsiEvaluateConditionA(MSIHANDLE,LPCSTR);
248MSICONDITION WINAPI MsiEvaluateConditionW(MSIHANDLE,LPCWSTR);
249#define MsiEvaluateCondition WINELIB_NAME_AW(MsiEvaluateCondition)
250
251/* property functions */
252UINT WINAPI MsiGetPropertyA(MSIHANDLE, LPCSTR, LPSTR, LPDWORD);
253UINT WINAPI MsiGetPropertyW(MSIHANDLE, LPCWSTR, LPWSTR, LPDWORD);
254#define MsiGetProperty WINELIB_NAME_AW(MsiGetProperty)
255
256UINT WINAPI MsiSetPropertyA(MSIHANDLE, LPCSTR, LPCSTR);
257UINT WINAPI MsiSetPropertyW(MSIHANDLE, LPCWSTR, LPCWSTR);
258#define MsiSetProperty WINELIB_NAME_AW(MsiSetProperty)
259
260UINT WINAPI MsiGetTargetPathA(MSIHANDLE,LPCSTR,LPSTR,LPDWORD);
261UINT WINAPI MsiGetTargetPathW(MSIHANDLE,LPCWSTR,LPWSTR,LPDWORD);
262#define MsiGetTargetPath WINELIB_NAME_AW(MsiGetTargetPath)
263
264UINT WINAPI MsiSetTargetPathA(MSIHANDLE, LPCSTR, LPCSTR);
265UINT WINAPI MsiSetTargetPathW(MSIHANDLE, LPCWSTR, LPCWSTR);
266#define MsiSetTargetPath WINELIB_NAME_AW(MsiSetTargetPath)
267
268UINT WINAPI MsiGetSourcePathA(MSIHANDLE,LPCSTR,LPSTR,LPDWORD);
269UINT WINAPI MsiGetSourcePathW(MSIHANDLE,LPCWSTR,LPWSTR,LPDWORD);
270#define MsiGetSourcePath WINELIB_NAME_AW(MsiGetSourcePath)
271
272MSIHANDLE WINAPI MsiGetActiveDatabase(MSIHANDLE);
273
274UINT WINAPI MsiViewGetColumnInfo(MSIHANDLE, MSICOLINFO, MSIHANDLE*);
275INT WINAPI MsiProcessMessage(MSIHANDLE, INSTALLMESSAGE, MSIHANDLE);
276
277UINT WINAPI MsiSetFeatureAttributesA(MSIHANDLE, LPCSTR, DWORD);
278UINT WINAPI MsiSetFeatureAttributesW(MSIHANDLE, LPCWSTR, DWORD);
279#define MsiSetFeatureAttributes WINELIB_NAME_AW(MsiSetFeatureAttributes)
280
281UINT WINAPI MsiSetFeatureStateA(MSIHANDLE, LPCSTR, INSTALLSTATE);
282UINT WINAPI MsiSetFeatureStateW(MSIHANDLE, LPCWSTR, INSTALLSTATE);
283#define MsiSetFeatureState WINELIB_NAME_AW(MsiSetFeatureState)
284
285UINT WINAPI MsiPreviewDialogA(MSIHANDLE, LPCSTR);
286UINT WINAPI MsiPreviewDialogW(MSIHANDLE, LPCWSTR);
287#define MsiPreviewDialog WINELIB_NAME_AW(MsiPreviewDialog)
288
289UINT WINAPI MsiPreviewBillboardA(MSIHANDLE, LPCSTR, LPCSTR);
290UINT WINAPI MsiPreviewBillboardW(MSIHANDLE, LPCWSTR, LPCWSTR);
291#define MsiPreviewBillboard WINELIB_NAME_AW(MsiPreviewBillboard)
292
293UINT WINAPI MsiCreateTransformSummaryInfoA(MSIHANDLE, MSIHANDLE, LPCSTR, int, int);
294UINT WINAPI MsiCreateTransformSummaryInfoW(MSIHANDLE, MSIHANDLE, LPCWSTR, int, int);
295#define MsiCreateTransformSummaryInfo WINELIB_NAME_AW(MsiCreateTransformSummaryInfo)
296
297UINT WINAPI MsiGetSummaryInformationA(MSIHANDLE, LPCSTR, UINT, MSIHANDLE *);
298UINT WINAPI MsiGetSummaryInformationW(MSIHANDLE, LPCWSTR, UINT, MSIHANDLE *);
299#define MsiGetSummaryInformation WINELIB_NAME_AW(MsiGetSummaryInformation)
300
301UINT WINAPI MsiSummaryInfoGetPropertyA(MSIHANDLE,UINT,PUINT,LPINT,FILETIME*,LPSTR,LPDWORD);
302UINT WINAPI MsiSummaryInfoGetPropertyW(MSIHANDLE,UINT,PUINT,LPINT,FILETIME*,LPWSTR,LPDWORD);
303#define MsiSummaryInfoGetProperty WINELIB_NAME_AW(MsiSummaryInfoGetProperty)
304
305UINT WINAPI MsiSummaryInfoSetPropertyA(MSIHANDLE, UINT, UINT, INT, FILETIME*, LPCSTR);
306UINT WINAPI MsiSummaryInfoSetPropertyW(MSIHANDLE, UINT, UINT, INT, FILETIME*, LPCWSTR);
307#define MsiSummaryInfoSetProperty WINELIB_NAME_AW(MsiSummaryInfoSetProperty)
308
309UINT WINAPI MsiDatabaseExportA(MSIHANDLE, LPCSTR, LPCSTR, LPCSTR);
310UINT WINAPI MsiDatabaseExportW(MSIHANDLE, LPCWSTR, LPCWSTR, LPCWSTR);
311#define MsiDatabaseExport WINELIB_NAME_AW(MsiDatabaseExport)
312
313UINT WINAPI MsiDatabaseImportA(MSIHANDLE, LPCSTR, LPCSTR);
314UINT WINAPI MsiDatabaseImportW(MSIHANDLE, LPCWSTR, LPCWSTR);
315#define MsiDatabaseImport WINELIB_NAME_AW(MsiDatabaseImport)
316
317UINT WINAPI MsiOpenDatabaseW(LPCWSTR, LPCWSTR, MSIHANDLE*);
318UINT WINAPI MsiOpenDatabaseA(LPCSTR, LPCSTR, MSIHANDLE*);
319#define MsiOpenDatabase WINELIB_NAME_AW(MsiOpenDatabase)
320
321MSICONDITION WINAPI MsiDatabaseIsTablePersistentA(MSIHANDLE, LPCSTR);
322MSICONDITION WINAPI MsiDatabaseIsTablePersistentW(MSIHANDLE, LPCWSTR);
323#define MsiDatabaseIsTablePersistent WINELIB_NAME_AW(MsiDatabaseIsTablePersistent)
324
325UINT WINAPI MsiSequenceA(MSIHANDLE, LPCSTR, INT);
326UINT WINAPI MsiSequenceW(MSIHANDLE, LPCWSTR, INT);
327#define MsiSequence WINELIB_NAME_AW(MsiSequence)
328
329UINT WINAPI MsiSummaryInfoPersist(MSIHANDLE);
330UINT WINAPI MsiSummaryInfoGetPropertyCount(MSIHANDLE,PUINT);
331
332UINT WINAPI MsiEnableUIPreview(MSIHANDLE, MSIHANDLE*);
333BOOL WINAPI MsiGetMode(MSIHANDLE, MSIRUNMODE);
334UINT WINAPI MsiSetMode(MSIHANDLE, MSIRUNMODE, BOOL);
335
336UINT WINAPI MsiViewModify(MSIHANDLE, MSIMODIFY, MSIHANDLE);
337
338UINT WINAPI MsiGetFeatureCostA(MSIHANDLE, LPCSTR, MSICOSTTREE, INSTALLSTATE, LPINT);
339UINT WINAPI MsiGetFeatureCostW(MSIHANDLE, LPCWSTR, MSICOSTTREE, INSTALLSTATE, LPINT);
340#define MsiGetFeatureCost WINELIB_NAME_AW(MsiGetFeatureCost)
341
342LANGID WINAPI MsiGetLanguage(MSIHANDLE);
343
344UINT WINAPI MsiSetInstallLevel(MSIHANDLE, int);
345
346MSIHANDLE WINAPI MsiGetLastErrorRecord(void);
347
348#ifdef __cplusplus
349}
350#endif
351
352#endif /* __WINE_MSIQUERY_H */