Reactos
at master 1556 lines 43 kB view raw
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 29extern "C" { 30#endif 31 32typedef ULONG MSIHANDLE; 33 34typedef 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 51typedef 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 62typedef 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 76typedef 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 85typedef enum tagINSTALLLEVEL 86{ 87 INSTALLLEVEL_DEFAULT = 0, 88 INSTALLLEVEL_MINIMUM = 1, 89 INSTALLLEVEL_MAXIMUM = 0xFFFF 90} INSTALLLEVEL; 91 92typedef 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 114typedef 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 129typedef 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 154typedef enum tagINSTALLLOGATTRIBUTES 155{ 156 INSTALLLOGATTRIBUTES_APPEND = 0x00000001, 157 INSTALLLOGATTRIBUTES_FLUSHEACHLINE = 0x00000002 158} INSTALLLOGATTRIBUTES; 159 160typedef 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 169typedef enum tagADVERTISEFLAGS 170{ 171 ADVERTISEFLAGS_MACHINEASSIGN = 0, 172 ADVERTISEFLAGS_USERASSIGN = 1 173} ADVERTISEFLAGS; 174 175typedef 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 187typedef enum tagINSTALLTYPE 188{ 189 INSTALLTYPE_DEFAULT = 0, 190 INSTALLTYPE_NETWORK_IMAGE = 1, 191 INSTALLTYPE_SINGLE_INSTANCE = 2, 192} INSTALLTYPE; 193 194typedef 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 205typedef enum tagMSISOURCETYPE 206{ 207 MSISOURCETYPE_UNKNOWN = 0x00000000L, 208 MSISOURCETYPE_NETWORK = 0x00000001L, 209 MSISOURCETYPE_URL = 0x00000002L, 210 MSISOURCETYPE_MEDIA = 0x00000004L 211} MSISOURCETYPE; 212 213typedef enum tagMSICODE 214{ 215 MSICODE_PRODUCT = 0x00000000L, 216 MSICODE_PATCH = 0x40000000L 217} MSICODE; 218 219typedef 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 229typedef struct _MSIFILEHASHINFO { 230 ULONG dwFileHashInfoSize; 231 ULONG dwData[4]; 232} MSIFILEHASHINFO, *PMSIFILEHASHINFO; 233 234typedef enum tagMSIPATCHDATATYPE 235{ 236 MSIPATCH_DATATYPE_PATCHFILE = 0, 237 MSIPATCH_DATATYPE_XMLPATH = 1, 238 MSIPATCH_DATATYPE_XMLBLOB = 2, 239} MSIPATCHDATATYPE, *PMSIPATCHDATATYPE; 240 241typedef struct tagMSIPATCHSEQUENCEINFOA 242{ 243 LPCSTR szPatchData; 244 MSIPATCHDATATYPE ePatchDataType; 245 DWORD dwOrder; 246 UINT uStatus; 247} MSIPATCHSEQUENCEINFOA, *PMSIPATCHSEQUENCEINFOA; 248 249typedef 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" 265static 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" 269static 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" 273static 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" 277static 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" 281static 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" 285static 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" 289static 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" 295static 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" 300static 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" 305static 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" 311static 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" 315static 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" 319static 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" 323static 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" 327static 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" 331static 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" 335static 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" 339static 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" 343static 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" 347static 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" 351static 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" 355static 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" 359static 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" 363static 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" 367static 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" 371static 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" 376static 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" 380static 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" 384static 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" 388static 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" 392static 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" 396static 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" 400static 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" 405static 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" 409static 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" 413static 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" 417static 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 420typedef INT (CALLBACK *INSTALLUI_HANDLERA)(LPVOID, UINT, LPCSTR); 421typedef INT (CALLBACK *INSTALLUI_HANDLERW)(LPVOID, UINT, LPCWSTR); 422typedef INT (CALLBACK *INSTALLUI_HANDLER_RECORD)(LPVOID, UINT, MSIHANDLE); 423typedef INSTALLUI_HANDLER_RECORD* PINSTALLUI_HANDLER_RECORD; 424 425UINT 426WINAPI 427MsiAdvertiseProductA( 428 _In_ LPCSTR, 429 _In_opt_ LPCSTR, 430 _In_opt_ LPCSTR, 431 _In_ LANGID); 432 433UINT 434WINAPI 435MsiAdvertiseProductW( 436 _In_ LPCWSTR, 437 _In_opt_ LPCWSTR, 438 _In_opt_ LPCWSTR, 439 _In_ LANGID); 440 441#define MsiAdvertiseProduct WINELIB_NAME_AW(MsiAdvertiseProduct) 442 443UINT 444WINAPI 445MsiAdvertiseProductExA( 446 _In_ LPCSTR, 447 _In_opt_ LPCSTR, 448 _In_opt_ LPCSTR, 449 _In_ LANGID, 450 _In_ DWORD, 451 _In_ DWORD); 452 453UINT 454WINAPI 455MsiAdvertiseProductExW( 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 465UINT WINAPI MsiInstallProductA(_In_ LPCSTR, _In_opt_ LPCSTR); 466UINT WINAPI MsiInstallProductW(_In_ LPCWSTR, _In_opt_ LPCWSTR); 467#define MsiInstallProduct WINELIB_NAME_AW(MsiInstallProduct) 468 469UINT WINAPI MsiReinstallProductA(_In_ LPCSTR, _In_ DWORD); 470UINT WINAPI MsiReinstallProductW(_In_ LPCWSTR, _In_ DWORD); 471#define MsiReinstallProduct WINELIB_NAME_AW(MsiReinstallProduct) 472 473UINT 474WINAPI 475MsiApplyPatchA( 476 _In_ LPCSTR, 477 _In_opt_ LPCSTR, 478 _In_ INSTALLTYPE, 479 _In_opt_ LPCSTR); 480 481UINT 482WINAPI 483MsiApplyPatchW( 484 _In_ LPCWSTR, 485 _In_opt_ LPCWSTR, 486 _In_ INSTALLTYPE, 487 _In_opt_ LPCWSTR); 488 489#define MsiApplyPatch WINELIB_NAME_AW(MsiApplyPatch) 490 491UINT WINAPI MsiEnumComponentCostsA(MSIHANDLE, LPCSTR, DWORD, INSTALLSTATE, LPSTR, LPDWORD, LPINT, LPINT); 492UINT WINAPI MsiEnumComponentCostsW(MSIHANDLE, LPCWSTR, DWORD, INSTALLSTATE, LPWSTR, LPDWORD, LPINT, LPINT); 493#define MsiEnumComponentCosts WINELIB_NAME_AW(MsiEnumComponentCosts) 494 495UINT 496WINAPI 497MsiEnumProductsA( 498 _In_ DWORD, 499 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR); 500 501UINT 502WINAPI 503MsiEnumProductsW( 504 _In_ DWORD, 505 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR); 506 507#define MsiEnumProducts WINELIB_NAME_AW(MsiEnumProducts) 508 509UINT 510WINAPI 511MsiEnumProductsExA( 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 521UINT 522WINAPI 523MsiEnumProductsExW( 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 535UINT 536WINAPI 537MsiEnumFeaturesA( 538 _In_ LPCSTR, 539 _In_ DWORD, 540 _Out_writes_(MAX_FEATURE_CHARS + 1) LPSTR, 541 _Out_writes_opt_(MAX_FEATURE_CHARS + 1) LPSTR); 542 543UINT 544WINAPI 545MsiEnumFeaturesW( 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 553UINT 554WINAPI 555MsiEnumComponentsA( 556 _In_ DWORD, 557 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR); 558 559UINT 560WINAPI 561MsiEnumComponentsW( 562 _In_ DWORD, 563 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR); 564 565#define MsiEnumComponents WINELIB_NAME_AW(MsiEnumComponents) 566 567UINT 568WINAPI 569MsiEnumComponentsExA( 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 578UINT 579WINAPI 580MsiEnumComponentsExW( 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 591UINT 592WINAPI 593MsiEnumClientsA( 594 _In_ LPCSTR, 595 _In_ DWORD, 596 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR); 597 598UINT 599WINAPI 600MsiEnumClientsW( 601 _In_ LPCWSTR, 602 _In_ DWORD, 603 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR); 604 605#define MsiEnumClients WINELIB_NAME_AW(MsiEnumClients) 606 607UINT 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); 608UINT 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 611UINT WINAPI MsiOpenPackageA(_In_ LPCSTR, _Out_ MSIHANDLE*); 612UINT WINAPI MsiOpenPackageW(_In_ LPCWSTR, _Out_ MSIHANDLE*); 613#define MsiOpenPackage WINELIB_NAME_AW(MsiOpenPackage) 614 615UINT WINAPI MsiOpenPackageExA(_In_ LPCSTR, _In_ DWORD, _Out_ MSIHANDLE*); 616UINT WINAPI MsiOpenPackageExW(_In_ LPCWSTR, _In_ DWORD, _Out_ MSIHANDLE*); 617#define MsiOpenPackageEx WINELIB_NAME_AW(MsiOpenPackageEx) 618 619UINT WINAPI MsiOpenProductA(_In_ LPCSTR, _Out_ MSIHANDLE*); 620UINT WINAPI MsiOpenProductW(_In_ LPCWSTR, _Out_ MSIHANDLE*); 621#define MsiOpenProduct WINELIB_NAME_AW(MsiOpenProduct) 622 623UINT 624WINAPI 625MsiGetProductPropertyA( 626 _In_ MSIHANDLE, 627 _In_ LPCSTR, 628 _Out_writes_opt_(*pcchValueBuf) LPSTR, 629 _Inout_opt_ LPDWORD pcchValueBuf); 630 631UINT 632WINAPI 633MsiGetProductPropertyW( 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 641UINT WINAPI MsiVerifyPackageA(_In_ LPCSTR); 642UINT WINAPI MsiVerifyPackageW(_In_ LPCWSTR); 643#define MsiVerifyPackage WINELIB_NAME_AW(MsiVerifyPackage) 644 645UINT 646WINAPI 647MsiQueryComponentStateA( 648 _In_ LPCSTR, 649 _In_opt_ LPCSTR, 650 _In_ MSIINSTALLCONTEXT, 651 _In_ LPCSTR, 652 _Out_opt_ INSTALLSTATE*); 653 654UINT 655WINAPI 656MsiQueryComponentStateW( 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 665INSTALLSTATE WINAPI MsiQueryProductStateA(_In_ LPCSTR); 666INSTALLSTATE WINAPI MsiQueryProductStateW(_In_ LPCWSTR); 667#define MsiQueryProductState WINELIB_NAME_AW(MsiQueryProductState) 668 669UINT WINAPI MsiConfigureProductA(_In_ LPCSTR, _In_ int, _In_ INSTALLSTATE); 670UINT WINAPI MsiConfigureProductW(_In_ LPCWSTR, _In_ int, _In_ INSTALLSTATE); 671#define MsiConfigureProduct WINELIB_NAME_AW(MsiConfigureProduct) 672 673UINT 674WINAPI 675MsiConfigureProductExA( 676 _In_ LPCSTR, 677 _In_ int, 678 _In_ INSTALLSTATE, 679 _In_opt_ LPCSTR); 680 681UINT 682WINAPI 683MsiConfigureProductExW( 684 _In_ LPCWSTR, 685 _In_ int, 686 _In_ INSTALLSTATE, 687 _In_opt_ LPCWSTR); 688 689#define MsiConfigureProductEx WINELIB_NAME_AW(MsiConfigureProductEx) 690 691UINT 692WINAPI 693MsiConfigureFeatureA( 694 _In_ LPCSTR, 695 _In_ LPCSTR, 696 _In_ INSTALLSTATE); 697 698UINT 699WINAPI 700MsiConfigureFeatureW( 701 _In_ LPCWSTR, 702 _In_ LPCWSTR, 703 _In_ INSTALLSTATE); 704 705#define MsiConfigureFeature WINELIB_NAME_AW(MsiConfigureFeature) 706 707UINT 708WINAPI 709MsiGetProductCodeA( 710 _In_ LPCSTR, 711 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR); 712 713UINT 714WINAPI 715MsiGetProductCodeW( 716 _In_ LPCWSTR, 717 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR); 718 719#define MsiGetProductCode WINELIB_NAME_AW(MsiGetProductCode) 720 721UINT 722WINAPI 723MsiGetProductInfoA( 724 _In_ LPCSTR, 725 _In_ LPCSTR, 726 _Out_writes_opt_(*pcchValueBuf) LPSTR, 727 _Inout_opt_ LPDWORD pcchValueBuf); 728 729UINT 730WINAPI 731MsiGetProductInfoW( 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 739UINT 740WINAPI 741MsiGetProductInfoExA( 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 749UINT 750WINAPI 751MsiGetProductInfoExW( 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 761UINT 762WINAPI 763MsiGetPatchInfoExA( 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 772UINT 773WINAPI 774MsiGetPatchInfoExW( 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 785UINT 786WINAPI 787MsiGetPatchInfoA( 788 _In_ LPCSTR, 789 _In_ LPCSTR, 790 _Out_writes_opt_(*pcchValueBuf) LPSTR, 791 _Inout_opt_ LPDWORD pcchValueBuf); 792 793UINT 794WINAPI 795MsiGetPatchInfoW( 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 803UINT WINAPI MsiEnableLogA(_In_ DWORD, _In_opt_ LPCSTR, _In_ DWORD); 804UINT WINAPI MsiEnableLogW(_In_ DWORD, _In_opt_ LPCWSTR, _In_ DWORD); 805#define MsiEnableLog WINELIB_NAME_AW(MsiEnableLog) 806 807INSTALLUI_HANDLERA 808WINAPI 809MsiSetExternalUIA( 810 _In_opt_ INSTALLUI_HANDLERA, 811 _In_ DWORD, 812 _In_opt_ LPVOID); 813 814INSTALLUI_HANDLERW 815WINAPI 816MsiSetExternalUIW( 817 _In_opt_ INSTALLUI_HANDLERW, 818 _In_ DWORD, 819 _In_opt_ LPVOID); 820 821#define MsiSetExternalUI WINELIB_NAME_AW(MsiSetExternalUI) 822 823INSTALLSTATE 824WINAPI 825MsiGetComponentPathA( 826 _In_ LPCSTR, 827 _In_ LPCSTR, 828 _Out_writes_opt_(*pcchBuf) LPSTR, 829 _Inout_opt_ LPDWORD pcchBuf); 830 831INSTALLSTATE 832WINAPI 833MsiGetComponentPathW( 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 841INSTALLSTATE WINAPI MsiGetComponentPathExA(LPCSTR, LPCSTR, LPCSTR, MSIINSTALLCONTEXT, LPSTR, LPDWORD); 842INSTALLSTATE WINAPI MsiGetComponentPathExW(LPCWSTR, LPCWSTR, LPCWSTR, MSIINSTALLCONTEXT, LPWSTR, LPDWORD); 843#define MsiGetComponentPathEx WINELIB_NAME_AW(MsiGetComponentPathEx) 844 845INSTALLSTATE WINAPI MsiQueryFeatureStateA(_In_ LPCSTR, _In_ LPCSTR); 846INSTALLSTATE WINAPI MsiQueryFeatureStateW(_In_ LPCWSTR, _In_ LPCWSTR); 847#define MsiQueryFeatureState WINELIB_NAME_AW(MsiQueryFeatureState) 848 849UINT 850WINAPI 851MsiQueryFeatureStateExA( 852 _In_ LPCSTR, 853 _In_opt_ LPCSTR, 854 _In_ MSIINSTALLCONTEXT, 855 _In_ LPCSTR, 856 _Out_opt_ INSTALLSTATE*); 857 858UINT 859WINAPI 860MsiQueryFeatureStateExW( 861 _In_ LPCWSTR, 862 _In_opt_ LPCWSTR, 863 _In_ MSIINSTALLCONTEXT, 864 _In_ LPCWSTR, 865 _Out_opt_ INSTALLSTATE*); 866 867#define MsiQueryFeatureStateEx WINELIB_NAME_AW(MsiQueryFeatureStateEx) 868 869UINT 870WINAPI 871MsiGetFeatureInfoA( 872 _In_ MSIHANDLE, 873 _In_ LPCSTR, 874 _Out_opt_ LPDWORD, 875 _Out_writes_opt_(*pcchTitleBuf) LPSTR, 876 _Inout_opt_ LPDWORD pcchTitleBuf, 877 _Out_writes_opt_(*pcchHelpBuf) LPSTR, 878 _Inout_opt_ LPDWORD pcchHelpBuf); 879 880UINT 881WINAPI 882MsiGetFeatureInfoW( 883 _In_ MSIHANDLE, 884 _In_ LPCWSTR, 885 _Out_opt_ LPDWORD, 886 _Out_writes_opt_(*pcchTitleBuf) LPWSTR, 887 _Inout_opt_ LPDWORD pcchTitleBuf, 888 _Out_writes_opt_(*pcchHelpBuf) LPWSTR, 889 _Inout_opt_ LPDWORD pcchHelpBuf); 890 891#define MsiGetFeatureInfo WINELIB_NAME_AW(MsiGetFeatureInfo) 892 893UINT 894WINAPI 895MsiGetFeatureUsageA( 896 _In_ LPCSTR, 897 _In_ LPCSTR, 898 _Out_opt_ LPDWORD, 899 _Out_opt_ LPWORD); 900 901UINT 902WINAPI 903MsiGetFeatureUsageW( 904 _In_ LPCWSTR, 905 _In_ LPCWSTR, 906 _Out_opt_ LPDWORD, 907 _Out_opt_ LPWORD); 908 909#define MsiGetFeatureUsage WINELIB_NAME_AW(MsiGetFeatureUsage) 910 911UINT 912WINAPI 913MsiEnumRelatedProductsA( 914 _In_ LPCSTR, 915 _Reserved_ DWORD, 916 _In_ DWORD, 917 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR); 918 919UINT 920WINAPI 921MsiEnumRelatedProductsW( 922 _In_ LPCWSTR, 923 _Reserved_ DWORD, 924 _In_ DWORD, 925 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR); 926 927#define MsiEnumRelatedProducts WINELIB_NAME_AW(MsiEnumRelatedProducts) 928 929UINT 930WINAPI 931MsiProvideAssemblyA( 932 _In_ LPCSTR, 933 _In_opt_ LPCSTR, 934 _In_ DWORD, 935 _In_ DWORD, 936 _Out_writes_opt_(*pcchPathBuf) LPSTR, 937 _Inout_opt_ LPDWORD pcchPathBuf); 938 939UINT 940WINAPI 941MsiProvideAssemblyW( 942 _In_ LPCWSTR, 943 _In_opt_ LPCWSTR, 944 _In_ DWORD, 945 _In_ DWORD, 946 _Out_writes_opt_(*pcchPathBuf) LPWSTR, 947 _Inout_opt_ LPDWORD pcchPathBuf); 948 949#define MsiProvideAssembly WINELIB_NAME_AW(MsiProvideAssembly) 950 951UINT 952WINAPI 953MsiEnumComponentQualifiersA( 954 _In_ LPCSTR, 955 _In_ DWORD, 956 _Out_writes_(*pcchQualifierBuf) LPSTR, 957 _Inout_ LPDWORD pcchQualifierBuf, 958 _Out_writes_opt_(*pcchApplicationDataBuf) LPSTR, 959 _Inout_opt_ LPDWORD pcchApplicationDataBuf); 960 961UINT 962WINAPI 963MsiEnumComponentQualifiersW( 964 _In_ LPCWSTR, 965 _In_ DWORD, 966 _Out_writes_(*pcchQualifierBuf) LPWSTR, 967 _Inout_ LPDWORD pcchQualifierBuf, 968 _Out_writes_opt_(*pcchApplicationDataBuf) LPWSTR, 969 _Inout_opt_ LPDWORD pcchApplicationDataBuf); 970 971#define MsiEnumComponentQualifiers WINELIB_NAME_AW(MsiEnumComponentQualifiers) 972 973UINT 974WINAPI 975MsiGetFileVersionA( 976 _In_ LPCSTR, 977 _Out_writes_opt_(*pcchVersionBuf) LPSTR, 978 _Inout_opt_ LPDWORD pcchVersionBuf, 979 _Out_writes_opt_(*pcchLangBuf) LPSTR, 980 _Inout_opt_ LPDWORD pcchLangBuf); 981 982UINT 983WINAPI 984MsiGetFileVersionW( 985 _In_ LPCWSTR, 986 _Out_writes_opt_(*pcchVersionBuf) LPWSTR, 987 _Inout_opt_ LPDWORD pcchVersionBuf, 988 _Out_writes_opt_(*pcchLangBuf) LPWSTR, 989 _Inout_opt_ LPDWORD pcchLangBuf); 990 991#define MsiGetFileVersion WINELIB_NAME_AW(MsiGetFileVersion) 992 993UINT WINAPI MsiMessageBoxA(HWND, LPCSTR, LPCSTR, UINT, WORD, DWORD); 994UINT WINAPI MsiMessageBoxW(HWND, LPCWSTR, LPCWSTR, UINT, WORD, DWORD); 995#define MsiMessageBox WINELIB_NAME_AW(MsiMessageBox) 996 997UINT 998WINAPI 999MsiProvideQualifiedComponentExA( 1000 _In_ LPCSTR, 1001 _In_ LPCSTR, 1002 _In_ DWORD, 1003 _In_opt_ LPCSTR, 1004 _Reserved_ DWORD, 1005 _Reserved_ DWORD, 1006 _Out_writes_opt_(*pcchPathBuf) LPSTR, 1007 _Inout_opt_ LPDWORD pcchPathBuf); 1008 1009UINT 1010WINAPI 1011MsiProvideQualifiedComponentExW( 1012 _In_ LPCWSTR, 1013 _In_ LPCWSTR, 1014 _In_ DWORD, 1015 _In_opt_ LPCWSTR, 1016 _Reserved_ DWORD, 1017 _Reserved_ DWORD, 1018 _Out_writes_opt_(*pcchPathBuf) LPWSTR, 1019 _Inout_opt_ LPDWORD pcchPathBuf); 1020 1021#define MsiProvideQualifiedComponentEx WINELIB_NAME_AW(MsiProvideQualifiedComponentEx) 1022 1023UINT 1024WINAPI 1025MsiProvideQualifiedComponentA( 1026 _In_ LPCSTR, 1027 _In_ LPCSTR, 1028 _In_ DWORD, 1029 _Out_writes_opt_(*pcchPathBuf) LPSTR, 1030 _Inout_opt_ LPDWORD pcchPathBuf); 1031 1032UINT 1033WINAPI 1034MsiProvideQualifiedComponentW( 1035 _In_ LPCWSTR, 1036 _In_ LPCWSTR, 1037 _In_ DWORD, 1038 _Out_writes_opt_(*pcchPathBuf) LPWSTR, 1039 _Inout_opt_ LPDWORD pcchPathBuf); 1040 1041#define MsiProvideQualifiedComponent WINELIB_NAME_AW(MsiProvideQualifiedComponent) 1042 1043USERINFOSTATE 1044WINAPI 1045MsiGetUserInfoA( 1046 _In_ LPCSTR, 1047 _Out_writes_opt_(*pcchUserNameBuf) LPSTR, 1048 _Inout_opt_ LPDWORD pcchUserNameBuf, 1049 _Out_writes_opt_(*pcchOrgNameBuf) LPSTR, 1050 _Inout_opt_ LPDWORD pcchOrgNameBuf, 1051 _Out_writes_opt_(*pcchSerialBuf) LPSTR, 1052 _Inout_opt_ LPDWORD pcchSerialBuf); 1053 1054USERINFOSTATE 1055WINAPI 1056MsiGetUserInfoW( 1057 _In_ LPCWSTR, 1058 _Out_writes_opt_(*pcchUserNameBuf) LPWSTR, 1059 _Inout_opt_ LPDWORD pcchUserNameBuf, 1060 _Out_writes_opt_(*pcchOrgNameBuf) LPWSTR, 1061 _Inout_opt_ LPDWORD pcchOrgNameBuf, 1062 _Out_writes_opt_(*pcchSerialBuf) LPWSTR, 1063 _Inout_opt_ LPDWORD pcchSerialBuf); 1064 1065#define MsiGetUserInfo WINELIB_NAME_AW(MsiGetUserInfo) 1066 1067UINT WINAPI MsiProvideComponentA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPDWORD); 1068UINT WINAPI MsiProvideComponentW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPDWORD); 1069#define MsiProvideComponent WINELIB_NAME_AW(MsiProvideComponent) 1070 1071UINT WINAPI MsiCollectUserInfoA(_In_ LPCSTR); 1072UINT WINAPI MsiCollectUserInfoW(_In_ LPCWSTR); 1073#define MsiCollectUserInfo WINELIB_NAME_AW(MsiCollectUserInfo) 1074 1075UINT WINAPI MsiReinstallFeatureA(_In_ LPCSTR, _In_ LPCSTR, _In_ DWORD); 1076UINT WINAPI MsiReinstallFeatureW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ DWORD); 1077#define MsiReinstallFeature WINELIB_NAME_AW(MsiReinstallFeature) 1078 1079UINT 1080WINAPI 1081MsiGetShortcutTargetA( 1082 _In_ LPCSTR, 1083 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR, 1084 _Out_writes_opt_(MAX_FEATURE_CHARS + 1) LPSTR, 1085 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR); 1086 1087UINT 1088WINAPI 1089MsiGetShortcutTargetW( 1090 _In_ LPCWSTR, 1091 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR, 1092 _Out_writes_opt_(MAX_FEATURE_CHARS + 1) LPWSTR, 1093 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR); 1094 1095#define MsiGetShortcutTarget WINELIB_NAME_AW(MsiGetShortcutTarget) 1096 1097INSTALLSTATE WINAPI MsiUseFeatureW(_In_ LPCWSTR, _In_ LPCWSTR); 1098INSTALLSTATE WINAPI MsiUseFeatureA(_In_ LPCSTR, _In_ LPCSTR); 1099#define MsiUseFeature WINELIB_NAME_AW(MsiUseFeature) 1100 1101INSTALLSTATE 1102WINAPI 1103MsiUseFeatureExW( 1104 _In_ LPCWSTR, 1105 _In_ LPCWSTR, 1106 _In_ DWORD, 1107 _Reserved_ DWORD); 1108 1109INSTALLSTATE 1110WINAPI 1111MsiUseFeatureExA( 1112 _In_ LPCSTR, 1113 _In_ LPCSTR, 1114 _In_ DWORD, 1115 _Reserved_ DWORD); 1116 1117#define MsiUseFeatureEx WINELIB_NAME_AW(MsiUseFeatureEx) 1118 1119HRESULT 1120WINAPI 1121MsiGetFileSignatureInformationA( 1122 _In_ LPCSTR, 1123 _In_ DWORD, 1124 _Outptr_ PCCERT_CONTEXT*, 1125 _Out_writes_bytes_opt_(*pcbHashData) LPBYTE, 1126 _Inout_opt_ LPDWORD pcbHashData); 1127 1128HRESULT 1129WINAPI 1130MsiGetFileSignatureInformationW( 1131 _In_ LPCWSTR, 1132 _In_ DWORD, 1133 _Outptr_ PCCERT_CONTEXT*, 1134 _Out_writes_bytes_opt_(*pcbHashData) LPBYTE, 1135 _Inout_opt_ LPDWORD pcbHashData); 1136 1137#define MsiGetFileSignatureInformation WINELIB_NAME_AW(MsiGetFileSignatureInformation) 1138 1139INSTALLSTATE 1140WINAPI 1141MsiLocateComponentA( 1142 _In_ LPCSTR, 1143 _Out_writes_opt_(*pcchBuf) LPSTR, 1144 _Inout_opt_ LPDWORD pcchBuf); 1145 1146INSTALLSTATE 1147WINAPI 1148MsiLocateComponentW( 1149 _In_ LPCWSTR, 1150 _Out_writes_opt_(*pcchBuf) LPWSTR, 1151 _Inout_opt_ LPDWORD pcchBuf); 1152 1153#define MsiLocateComponent WINELIB_NAME_AW(MsiLocateComponent) 1154 1155UINT 1156WINAPI 1157MsiSourceListAddSourceA( 1158 _In_ LPCSTR, 1159 _In_opt_ LPCSTR, 1160 _Reserved_ DWORD, 1161 _In_ LPCSTR); 1162 1163UINT 1164WINAPI 1165MsiSourceListAddSourceW( 1166 _In_ LPCWSTR, 1167 _In_opt_ LPCWSTR, 1168 _Reserved_ DWORD, 1169 _In_ LPCWSTR); 1170 1171#define MsiSourceListAddSource WINELIB_NAME_AW(MsiSourceListAddSource) 1172 1173UINT 1174WINAPI 1175MsiSourceListEnumMediaDisksA( 1176 _In_ LPCSTR, 1177 _In_opt_ LPCSTR, 1178 _In_ MSIINSTALLCONTEXT, 1179 _In_ DWORD, 1180 _In_ DWORD, 1181 _Out_opt_ LPDWORD, 1182 _Out_writes_opt_(*pcchVolumeLabel) LPSTR, 1183 _Inout_opt_ LPDWORD pcchVolumeLabel, 1184 _Out_writes_opt_(*pcchDiskPrompt) LPSTR, 1185 _Inout_opt_ LPDWORD pcchDiskPrompt); 1186 1187UINT 1188WINAPI 1189MsiSourceListEnumMediaDisksW( 1190 _In_ LPCWSTR, 1191 _In_opt_ LPCWSTR, 1192 _In_ MSIINSTALLCONTEXT, 1193 _In_ DWORD, 1194 _In_ DWORD, 1195 _Out_opt_ LPDWORD, 1196 _Out_writes_opt_(*pcchVolumeLabel) LPWSTR, 1197 _Inout_opt_ LPDWORD pcchVolumeLabel, 1198 _Out_writes_opt_(*pcchDiskPrompt) LPWSTR, 1199 _Inout_opt_ LPDWORD pcchDiskPrompt); 1200 1201#define MsiSourceListEnumMediaDisks WINELIB_NAME_AW(MsiSourceListEnumMediaDisks) 1202 1203UINT 1204WINAPI 1205MsiSourceListEnumSourcesA( 1206 _In_ LPCSTR, 1207 _In_opt_ LPCSTR, 1208 _In_ MSIINSTALLCONTEXT, 1209 _In_ DWORD, 1210 _In_ DWORD, 1211 _Out_writes_opt_(*pcchSource) LPSTR, 1212 _Inout_opt_ LPDWORD pcchSource); 1213 1214UINT 1215WINAPI 1216MsiSourceListEnumSourcesW( 1217 _In_ LPCWSTR, 1218 _In_opt_ LPCWSTR, 1219 _In_ MSIINSTALLCONTEXT, 1220 _In_ DWORD, 1221 _In_ DWORD, 1222 _Out_writes_opt_(*pcchSource) LPWSTR, 1223 _Inout_opt_ LPDWORD pcchSource); 1224 1225#define MsiSourceListEnumSources WINELIB_NAME_AW(MsiSourceListEnumSources) 1226 1227UINT 1228WINAPI 1229MsiSourceListClearSourceA( 1230 _In_ LPCSTR, 1231 _In_opt_ LPCSTR, 1232 _In_ MSIINSTALLCONTEXT, 1233 _In_ DWORD, 1234 _In_ LPCSTR); 1235 1236UINT 1237WINAPI 1238MsiSourceListClearSourceW( 1239 _In_ LPCWSTR, 1240 _In_opt_ LPCWSTR, 1241 _In_ MSIINSTALLCONTEXT, 1242 _In_ DWORD, 1243 _In_ LPCWSTR); 1244 1245#define MsiSourceListClearSource WINELIB_NAME_AW(MsiSourceListClearSource) 1246 1247UINT 1248WINAPI 1249MsiSourceListClearAllA( 1250 _In_ LPCSTR, 1251 _In_opt_ LPCSTR, 1252 _Reserved_ DWORD); 1253 1254UINT 1255WINAPI 1256MsiSourceListClearAllW( 1257 _In_ LPCWSTR, 1258 _In_opt_ LPCWSTR, 1259 _Reserved_ DWORD); 1260 1261#define MsiSourceListClearAll WINELIB_NAME_AW(MsiSourceListClearAll) 1262 1263UINT 1264WINAPI 1265MsiSourceListGetInfoA( 1266 _In_ LPCSTR, 1267 _In_opt_ LPCSTR, 1268 _In_ MSIINSTALLCONTEXT, 1269 _In_ DWORD, 1270 _In_ LPCSTR, 1271 _Out_writes_opt_(*pcchValue) LPSTR, 1272 _Inout_opt_ LPDWORD pcchValue); 1273 1274UINT 1275WINAPI 1276MsiSourceListGetInfoW( 1277 _In_ LPCWSTR, 1278 _In_opt_ LPCWSTR, 1279 _In_ MSIINSTALLCONTEXT, 1280 _In_ DWORD, 1281 _In_ LPCWSTR, 1282 _Out_writes_opt_(*pcchValue) LPWSTR, 1283 _Inout_opt_ LPDWORD pcchValue); 1284 1285#define MsiSourceListGetInfo WINELIB_NAME_AW(MsiSourceListGetInfo) 1286 1287UINT 1288WINAPI 1289MsiSourceListSetInfoA( 1290 _In_ LPCSTR, 1291 _In_opt_ LPCSTR, 1292 _In_ MSIINSTALLCONTEXT, 1293 _In_ DWORD, 1294 _In_ LPCSTR, 1295 _In_ LPCSTR); 1296 1297UINT 1298WINAPI 1299MsiSourceListSetInfoW( 1300 _In_ LPCWSTR, 1301 _In_opt_ LPCWSTR, 1302 _In_ MSIINSTALLCONTEXT, 1303 _In_ DWORD, 1304 _In_ LPCWSTR, 1305 _In_ LPCWSTR); 1306 1307#define MsiSourceListSetInfo WINELIB_NAME_AW(MsiSourceListSetInfo) 1308 1309UINT 1310WINAPI 1311MsiSourceListAddSourceExA( 1312 _In_ LPCSTR, 1313 _In_opt_ LPCSTR, 1314 _In_ MSIINSTALLCONTEXT, 1315 _In_ DWORD, 1316 _In_ LPCSTR, 1317 _In_ DWORD); 1318 1319UINT 1320WINAPI 1321MsiSourceListAddSourceExW( 1322 _In_ LPCWSTR, 1323 _In_opt_ LPCWSTR, 1324 _In_ MSIINSTALLCONTEXT, 1325 _In_ DWORD, 1326 _In_ LPCWSTR, 1327 _In_ DWORD); 1328 1329#define MsiSourceListAddSourceEx WINELIB_NAME_AW(MsiSourceListAddSourceEx) 1330 1331UINT 1332WINAPI 1333MsiSourceListAddMediaDiskA( 1334 _In_ LPCSTR, 1335 _In_opt_ LPCSTR, 1336 _In_ MSIINSTALLCONTEXT, 1337 _In_ DWORD, 1338 _In_ DWORD, 1339 _In_opt_ LPCSTR, 1340 _In_opt_ LPCSTR); 1341 1342UINT 1343WINAPI 1344MsiSourceListAddMediaDiskW( 1345 _In_ LPCWSTR, 1346 _In_opt_ LPCWSTR, 1347 _In_ MSIINSTALLCONTEXT, 1348 _In_ DWORD, 1349 _In_ DWORD, 1350 _In_opt_ LPCWSTR, 1351 _In_opt_ LPCWSTR); 1352 1353#define MsiSourceListAddMediaDisk WINELIB_NAME_AW(MsiSourceListAddMediaDisk) 1354 1355UINT WINAPI MsiSourceListForceResolutionA(const CHAR*, const CHAR*, DWORD); 1356UINT WINAPI MsiSourceListForceResolutionW(const WCHAR*, const WCHAR*, DWORD); 1357#define MsiSourceListForceResolution WINELIB_NAME_AW(MsiSourceListForceResolution) 1358 1359UINT 1360WINAPI 1361MsiEnumPatchesA( 1362 _In_ LPCSTR, 1363 _In_ DWORD, 1364 _Out_writes_(MAX_GUID_CHARS + 1) LPSTR, 1365 _Out_writes_(*pcchTransformsBuf) LPSTR, 1366 _Inout_ LPDWORD pcchTransformsBuf); 1367 1368UINT 1369WINAPI 1370MsiEnumPatchesW( 1371 _In_ LPCWSTR, 1372 _In_ DWORD, 1373 _Out_writes_(MAX_GUID_CHARS + 1) LPWSTR, 1374 _Out_writes_(*pcchTransformsBuf) LPWSTR, 1375 _Inout_ LPDWORD pcchTransformsBuf); 1376 1377#define MsiEnumPatches WINELIB_NAME_AW(MsiEnumPatches) 1378 1379UINT 1380WINAPI 1381MsiEnumPatchesExA( 1382 _In_opt_ LPCSTR, 1383 _In_opt_ LPCSTR, 1384 _In_ DWORD, 1385 _In_ DWORD, 1386 _In_ DWORD, 1387 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR, 1388 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPSTR, 1389 _Out_opt_ MSIINSTALLCONTEXT*, 1390 _Out_writes_opt_(*pcchTargetUserSid) LPSTR, 1391 _Inout_opt_ LPDWORD pcchTargetUserSid); 1392 1393UINT 1394WINAPI 1395MsiEnumPatchesExW( 1396 _In_opt_ LPCWSTR, 1397 _In_opt_ LPCWSTR, 1398 _In_ DWORD, 1399 _In_ DWORD, 1400 _In_ DWORD, 1401 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR, 1402 _Out_writes_opt_(MAX_GUID_CHARS + 1) LPWSTR, 1403 _Out_opt_ MSIINSTALLCONTEXT*, 1404 _Out_writes_opt_(*pcchTargetUserSid) LPWSTR, 1405 _Inout_opt_ LPDWORD pcchTargetUserSid); 1406 1407#define MsiEnumPatchesEx WINELIB_NAME_AW(MsiEnumPatchesEx) 1408 1409UINT 1410WINAPI 1411MsiGetFileHashA( 1412 _In_ LPCSTR, 1413 _In_ DWORD, 1414 _Inout_ PMSIFILEHASHINFO); 1415 1416UINT 1417WINAPI 1418MsiGetFileHashW( 1419 _In_ LPCWSTR, 1420 _In_ DWORD, 1421 _Inout_ PMSIFILEHASHINFO); 1422 1423#define MsiGetFileHash WINELIB_NAME_AW(MsiGetFileHash) 1424 1425UINT 1426WINAPI 1427MsiAdvertiseScriptA( 1428 _In_ LPCSTR, 1429 _In_ DWORD, 1430 _In_opt_ PHKEY, 1431 _In_ BOOL); 1432 1433UINT 1434WINAPI 1435MsiAdvertiseScriptW( 1436 _In_ LPCWSTR, 1437 _In_ DWORD, 1438 _In_opt_ PHKEY, 1439 _In_ BOOL); 1440 1441#define MsiAdvertiseScript WINELIB_NAME_AW(MsiAdvertiseScript) 1442 1443UINT WINAPI MsiIsProductElevatedA(_In_ LPCSTR, _Out_ BOOL *); 1444UINT WINAPI MsiIsProductElevatedW(_In_ LPCWSTR, _Out_ BOOL *); 1445#define MsiIsProductElevated WINELIB_NAME_AW(MsiIsProductElevated) 1446 1447UINT WINAPI MsiDatabaseMergeA(MSIHANDLE, MSIHANDLE, LPCSTR); 1448UINT WINAPI MsiDatabaseMergeW(MSIHANDLE, MSIHANDLE, LPCWSTR); 1449#define MsiDatabaseMerge WINELIB_NAME_AW(MsiDatabaseMerge) 1450 1451UINT 1452WINAPI 1453MsiInstallMissingComponentA( 1454 _In_ LPCSTR, 1455 _In_ LPCSTR, 1456 _In_ INSTALLSTATE); 1457 1458UINT 1459WINAPI 1460MsiInstallMissingComponentW( 1461 _In_ LPCWSTR, 1462 _In_ LPCWSTR, 1463 _In_ INSTALLSTATE); 1464 1465#define MsiInstallMissingComponent WINELIB_NAME_AW(MsiInstallMissingComponent) 1466 1467UINT 1468WINAPI 1469MsiDetermineApplicablePatchesA( 1470 _In_ LPCSTR, 1471 _In_ DWORD cPatchInfo, 1472 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOA); 1473 1474UINT 1475WINAPI 1476MsiDetermineApplicablePatchesW( 1477 _In_ LPCWSTR, 1478 _In_ DWORD cPatchInfo, 1479 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOW); 1480 1481#define MsiDetermineApplicablePatches WINELIB_NAME_AW(MsiDetermineApplicablePatches) 1482 1483UINT 1484WINAPI 1485MsiDeterminePatchSequenceA( 1486 _In_ LPCSTR, 1487 _In_opt_ LPCSTR, 1488 _In_ MSIINSTALLCONTEXT, 1489 _In_ DWORD cPatchInfo, 1490 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOA); 1491 1492UINT 1493WINAPI 1494MsiDeterminePatchSequenceW( 1495 _In_ LPCWSTR, 1496 _In_opt_ LPCWSTR, 1497 _In_ MSIINSTALLCONTEXT, 1498 _In_ DWORD cPatchInfo, 1499 _Inout_updates_(cPatchInfo) PMSIPATCHSEQUENCEINFOW); 1500 1501#define MsiDeterminePatchSequence WINELIB_NAME_AW(MsiDeterminePatchSequence) 1502 1503UINT 1504WINAPI 1505MsiApplyMultiplePatchesA( 1506 _In_ LPCSTR, 1507 _In_opt_ LPCSTR, 1508 _In_opt_ LPCSTR); 1509 1510UINT 1511WINAPI 1512MsiApplyMultiplePatchesW( 1513 _In_ LPCWSTR, 1514 _In_opt_ LPCWSTR, 1515 _In_opt_ LPCWSTR); 1516 1517#define MsiApplyMultiplePatches WINELIB_NAME_AW(MsiApplyMultiplePatches) 1518 1519UINT 1520WINAPI 1521MsiBeginTransactionA( 1522 _In_ LPCSTR, 1523 _In_ DWORD, 1524 _Out_ MSIHANDLE *, 1525 _Out_ HANDLE *); 1526 1527UINT 1528WINAPI 1529MsiBeginTransactionW( 1530 _In_ LPCWSTR, 1531 _In_ DWORD, 1532 _Out_ MSIHANDLE *, 1533 _Out_ HANDLE *); 1534 1535#define MsiBeginTransaction WINELIB_NAME_AW(MsiBeginTransaction) 1536 1537UINT WINAPI MsiEndTransaction(_In_ DWORD); 1538 1539/* Non Unicode */ 1540UINT WINAPI MsiCloseHandle(MSIHANDLE); 1541UINT WINAPI MsiCloseAllHandles(void); 1542INSTALLUILEVEL WINAPI MsiSetInternalUI(_In_ INSTALLUILEVEL, _Inout_opt_ HWND*); 1543 1544UINT 1545WINAPI 1546MsiSetExternalUIRecord( 1547 _In_opt_ INSTALLUI_HANDLER_RECORD, 1548 _In_ DWORD, 1549 _In_opt_ LPVOID, 1550 _Out_opt_ PINSTALLUI_HANDLER_RECORD); 1551 1552#ifdef __cplusplus 1553} 1554#endif 1555 1556#endif /* __WINE_MSI_H */