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