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 MsiProvidedComponentA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPDWORD); 1053 UINT WINAPI MsiProvideComponentW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPDWORD); 1054 #define MsiProvideComponent WINELIB_NAME_AW(MsiProvideComponent) 1055 1056 UINT WINAPI MsiCollectUserInfoA(_In_ LPCSTR); 1057 UINT WINAPI MsiCollectUserInfoW(_In_ LPCWSTR); 1058 #define MsiCollectUserInfo WINELIB_NAME_AW(MsiCollectUserInfo) 1059 1060 UINT WINAPI MsiReinstallFeatureA(_In_ LPCSTR, _In_ LPCSTR, _In_ DWORD); 1061 UINT WINAPI MsiReinstallFeatureW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ DWORD); 1062 #define MsiReinstallFeature WINELIB_NAME_AW(MsiReinstallFeature) 1063 1064 UINT 1065 WINAPI 1066 MsiGetShortcutTargetA( 1067 _In_ LPCSTR, 1068 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR, 1069 _Out_writes_opt_(MAX_FEATURE_CHARS + 1) LPSTR, 1070 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR); 1071 1072 UINT 1073 WINAPI 1074 MsiGetShortcutTargetW( 1075 _In_ LPCWSTR, 1076 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR, 1077 _Out_writes_opt_(MAX_FEATURE_CHARS + 1) LPWSTR, 1078 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR); 1079 1080 #define MsiGetShortcutTarget WINELIB_NAME_AW(MsiGetShortcutTarget) 1081 1082 INSTALLSTATE WINAPI MsiUseFeatureW(_In_ LPCWSTR, _In_ LPCWSTR); 1083 INSTALLSTATE WINAPI MsiUseFeatureA(_In_ LPCSTR, _In_ LPCSTR); 1084 #define MsiUseFeature WINELIB_NAME_AW(MsiUseFeature) 1085 1086 INSTALLSTATE 1087 WINAPI 1088 MsiUseFeatureExW( 1089 _In_ LPCWSTR, 1090 _In_ LPCWSTR, 1091 _In_ DWORD, 1092 _Reserved_ DWORD); 1093 1094 INSTALLSTATE 1095 WINAPI 1096 MsiUseFeatureExA( 1097 _In_ LPCSTR, 1098 _In_ LPCSTR, 1099 _In_ DWORD, 1100 _Reserved_ DWORD); 1101 1102 #define MsiUseFeatureEx WINELIB_NAME_AW(MsiUseFeatureEx) 1103 1104 HRESULT 1105 WINAPI 1106 MsiGetFileSignatureInformationA( 1107 _In_ LPCSTR, 1108 _In_ DWORD, 1109 _Outptr_ PCCERT_CONTEXT*, 1110 _Out_writes_bytes_opt_(*pcbHashData) LPBYTE, 1111 _Inout_opt_ LPDWORD pcbHashData); 1112 1113 HRESULT 1114 WINAPI 1115 MsiGetFileSignatureInformationW( 1116 _In_ LPCWSTR, 1117 _In_ DWORD, 1118 _Outptr_ PCCERT_CONTEXT*, 1119 _Out_writes_bytes_opt_(*pcbHashData) LPBYTE, 1120 _Inout_opt_ LPDWORD pcbHashData); 1121 1122 #define MsiGetFileSignatureInformation WINELIB_NAME_AW(MsiGetFileSignatureInformation) 1123 1124 INSTALLSTATE 1125 WINAPI 1126 MsiLocateComponentA( 1127 _In_ LPCSTR, 1128 _Out_writes_opt_(*pcchBuf) LPSTR, 1129 _Inout_opt_ LPDWORD pcchBuf); 1130 1131 INSTALLSTATE 1132 WINAPI 1133 MsiLocateComponentW( 1134 _In_ LPCWSTR, 1135 _Out_writes_opt_(*pcchBuf) LPWSTR, 1136 _Inout_opt_ LPDWORD pcchBuf); 1137 1138 #define MsiLocateComponent WINELIB_NAME_AW(MsiLocateComponent) 1139 1140 UINT 1141 WINAPI 1142 MsiSourceListAddSourceA( 1143 _In_ LPCSTR, 1144 _In_opt_ LPCSTR, 1145 _Reserved_ DWORD, 1146 _In_ LPCSTR); 1147 1148 UINT 1149 WINAPI 1150 MsiSourceListAddSourceW( 1151 _In_ LPCWSTR, 1152 _In_opt_ LPCWSTR, 1153 _Reserved_ DWORD, 1154 _In_ LPCWSTR); 1155 1156 #define MsiSourceListAddSource WINELIB_NAME_AW(MsiSourceListAddSource) 1157 1158 UINT 1159 WINAPI 1160 MsiSourceListEnumMediaDisksA( 1161 _In_ LPCSTR, 1162 _In_opt_ LPCSTR, 1163 _In_ MSIINSTALLCONTEXT, 1164 _In_ DWORD, 1165 _In_ DWORD, 1166 _Out_opt_ LPDWORD, 1167 _Out_writes_opt_(*pcchVolumeLabel) LPSTR, 1168 _Inout_opt_ LPDWORD pcchVolumeLabel, 1169 _Out_writes_opt_(*pcchDiskPrompt) LPSTR, 1170 _Inout_opt_ LPDWORD pcchDiskPrompt); 1171 1172 UINT 1173 WINAPI 1174 MsiSourceListEnumMediaDisksW( 1175 _In_ LPCWSTR, 1176 _In_opt_ LPCWSTR, 1177 _In_ MSIINSTALLCONTEXT, 1178 _In_ DWORD, 1179 _In_ DWORD, 1180 _Out_opt_ LPDWORD, 1181 _Out_writes_opt_(*pcchVolumeLabel) LPWSTR, 1182 _Inout_opt_ LPDWORD pcchVolumeLabel, 1183 _Out_writes_opt_(*pcchDiskPrompt) LPWSTR, 1184 _Inout_opt_ LPDWORD pcchDiskPrompt); 1185 1186 #define MsiSourceListEnumMediaDisks WINELIB_NAME_AW(MsiSourceListEnumMediaDisks) 1187 1188 UINT 1189 WINAPI 1190 MsiSourceListEnumSourcesA( 1191 _In_ LPCSTR, 1192 _In_opt_ LPCSTR, 1193 _In_ MSIINSTALLCONTEXT, 1194 _In_ DWORD, 1195 _In_ DWORD, 1196 _Out_writes_opt_(*pcchSource) LPSTR, 1197 _Inout_opt_ LPDWORD pcchSource); 1198 1199 UINT 1200 WINAPI 1201 MsiSourceListEnumSourcesW( 1202 _In_ LPCWSTR, 1203 _In_opt_ LPCWSTR, 1204 _In_ MSIINSTALLCONTEXT, 1205 _In_ DWORD, 1206 _In_ DWORD, 1207 _Out_writes_opt_(*pcchSource) LPWSTR, 1208 _Inout_opt_ LPDWORD pcchSource); 1209 1210 #define MsiSourceListEnumSources WINELIB_NAME_AW(MsiSourceListEnumSources) 1211 1212 UINT 1213 WINAPI 1214 MsiSourceListClearSourceA( 1215 _In_ LPCSTR, 1216 _In_opt_ LPCSTR, 1217 _In_ MSIINSTALLCONTEXT, 1218 _In_ DWORD, 1219 _In_ LPCSTR); 1220 1221 UINT 1222 WINAPI 1223 MsiSourceListClearSourceW( 1224 _In_ LPCWSTR, 1225 _In_opt_ LPCWSTR, 1226 _In_ MSIINSTALLCONTEXT, 1227 _In_ DWORD, 1228 _In_ LPCWSTR); 1229 1230 #define MsiSourceListClearSource WINELIB_NAME_AW(MsiSourceListClearSource) 1231 1232 UINT 1233 WINAPI 1234 MsiSourceListClearAllA( 1235 _In_ LPCSTR, 1236 _In_opt_ LPCSTR, 1237 _Reserved_ DWORD); 1238 1239 UINT 1240 WINAPI 1241 MsiSourceListClearAllW( 1242 _In_ LPCWSTR, 1243 _In_opt_ LPCWSTR, 1244 _Reserved_ DWORD); 1245 1246 #define MsiSourceListClearAll WINELIB_NAME_AW(MsiSourceListClearAll) 1247 1248 UINT 1249 WINAPI 1250 MsiSourceListGetInfoA( 1251 _In_ LPCSTR, 1252 _In_opt_ LPCSTR, 1253 _In_ MSIINSTALLCONTEXT, 1254 _In_ DWORD, 1255 _In_ LPCSTR, 1256 _Out_writes_opt_(*pcchValue) LPSTR, 1257 _Inout_opt_ LPDWORD pcchValue); 1258 1259 UINT 1260 WINAPI 1261 MsiSourceListGetInfoW( 1262 _In_ LPCWSTR, 1263 _In_opt_ LPCWSTR, 1264 _In_ MSIINSTALLCONTEXT, 1265 _In_ DWORD, 1266 _In_ LPCWSTR, 1267 _Out_writes_opt_(*pcchValue) LPWSTR, 1268 _Inout_opt_ LPDWORD pcchValue); 1269 1270 #define MsiSourceListGetInfo WINELIB_NAME_AW(MsiSourceListGetInfo) 1271 1272 UINT 1273 WINAPI 1274 MsiSourceListSetInfoA( 1275 _In_ LPCSTR, 1276 _In_opt_ LPCSTR, 1277 _In_ MSIINSTALLCONTEXT, 1278 _In_ DWORD, 1279 _In_ LPCSTR, 1280 _In_ LPCSTR); 1281 1282 UINT 1283 WINAPI 1284 MsiSourceListSetInfoW( 1285 _In_ LPCWSTR, 1286 _In_opt_ LPCWSTR, 1287 _In_ MSIINSTALLCONTEXT, 1288 _In_ DWORD, 1289 _In_ LPCWSTR, 1290 _In_ LPCWSTR); 1291 1292 #define MsiSourceListSetInfo WINELIB_NAME_AW(MsiSourceListSetInfo) 1293 1294 UINT 1295 WINAPI 1296 MsiSourceListAddSourceExA( 1297 _In_ LPCSTR, 1298 _In_opt_ LPCSTR, 1299 _In_ MSIINSTALLCONTEXT, 1300 _In_ DWORD, 1301 _In_ LPCSTR, 1302 _In_ DWORD); 1303 1304 UINT 1305 WINAPI 1306 MsiSourceListAddSourceExW( 1307 _In_ LPCWSTR, 1308 _In_opt_ LPCWSTR, 1309 _In_ MSIINSTALLCONTEXT, 1310 _In_ DWORD, 1311 _In_ LPCWSTR, 1312 _In_ DWORD); 1313 1314 #define MsiSourceListAddSourceEx WINELIB_NAME_AW(MsiSourceListAddSourceEx) 1315 1316 UINT 1317 WINAPI 1318 MsiSourceListAddMediaDiskA( 1319 _In_ LPCSTR, 1320 _In_opt_ LPCSTR, 1321 _In_ MSIINSTALLCONTEXT, 1322 _In_ DWORD, 1323 _In_ DWORD, 1324 _In_opt_ LPCSTR, 1325 _In_opt_ LPCSTR); 1326 1327 UINT 1328 WINAPI 1329 MsiSourceListAddMediaDiskW( 1330 _In_ LPCWSTR, 1331 _In_opt_ LPCWSTR, 1332 _In_ MSIINSTALLCONTEXT, 1333 _In_ DWORD, 1334 _In_ DWORD, 1335 _In_opt_ LPCWSTR, 1336 _In_opt_ LPCWSTR); 1337 1338 #define MsiSourceListAddMediaDisk WINELIB_NAME_AW(MsiSourceListAddMediaDisk) 1339 1340 UINT 1341 WINAPI 1342 MsiEnumPatchesA( 1343 _In_ LPCSTR, 1344 _In_ DWORD, 1345 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR, 1346 _Out_writes_(*pcchTransformsBuf) LPSTR, 1347 _Inout_ LPDWORD pcchTransformsBuf); 1348 1349 UINT 1350 WINAPI 1351 MsiEnumPatchesW( 1352 _In_ LPCWSTR, 1353 _In_ DWORD, 1354 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR, 1355 _Out_writes_(*pcchTransformsBuf) LPWSTR, 1356 _Inout_ LPDWORD pcchTransformsBuf); 1357 1358 #define MsiEnumPatches WINELIB_NAME_AW(MsiEnumPatches) 1359 1360 UINT 1361 WINAPI 1362 MsiEnumPatchesExA( 1363 _In_opt_ LPCSTR, 1364 _In_opt_ LPCSTR, 1365 _In_ DWORD, 1366 _In_ DWORD, 1367 _In_ DWORD, 1368 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR, 1369 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR, 1370 _Out_opt_ MSIINSTALLCONTEXT*, 1371 _Out_writes_opt_(*pcchTargetUserSid) LPSTR, 1372 _Inout_opt_ LPDWORD pcchTargetUserSid); 1373 1374 UINT 1375 WINAPI 1376 MsiEnumPatchesExW( 1377 _In_opt_ LPCWSTR, 1378 _In_opt_ LPCWSTR, 1379 _In_ DWORD, 1380 _In_ DWORD, 1381 _In_ DWORD, 1382 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR, 1383 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR, 1384 _Out_opt_ MSIINSTALLCONTEXT*, 1385 _Out_writes_opt_(*pcchTargetUserSid) LPWSTR, 1386 _Inout_opt_ LPDWORD pcchTargetUserSid); 1387 1388 #define MsiEnumPatchesEx WINELIB_NAME_AW(MsiEnumPatchesEx) 1389 1390 UINT 1391 WINAPI 1392 MsiGetFileHashA( 1393 _In_ LPCSTR, 1394 _In_ DWORD, 1395 _Inout_ PMSIFILEHASHINFO); 1396 1397 UINT 1398 WINAPI 1399 MsiGetFileHashW( 1400 _In_ LPCWSTR, 1401 _In_ DWORD, 1402 _Inout_ PMSIFILEHASHINFO); 1403 1404 #define MsiGetFileHash WINELIB_NAME_AW(MsiGetFileHash) 1405 1406 UINT 1407 WINAPI 1408 MsiAdvertiseScriptA( 1409 _In_ LPCSTR, 1410 _In_ DWORD, 1411 _In_opt_ PHKEY, 1412 _In_ BOOL); 1413 1414 UINT 1415 WINAPI 1416 MsiAdvertiseScriptW( 1417 _In_ LPCWSTR, 1418 _In_ DWORD, 1419 _In_opt_ PHKEY, 1420 _In_ BOOL); 1421 1422 #define MsiAdvertiseScript WINELIB_NAME_AW(MsiAdvertiseScript) 1423 1424 UINT WINAPI MsiIsProductElevatedA(_In_ LPCSTR, _Out_ BOOL *); 1425 UINT WINAPI MsiIsProductElevatedW(_In_ LPCWSTR, _Out_ BOOL *); 1426 #define MsiIsProductElevated WINELIB_NAME_AW(MsiIsProductElevated) 1427 1428 UINT WINAPI MsiDatabaseMergeA(MSIHANDLE, MSIHANDLE, LPCSTR); 1429 UINT WINAPI MsiDatabaseMergeW(MSIHANDLE, MSIHANDLE, LPCWSTR); 1430 #define MsiDatabaseMerge WINELIB_NAME_AW(MsiDatabaseMerge) 1431 1432 UINT 1433 WINAPI 1434 MsiInstallMissingComponentA( 1435 _In_ LPCSTR, 1436 _In_ LPCSTR, 1437 _In_ INSTALLSTATE); 1438 1439 UINT 1440 WINAPI 1441 MsiInstallMissingComponentW( 1442 _In_ LPCWSTR, 1443 _In_ LPCWSTR, 1444 _In_ INSTALLSTATE); 1445 1446 #define MsiInstallMissingComponent WINELIB_NAME_AW(MsiInstallMissingComponent) 1447 1448 UINT 1449 WINAPI 1450 MsiDetermineApplicablePatchesA( 1451 _In_ LPCSTR, 1452 _In_ DWORD cPatchInfo, 1453 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOA); 1454 1455 UINT 1456 WINAPI 1457 MsiDetermineApplicablePatchesW( 1458 _In_ LPCWSTR, 1459 _In_ DWORD cPatchInfo, 1460 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOW); 1461 1462 #define MsiDetermineApplicablePatches WINELIB_NAME_AW(MsiDetermineApplicablePatches) 1463 1464 UINT 1465 WINAPI 1466 MsiDeterminePatchSequenceA( 1467 _In_ LPCSTR, 1468 _In_opt_ LPCSTR, 1469 _In_ MSIINSTALLCONTEXT, 1470 _In_ DWORD cPatchInfo, 1471 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOA); 1472 1473 UINT 1474 WINAPI 1475 MsiDeterminePatchSequenceW( 1476 _In_ LPCWSTR, 1477 _In_opt_ LPCWSTR, 1478 _In_ MSIINSTALLCONTEXT, 1479 _In_ DWORD cPatchInfo, 1480 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOW); 1481 1482 #define MsiDeterminePatchSequence WINELIB_NAME_AW(MsiDeterminePatchSequence) 1483 1484 UINT 1485 WINAPI 1486 MsiApplyMultiplePatchesA( 1487 _In_ LPCSTR, 1488 _In_opt_ LPCSTR, 1489 _In_opt_ LPCSTR); 1490 1491 UINT 1492 WINAPI 1493 MsiApplyMultiplePatchesW( 1494 _In_ LPCWSTR, 1495 _In_opt_ LPCWSTR, 1496 _In_opt_ LPCWSTR); 1497 1498 #define MsiApplyMultiplePatches WINELIB_NAME_AW(MsiApplyMultiplePatches) 1499 1500 UINT 1501 WINAPI 1502 MsiBeginTransactionA( 1503 _In_ LPCSTR, 1504 _In_ DWORD, 1505 _Out_ MSIHANDLE *, 1506 _Out_ HANDLE *); 1507 1508 UINT 1509 WINAPI 1510 MsiBeginTransactionW( 1511 _In_ LPCWSTR, 1512 _In_ DWORD, 1513 _Out_ MSIHANDLE *, 1514 _Out_ HANDLE *); 1515 1516 #define MsiBeginTransaction WINELIB_NAME_AW(MsiBeginTransaction) 1517 1518 UINT WINAPI MsiEndTransaction(_In_ DWORD); 1519 1520 /* Non Unicode */ 1521 UINT WINAPI MsiCloseHandle(MSIHANDLE); 1522 UINT WINAPI MsiCloseAllHandles(void); 1523 INSTALLUILEVEL WINAPI MsiSetInternalUI(_In_ INSTALLUILEVEL, _Inout_opt_ HWND*); 1524 1525 UINT 1526 WINAPI 1527 MsiSetExternalUIRecord( 1528 _In_opt_ INSTALLUI_HANDLER_RECORD, 1529 _In_ DWORD, 1530 _In_opt_ LPVOID, 1531 _Out_opt_ PINSTALLUI_HANDLER_RECORD); 1532 1533 #ifdef __cplusplus 1534 } 1535 #endif 1536 1537 #endif /* __WINE_MSI_H */ 1538