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 MsiEnumClientsExA(_In_ LPCSTR szComponent, _In_opt_ LPCSTR szUserSid, _In_ DWORD dwContext, _In_ DWORD dwProductIndex, _Out_opt_ CHAR szProductBuf[39], _Out_opt_ MSIINSTALLCONTEXT* pdwInstalledContext, _Out_opt_ LPSTR szSid, _Inout_opt_ LPDWORD pcchSid); 608 UINT WINAPI MsiEnumClientsExW(_In_ LPCWSTR szComponent, _In_opt_ LPCWSTR szUserSid, _In_ DWORD dwContext, _In_ DWORD dwProductIndex, _Out_opt_ WCHAR szProductBuf[39], _Out_opt_ MSIINSTALLCONTEXT* pdwInstalledContext, _Out_opt_ LPWSTR szSid, _Inout_opt_ LPDWORD pcchSid); 609 #define MsiEnumClientsEx WINELIB_NAME_AW(MsiEnumClientsEx) 610 611 UINT WINAPI MsiOpenPackageA(_In_ LPCSTR, _Out_ MSIHANDLE*); 612 UINT WINAPI MsiOpenPackageW(_In_ LPCWSTR, _Out_ MSIHANDLE*); 613 #define MsiOpenPackage WINELIB_NAME_AW(MsiOpenPackage) 614 615 UINT WINAPI MsiOpenPackageExA(_In_ LPCSTR, _In_ DWORD, _Out_ MSIHANDLE*); 616 UINT WINAPI MsiOpenPackageExW(_In_ LPCWSTR, _In_ DWORD, _Out_ MSIHANDLE*); 617 #define MsiOpenPackageEx WINELIB_NAME_AW(MsiOpenPackageEx) 618 619 UINT WINAPI MsiOpenProductA(_In_ LPCSTR, _Out_ MSIHANDLE*); 620 UINT WINAPI MsiOpenProductW(_In_ LPCWSTR, _Out_ MSIHANDLE*); 621 #define MsiOpenProduct WINELIB_NAME_AW(MsiOpenProduct) 622 623 UINT 624 WINAPI 625 MsiGetProductPropertyA( 626 _In_ MSIHANDLE, 627 _In_ LPCSTR, 628 _Out_writes_opt_(*pcchValueBuf) LPSTR, 629 _Inout_opt_ LPDWORD pcchValueBuf); 630 631 UINT 632 WINAPI 633 MsiGetProductPropertyW( 634 _In_ MSIHANDLE, 635 _In_ LPCWSTR, 636 _Out_writes_opt_(*pcchValueBuf) LPWSTR, 637 _Inout_opt_ LPDWORD pcchValueBuf); 638 639 #define MsiGetProductProperty WINELIB_NAME_AW(MsiGetProductProperty) 640 641 UINT WINAPI MsiVerifyPackageA(_In_ LPCSTR); 642 UINT WINAPI MsiVerifyPackageW(_In_ LPCWSTR); 643 #define MsiVerifyPackage WINELIB_NAME_AW(MsiVerifyPackage) 644 645 UINT 646 WINAPI 647 MsiQueryComponentStateA( 648 _In_ LPCSTR, 649 _In_opt_ LPCSTR, 650 _In_ MSIINSTALLCONTEXT, 651 _In_ LPCSTR, 652 _Out_opt_ INSTALLSTATE*); 653 654 UINT 655 WINAPI 656 MsiQueryComponentStateW( 657 _In_ LPCWSTR, 658 _In_opt_ LPCWSTR, 659 _In_ MSIINSTALLCONTEXT, 660 _In_ LPCWSTR, 661 _Out_opt_ INSTALLSTATE*); 662 663 #define MsiQueryComponentState WINELIB_NAME_AW(MsiQueryComponentState) 664 665 INSTALLSTATE WINAPI MsiQueryProductStateA(_In_ LPCSTR); 666 INSTALLSTATE WINAPI MsiQueryProductStateW(_In_ LPCWSTR); 667 #define MsiQueryProductState WINELIB_NAME_AW(MsiQueryProductState) 668 669 UINT WINAPI MsiConfigureProductA(_In_ LPCSTR, _In_ int, _In_ INSTALLSTATE); 670 UINT WINAPI MsiConfigureProductW(_In_ LPCWSTR, _In_ int, _In_ INSTALLSTATE); 671 #define MsiConfigureProduct WINELIB_NAME_AW(MsiConfigureProduct) 672 673 UINT 674 WINAPI 675 MsiConfigureProductExA( 676 _In_ LPCSTR, 677 _In_ int, 678 _In_ INSTALLSTATE, 679 _In_opt_ LPCSTR); 680 681 UINT 682 WINAPI 683 MsiConfigureProductExW( 684 _In_ LPCWSTR, 685 _In_ int, 686 _In_ INSTALLSTATE, 687 _In_opt_ LPCWSTR); 688 689 #define MsiConfigureProductEx WINELIB_NAME_AW(MsiConfigureProductEx) 690 691 UINT 692 WINAPI 693 MsiConfigureFeatureA( 694 _In_ LPCSTR, 695 _In_ LPCSTR, 696 _In_ INSTALLSTATE); 697 698 UINT 699 WINAPI 700 MsiConfigureFeatureW( 701 _In_ LPCWSTR, 702 _In_ LPCWSTR, 703 _In_ INSTALLSTATE); 704 705 #define MsiConfigureFeature WINELIB_NAME_AW(MsiConfigureFeature) 706 707 UINT 708 WINAPI 709 MsiGetProductCodeA( 710 _In_ LPCSTR, 711 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR); 712 713 UINT 714 WINAPI 715 MsiGetProductCodeW( 716 _In_ LPCWSTR, 717 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR); 718 719 #define MsiGetProductCode WINELIB_NAME_AW(MsiGetProductCode) 720 721 UINT 722 WINAPI 723 MsiGetProductInfoA( 724 _In_ LPCSTR, 725 _In_ LPCSTR, 726 _Out_writes_opt_(*pcchValueBuf) LPSTR, 727 _Inout_opt_ LPDWORD pcchValueBuf); 728 729 UINT 730 WINAPI 731 MsiGetProductInfoW( 732 _In_ LPCWSTR, 733 _In_ LPCWSTR, 734 _Out_writes_opt_(*pcchValueBuf) LPWSTR, 735 _Inout_opt_ LPDWORD pcchValueBuf); 736 737 #define MsiGetProductInfo WINELIB_NAME_AW(MsiGetProductInfo) 738 739 UINT 740 WINAPI 741 MsiGetProductInfoExA( 742 _In_ LPCSTR, 743 _In_opt_ LPCSTR, 744 _In_ MSIINSTALLCONTEXT, 745 _In_ LPCSTR, 746 _Out_writes_opt_(*pcchValue) LPSTR, 747 _Inout_opt_ LPDWORD pcchValue); 748 749 UINT 750 WINAPI 751 MsiGetProductInfoExW( 752 _In_ LPCWSTR, 753 _In_opt_ LPCWSTR, 754 _In_ MSIINSTALLCONTEXT, 755 _In_ LPCWSTR, 756 _Out_writes_opt_(*pcchValue) LPWSTR, 757 _Inout_opt_ LPDWORD pcchValue); 758 759 #define MsiGetProductInfoEx WINELIB_NAME_AW(MsiGetProductInfoEx) 760 761 UINT 762 WINAPI 763 MsiGetPatchInfoExA( 764 _In_ LPCSTR, 765 _In_ LPCSTR, 766 _In_opt_ LPCSTR, 767 _In_ MSIINSTALLCONTEXT, 768 _In_ LPCSTR, 769 _Out_writes_opt_(*pcchValue) LPSTR, 770 _Inout_opt_ LPDWORD pcchValue); 771 772 UINT 773 WINAPI 774 MsiGetPatchInfoExW( 775 _In_ LPCWSTR, 776 _In_ LPCWSTR, 777 _In_opt_ LPCWSTR, 778 _In_ MSIINSTALLCONTEXT, 779 _In_ LPCWSTR, 780 _Out_writes_opt_(*pcchValue) LPWSTR, 781 _Inout_opt_ LPDWORD pcchValue); 782 783 #define MsiGetPatchInfoEx WINELIB_NAME_AW(MsiGetPatchInfoEx) 784 785 UINT 786 WINAPI 787 MsiGetPatchInfoA( 788 _In_ LPCSTR, 789 _In_ LPCSTR, 790 _Out_writes_opt_(*pcchValueBuf) LPSTR, 791 _Inout_opt_ LPDWORD pcchValueBuf); 792 793 UINT 794 WINAPI 795 MsiGetPatchInfoW( 796 _In_ LPCWSTR, 797 _In_ LPCWSTR, 798 _Out_writes_opt_(*pcchValueBuf) LPWSTR, 799 _Inout_opt_ LPDWORD pcchValueBuf); 800 801 #define MsiGetPatchInfo WINELIB_NAME_AW(MsiGetPatchInfo) 802 803 UINT WINAPI MsiEnableLogA(_In_ DWORD, _In_opt_ LPCSTR, _In_ DWORD); 804 UINT WINAPI MsiEnableLogW(_In_ DWORD, _In_opt_ LPCWSTR, _In_ DWORD); 805 #define MsiEnableLog WINELIB_NAME_AW(MsiEnableLog) 806 807 INSTALLUI_HANDLERA 808 WINAPI 809 MsiSetExternalUIA( 810 _In_opt_ INSTALLUI_HANDLERA, 811 _In_ DWORD, 812 _In_opt_ LPVOID); 813 814 INSTALLUI_HANDLERW 815 WINAPI 816 MsiSetExternalUIW( 817 _In_opt_ INSTALLUI_HANDLERW, 818 _In_ DWORD, 819 _In_opt_ LPVOID); 820 821 #define MsiSetExternalUI WINELIB_NAME_AW(MsiSetExternalUI) 822 823 INSTALLSTATE 824 WINAPI 825 MsiGetComponentPathA( 826 _In_ LPCSTR, 827 _In_ LPCSTR, 828 _Out_writes_opt_(*pcchBuf) LPSTR, 829 _Inout_opt_ LPDWORD pcchBuf); 830 831 INSTALLSTATE 832 WINAPI 833 MsiGetComponentPathW( 834 _In_ LPCWSTR, 835 _In_ LPCWSTR, 836 _Out_writes_opt_(*pcchBuf) LPWSTR, 837 _Inout_opt_ LPDWORD pcchBuf); 838 839 #define MsiGetComponentPath WINELIB_NAME_AW(MsiGetComponentPath) 840 841 INSTALLSTATE WINAPI MsiQueryFeatureStateA(_In_ LPCSTR, _In_ LPCSTR); 842 INSTALLSTATE WINAPI MsiQueryFeatureStateW(_In_ LPCWSTR, _In_ LPCWSTR); 843 #define MsiQueryFeatureState WINELIB_NAME_AW(MsiQueryFeatureState) 844 845 UINT 846 WINAPI 847 MsiQueryFeatureStateExA( 848 _In_ LPCSTR, 849 _In_opt_ LPCSTR, 850 _In_ MSIINSTALLCONTEXT, 851 _In_ LPCSTR, 852 _Out_opt_ INSTALLSTATE*); 853 854 UINT 855 WINAPI 856 MsiQueryFeatureStateExW( 857 _In_ LPCWSTR, 858 _In_opt_ LPCWSTR, 859 _In_ MSIINSTALLCONTEXT, 860 _In_ LPCWSTR, 861 _Out_opt_ INSTALLSTATE*); 862 863 #define MsiQueryFeatureStateEx WINELIB_NAME_AW(MsiQueryFeatureStateEx) 864 865 UINT 866 WINAPI 867 MsiGetFeatureInfoA( 868 _In_ MSIHANDLE, 869 _In_ LPCSTR, 870 _Out_opt_ LPDWORD, 871 _Out_writes_opt_(*pcchTitleBuf) LPSTR, 872 _Inout_opt_ LPDWORD pcchTitleBuf, 873 _Out_writes_opt_(*pcchHelpBuf) LPSTR, 874 _Inout_opt_ LPDWORD pcchHelpBuf); 875 876 UINT 877 WINAPI 878 MsiGetFeatureInfoW( 879 _In_ MSIHANDLE, 880 _In_ LPCWSTR, 881 _Out_opt_ LPDWORD, 882 _Out_writes_opt_(*pcchTitleBuf) LPWSTR, 883 _Inout_opt_ LPDWORD pcchTitleBuf, 884 _Out_writes_opt_(*pcchHelpBuf) LPWSTR, 885 _Inout_opt_ LPDWORD pcchHelpBuf); 886 887 #define MsiGetFeatureInfo WINELIB_NAME_AW(MsiGetFeatureInfo) 888 889 UINT 890 WINAPI 891 MsiGetFeatureUsageA( 892 _In_ LPCSTR, 893 _In_ LPCSTR, 894 _Out_opt_ LPDWORD, 895 _Out_opt_ LPWORD); 896 897 UINT 898 WINAPI 899 MsiGetFeatureUsageW( 900 _In_ LPCWSTR, 901 _In_ LPCWSTR, 902 _Out_opt_ LPDWORD, 903 _Out_opt_ LPWORD); 904 905 #define MsiGetFeatureUsage WINELIB_NAME_AW(MsiGetFeatureUsage) 906 907 UINT 908 WINAPI 909 MsiEnumRelatedProductsA( 910 _In_ LPCSTR, 911 _Reserved_ DWORD, 912 _In_ DWORD, 913 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR); 914 915 UINT 916 WINAPI 917 MsiEnumRelatedProductsW( 918 _In_ LPCWSTR, 919 _Reserved_ DWORD, 920 _In_ DWORD, 921 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR); 922 923 #define MsiEnumRelatedProducts WINELIB_NAME_AW(MsiEnumRelatedProducts) 924 925 UINT 926 WINAPI 927 MsiProvideAssemblyA( 928 _In_ LPCSTR, 929 _In_opt_ LPCSTR, 930 _In_ DWORD, 931 _In_ DWORD, 932 _Out_writes_opt_(*pcchPathBuf) LPSTR, 933 _Inout_opt_ LPDWORD pcchPathBuf); 934 935 UINT 936 WINAPI 937 MsiProvideAssemblyW( 938 _In_ LPCWSTR, 939 _In_opt_ LPCWSTR, 940 _In_ DWORD, 941 _In_ DWORD, 942 _Out_writes_opt_(*pcchPathBuf) LPWSTR, 943 _Inout_opt_ LPDWORD pcchPathBuf); 944 945 #define MsiProvideAssembly WINELIB_NAME_AW(MsiProvideAssembly) 946 947 UINT 948 WINAPI 949 MsiEnumComponentQualifiersA( 950 _In_ LPCSTR, 951 _In_ DWORD, 952 _Out_writes_(*pcchQualifierBuf) LPSTR, 953 _Inout_ LPDWORD pcchQualifierBuf, 954 _Out_writes_opt_(*pcchApplicationDataBuf) LPSTR, 955 _Inout_opt_ LPDWORD pcchApplicationDataBuf); 956 957 UINT 958 WINAPI 959 MsiEnumComponentQualifiersW( 960 _In_ LPCWSTR, 961 _In_ DWORD, 962 _Out_writes_(*pcchQualifierBuf) LPWSTR, 963 _Inout_ LPDWORD pcchQualifierBuf, 964 _Out_writes_opt_(*pcchApplicationDataBuf) LPWSTR, 965 _Inout_opt_ LPDWORD pcchApplicationDataBuf); 966 967 #define MsiEnumComponentQualifiers WINELIB_NAME_AW(MsiEnumComponentQualifiers) 968 969 UINT 970 WINAPI 971 MsiGetFileVersionA( 972 _In_ LPCSTR, 973 _Out_writes_opt_(*pcchVersionBuf) LPSTR, 974 _Inout_opt_ LPDWORD pcchVersionBuf, 975 _Out_writes_opt_(*pcchLangBuf) LPSTR, 976 _Inout_opt_ LPDWORD pcchLangBuf); 977 978 UINT 979 WINAPI 980 MsiGetFileVersionW( 981 _In_ LPCWSTR, 982 _Out_writes_opt_(*pcchVersionBuf) LPWSTR, 983 _Inout_opt_ LPDWORD pcchVersionBuf, 984 _Out_writes_opt_(*pcchLangBuf) LPWSTR, 985 _Inout_opt_ LPDWORD pcchLangBuf); 986 987 #define MsiGetFileVersion WINELIB_NAME_AW(MsiGetFileVersion) 988 989 UINT WINAPI MsiMessageBoxA(HWND, LPCSTR, LPCSTR, UINT, WORD, DWORD); 990 UINT WINAPI MsiMessageBoxW(HWND, LPCWSTR, LPCWSTR, UINT, WORD, DWORD); 991 #define MsiMessageBox WINELIB_NAME_AW(MsiMessageBox) 992 993 UINT 994 WINAPI 995 MsiProvideQualifiedComponentExA( 996 _In_ LPCSTR, 997 _In_ LPCSTR, 998 _In_ DWORD, 999 _In_opt_ LPCSTR, 1000 _Reserved_ DWORD, 1001 _Reserved_ DWORD, 1002 _Out_writes_opt_(*pcchPathBuf) LPSTR, 1003 _Inout_opt_ LPDWORD pcchPathBuf); 1004 1005 UINT 1006 WINAPI 1007 MsiProvideQualifiedComponentExW( 1008 _In_ LPCWSTR, 1009 _In_ LPCWSTR, 1010 _In_ DWORD, 1011 _In_opt_ LPCWSTR, 1012 _Reserved_ DWORD, 1013 _Reserved_ DWORD, 1014 _Out_writes_opt_(*pcchPathBuf) LPWSTR, 1015 _Inout_opt_ LPDWORD pcchPathBuf); 1016 1017 #define MsiProvideQualifiedComponentEx WINELIB_NAME_AW(MsiProvideQualifiedComponentEx) 1018 1019 UINT 1020 WINAPI 1021 MsiProvideQualifiedComponentA( 1022 _In_ LPCSTR, 1023 _In_ LPCSTR, 1024 _In_ DWORD, 1025 _Out_writes_opt_(*pcchPathBuf) LPSTR, 1026 _Inout_opt_ LPDWORD pcchPathBuf); 1027 1028 UINT 1029 WINAPI 1030 MsiProvideQualifiedComponentW( 1031 _In_ LPCWSTR, 1032 _In_ LPCWSTR, 1033 _In_ DWORD, 1034 _Out_writes_opt_(*pcchPathBuf) LPWSTR, 1035 _Inout_opt_ LPDWORD pcchPathBuf); 1036 1037 #define MsiProvideQualifiedComponent WINELIB_NAME_AW(MsiProvideQualifiedComponent) 1038 1039 USERINFOSTATE 1040 WINAPI 1041 MsiGetUserInfoA( 1042 _In_ LPCSTR, 1043 _Out_writes_opt_(*pcchUserNameBuf) LPSTR, 1044 _Inout_opt_ LPDWORD pcchUserNameBuf, 1045 _Out_writes_opt_(*pcchOrgNameBuf) LPSTR, 1046 _Inout_opt_ LPDWORD pcchOrgNameBuf, 1047 _Out_writes_opt_(*pcchSerialBuf) LPSTR, 1048 _Inout_opt_ LPDWORD pcchSerialBuf); 1049 1050 USERINFOSTATE 1051 WINAPI 1052 MsiGetUserInfoW( 1053 _In_ LPCWSTR, 1054 _Out_writes_opt_(*pcchUserNameBuf) LPWSTR, 1055 _Inout_opt_ LPDWORD pcchUserNameBuf, 1056 _Out_writes_opt_(*pcchOrgNameBuf) LPWSTR, 1057 _Inout_opt_ LPDWORD pcchOrgNameBuf, 1058 _Out_writes_opt_(*pcchSerialBuf) LPWSTR, 1059 _Inout_opt_ LPDWORD pcchSerialBuf); 1060 1061 #define MsiGetUserInfo WINELIB_NAME_AW(MsiGetUserInfo) 1062 1063 UINT WINAPI MsiProvidedComponentA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPDWORD); 1064 UINT WINAPI MsiProvideComponentW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPDWORD); 1065 #define MsiProvideComponent WINELIB_NAME_AW(MsiProvideComponent) 1066 1067 UINT WINAPI MsiCollectUserInfoA(_In_ LPCSTR); 1068 UINT WINAPI MsiCollectUserInfoW(_In_ LPCWSTR); 1069 #define MsiCollectUserInfo WINELIB_NAME_AW(MsiCollectUserInfo) 1070 1071 UINT WINAPI MsiReinstallFeatureA(_In_ LPCSTR, _In_ LPCSTR, _In_ DWORD); 1072 UINT WINAPI MsiReinstallFeatureW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ DWORD); 1073 #define MsiReinstallFeature WINELIB_NAME_AW(MsiReinstallFeature) 1074 1075 UINT 1076 WINAPI 1077 MsiGetShortcutTargetA( 1078 _In_ LPCSTR, 1079 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR, 1080 _Out_writes_opt_(MAX_FEATURE_CHARS + 1) LPSTR, 1081 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR); 1082 1083 UINT 1084 WINAPI 1085 MsiGetShortcutTargetW( 1086 _In_ LPCWSTR, 1087 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR, 1088 _Out_writes_opt_(MAX_FEATURE_CHARS + 1) LPWSTR, 1089 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR); 1090 1091 #define MsiGetShortcutTarget WINELIB_NAME_AW(MsiGetShortcutTarget) 1092 1093 INSTALLSTATE WINAPI MsiUseFeatureW(_In_ LPCWSTR, _In_ LPCWSTR); 1094 INSTALLSTATE WINAPI MsiUseFeatureA(_In_ LPCSTR, _In_ LPCSTR); 1095 #define MsiUseFeature WINELIB_NAME_AW(MsiUseFeature) 1096 1097 INSTALLSTATE 1098 WINAPI 1099 MsiUseFeatureExW( 1100 _In_ LPCWSTR, 1101 _In_ LPCWSTR, 1102 _In_ DWORD, 1103 _Reserved_ DWORD); 1104 1105 INSTALLSTATE 1106 WINAPI 1107 MsiUseFeatureExA( 1108 _In_ LPCSTR, 1109 _In_ LPCSTR, 1110 _In_ DWORD, 1111 _Reserved_ DWORD); 1112 1113 #define MsiUseFeatureEx WINELIB_NAME_AW(MsiUseFeatureEx) 1114 1115 HRESULT 1116 WINAPI 1117 MsiGetFileSignatureInformationA( 1118 _In_ LPCSTR, 1119 _In_ DWORD, 1120 _Outptr_ PCCERT_CONTEXT*, 1121 _Out_writes_bytes_opt_(*pcbHashData) LPBYTE, 1122 _Inout_opt_ LPDWORD pcbHashData); 1123 1124 HRESULT 1125 WINAPI 1126 MsiGetFileSignatureInformationW( 1127 _In_ LPCWSTR, 1128 _In_ DWORD, 1129 _Outptr_ PCCERT_CONTEXT*, 1130 _Out_writes_bytes_opt_(*pcbHashData) LPBYTE, 1131 _Inout_opt_ LPDWORD pcbHashData); 1132 1133 #define MsiGetFileSignatureInformation WINELIB_NAME_AW(MsiGetFileSignatureInformation) 1134 1135 INSTALLSTATE 1136 WINAPI 1137 MsiLocateComponentA( 1138 _In_ LPCSTR, 1139 _Out_writes_opt_(*pcchBuf) LPSTR, 1140 _Inout_opt_ LPDWORD pcchBuf); 1141 1142 INSTALLSTATE 1143 WINAPI 1144 MsiLocateComponentW( 1145 _In_ LPCWSTR, 1146 _Out_writes_opt_(*pcchBuf) LPWSTR, 1147 _Inout_opt_ LPDWORD pcchBuf); 1148 1149 #define MsiLocateComponent WINELIB_NAME_AW(MsiLocateComponent) 1150 1151 UINT 1152 WINAPI 1153 MsiSourceListAddSourceA( 1154 _In_ LPCSTR, 1155 _In_opt_ LPCSTR, 1156 _Reserved_ DWORD, 1157 _In_ LPCSTR); 1158 1159 UINT 1160 WINAPI 1161 MsiSourceListAddSourceW( 1162 _In_ LPCWSTR, 1163 _In_opt_ LPCWSTR, 1164 _Reserved_ DWORD, 1165 _In_ LPCWSTR); 1166 1167 #define MsiSourceListAddSource WINELIB_NAME_AW(MsiSourceListAddSource) 1168 1169 UINT 1170 WINAPI 1171 MsiSourceListEnumMediaDisksA( 1172 _In_ LPCSTR, 1173 _In_opt_ LPCSTR, 1174 _In_ MSIINSTALLCONTEXT, 1175 _In_ DWORD, 1176 _In_ DWORD, 1177 _Out_opt_ LPDWORD, 1178 _Out_writes_opt_(*pcchVolumeLabel) LPSTR, 1179 _Inout_opt_ LPDWORD pcchVolumeLabel, 1180 _Out_writes_opt_(*pcchDiskPrompt) LPSTR, 1181 _Inout_opt_ LPDWORD pcchDiskPrompt); 1182 1183 UINT 1184 WINAPI 1185 MsiSourceListEnumMediaDisksW( 1186 _In_ LPCWSTR, 1187 _In_opt_ LPCWSTR, 1188 _In_ MSIINSTALLCONTEXT, 1189 _In_ DWORD, 1190 _In_ DWORD, 1191 _Out_opt_ LPDWORD, 1192 _Out_writes_opt_(*pcchVolumeLabel) LPWSTR, 1193 _Inout_opt_ LPDWORD pcchVolumeLabel, 1194 _Out_writes_opt_(*pcchDiskPrompt) LPWSTR, 1195 _Inout_opt_ LPDWORD pcchDiskPrompt); 1196 1197 #define MsiSourceListEnumMediaDisks WINELIB_NAME_AW(MsiSourceListEnumMediaDisks) 1198 1199 UINT 1200 WINAPI 1201 MsiSourceListEnumSourcesA( 1202 _In_ LPCSTR, 1203 _In_opt_ LPCSTR, 1204 _In_ MSIINSTALLCONTEXT, 1205 _In_ DWORD, 1206 _In_ DWORD, 1207 _Out_writes_opt_(*pcchSource) LPSTR, 1208 _Inout_opt_ LPDWORD pcchSource); 1209 1210 UINT 1211 WINAPI 1212 MsiSourceListEnumSourcesW( 1213 _In_ LPCWSTR, 1214 _In_opt_ LPCWSTR, 1215 _In_ MSIINSTALLCONTEXT, 1216 _In_ DWORD, 1217 _In_ DWORD, 1218 _Out_writes_opt_(*pcchSource) LPWSTR, 1219 _Inout_opt_ LPDWORD pcchSource); 1220 1221 #define MsiSourceListEnumSources WINELIB_NAME_AW(MsiSourceListEnumSources) 1222 1223 UINT 1224 WINAPI 1225 MsiSourceListClearSourceA( 1226 _In_ LPCSTR, 1227 _In_opt_ LPCSTR, 1228 _In_ MSIINSTALLCONTEXT, 1229 _In_ DWORD, 1230 _In_ LPCSTR); 1231 1232 UINT 1233 WINAPI 1234 MsiSourceListClearSourceW( 1235 _In_ LPCWSTR, 1236 _In_opt_ LPCWSTR, 1237 _In_ MSIINSTALLCONTEXT, 1238 _In_ DWORD, 1239 _In_ LPCWSTR); 1240 1241 #define MsiSourceListClearSource WINELIB_NAME_AW(MsiSourceListClearSource) 1242 1243 UINT 1244 WINAPI 1245 MsiSourceListClearAllA( 1246 _In_ LPCSTR, 1247 _In_opt_ LPCSTR, 1248 _Reserved_ DWORD); 1249 1250 UINT 1251 WINAPI 1252 MsiSourceListClearAllW( 1253 _In_ LPCWSTR, 1254 _In_opt_ LPCWSTR, 1255 _Reserved_ DWORD); 1256 1257 #define MsiSourceListClearAll WINELIB_NAME_AW(MsiSourceListClearAll) 1258 1259 UINT 1260 WINAPI 1261 MsiSourceListGetInfoA( 1262 _In_ LPCSTR, 1263 _In_opt_ LPCSTR, 1264 _In_ MSIINSTALLCONTEXT, 1265 _In_ DWORD, 1266 _In_ LPCSTR, 1267 _Out_writes_opt_(*pcchValue) LPSTR, 1268 _Inout_opt_ LPDWORD pcchValue); 1269 1270 UINT 1271 WINAPI 1272 MsiSourceListGetInfoW( 1273 _In_ LPCWSTR, 1274 _In_opt_ LPCWSTR, 1275 _In_ MSIINSTALLCONTEXT, 1276 _In_ DWORD, 1277 _In_ LPCWSTR, 1278 _Out_writes_opt_(*pcchValue) LPWSTR, 1279 _Inout_opt_ LPDWORD pcchValue); 1280 1281 #define MsiSourceListGetInfo WINELIB_NAME_AW(MsiSourceListGetInfo) 1282 1283 UINT 1284 WINAPI 1285 MsiSourceListSetInfoA( 1286 _In_ LPCSTR, 1287 _In_opt_ LPCSTR, 1288 _In_ MSIINSTALLCONTEXT, 1289 _In_ DWORD, 1290 _In_ LPCSTR, 1291 _In_ LPCSTR); 1292 1293 UINT 1294 WINAPI 1295 MsiSourceListSetInfoW( 1296 _In_ LPCWSTR, 1297 _In_opt_ LPCWSTR, 1298 _In_ MSIINSTALLCONTEXT, 1299 _In_ DWORD, 1300 _In_ LPCWSTR, 1301 _In_ LPCWSTR); 1302 1303 #define MsiSourceListSetInfo WINELIB_NAME_AW(MsiSourceListSetInfo) 1304 1305 UINT 1306 WINAPI 1307 MsiSourceListAddSourceExA( 1308 _In_ LPCSTR, 1309 _In_opt_ LPCSTR, 1310 _In_ MSIINSTALLCONTEXT, 1311 _In_ DWORD, 1312 _In_ LPCSTR, 1313 _In_ DWORD); 1314 1315 UINT 1316 WINAPI 1317 MsiSourceListAddSourceExW( 1318 _In_ LPCWSTR, 1319 _In_opt_ LPCWSTR, 1320 _In_ MSIINSTALLCONTEXT, 1321 _In_ DWORD, 1322 _In_ LPCWSTR, 1323 _In_ DWORD); 1324 1325 #define MsiSourceListAddSourceEx WINELIB_NAME_AW(MsiSourceListAddSourceEx) 1326 1327 UINT 1328 WINAPI 1329 MsiSourceListAddMediaDiskA( 1330 _In_ LPCSTR, 1331 _In_opt_ LPCSTR, 1332 _In_ MSIINSTALLCONTEXT, 1333 _In_ DWORD, 1334 _In_ DWORD, 1335 _In_opt_ LPCSTR, 1336 _In_opt_ LPCSTR); 1337 1338 UINT 1339 WINAPI 1340 MsiSourceListAddMediaDiskW( 1341 _In_ LPCWSTR, 1342 _In_opt_ LPCWSTR, 1343 _In_ MSIINSTALLCONTEXT, 1344 _In_ DWORD, 1345 _In_ DWORD, 1346 _In_opt_ LPCWSTR, 1347 _In_opt_ LPCWSTR); 1348 1349 #define MsiSourceListAddMediaDisk WINELIB_NAME_AW(MsiSourceListAddMediaDisk) 1350 1351 UINT WINAPI MsiSourceListForceResolutionA(const CHAR*, const CHAR*, DWORD); 1352 UINT WINAPI MsiSourceListForceResolutionW(const WCHAR*, const WCHAR*, DWORD); 1353 #define MsiSourceListForceResolution WINELIB_NAME_AW(MsiSourceListForceResolution) 1354 1355 UINT 1356 WINAPI 1357 MsiEnumPatchesA( 1358 _In_ LPCSTR, 1359 _In_ DWORD, 1360 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR, 1361 _Out_writes_(*pcchTransformsBuf) LPSTR, 1362 _Inout_ LPDWORD pcchTransformsBuf); 1363 1364 UINT 1365 WINAPI 1366 MsiEnumPatchesW( 1367 _In_ LPCWSTR, 1368 _In_ DWORD, 1369 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR, 1370 _Out_writes_(*pcchTransformsBuf) LPWSTR, 1371 _Inout_ LPDWORD pcchTransformsBuf); 1372 1373 #define MsiEnumPatches WINELIB_NAME_AW(MsiEnumPatches) 1374 1375 UINT 1376 WINAPI 1377 MsiEnumPatchesExA( 1378 _In_opt_ LPCSTR, 1379 _In_opt_ LPCSTR, 1380 _In_ DWORD, 1381 _In_ DWORD, 1382 _In_ DWORD, 1383 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR, 1384 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR, 1385 _Out_opt_ MSIINSTALLCONTEXT*, 1386 _Out_writes_opt_(*pcchTargetUserSid) LPSTR, 1387 _Inout_opt_ LPDWORD pcchTargetUserSid); 1388 1389 UINT 1390 WINAPI 1391 MsiEnumPatchesExW( 1392 _In_opt_ LPCWSTR, 1393 _In_opt_ LPCWSTR, 1394 _In_ DWORD, 1395 _In_ DWORD, 1396 _In_ DWORD, 1397 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR, 1398 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR, 1399 _Out_opt_ MSIINSTALLCONTEXT*, 1400 _Out_writes_opt_(*pcchTargetUserSid) LPWSTR, 1401 _Inout_opt_ LPDWORD pcchTargetUserSid); 1402 1403 #define MsiEnumPatchesEx WINELIB_NAME_AW(MsiEnumPatchesEx) 1404 1405 UINT 1406 WINAPI 1407 MsiGetFileHashA( 1408 _In_ LPCSTR, 1409 _In_ DWORD, 1410 _Inout_ PMSIFILEHASHINFO); 1411 1412 UINT 1413 WINAPI 1414 MsiGetFileHashW( 1415 _In_ LPCWSTR, 1416 _In_ DWORD, 1417 _Inout_ PMSIFILEHASHINFO); 1418 1419 #define MsiGetFileHash WINELIB_NAME_AW(MsiGetFileHash) 1420 1421 UINT 1422 WINAPI 1423 MsiAdvertiseScriptA( 1424 _In_ LPCSTR, 1425 _In_ DWORD, 1426 _In_opt_ PHKEY, 1427 _In_ BOOL); 1428 1429 UINT 1430 WINAPI 1431 MsiAdvertiseScriptW( 1432 _In_ LPCWSTR, 1433 _In_ DWORD, 1434 _In_opt_ PHKEY, 1435 _In_ BOOL); 1436 1437 #define MsiAdvertiseScript WINELIB_NAME_AW(MsiAdvertiseScript) 1438 1439 UINT WINAPI MsiIsProductElevatedA(_In_ LPCSTR, _Out_ BOOL *); 1440 UINT WINAPI MsiIsProductElevatedW(_In_ LPCWSTR, _Out_ BOOL *); 1441 #define MsiIsProductElevated WINELIB_NAME_AW(MsiIsProductElevated) 1442 1443 UINT WINAPI MsiDatabaseMergeA(MSIHANDLE, MSIHANDLE, LPCSTR); 1444 UINT WINAPI MsiDatabaseMergeW(MSIHANDLE, MSIHANDLE, LPCWSTR); 1445 #define MsiDatabaseMerge WINELIB_NAME_AW(MsiDatabaseMerge) 1446 1447 UINT 1448 WINAPI 1449 MsiInstallMissingComponentA( 1450 _In_ LPCSTR, 1451 _In_ LPCSTR, 1452 _In_ INSTALLSTATE); 1453 1454 UINT 1455 WINAPI 1456 MsiInstallMissingComponentW( 1457 _In_ LPCWSTR, 1458 _In_ LPCWSTR, 1459 _In_ INSTALLSTATE); 1460 1461 #define MsiInstallMissingComponent WINELIB_NAME_AW(MsiInstallMissingComponent) 1462 1463 UINT 1464 WINAPI 1465 MsiDetermineApplicablePatchesA( 1466 _In_ LPCSTR, 1467 _In_ DWORD cPatchInfo, 1468 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOA); 1469 1470 UINT 1471 WINAPI 1472 MsiDetermineApplicablePatchesW( 1473 _In_ LPCWSTR, 1474 _In_ DWORD cPatchInfo, 1475 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOW); 1476 1477 #define MsiDetermineApplicablePatches WINELIB_NAME_AW(MsiDetermineApplicablePatches) 1478 1479 UINT 1480 WINAPI 1481 MsiDeterminePatchSequenceA( 1482 _In_ LPCSTR, 1483 _In_opt_ LPCSTR, 1484 _In_ MSIINSTALLCONTEXT, 1485 _In_ DWORD cPatchInfo, 1486 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOA); 1487 1488 UINT 1489 WINAPI 1490 MsiDeterminePatchSequenceW( 1491 _In_ LPCWSTR, 1492 _In_opt_ LPCWSTR, 1493 _In_ MSIINSTALLCONTEXT, 1494 _In_ DWORD cPatchInfo, 1495 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOW); 1496 1497 #define MsiDeterminePatchSequence WINELIB_NAME_AW(MsiDeterminePatchSequence) 1498 1499 UINT 1500 WINAPI 1501 MsiApplyMultiplePatchesA( 1502 _In_ LPCSTR, 1503 _In_opt_ LPCSTR, 1504 _In_opt_ LPCSTR); 1505 1506 UINT 1507 WINAPI 1508 MsiApplyMultiplePatchesW( 1509 _In_ LPCWSTR, 1510 _In_opt_ LPCWSTR, 1511 _In_opt_ LPCWSTR); 1512 1513 #define MsiApplyMultiplePatches WINELIB_NAME_AW(MsiApplyMultiplePatches) 1514 1515 UINT 1516 WINAPI 1517 MsiBeginTransactionA( 1518 _In_ LPCSTR, 1519 _In_ DWORD, 1520 _Out_ MSIHANDLE *, 1521 _Out_ HANDLE *); 1522 1523 UINT 1524 WINAPI 1525 MsiBeginTransactionW( 1526 _In_ LPCWSTR, 1527 _In_ DWORD, 1528 _Out_ MSIHANDLE *, 1529 _Out_ HANDLE *); 1530 1531 #define MsiBeginTransaction WINELIB_NAME_AW(MsiBeginTransaction) 1532 1533 UINT WINAPI MsiEndTransaction(_In_ DWORD); 1534 1535 /* Non Unicode */ 1536 UINT WINAPI MsiCloseHandle(MSIHANDLE); 1537 UINT WINAPI MsiCloseAllHandles(void); 1538 INSTALLUILEVEL WINAPI MsiSetInternalUI(_In_ INSTALLUILEVEL, _Inout_opt_ HWND*); 1539 1540 UINT 1541 WINAPI 1542 MsiSetExternalUIRecord( 1543 _In_opt_ INSTALLUI_HANDLER_RECORD, 1544 _In_ DWORD, 1545 _In_opt_ LPVOID, 1546 _Out_opt_ PINSTALLUI_HANDLER_RECORD); 1547 1548 #ifdef __cplusplus 1549 } 1550 #endif 1551 1552 #endif /* __WINE_MSI_H */ 1553