[MSI]
[reactos.git] / reactos / include / psdk / msi.h
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_MSI_H
20 #define __WINE_MSI_H
21
22 #ifndef _MSI_NO_CRYPTO
23 #include <wincrypt.h>
24 #endif
25
26 #define MAX_GUID_CHARS 38
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 typedef ULONG MSIHANDLE;
33
34 typedef enum tagINSTALLSTATE
35 {
36 INSTALLSTATE_NOTUSED = -7,
37 INSTALLSTATE_BADCONFIG = -6,
38 INSTALLSTATE_INCOMPLETE = -5,
39 INSTALLSTATE_SOURCEABSENT = -4,
40 INSTALLSTATE_MOREDATA = -3,
41 INSTALLSTATE_INVALIDARG = -2,
42 INSTALLSTATE_UNKNOWN = -1,
43 INSTALLSTATE_BROKEN = 0,
44 INSTALLSTATE_ADVERTISED = 1,
45 INSTALLSTATE_ABSENT = 2,
46 INSTALLSTATE_LOCAL = 3,
47 INSTALLSTATE_SOURCE = 4,
48 INSTALLSTATE_DEFAULT = 5
49 } INSTALLSTATE;
50
51 typedef enum tagMSIPATCHSTATE
52 {
53 MSIPATCHSTATE_INVALID = 0,
54 MSIPATCHSTATE_APPLIED = 1,
55 MSIPATCHSTATE_SUPERSEDED = 2,
56 MSIPATCHSTATE_OBSOLETED = 4,
57 MSIPATCHSTATE_REGISTERED = 8,
58 MSIPATCHSTATE_ALL = (MSIPATCHSTATE_APPLIED | MSIPATCHSTATE_SUPERSEDED |
59 MSIPATCHSTATE_OBSOLETED | MSIPATCHSTATE_REGISTERED)
60 } MSIPATCHSTATE;
61
62 typedef enum tagINSTALLUILEVEL
63 {
64 INSTALLUILEVEL_NOCHANGE = 0,
65 INSTALLUILEVEL_DEFAULT = 1,
66 INSTALLUILEVEL_NONE = 2,
67 INSTALLUILEVEL_BASIC = 3,
68 INSTALLUILEVEL_REDUCED = 4,
69 INSTALLUILEVEL_FULL = 5,
70 INSTALLUILEVEL_HIDECANCEL = 0x20,
71 INSTALLUILEVEL_PROGRESSONLY = 0x40,
72 INSTALLUILEVEL_ENDDIALOG = 0x80,
73 INSTALLUILEVEL_SOURCERESONLY = 0x100
74 } INSTALLUILEVEL;
75
76 typedef enum tagUSERINFOSTATE
77 {
78 USERINFOSTATE_MOREDATA = -3,
79 USERINFOSTATE_INVALIDARG = -2,
80 USERINFOSTATE_UNKNOWN = -1,
81 USERINFOSTATE_ABSENT = 0,
82 USERINFOSTATE_PRESENT = 1,
83 } USERINFOSTATE;
84
85 typedef enum tagINSTALLLEVEL
86 {
87 INSTALLLEVEL_DEFAULT = 0,
88 INSTALLLEVEL_MINIMUM = 1,
89 INSTALLLEVEL_MAXIMUM = 0xFFFF
90 } INSTALLLEVEL;
91
92 typedef enum tagINSTALLMESSAGE
93 {
94 INSTALLMESSAGE_FATALEXIT = 0,
95 INSTALLMESSAGE_ERROR = 0x01000000,
96 INSTALLMESSAGE_WARNING = 0x02000000,
97 INSTALLMESSAGE_USER = 0x03000000,
98 INSTALLMESSAGE_INFO = 0x04000000,
99 INSTALLMESSAGE_FILESINUSE = 0x05000000,
100 INSTALLMESSAGE_RESOLVESOURCE = 0x06000000,
101 INSTALLMESSAGE_OUTOFDISKSPACE = 0x07000000,
102 INSTALLMESSAGE_ACTIONSTART = 0x08000000,
103 INSTALLMESSAGE_ACTIONDATA = 0x09000000,
104 INSTALLMESSAGE_PROGRESS = 0x0a000000,
105 INSTALLMESSAGE_COMMONDATA = 0x0b000000,
106 INSTALLMESSAGE_INITIALIZE = 0x0c000000,
107 INSTALLMESSAGE_TERMINATE = 0x0d000000,
108 INSTALLMESSAGE_SHOWDIALOG = 0x0e000000
109 } INSTALLMESSAGE;
110
111 typedef enum tagREINSTALLMODE
112 {
113 REINSTALLMODE_REPAIR = 0x00000001,
114 REINSTALLMODE_FILEMISSING = 0x00000002,
115 REINSTALLMODE_FILEOLDERVERSION = 0x00000004,
116 REINSTALLMODE_FILEEQUALVERSION = 0x00000008,
117 REINSTALLMODE_FILEEXACT = 0x00000010,
118 REINSTALLMODE_FILEVERIFY = 0x00000020,
119 REINSTALLMODE_FILEREPLACE = 0x00000040,
120 REINSTALLMODE_MACHINEDATA = 0x00000080,
121 REINSTALLMODE_USERDATA = 0x00000100,
122 REINSTALLMODE_SHORTCUT = 0x00000200,
123 REINSTALLMODE_PACKAGE = 0x00000400
124 } REINSTALLMODE;
125
126 typedef enum tagINSTALLLOGMODE
127 {
128 INSTALLLOGMODE_FATALEXIT = (1 << (INSTALLMESSAGE_FATALEXIT >> 24)),
129 INSTALLLOGMODE_ERROR = (1 << (INSTALLMESSAGE_ERROR >> 24)),
130 INSTALLLOGMODE_WARNING = (1 << (INSTALLMESSAGE_WARNING >> 24)),
131 INSTALLLOGMODE_USER = (1 << (INSTALLMESSAGE_USER >> 24)),
132 INSTALLLOGMODE_INFO = (1 << (INSTALLMESSAGE_INFO >> 24)),
133 INSTALLLOGMODE_RESOLVESOURCE = (1 << (INSTALLMESSAGE_RESOLVESOURCE >> 24)),
134 INSTALLLOGMODE_OUTOFDISKSPACE = (1 << (INSTALLMESSAGE_OUTOFDISKSPACE >> 24)),
135 INSTALLLOGMODE_ACTIONSTART = (1 << (INSTALLMESSAGE_ACTIONSTART >> 24)),
136 INSTALLLOGMODE_ACTIONDATA = (1 << (INSTALLMESSAGE_ACTIONDATA >> 24)),
137 INSTALLLOGMODE_COMMONDATA = (1 << (INSTALLMESSAGE_COMMONDATA >> 24)),
138 INSTALLLOGMODE_PROPERTYDUMP = (1 << (INSTALLMESSAGE_PROGRESS >> 24)),
139 INSTALLLOGMODE_VERBOSE = (1 << (INSTALLMESSAGE_INITIALIZE >> 24)),
140 INSTALLLOGMODE_EXTRADEBUG = (1 << (INSTALLMESSAGE_TERMINATE >> 24)),
141 INSTALLLOGMODE_PROGRESS = (1 << (INSTALLMESSAGE_PROGRESS >> 24)),
142 INSTALLLOGMODE_INITIALIZE = (1 << (INSTALLMESSAGE_INITIALIZE >> 24)),
143 INSTALLLOGMODE_TERMINATE = (1 << (INSTALLMESSAGE_TERMINATE >> 24)),
144 INSTALLLOGMODE_SHOWDIALOG = (1 << (INSTALLMESSAGE_SHOWDIALOG >> 24))
145 } INSTALLLOGMODE;
146
147 typedef enum tagINSTALLLOGATTRIBUTES
148 {
149 INSTALLLOGATTRIBUTES_APPEND = 0x00000001,
150 INSTALLLOGATTRIBUTES_FLUSHEACHLINE = 0x00000002
151 } INSTALLLOGATTRIBUTES;
152
153 typedef enum tagINSTALLMODE
154 {
155 INSTALLMODE_NODETECTION_ANY = -4,
156 INSTALLMODE_NOSOURCERESOLUTION = -3,
157 INSTALLMODE_NODETECTION = -2,
158 INSTALLMODE_EXISTING = -1,
159 INSTALLMODE_DEFAULT = 0
160 } INSTALLMODE;
161
162 typedef enum tagADVERTISEFLAGS
163 {
164 ADVERTISEFLAGS_MACHINEASSIGN = 0,
165 ADVERTISEFLAGS_USERASSIGN = 1
166 } ADVERTISEFLAGS;
167
168 typedef enum tagSCRIPTFLAGS
169 {
170 SCRIPTFLAGS_CACHEINFO = 1,
171 SCRIPTFLAGS_SHORTCUTS = 4,
172 SCRIPTFLAGS_MACHINEASSIGN = 8,
173 SCRIPTFLAGS_REGDATA_APPINFO = 0x10,
174 SCRIPTFLAGS_REGDATA_CNFGINFO = 0x20,
175 SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST = 0x40,
176 SCRIPTFLAGS_REGDATA_CLASSINFO = 0x80,
177 SCRIPTFLAGS_REGDATA_EXTENSIONINFO = 0x100,
178 } SCRIPTFLAGS;
179
180 typedef enum tagINSTALLTYPE
181 {
182 INSTALLTYPE_DEFAULT = 0,
183 INSTALLTYPE_NETWORK_IMAGE = 1,
184 INSTALLTYPE_SINGLE_INSTANCE = 2,
185 } INSTALLTYPE;
186
187 typedef enum tagMSIINSTALLCONTEXT
188 {
189 MSIINSTALLCONTEXT_FIRSTVISIBLE = 0,
190 MSIINSTALLCONTEXT_NONE = 0,
191 MSIINSTALLCONTEXT_USERMANAGED = 1,
192 MSIINSTALLCONTEXT_USERUNMANAGED = 2,
193 MSIINSTALLCONTEXT_MACHINE = 4,
194 MSIINSTALLCONTEXT_ALL = (MSIINSTALLCONTEXT_USERMANAGED | MSIINSTALLCONTEXT_USERUNMANAGED | MSIINSTALLCONTEXT_MACHINE),
195 MSIINSTALLCONTEXT_ALLUSERMANAGED= 8,
196 } MSIINSTALLCONTEXT;
197
198 typedef enum tagMSISOURCETYPE
199 {
200 MSISOURCETYPE_UNKNOWN = 0x00000000L,
201 MSISOURCETYPE_NETWORK = 0x00000001L,
202 MSISOURCETYPE_URL = 0x00000002L,
203 MSISOURCETYPE_MEDIA = 0x00000004L
204 } MSISOURCETYPE;
205
206 typedef enum tagMSICODE
207 {
208 MSICODE_PRODUCT = 0x00000000L,
209 MSICODE_PATCH = 0x40000000L
210 } MSICODE;
211
212 typedef enum tagINSTALLFEATUREATTRIBUTE
213 {
214 INSTALLFEATUREATTRIBUTE_FAVORLOCAL = 1 << 0,
215 INSTALLFEATUREATTRIBUTE_FAVORSOURCE = 1 << 1,
216 INSTALLFEATUREATTRIBUTE_FOLLOWPARENT = 1 << 2,
217 INSTALLFEATUREATTRIBUTE_FAVORADVERTISE = 1 << 3,
218 INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE = 1 << 4,
219 INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE = 1 << 5
220 } INSTALLFEATUREATTRIBUTE;
221
222 typedef struct _MSIFILEHASHINFO {
223 ULONG dwFileHashInfoSize;
224 ULONG dwData[4];
225 } MSIFILEHASHINFO, *PMSIFILEHASHINFO;
226
227 typedef enum tagMSIPATCHDATATYPE
228 {
229 MSIPATCH_DATATYPE_PATCHFILE = 0,
230 MSIPATCH_DATATYPE_XMLPATH = 1,
231 MSIPATCH_DATATYPE_XMLBLOB = 2,
232 } MSIPATCHDATATYPE, *PMSIPATCHDATATYPE;
233
234 typedef struct tagMSIPATCHSEQUENCEINFOA
235 {
236 LPCSTR szPatchData;
237 MSIPATCHDATATYPE ePatchDataType;
238 DWORD dwOrder;
239 UINT uStatus;
240 } MSIPATCHSEQUENCEINFOA, *PMSIPATCHSEQUENCEINFOA;
241
242 typedef struct tagMSIPATCHSEQUENCEINFOW
243 {
244 LPCWSTR szPatchData;
245 MSIPATCHDATATYPE ePatchDataType;
246 DWORD dwOrder;
247 UINT uStatus;
248 } MSIPATCHSEQUENCEINFOW, *PMSIPATCHSEQUENCEINFOW;
249
250 #define MAX_FEATURE_CHARS 38
251
252 #define ERROR_PATCH_TARGET_NOT_FOUND 1642
253
254 /* Strings defined in msi.h */
255 /* Advertised Information */
256
257 #define INSTALLPROPERTY_PACKAGENAMEA "PackageName"
258 static const WCHAR INSTALLPROPERTY_PACKAGENAMEW[] = {'P','a','c','k','a','g','e','N','a','m','e',0};
259 #define INSTALLPROPERTY_PACKAGENAME WINELIB_NAME_AW(INSTALLPROPERTY_PACKAGENAME)
260
261 #define INSTALLPROPERTY_TRANSFORMSA "Transforms"
262 static const WCHAR INSTALLPROPERTY_TRANSFORMSW[] = {'T','r','a','n','s','f','o','r','m','s',0};
263 #define INSTALLPROPERTY_TRANSFORMS WINELIB_NAME_AW(INSTALLPROPERTY_TRANSFORMS)
264
265 #define INSTALLPROPERTY_LANGUAGEA "Language"
266 static const WCHAR INSTALLPROPERTY_LANGUAGEW[] = {'L','a','n','g','u','a','g','e',0};
267 #define INSTALLPROPERTY_LANGUAGE WINELIB_NAME_AW(INSTALLPROPERTY_LANGUAGE)
268
269 #define INSTALLPROPERTY_PRODUCTNAMEA "ProductName"
270 static const WCHAR INSTALLPROPERTY_PRODUCTNAMEW[] = {'P','r','o','d','u','c','t','N','a','m','e',0};
271 #define INSTALLPROPERTY_PRODUCTNAME WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTNAME)
272
273 #define INSTALLPROPERTY_ASSIGNMENTTYPEA "AssignmentType"
274 static const WCHAR INSTALLPROPERTY_ASSIGNMENTTYPEW[] = {'A','s','s','i','g','n','m','e','n','t','T','y','p','e',0};
275 #define INSTALLPROPERTY_ASSIGNMENTTYPE WINELIB_NAME_AW(INSTALLPROPERTY_ASSIGNMENTTYPE)
276
277 #define INSTALLPROPERTY_PACKAGECODEA "PackageCode"
278 static const WCHAR INSTALLPROPERTY_PACKAGECODEW[] = {'P','a','c','k','a','g','e','C','o','d','e',0};
279 #define INSTALLPROPERTY_PACKAGECODE WINELIB_NAME_AW(INSTALLPROPERTY_PACKAGECODE)
280
281 #define INSTALLPROPERTY_VERSIONA "Version"
282 static const WCHAR INSTALLPROPERTY_VERSIONW[]= {'V','e','r','s','i','o','n',0};
283 #define INSTALLPROPERTY_VERSION WINELIB_NAME_AW(INSTALLPROPERTY_VERSION)
284
285 /* MSI version 1.1 and above */
286
287 #define INSTALLPROPERTY_PRODUCTICONA "ProductIcon"
288 static const WCHAR INSTALLPROPERTY_PRODUCTICONW[] = {'P','r','o','d','u','c','t','I','c','o','n',0};
289 #define INSTALLPROPERTY_PRODUCTICON WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTICON)
290
291 /* MSI version 1.5 and above */
292 #define INSTALLPROPERTY_INSTANCETYPEA "InstanceType"
293 static const WCHAR INSTALLPROPERTY_INSTANCETYPEW[] = {'I','n','s','t','a','n','c','e','T','y','p','e',0};
294 #define INSTALLPROPERTY_INSTANCETYPE WINELIB_NAME_AW(INSTALLPROPERTY_INSTANCETYPE)
295
296 /* MSI version 3 and above */
297 #define INSTALLPROPERTY_AUTHORIZED_LUA_APPA "AuthorizedLUAApp"
298 static const WCHAR INSTALLPROPERTY_AUTHORIZED_LUA_APPW[] = {'A','u','t','h','o','r','i','z','e','d','L','U','A','A','p','p',0};
299 #define INSTALLPROPERTY_AUTHORIZED_LUA_APP WINELIB_NAME_AW(INSTALLPROPERTY_AUTHORIZED_LUA_APP)
300
301
302 /* Installed Information */
303 #define INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA "InstalledProductName"
304 static const WCHAR INSTALLPROPERTY_INSTALLEDPRODUCTNAMEW[] = {'I','n','s','t','a','l','l','e','d','P','r','o','d','u','c','t','N','a','m','e',0};
305 #define INSTALLPROPERTY_INSTALLEDPRODUCTNAME WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLEDPRODUCTNAME)
306
307 #define INSTALLPROPERTY_VERSIONSTRINGA "VersionString"
308 static const WCHAR INSTALLPROPERTY_VERSIONSTRINGW[] = {'V','e','r','s','i','o','n','S','t','r','i','n','g',0};
309 #define INSTALLPROPERTY_VERSIONSTRING WINELIB_NAME_AW(INSTALLPROPERTY_VERSIONSTRING)
310
311 #define INSTALLPROPERTY_HELPLINKA "HelpLink"
312 static const WCHAR INSTALLPROPERTY_HELPLINKW[] = {'H','e','l','p','L','i','n','k',0};
313 #define INSTALLPROPERTY_HELPLINK WINELIB_NAME_AW(INSTALLPROPERTY_HELPLINK)
314
315 #define INSTALLPROPERTY_HELPTELEPHONEA "HelpTelephone"
316 static const WCHAR INSTALLPROPERTY_HELPTELEPHONEW[] = {'H','e','l','p','T','e','l','e','p','h','o','n','e',0};
317 #define INSTALLPROPERTY_HELPTELEPHONE WINELIB_NAME_AW(INSTALLPROPERTY_HELPTELEPHONE)
318
319 #define INSTALLPROPERTY_INSTALLLOCATIONA "InstallLocation"
320 static const WCHAR INSTALLPROPERTY_INSTALLLOCATIONW[] = {'I','n','s','t','a','l','l','L','o','c','a','t','i','o','n',0};
321 #define INSTALLPROPERTY_INSTALLLOCATION WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLLOCATION)
322
323 #define INSTALLPROPERTY_INSTALLSOURCEA "InstallSource"
324 static const WCHAR INSTALLPROPERTY_INSTALLSOURCEW[] = {'I','n','s','t','a','l','l','S','o','u','r','c','e',0};
325 #define INSTALLPROPERTY_INSTALLSOURCE WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLSOURCE)
326
327 #define INSTALLPROPERTY_INSTALLDATEA "InstallDate"
328 static const WCHAR INSTALLPROPERTY_INSTALLDATEW[] = {'I','n','s','t','a','l','l','D','a','t','e',0};
329 #define INSTALLPROPERTY_INSTALLDATE WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLDATE)
330
331 #define INSTALLPROPERTY_PUBLISHERA "Publisher"
332 static const WCHAR INSTALLPROPERTY_PUBLISHERW[] ={'P','u','b','l','i','s','h','e','r',0};
333 #define INSTALLPROPERTY_PUBLISHER WINELIB_NAME_AW(INSTALLPROPERTY_PUBLISHER)
334
335 #define INSTALLPROPERTY_LOCALPACKAGEA "LocalPackage"
336 static const WCHAR INSTALLPROPERTY_LOCALPACKAGEW[] = {'L','o','c','a','l','P','a','c','k','a','g','e',0};
337 #define INSTALLPROPERTY_LOCALPACKAGE WINELIB_NAME_AW(INSTALLPROPERTY_LOCALPACKAGE)
338
339 #define INSTALLPROPERTY_URLINFOABOUTA "URLInfoAbout"
340 static const WCHAR INSTALLPROPERTY_URLINFOABOUTW[] = {'U','R','L','I','n','f','o','A','b','o','u','t',0};
341 #define INSTALLPROPERTY_URLINFOABOUT WINELIB_NAME_AW(INSTALLPROPERTY_URLINFOABOUT)
342
343 #define INSTALLPROPERTY_URLUPDATEINFOA "URLUpdateInfo"
344 static const WCHAR INSTALLPROPERTY_URLUPDATEINFOW[] = {'U','R','L','U','p','d','a','t','e','I','n','f','o',0};
345 #define INSTALLPROPERTY_URLUPDATEINFO WINELIB_NAME_AW(INSTALLPROPERTY_URLUPDATEINFO)
346
347 #define INSTALLPROPERTY_VERSIONMINORA "VersionMinor"
348 static const WCHAR INSTALLPROPERTY_VERSIONMINORW[] = {'V','e','r','s','i','o','n','M','i','n','o','r',0};
349 #define INSTALLPROPERTY_VERSIONMINOR WINELIB_NAME_AW(INSTALLPROPERTY_VERSIONMINOR)
350
351 #define INSTALLPROPERTY_VERSIONMAJORA "VersionMajor"
352 static const WCHAR INSTALLPROPERTY_VERSIONMAJORW[] = {'V','e','r','s','i','o','n','M','a','j','o','r',0};
353 #define INSTALLPROPERTY_VERSIONMAJOR WINELIB_NAME_AW(INSTALLPROPERTY_VERSIONMAJOR)
354
355 #define INSTALLPROPERTY_PRODUCTIDA "ProductID"
356 static const WCHAR INSTALLPROPERTY_PRODUCTIDW[] = {'P','r','o','d','u','c','t','I','D',0};
357 #define INSTALLPROPERTY_PRODUCTID WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTID)
358
359 #define INSTALLPROPERTY_REGCOMPANYA "RegCompany"
360 static const WCHAR INSTALLPROPERTY_REGCOMPANYW[] = {'R','e','g','C','o','m','p','a','n','y',0};
361 #define INSTALLPROPERTY_REGCOMPANY WINELIB_NAME_AW(INSTALLPROPERTY_REGCOMPANY)
362
363 #define INSTALLPROPERTY_REGOWNERA "RegOwner"
364 static const WCHAR INSTALLPROPERTY_REGOWNERW[] = {'R','e','g','O','w','n','e','r',0};
365 #define INSTALLPROPERTY_REGOWNER WINELIB_NAME_AW(INSTALLPROPERTY_REGOWNER)
366
367 /* MSI Version 3.0 and greater */
368 #define INSTALLPROPERTY_UNINSTALLABLEA "Uninstallable"
369 static const WCHAR INSTALLPROPERTY_UNINSTALLABLEW[] = {'U','n','i','n','s','t','a','l','l','a','b','l','e',0};
370 #define INSTALLPROPERTY_UNINSTALLABLE WINELIB_NAME_AW(INSTALLPROPERTY_UNINSTALLABLE)
371
372 #define INSTALLPROPERTY_PRODUCTSTATEA "State"
373 static const WCHAR INSTALLPROPERTY_PRODUCTSTATEW[] = {'S','t','a','t','e',0};
374 #define INSTALLPROPERTY_PRODUCTSTATE WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTSTATE)
375
376 #define INSTALLPROPERTY_PATCHSTATEA "State"
377 static const WCHAR INSTALLPROPERTY_PATCHSTATEW[] ={'S','t','a','t','e',0};
378 #define INSTALLPROPERTY_PATCHSTATE WINELIB_NAME_AW(INSTALLPROPERTY_PATCHSTATE)
379
380 #define INSTALLPROPERTY_PATCHTYPEA "PatchType"
381 static const WCHAR INSTALLPROPERTY_PATCHTYPEW[] = {'P','a','t','c','h','T','y','p','e',0};
382 #define INSTALLPROPERTY_PATCHTYPE WINELIB_NAME_AW(INSTALLPROPERTY_PATCHTYPE)
383
384 #define INSTALLPROPERTY_LUAENABLEDA "LUAEnabled"
385 static const WCHAR INSTALLPROPERTY_LUAENABLEDW[] = {'L','U','A','E','n','a','b','l','e','d',0};
386 #define INSTALLPROPERTY_LUAENABLED WINELIB_NAME_AW(INSTALLPROPERTY_LUAENABLED)
387
388 #define INSTALLPROPERTY_DISPLAYNAMEA "DisplayName"
389 static const WCHAR INSTALLPROPERTY_DISPLAYNAMEW[] = {'D','i','s','p','l','a','y','N','a','m','e',0};
390 #define INSTALLPROPERTY_DISPLAYNAME WINELIB_NAME_AW(INSTALLPROPERTY_DISPLAYNAME)
391
392 #define INSTALLPROPERTY_MOREINFOURLA "MoreInfoURL"
393 static const WCHAR INSTALLPROPERTY_MOREINFOURLW[] = {'M','o','r','e','I','n','f','o','U','R','L',0};
394 #define INSTALLPROPERTY_MOREINFOURL WINELIB_NAME_AW(INSTALLPROPERTY_MOREINFOURL)
395
396 /* Source List Info */
397 #define INSTALLPROPERTY_LASTUSEDSOURCEA "LastUsedSource"
398 static const WCHAR INSTALLPROPERTY_LASTUSEDSOURCEW[] = {'L','a','s','t','U','s','e','d','S','o','u','r','c','e',0};
399 #define INSTALLPROPERTY_LASTUSEDSOURCE WINELIB_NAME_AW(INSTALLPROPERTY_LASTUSEDSOURCE)
400
401 #define INSTALLPROPERTY_LASTUSEDTYPEA "LastUsedType"
402 static const WCHAR INSTALLPROPERTY_LASTUSEDTYPEW[] = {'L','a','s','t','U','s','e','d','T','y','p','e',0};
403 #define INSTALLPROPERTY_LASTUSEDTYPE WINELIB_NAME_AW(INSTALLPROPERTY_LASTUSEDTYPE)
404
405 #define INSTALLPROPERTY_MEDIAPACKAGEPATHA "MediaPackagePath"
406 static const WCHAR INSTALLPROPERTY_MEDIAPACKAGEPATHW[] = {'M','e','d','i','a','P','a','c','k','a','g','e','P','a','t','h',0};
407 #define INSTALLPROPERTY_MEDIAPACKAGEPATH WINELIB_NAME_AW(INSTALLPROPERTY_MEDIAPACKAGEPATH)
408
409 #define INSTALLPROPERTY_DISKPROMPTA "DiskPrompt"
410 static const WCHAR INSTALLPROPERTY_DISKPROMPTW[] = {'D','i','s','k','P','r','o','m','p','t',0};
411 #define INSTALLPROPERTY_DISKPROMPT WINELIB_NAME_AW(INSTALLPROPERTY_DISKPROMPT)
412
413 typedef INT (CALLBACK *INSTALLUI_HANDLERA)(LPVOID, UINT, LPCSTR);
414 typedef INT (CALLBACK *INSTALLUI_HANDLERW)(LPVOID, UINT, LPCWSTR);
415 typedef INT (CALLBACK *INSTALLUI_HANDLER_RECORD)(LPVOID, UINT, MSIHANDLE);
416 typedef INSTALLUI_HANDLER_RECORD* PINSTALLUI_HANDLER_RECORD;
417
418 UINT
419 WINAPI
420 MsiAdvertiseProductA(
421 _In_ LPCSTR,
422 _In_opt_ LPCSTR,
423 _In_opt_ LPCSTR,
424 _In_ LANGID);
425
426 UINT
427 WINAPI
428 MsiAdvertiseProductW(
429 _In_ LPCWSTR,
430 _In_opt_ LPCWSTR,
431 _In_opt_ LPCWSTR,
432 _In_ LANGID);
433
434 #define MsiAdvertiseProduct WINELIB_NAME_AW(MsiAdvertiseProduct)
435
436 UINT
437 WINAPI
438 MsiAdvertiseProductExA(
439 _In_ LPCSTR,
440 _In_opt_ LPCSTR,
441 _In_opt_ LPCSTR,
442 _In_ LANGID,
443 _In_ DWORD,
444 _In_ DWORD);
445
446 UINT
447 WINAPI
448 MsiAdvertiseProductExW(
449 _In_ LPCWSTR,
450 _In_opt_ LPCWSTR,
451 _In_opt_ LPCWSTR,
452 _In_ LANGID,
453 _In_ DWORD,
454 _In_ DWORD);
455
456 #define MsiAdvertiseProductEx WINELIB_NAME_AW(MsiAdvertiseProductEx)
457
458 UINT WINAPI MsiInstallProductA(_In_ LPCSTR, _In_opt_ LPCSTR);
459 UINT WINAPI MsiInstallProductW(_In_ LPCWSTR, _In_opt_ LPCWSTR);
460 #define MsiInstallProduct WINELIB_NAME_AW(MsiInstallProduct)
461
462 UINT WINAPI MsiReinstallProductA(_In_ LPCSTR, _In_ DWORD);
463 UINT WINAPI MsiReinstallProductW(_In_ LPCWSTR, _In_ DWORD);
464 #define MsiReinstallProduct WINELIB_NAME_AW(MsiReinstallProduct)
465
466 UINT
467 WINAPI
468 MsiApplyPatchA(
469 _In_ LPCSTR,
470 _In_opt_ LPCSTR,
471 _In_ INSTALLTYPE,
472 _In_opt_ LPCSTR);
473
474 UINT
475 WINAPI
476 MsiApplyPatchW(
477 _In_ LPCWSTR,
478 _In_opt_ LPCWSTR,
479 _In_ INSTALLTYPE,
480 _In_opt_ LPCWSTR);
481
482 #define MsiApplyPatch WINELIB_NAME_AW(MsiApplyPatch)
483
484 UINT WINAPI MsiEnumComponentCostsA(MSIHANDLE, LPCSTR, DWORD, INSTALLSTATE, LPSTR, LPDWORD, LPINT, LPINT);
485 UINT WINAPI MsiEnumComponentCostsW(MSIHANDLE, LPCWSTR, DWORD, INSTALLSTATE, LPWSTR, LPDWORD, LPINT, LPINT);
486 #define MsiEnumComponentCosts WINELIB_NAME_AW(MsiEnumComponentCosts)
487
488 UINT
489 WINAPI
490 MsiEnumProductsA(
491 _In_ DWORD,
492 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR);
493
494 UINT
495 WINAPI
496 MsiEnumProductsW(
497 _In_ DWORD,
498 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR);
499
500 #define MsiEnumProducts WINELIB_NAME_AW(MsiEnumProducts)
501
502 UINT
503 WINAPI
504 MsiEnumProductsExA(
505 _In_opt_ LPCSTR,
506 _In_opt_ LPCSTR,
507 _In_ DWORD,
508 _In_ DWORD,
509 _Out_writes_opt_(MAX_GUID_CHARS + 1) CHAR[39],
510 _Out_opt_ MSIINSTALLCONTEXT*,
511 _Out_writes_opt_(*pcchSid) LPSTR,
512 _Inout_opt_ LPDWORD pcchSid);
513
514 UINT
515 WINAPI
516 MsiEnumProductsExW(
517 _In_opt_ LPCWSTR,
518 _In_opt_ LPCWSTR,
519 _In_ DWORD,
520 _In_ DWORD,
521 _Out_writes_opt_(MAX_GUID_CHARS + 1) WCHAR[39],
522 _Out_opt_ MSIINSTALLCONTEXT*,
523 _Out_writes_opt_(*pcchSid) LPWSTR,
524 _Inout_opt_ LPDWORD pcchSid);
525
526 #define MsiEnumProductsEx WINELIB_NAME_AW(MsiEnumProductsEx)
527
528 UINT
529 WINAPI
530 MsiEnumFeaturesA(
531 _In_ LPCSTR,
532 _In_ DWORD,
533 _Out_writes_(MAX_FEATURE_CHARS + 1) LPSTR,
534 _Out_writes_opt_(MAX_FEATURE_CHARS + 1) LPSTR);
535
536 UINT
537 WINAPI
538 MsiEnumFeaturesW(
539 _In_ LPCWSTR,
540 _In_ DWORD,
541 _Out_writes_(MAX_FEATURE_CHARS + 1) LPWSTR,
542 _Out_writes_opt_(MAX_FEATURE_CHARS + 1) LPWSTR);
543
544 #define MsiEnumFeatures WINELIB_NAME_AW(MsiEnumFeatures)
545
546 UINT
547 WINAPI
548 MsiEnumComponentsA(
549 _In_ DWORD,
550 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR);
551
552 UINT
553 WINAPI
554 MsiEnumComponentsW(
555 _In_ DWORD,
556 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR);
557
558 #define MsiEnumComponents WINELIB_NAME_AW(MsiEnumComponents)
559
560 UINT
561 WINAPI
562 MsiEnumComponentsExA(
563 _In_opt_ LPCSTR,
564 _In_ DWORD,
565 _In_ DWORD,
566 _Out_writes_opt_(MAX_GUID_CHARS + 1) CHAR[39],
567 _Out_opt_ MSIINSTALLCONTEXT *,
568 _Out_writes_opt_(*pcchSid) LPSTR,
569 _Inout_opt_ LPDWORD pcchSid);
570
571 UINT
572 WINAPI
573 MsiEnumComponentsExW(
574 _In_opt_ LPCWSTR,
575 _In_ DWORD,
576 _In_ DWORD,
577 _Out_writes_opt_(MAX_GUID_CHARS + 1) WCHAR[39],
578 _Out_opt_ MSIINSTALLCONTEXT *,
579 _Out_writes_opt_(*pcchSid) LPWSTR,
580 _Inout_opt_ LPDWORD pcchSid);
581
582 #define MsiEnumComponentsEx WINELIB_NAME_AW(MsiEnumComponentsEx)
583
584 UINT
585 WINAPI
586 MsiEnumClientsA(
587 _In_ LPCSTR,
588 _In_ DWORD,
589 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR);
590
591 UINT
592 WINAPI
593 MsiEnumClientsW(
594 _In_ LPCWSTR,
595 _In_ DWORD,
596 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR);
597
598 #define MsiEnumClients WINELIB_NAME_AW(MsiEnumClients)
599
600 UINT WINAPI MsiOpenPackageA(_In_ LPCSTR, _Out_ MSIHANDLE*);
601 UINT WINAPI MsiOpenPackageW(_In_ LPCWSTR, _Out_ MSIHANDLE*);
602 #define MsiOpenPackage WINELIB_NAME_AW(MsiOpenPackage)
603
604 UINT WINAPI MsiOpenPackageExA(_In_ LPCSTR, _In_ DWORD, _Out_ MSIHANDLE*);
605 UINT WINAPI MsiOpenPackageExW(_In_ LPCWSTR, _In_ DWORD, _Out_ MSIHANDLE*);
606 #define MsiOpenPackageEx WINELIB_NAME_AW(MsiOpenPackageEx)
607
608 UINT WINAPI MsiOpenProductA(_In_ LPCSTR, _Out_ MSIHANDLE*);
609 UINT WINAPI MsiOpenProductW(_In_ LPCWSTR, _Out_ MSIHANDLE*);
610 #define MsiOpenProduct WINELIB_NAME_AW(MsiOpenProduct)
611
612 UINT
613 WINAPI
614 MsiGetProductPropertyA(
615 _In_ MSIHANDLE,
616 _In_ LPCSTR,
617 _Out_writes_opt_(*pcchValueBuf) LPSTR,
618 _Inout_opt_ LPDWORD pcchValueBuf);
619
620 UINT
621 WINAPI
622 MsiGetProductPropertyW(
623 _In_ MSIHANDLE,
624 _In_ LPCWSTR,
625 _Out_writes_opt_(*pcchValueBuf) LPWSTR,
626 _Inout_opt_ LPDWORD pcchValueBuf);
627
628 #define MsiGetProductProperty WINELIB_NAME_AW(MsiGetProductProperty)
629
630 UINT WINAPI MsiVerifyPackageA(_In_ LPCSTR);
631 UINT WINAPI MsiVerifyPackageW(_In_ LPCWSTR);
632 #define MsiVerifyPackage WINELIB_NAME_AW(MsiVerifyPackage)
633
634 UINT
635 WINAPI
636 MsiQueryComponentStateA(
637 _In_ LPCSTR,
638 _In_opt_ LPCSTR,
639 _In_ MSIINSTALLCONTEXT,
640 _In_ LPCSTR,
641 _Out_opt_ INSTALLSTATE*);
642
643 UINT
644 WINAPI
645 MsiQueryComponentStateW(
646 _In_ LPCWSTR,
647 _In_opt_ LPCWSTR,
648 _In_ MSIINSTALLCONTEXT,
649 _In_ LPCWSTR,
650 _Out_opt_ INSTALLSTATE*);
651
652 #define MsiQueryComponentState WINELIB_NAME_AW(MsiQueryComponentState)
653
654 INSTALLSTATE WINAPI MsiQueryProductStateA(_In_ LPCSTR);
655 INSTALLSTATE WINAPI MsiQueryProductStateW(_In_ LPCWSTR);
656 #define MsiQueryProductState WINELIB_NAME_AW(MsiQueryProductState)
657
658 UINT WINAPI MsiConfigureProductA(_In_ LPCSTR, _In_ int, _In_ INSTALLSTATE);
659 UINT WINAPI MsiConfigureProductW(_In_ LPCWSTR, _In_ int, _In_ INSTALLSTATE);
660 #define MsiConfigureProduct WINELIB_NAME_AW(MsiConfigureProduct)
661
662 UINT
663 WINAPI
664 MsiConfigureProductExA(
665 _In_ LPCSTR,
666 _In_ int,
667 _In_ INSTALLSTATE,
668 _In_opt_ LPCSTR);
669
670 UINT
671 WINAPI
672 MsiConfigureProductExW(
673 _In_ LPCWSTR,
674 _In_ int,
675 _In_ INSTALLSTATE,
676 _In_opt_ LPCWSTR);
677
678 #define MsiConfigureProductEx WINELIB_NAME_AW(MsiConfigureProductEx)
679
680 UINT
681 WINAPI
682 MsiConfigureFeatureA(
683 _In_ LPCSTR,
684 _In_ LPCSTR,
685 _In_ INSTALLSTATE);
686
687 UINT
688 WINAPI
689 MsiConfigureFeatureW(
690 _In_ LPCWSTR,
691 _In_ LPCWSTR,
692 _In_ INSTALLSTATE);
693
694 #define MsiConfigureFeature WINELIB_NAME_AW(MsiConfigureFeature)
695
696 UINT
697 WINAPI
698 MsiGetProductCodeA(
699 _In_ LPCSTR,
700 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR);
701
702 UINT
703 WINAPI
704 MsiGetProductCodeW(
705 _In_ LPCWSTR,
706 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR);
707
708 #define MsiGetProductCode WINELIB_NAME_AW(MsiGetProductCode)
709
710 UINT
711 WINAPI
712 MsiGetProductInfoA(
713 _In_ LPCSTR,
714 _In_ LPCSTR,
715 _Out_writes_opt_(*pcchValueBuf) LPSTR,
716 _Inout_opt_ LPDWORD pcchValueBuf);
717
718 UINT
719 WINAPI
720 MsiGetProductInfoW(
721 _In_ LPCWSTR,
722 _In_ LPCWSTR,
723 _Out_writes_opt_(*pcchValueBuf) LPWSTR,
724 _Inout_opt_ LPDWORD pcchValueBuf);
725
726 #define MsiGetProductInfo WINELIB_NAME_AW(MsiGetProductInfo)
727
728 UINT
729 WINAPI
730 MsiGetProductInfoExA(
731 _In_ LPCSTR,
732 _In_opt_ LPCSTR,
733 _In_ MSIINSTALLCONTEXT,
734 _In_ LPCSTR,
735 _Out_writes_opt_(*pcchValue) LPSTR,
736 _Inout_opt_ LPDWORD pcchValue);
737
738 UINT
739 WINAPI
740 MsiGetProductInfoExW(
741 _In_ LPCWSTR,
742 _In_opt_ LPCWSTR,
743 _In_ MSIINSTALLCONTEXT,
744 _In_ LPCWSTR,
745 _Out_writes_opt_(*pcchValue) LPWSTR,
746 _Inout_opt_ LPDWORD pcchValue);
747
748 #define MsiGetProductInfoEx WINELIB_NAME_AW(MsiGetProductInfoEx)
749
750 UINT
751 WINAPI
752 MsiGetPatchInfoExA(
753 _In_ LPCSTR,
754 _In_ LPCSTR,
755 _In_opt_ LPCSTR,
756 _In_ MSIINSTALLCONTEXT,
757 _In_ LPCSTR,
758 _Out_writes_opt_(*pcchValue) LPSTR,
759 _Inout_opt_ LPDWORD pcchValue);
760
761 UINT
762 WINAPI
763 MsiGetPatchInfoExW(
764 _In_ LPCWSTR,
765 _In_ LPCWSTR,
766 _In_opt_ LPCWSTR,
767 _In_ MSIINSTALLCONTEXT,
768 _In_ LPCWSTR,
769 _Out_writes_opt_(*pcchValue) LPWSTR,
770 _Inout_opt_ LPDWORD pcchValue);
771
772 #define MsiGetPatchInfoEx WINELIB_NAME_AW(MsiGetPatchInfoEx)
773
774 UINT
775 WINAPI
776 MsiGetPatchInfoA(
777 _In_ LPCSTR,
778 _In_ LPCSTR,
779 _Out_writes_opt_(*pcchValueBuf) LPSTR,
780 _Inout_opt_ LPDWORD pcchValueBuf);
781
782 UINT
783 WINAPI
784 MsiGetPatchInfoW(
785 _In_ LPCWSTR,
786 _In_ LPCWSTR,
787 _Out_writes_opt_(*pcchValueBuf) LPWSTR,
788 _Inout_opt_ LPDWORD pcchValueBuf);
789
790 #define MsiGetPatchInfo WINELIB_NAME_AW(MsiGetPatchInfo)
791
792 UINT WINAPI MsiEnableLogA(_In_ DWORD, _In_opt_ LPCSTR, _In_ DWORD);
793 UINT WINAPI MsiEnableLogW(_In_ DWORD, _In_opt_ LPCWSTR, _In_ DWORD);
794 #define MsiEnableLog WINELIB_NAME_AW(MsiEnableLog)
795
796 INSTALLUI_HANDLERA
797 WINAPI
798 MsiSetExternalUIA(
799 _In_opt_ INSTALLUI_HANDLERA,
800 _In_ DWORD,
801 _In_opt_ LPVOID);
802
803 INSTALLUI_HANDLERW
804 WINAPI
805 MsiSetExternalUIW(
806 _In_opt_ INSTALLUI_HANDLERW,
807 _In_ DWORD,
808 _In_opt_ LPVOID);
809
810 #define MsiSetExternalUI WINELIB_NAME_AW(MsiSetExternalUI)
811
812 INSTALLSTATE
813 WINAPI
814 MsiGetComponentPathA(
815 _In_ LPCSTR,
816 _In_ LPCSTR,
817 _Out_writes_opt_(*pcchBuf) LPSTR,
818 _Inout_opt_ LPDWORD pcchBuf);
819
820 INSTALLSTATE
821 WINAPI
822 MsiGetComponentPathW(
823 _In_ LPCWSTR,
824 _In_ LPCWSTR,
825 _Out_writes_opt_(*pcchBuf) LPWSTR,
826 _Inout_opt_ LPDWORD pcchBuf);
827
828 #define MsiGetComponentPath WINELIB_NAME_AW(MsiGetComponentPath)
829
830 INSTALLSTATE WINAPI MsiQueryFeatureStateA(_In_ LPCSTR, _In_ LPCSTR);
831 INSTALLSTATE WINAPI MsiQueryFeatureStateW(_In_ LPCWSTR, _In_ LPCWSTR);
832 #define MsiQueryFeatureState WINELIB_NAME_AW(MsiQueryFeatureState)
833
834 UINT
835 WINAPI
836 MsiQueryFeatureStateExA(
837 _In_ LPCSTR,
838 _In_opt_ LPCSTR,
839 _In_ MSIINSTALLCONTEXT,
840 _In_ LPCSTR,
841 _Out_opt_ INSTALLSTATE*);
842
843 UINT
844 WINAPI
845 MsiQueryFeatureStateExW(
846 _In_ LPCWSTR,
847 _In_opt_ LPCWSTR,
848 _In_ MSIINSTALLCONTEXT,
849 _In_ LPCWSTR,
850 _Out_opt_ INSTALLSTATE*);
851
852 #define MsiQueryFeatureStateEx WINELIB_NAME_AW(MsiQueryFeatureStateEx)
853
854 UINT
855 WINAPI
856 MsiGetFeatureInfoA(
857 _In_ MSIHANDLE,
858 _In_ LPCSTR,
859 _Out_opt_ LPDWORD,
860 _Out_writes_opt_(*pcchTitleBuf) LPSTR,
861 _Inout_opt_ LPDWORD pcchTitleBuf,
862 _Out_writes_opt_(*pcchHelpBuf) LPSTR,
863 _Inout_opt_ LPDWORD pcchHelpBuf);
864
865 UINT
866 WINAPI
867 MsiGetFeatureInfoW(
868 _In_ MSIHANDLE,
869 _In_ LPCWSTR,
870 _Out_opt_ LPDWORD,
871 _Out_writes_opt_(*pcchTitleBuf) LPWSTR,
872 _Inout_opt_ LPDWORD pcchTitleBuf,
873 _Out_writes_opt_(*pcchHelpBuf) LPWSTR,
874 _Inout_opt_ LPDWORD pcchHelpBuf);
875
876 #define MsiGetFeatureInfo WINELIB_NAME_AW(MsiGetFeatureInfo)
877
878 UINT
879 WINAPI
880 MsiGetFeatureUsageA(
881 _In_ LPCSTR,
882 _In_ LPCSTR,
883 _Out_opt_ LPDWORD,
884 _Out_opt_ LPWORD);
885
886 UINT
887 WINAPI
888 MsiGetFeatureUsageW(
889 _In_ LPCWSTR,
890 _In_ LPCWSTR,
891 _Out_opt_ LPDWORD,
892 _Out_opt_ LPWORD);
893
894 #define MsiGetFeatureUsage WINELIB_NAME_AW(MsiGetFeatureUsage)
895
896 UINT
897 WINAPI
898 MsiEnumRelatedProductsA(
899 _In_ LPCSTR,
900 _Reserved_ DWORD,
901 _In_ DWORD,
902 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR);
903
904 UINT
905 WINAPI
906 MsiEnumRelatedProductsW(
907 _In_ LPCWSTR,
908 _Reserved_ DWORD,
909 _In_ DWORD,
910 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR);
911
912 #define MsiEnumRelatedProducts WINELIB_NAME_AW(MsiEnumRelatedProducts)
913
914 UINT
915 WINAPI
916 MsiProvideAssemblyA(
917 _In_ LPCSTR,
918 _In_opt_ LPCSTR,
919 _In_ DWORD,
920 _In_ DWORD,
921 _Out_writes_opt_(*pcchPathBuf) LPSTR,
922 _Inout_opt_ LPDWORD pcchPathBuf);
923
924 UINT
925 WINAPI
926 MsiProvideAssemblyW(
927 _In_ LPCWSTR,
928 _In_opt_ LPCWSTR,
929 _In_ DWORD,
930 _In_ DWORD,
931 _Out_writes_opt_(*pcchPathBuf) LPWSTR,
932 _Inout_opt_ LPDWORD pcchPathBuf);
933
934 #define MsiProvideAssembly WINELIB_NAME_AW(MsiProvideAssembly)
935
936 UINT
937 WINAPI
938 MsiEnumComponentQualifiersA(
939 _In_ LPCSTR,
940 _In_ DWORD,
941 _Out_writes_(*pcchQualifierBuf) LPSTR,
942 _Inout_ LPDWORD pcchQualifierBuf,
943 _Out_writes_opt_(*pcchApplicationDataBuf) LPSTR,
944 _Inout_opt_ LPDWORD pcchApplicationDataBuf);
945
946 UINT
947 WINAPI
948 MsiEnumComponentQualifiersW(
949 _In_ LPCWSTR,
950 _In_ DWORD,
951 _Out_writes_(*pcchQualifierBuf) LPWSTR,
952 _Inout_ LPDWORD pcchQualifierBuf,
953 _Out_writes_opt_(*pcchApplicationDataBuf) LPWSTR,
954 _Inout_opt_ LPDWORD pcchApplicationDataBuf);
955
956 #define MsiEnumComponentQualifiers WINELIB_NAME_AW(MsiEnumComponentQualifiers)
957
958 UINT
959 WINAPI
960 MsiGetFileVersionA(
961 _In_ LPCSTR,
962 _Out_writes_opt_(*pcchVersionBuf) LPSTR,
963 _Inout_opt_ LPDWORD pcchVersionBuf,
964 _Out_writes_opt_(*pcchLangBuf) LPSTR,
965 _Inout_opt_ LPDWORD pcchLangBuf);
966
967 UINT
968 WINAPI
969 MsiGetFileVersionW(
970 _In_ LPCWSTR,
971 _Out_writes_opt_(*pcchVersionBuf) LPWSTR,
972 _Inout_opt_ LPDWORD pcchVersionBuf,
973 _Out_writes_opt_(*pcchLangBuf) LPWSTR,
974 _Inout_opt_ LPDWORD pcchLangBuf);
975
976 #define MsiGetFileVersion WINELIB_NAME_AW(MsiGetFileVersion)
977
978 UINT WINAPI MsiMessageBoxA(HWND, LPCSTR, LPCSTR, UINT, WORD, DWORD);
979 UINT WINAPI MsiMessageBoxW(HWND, LPCWSTR, LPCWSTR, UINT, WORD, DWORD);
980 #define MsiMessageBox WINELIB_NAME_AW(MsiMessageBox)
981
982 UINT
983 WINAPI
984 MsiProvideQualifiedComponentExA(
985 _In_ LPCSTR,
986 _In_ LPCSTR,
987 _In_ DWORD,
988 _In_opt_ LPCSTR,
989 _Reserved_ DWORD,
990 _Reserved_ DWORD,
991 _Out_writes_opt_(*pcchPathBuf) LPSTR,
992 _Inout_opt_ LPDWORD pcchPathBuf);
993
994 UINT
995 WINAPI
996 MsiProvideQualifiedComponentExW(
997 _In_ LPCWSTR,
998 _In_ LPCWSTR,
999 _In_ DWORD,
1000 _In_opt_ LPCWSTR,
1001 _Reserved_ DWORD,
1002 _Reserved_ DWORD,
1003 _Out_writes_opt_(*pcchPathBuf) LPWSTR,
1004 _Inout_opt_ LPDWORD pcchPathBuf);
1005
1006 #define MsiProvideQualifiedComponentEx WINELIB_NAME_AW(MsiProvideQualifiedComponentEx)
1007
1008 UINT
1009 WINAPI
1010 MsiProvideQualifiedComponentA(
1011 _In_ LPCSTR,
1012 _In_ LPCSTR,
1013 _In_ DWORD,
1014 _Out_writes_opt_(*pcchPathBuf) LPSTR,
1015 _Inout_opt_ LPDWORD pcchPathBuf);
1016
1017 UINT
1018 WINAPI
1019 MsiProvideQualifiedComponentW(
1020 _In_ LPCWSTR,
1021 _In_ LPCWSTR,
1022 _In_ DWORD,
1023 _Out_writes_opt_(*pcchPathBuf) LPWSTR,
1024 _Inout_opt_ LPDWORD pcchPathBuf);
1025
1026 #define MsiProvideQualifiedComponent WINELIB_NAME_AW(MsiProvideQualifiedComponent)
1027
1028 USERINFOSTATE
1029 WINAPI
1030 MsiGetUserInfoA(
1031 _In_ LPCSTR,
1032 _Out_writes_opt_(*pcchUserNameBuf) LPSTR,
1033 _Inout_opt_ LPDWORD pcchUserNameBuf,
1034 _Out_writes_opt_(*pcchOrgNameBuf) LPSTR,
1035 _Inout_opt_ LPDWORD pcchOrgNameBuf,
1036 _Out_writes_opt_(*pcchSerialBuf) LPSTR,
1037 _Inout_opt_ LPDWORD pcchSerialBuf);
1038
1039 USERINFOSTATE
1040 WINAPI
1041 MsiGetUserInfoW(
1042 _In_ LPCWSTR,
1043 _Out_writes_opt_(*pcchUserNameBuf) LPWSTR,
1044 _Inout_opt_ LPDWORD pcchUserNameBuf,
1045 _Out_writes_opt_(*pcchOrgNameBuf) LPWSTR,
1046 _Inout_opt_ LPDWORD pcchOrgNameBuf,
1047 _Out_writes_opt_(*pcchSerialBuf) LPWSTR,
1048 _Inout_opt_ LPDWORD pcchSerialBuf);
1049
1050 #define MsiGetUserInfo WINELIB_NAME_AW(MsiGetUserInfo)
1051
1052 UINT WINAPI MsiCollectUserInfoA(_In_ LPCSTR);
1053 UINT WINAPI MsiCollectUserInfoW(_In_ LPCWSTR);
1054 #define MsiCollectUserInfo WINELIB_NAME_AW(MsiCollectUserInfo)
1055
1056 UINT WINAPI MsiReinstallFeatureA(_In_ LPCSTR, _In_ LPCSTR, _In_ DWORD);
1057 UINT WINAPI MsiReinstallFeatureW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ DWORD);
1058 #define MsiReinstallFeature WINELIB_NAME_AW(MsiReinstallFeature)
1059
1060 UINT
1061 WINAPI
1062 MsiGetShortcutTargetA(
1063 _In_ LPCSTR,
1064 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR,
1065 _Out_writes_opt_(MAX_FEATURE_CHARS + 1) LPSTR,
1066 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR);
1067
1068 UINT
1069 WINAPI
1070 MsiGetShortcutTargetW(
1071 _In_ LPCWSTR,
1072 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR,
1073 _Out_writes_opt_(MAX_FEATURE_CHARS + 1) LPWSTR,
1074 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR);
1075
1076 #define MsiGetShortcutTarget WINELIB_NAME_AW(MsiGetShortcutTarget)
1077
1078 INSTALLSTATE WINAPI MsiUseFeatureW(_In_ LPCWSTR, _In_ LPCWSTR);
1079 INSTALLSTATE WINAPI MsiUseFeatureA(_In_ LPCSTR, _In_ LPCSTR);
1080 #define MsiUseFeature WINELIB_NAME_AW(MsiUseFeature)
1081
1082 INSTALLSTATE
1083 WINAPI
1084 MsiUseFeatureExW(
1085 _In_ LPCWSTR,
1086 _In_ LPCWSTR,
1087 _In_ DWORD,
1088 _Reserved_ DWORD);
1089
1090 INSTALLSTATE
1091 WINAPI
1092 MsiUseFeatureExA(
1093 _In_ LPCSTR,
1094 _In_ LPCSTR,
1095 _In_ DWORD,
1096 _Reserved_ DWORD);
1097
1098 #define MsiUseFeatureEx WINELIB_NAME_AW(MsiUseFeatureEx)
1099
1100 HRESULT
1101 WINAPI
1102 MsiGetFileSignatureInformationA(
1103 _In_ LPCSTR,
1104 _In_ DWORD,
1105 _Outptr_ PCCERT_CONTEXT*,
1106 _Out_writes_bytes_opt_(*pcbHashData) LPBYTE,
1107 _Inout_opt_ LPDWORD pcbHashData);
1108
1109 HRESULT
1110 WINAPI
1111 MsiGetFileSignatureInformationW(
1112 _In_ LPCWSTR,
1113 _In_ DWORD,
1114 _Outptr_ PCCERT_CONTEXT*,
1115 _Out_writes_bytes_opt_(*pcbHashData) LPBYTE,
1116 _Inout_opt_ LPDWORD pcbHashData);
1117
1118 #define MsiGetFileSignatureInformation WINELIB_NAME_AW(MsiGetFileSignatureInformation)
1119
1120 INSTALLSTATE
1121 WINAPI
1122 MsiLocateComponentA(
1123 _In_ LPCSTR,
1124 _Out_writes_opt_(*pcchBuf) LPSTR,
1125 _Inout_opt_ LPDWORD pcchBuf);
1126
1127 INSTALLSTATE
1128 WINAPI
1129 MsiLocateComponentW(
1130 _In_ LPCWSTR,
1131 _Out_writes_opt_(*pcchBuf) LPWSTR,
1132 _Inout_opt_ LPDWORD pcchBuf);
1133
1134 #define MsiLocateComponent WINELIB_NAME_AW(MsiLocateComponent)
1135
1136 UINT
1137 WINAPI
1138 MsiSourceListAddSourceA(
1139 _In_ LPCSTR,
1140 _In_opt_ LPCSTR,
1141 _Reserved_ DWORD,
1142 _In_ LPCSTR);
1143
1144 UINT
1145 WINAPI
1146 MsiSourceListAddSourceW(
1147 _In_ LPCWSTR,
1148 _In_opt_ LPCWSTR,
1149 _Reserved_ DWORD,
1150 _In_ LPCWSTR);
1151
1152 #define MsiSourceListAddSource WINELIB_NAME_AW(MsiSourceListAddSource)
1153
1154 UINT
1155 WINAPI
1156 MsiSourceListEnumMediaDisksA(
1157 _In_ LPCSTR,
1158 _In_opt_ LPCSTR,
1159 _In_ MSIINSTALLCONTEXT,
1160 _In_ DWORD,
1161 _In_ DWORD,
1162 _Out_opt_ LPDWORD,
1163 _Out_writes_opt_(*pcchVolumeLabel) LPSTR,
1164 _Inout_opt_ LPDWORD pcchVolumeLabel,
1165 _Out_writes_opt_(*pcchDiskPrompt) LPSTR,
1166 _Inout_opt_ LPDWORD pcchDiskPrompt);
1167
1168 UINT
1169 WINAPI
1170 MsiSourceListEnumMediaDisksW(
1171 _In_ LPCWSTR,
1172 _In_opt_ LPCWSTR,
1173 _In_ MSIINSTALLCONTEXT,
1174 _In_ DWORD,
1175 _In_ DWORD,
1176 _Out_opt_ LPDWORD,
1177 _Out_writes_opt_(*pcchVolumeLabel) LPWSTR,
1178 _Inout_opt_ LPDWORD pcchVolumeLabel,
1179 _Out_writes_opt_(*pcchDiskPrompt) LPWSTR,
1180 _Inout_opt_ LPDWORD pcchDiskPrompt);
1181
1182 #define MsiSourceListEnumMediaDisks WINELIB_NAME_AW(MsiSourceListEnumMediaDisks)
1183
1184 UINT
1185 WINAPI
1186 MsiSourceListEnumSourcesA(
1187 _In_ LPCSTR,
1188 _In_opt_ LPCSTR,
1189 _In_ MSIINSTALLCONTEXT,
1190 _In_ DWORD,
1191 _In_ DWORD,
1192 _Out_writes_opt_(*pcchSource) LPSTR,
1193 _Inout_opt_ LPDWORD pcchSource);
1194
1195 UINT
1196 WINAPI
1197 MsiSourceListEnumSourcesW(
1198 _In_ LPCWSTR,
1199 _In_opt_ LPCWSTR,
1200 _In_ MSIINSTALLCONTEXT,
1201 _In_ DWORD,
1202 _In_ DWORD,
1203 _Out_writes_opt_(*pcchSource) LPWSTR,
1204 _Inout_opt_ LPDWORD pcchSource);
1205
1206 #define MsiSourceListEnumSources WINELIB_NAME_AW(MsiSourceListEnumSources)
1207
1208 UINT
1209 WINAPI
1210 MsiSourceListClearSourceA(
1211 _In_ LPCSTR,
1212 _In_opt_ LPCSTR,
1213 _In_ MSIINSTALLCONTEXT,
1214 _In_ DWORD,
1215 _In_ LPCSTR);
1216
1217 UINT
1218 WINAPI
1219 MsiSourceListClearSourceW(
1220 _In_ LPCWSTR,
1221 _In_opt_ LPCWSTR,
1222 _In_ MSIINSTALLCONTEXT,
1223 _In_ DWORD,
1224 _In_ LPCWSTR);
1225
1226 #define MsiSourceListClearSource WINELIB_NAME_AW(MsiSourceListClearSource)
1227
1228 UINT
1229 WINAPI
1230 MsiSourceListClearAllA(
1231 _In_ LPCSTR,
1232 _In_opt_ LPCSTR,
1233 _Reserved_ DWORD);
1234
1235 UINT
1236 WINAPI
1237 MsiSourceListClearAllW(
1238 _In_ LPCWSTR,
1239 _In_opt_ LPCWSTR,
1240 _Reserved_ DWORD);
1241
1242 #define MsiSourceListClearAll WINELIB_NAME_AW(MsiSourceListClearAll)
1243
1244 UINT
1245 WINAPI
1246 MsiSourceListGetInfoA(
1247 _In_ LPCSTR,
1248 _In_opt_ LPCSTR,
1249 _In_ MSIINSTALLCONTEXT,
1250 _In_ DWORD,
1251 _In_ LPCSTR,
1252 _Out_writes_opt_(*pcchValue) LPSTR,
1253 _Inout_opt_ LPDWORD pcchValue);
1254
1255 UINT
1256 WINAPI
1257 MsiSourceListGetInfoW(
1258 _In_ LPCWSTR,
1259 _In_opt_ LPCWSTR,
1260 _In_ MSIINSTALLCONTEXT,
1261 _In_ DWORD,
1262 _In_ LPCWSTR,
1263 _Out_writes_opt_(*pcchValue) LPWSTR,
1264 _Inout_opt_ LPDWORD pcchValue);
1265
1266 #define MsiSourceListGetInfo WINELIB_NAME_AW(MsiSourceListGetInfo)
1267
1268 UINT
1269 WINAPI
1270 MsiSourceListSetInfoA(
1271 _In_ LPCSTR,
1272 _In_opt_ LPCSTR,
1273 _In_ MSIINSTALLCONTEXT,
1274 _In_ DWORD,
1275 _In_ LPCSTR,
1276 _In_ LPCSTR);
1277
1278 UINT
1279 WINAPI
1280 MsiSourceListSetInfoW(
1281 _In_ LPCWSTR,
1282 _In_opt_ LPCWSTR,
1283 _In_ MSIINSTALLCONTEXT,
1284 _In_ DWORD,
1285 _In_ LPCWSTR,
1286 _In_ LPCWSTR);
1287
1288 #define MsiSourceListSetInfo WINELIB_NAME_AW(MsiSourceListSetInfo)
1289
1290 UINT
1291 WINAPI
1292 MsiSourceListAddSourceExA(
1293 _In_ LPCSTR,
1294 _In_opt_ LPCSTR,
1295 _In_ MSIINSTALLCONTEXT,
1296 _In_ DWORD,
1297 _In_ LPCSTR,
1298 _In_ DWORD);
1299
1300 UINT
1301 WINAPI
1302 MsiSourceListAddSourceExW(
1303 _In_ LPCWSTR,
1304 _In_opt_ LPCWSTR,
1305 _In_ MSIINSTALLCONTEXT,
1306 _In_ DWORD,
1307 _In_ LPCWSTR,
1308 _In_ DWORD);
1309
1310 #define MsiSourceListAddSourceEx WINELIB_NAME_AW(MsiSourceListAddSourceEx)
1311
1312 UINT
1313 WINAPI
1314 MsiSourceListAddMediaDiskA(
1315 _In_ LPCSTR,
1316 _In_opt_ LPCSTR,
1317 _In_ MSIINSTALLCONTEXT,
1318 _In_ DWORD,
1319 _In_ DWORD,
1320 _In_opt_ LPCSTR,
1321 _In_opt_ LPCSTR);
1322
1323 UINT
1324 WINAPI
1325 MsiSourceListAddMediaDiskW(
1326 _In_ LPCWSTR,
1327 _In_opt_ LPCWSTR,
1328 _In_ MSIINSTALLCONTEXT,
1329 _In_ DWORD,
1330 _In_ DWORD,
1331 _In_opt_ LPCWSTR,
1332 _In_opt_ LPCWSTR);
1333
1334 #define MsiSourceListAddMediaDisk WINELIB_NAME_AW(MsiSourceListAddMediaDisk)
1335
1336 UINT
1337 WINAPI
1338 MsiEnumPatchesA(
1339 _In_ LPCSTR,
1340 _In_ DWORD,
1341 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR,
1342 _Out_writes_(*pcchTransformsBuf) LPSTR,
1343 _Inout_ LPDWORD pcchTransformsBuf);
1344
1345 UINT
1346 WINAPI
1347 MsiEnumPatchesW(
1348 _In_ LPCWSTR,
1349 _In_ DWORD,
1350 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR,
1351 _Out_writes_(*pcchTransformsBuf) LPWSTR,
1352 _Inout_ LPDWORD pcchTransformsBuf);
1353
1354 #define MsiEnumPatches WINELIB_NAME_AW(MsiEnumPatches)
1355
1356 UINT
1357 WINAPI
1358 MsiEnumPatchesExA(
1359 _In_opt_ LPCSTR,
1360 _In_opt_ LPCSTR,
1361 _In_ DWORD,
1362 _In_ DWORD,
1363 _In_ DWORD,
1364 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR,
1365 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR,
1366 _Out_opt_ MSIINSTALLCONTEXT*,
1367 _Out_writes_opt_(*pcchTargetUserSid) LPSTR,
1368 _Inout_opt_ LPDWORD pcchTargetUserSid);
1369
1370 UINT
1371 WINAPI
1372 MsiEnumPatchesExW(
1373 _In_opt_ LPCWSTR,
1374 _In_opt_ LPCWSTR,
1375 _In_ DWORD,
1376 _In_ DWORD,
1377 _In_ DWORD,
1378 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR,
1379 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR,
1380 _Out_opt_ MSIINSTALLCONTEXT*,
1381 _Out_writes_opt_(*pcchTargetUserSid) LPWSTR,
1382 _Inout_opt_ LPDWORD pcchTargetUserSid);
1383
1384 #define MsiEnumPatchesEx WINELIB_NAME_AW(MsiEnumPatchesEx)
1385
1386 UINT
1387 WINAPI
1388 MsiGetFileHashA(
1389 _In_ LPCSTR,
1390 _In_ DWORD,
1391 _Inout_ PMSIFILEHASHINFO);
1392
1393 UINT
1394 WINAPI
1395 MsiGetFileHashW(
1396 _In_ LPCWSTR,
1397 _In_ DWORD,
1398 _Inout_ PMSIFILEHASHINFO);
1399
1400 #define MsiGetFileHash WINELIB_NAME_AW(MsiGetFileHash)
1401
1402 UINT
1403 WINAPI
1404 MsiAdvertiseScriptA(
1405 _In_ LPCSTR,
1406 _In_ DWORD,
1407 _In_opt_ PHKEY,
1408 _In_ BOOL);
1409
1410 UINT
1411 WINAPI
1412 MsiAdvertiseScriptW(
1413 _In_ LPCWSTR,
1414 _In_ DWORD,
1415 _In_opt_ PHKEY,
1416 _In_ BOOL);
1417
1418 #define MsiAdvertiseScript WINELIB_NAME_AW(MsiAdvertiseScript)
1419
1420 UINT WINAPI MsiIsProductElevatedA(_In_ LPCSTR, _Out_ BOOL *);
1421 UINT WINAPI MsiIsProductElevatedW(_In_ LPCWSTR, _Out_ BOOL *);
1422 #define MsiIsProductElevated WINELIB_NAME_AW(MsiIsProductElevated)
1423
1424 UINT WINAPI MsiDatabaseMergeA(MSIHANDLE, MSIHANDLE, LPCSTR);
1425 UINT WINAPI MsiDatabaseMergeW(MSIHANDLE, MSIHANDLE, LPCWSTR);
1426 #define MsiDatabaseMerge WINELIB_NAME_AW(MsiDatabaseMerge)
1427
1428 UINT
1429 WINAPI
1430 MsiInstallMissingComponentA(
1431 _In_ LPCSTR,
1432 _In_ LPCSTR,
1433 _In_ INSTALLSTATE);
1434
1435 UINT
1436 WINAPI
1437 MsiInstallMissingComponentW(
1438 _In_ LPCWSTR,
1439 _In_ LPCWSTR,
1440 _In_ INSTALLSTATE);
1441
1442 #define MsiInstallMissingComponent WINELIB_NAME_AW(MsiInstallMissingComponent)
1443
1444 UINT
1445 WINAPI
1446 MsiDetermineApplicablePatchesA(
1447 _In_ LPCSTR,
1448 _In_ DWORD cPatchInfo,
1449 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOA);
1450
1451 UINT
1452 WINAPI
1453 MsiDetermineApplicablePatchesW(
1454 _In_ LPCWSTR,
1455 _In_ DWORD cPatchInfo,
1456 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOW);
1457
1458 #define MsiDetermineApplicablePatches WINELIB_NAME_AW(MsiDetermineApplicablePatches)
1459
1460 UINT
1461 WINAPI
1462 MsiDeterminePatchSequenceA(
1463 _In_ LPCSTR,
1464 _In_opt_ LPCSTR,
1465 _In_ MSIINSTALLCONTEXT,
1466 _In_ DWORD cPatchInfo,
1467 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOA);
1468
1469 UINT
1470 WINAPI
1471 MsiDeterminePatchSequenceW(
1472 _In_ LPCWSTR,
1473 _In_opt_ LPCWSTR,
1474 _In_ MSIINSTALLCONTEXT,
1475 _In_ DWORD cPatchInfo,
1476 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOW);
1477
1478 #define MsiDeterminePatchSequence WINELIB_NAME_AW(MsiDeterminePatchSequence)
1479
1480 UINT
1481 WINAPI
1482 MsiApplyMultiplePatchesA(
1483 _In_ LPCSTR,
1484 _In_opt_ LPCSTR,
1485 _In_opt_ LPCSTR);
1486
1487 UINT
1488 WINAPI
1489 MsiApplyMultiplePatchesW(
1490 _In_ LPCWSTR,
1491 _In_opt_ LPCWSTR,
1492 _In_opt_ LPCWSTR);
1493
1494 #define MsiApplyMultiplePatches WINELIB_NAME_AW(MsiApplyMultiplePatches)
1495
1496 UINT
1497 WINAPI
1498 MsiBeginTransactionA(
1499 _In_ LPCSTR,
1500 _In_ DWORD,
1501 _Out_ MSIHANDLE *,
1502 _Out_ HANDLE *);
1503
1504 UINT
1505 WINAPI
1506 MsiBeginTransactionW(
1507 _In_ LPCWSTR,
1508 _In_ DWORD,
1509 _Out_ MSIHANDLE *,
1510 _Out_ HANDLE *);
1511
1512 #define MsiBeginTransaction WINELIB_NAME_AW(MsiBeginTransaction)
1513
1514 UINT WINAPI MsiEndTransaction(_In_ DWORD);
1515
1516 /* Non Unicode */
1517 UINT WINAPI MsiCloseHandle(MSIHANDLE);
1518 UINT WINAPI MsiCloseAllHandles(void);
1519 INSTALLUILEVEL WINAPI MsiSetInternalUI(_In_ INSTALLUILEVEL, _Inout_opt_ HWND*);
1520
1521 UINT
1522 WINAPI
1523 MsiSetExternalUIRecord(
1524 _In_opt_ INSTALLUI_HANDLER_RECORD,
1525 _In_ DWORD,
1526 _In_opt_ LPVOID,
1527 _Out_opt_ PINSTALLUI_HANDLER_RECORD);
1528
1529 #ifdef __cplusplus
1530 }
1531 #endif
1532
1533 #endif /* __WINE_MSI_H */