| 1 | /** | 
 
 
 
 
 | 2 | * This file has no copyright assigned and is placed in the Public Domain. | 
 
 
 
 
 | 3 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 
 
 
 
 | 5 | */ | 
 
 
 
 
 | 6 | #ifndef _MSI_H_ | 
 
 
 
 
 | 7 | #define _MSI_H_ | 
 
 
 
 
 | 8 |  | 
 
 
 
 
 | 9 | #include <_mingw_unicode.h> | 
 
 
 
 
 | 10 |  | 
 
 
 
 
 | 11 | #ifndef NTDDI_WIN2K | 
 
 
 
 
 | 12 | #define NTDDI_WIN2K 0x05000000 | 
 
 
 
 
 | 13 | #endif | 
 
 
 
 
 | 14 | #ifndef NTDDI_WINXP | 
 
 
 
 
 | 15 | #define NTDDI_WINXP 0x05010000 | 
 
 
 
 
 | 16 | #endif | 
 
 
 
 
 | 17 | #ifndef NTDDI_WINXPSP2 | 
 
 
 
 
 | 18 | #define NTDDI_WINXPSP2 0x05010200 | 
 
 
 
 
 | 19 | #endif | 
 
 
 
 
 | 20 | #ifndef NTDDI_WS03SP1 | 
 
 
 
 
 | 21 | #define NTDDI_WS03SP1 0x05020100 | 
 
 
 
 
 | 22 | #endif | 
 
 
 
 
 | 23 | #ifndef NTDDI_VISTA | 
 
 
 
 
 | 24 | #define NTDDI_VISTA 0x06000000 | 
 
 
 
 
 | 25 | #endif | 
 
 
 
 
 | 26 | #ifndef NTDDI_VISTASP1 | 
 
 
 
 
 | 27 | #define NTDDI_VISTASP1 0x06000100 | 
 
 
 
 
 | 28 | #endif | 
 
 
 
 
 | 29 |  | 
 
 
 
 
 | 30 | #ifndef _WIN32_MSI | 
 
 
 
 
 | 31 | #if defined(NTDDI_VERSION) && NTDDI_VERSION >= NTDDI_VISTASP1 | 
 
 
 
 
 | 32 | #define _WIN32_MSI 450 | 
 
 
 
 
 | 33 | #elif defined(NTDDI_VERSION) && NTDDI_VERSION >= NTDDI_VISTA | 
 
 
 
 
 | 34 | #define _WIN32_MSI 400 | 
 
 
 
 
 | 35 | #elif defined(NTDDI_VERSION) && NTDDI_VERSION >= NTDDI_WS03SP1 | 
 
 
 
 
 | 36 | #define _WIN32_MSI 310 | 
 
 
 
 
 | 37 | #elif defined(NTDDI_VERSION) && NTDDI_VERSION >= NTDDI_WINXPSP2 | 
 
 
 
 
 | 38 | #define _WIN32_MSI 300 | 
 
 
 
 
 | 39 | #else | 
 
 
 
 
 | 40 | #define _WIN32_MSI 200 | 
 
 
 
 
 | 41 | #endif | 
 
 
 
 
 | 42 | #endif | 
 
 
 
 
 | 43 |  | 
 
 
 
 
 | 44 | #ifndef MAX_GUID_CHARS | 
 
 
 
 
 | 45 | #define MAX_GUID_CHARS  38 | 
 
 
 
 
 | 46 | #endif | 
 
 
 
 
 | 47 |  | 
 
 
 
 
 | 48 | #if _WIN32_MSI >= 150 && !defined (_MSI_NO_CRYPTO) | 
 
 
 
 
 | 49 | #include "wincrypt.h" | 
 
 
 
 
 | 50 | #endif | 
 
 
 
 
 | 51 |  | 
 
 
 
 
 | 52 | typedef unsigned __LONG32 MSIHANDLE; | 
 
 
 
 
 | 53 |  | 
 
 
 
 
 | 54 | #ifdef __cplusplus | 
 
 
 
 
 | 55 | extern "C" { | 
 
 
 
 
 | 56 | #endif | 
 
 
 
 
 | 57 |  | 
 
 
 
 
 | 58 | UINT WINAPI MsiCloseHandle(MSIHANDLE hAny); | 
 
 
 
 
 | 59 | UINT WINAPI MsiCloseAllHandles(); | 
 
 
 
 
 | 60 |  | 
 
 
 
 
 | 61 | #ifdef __cplusplus | 
 
 
 
 
 | 62 | } | 
 
 
 
 
 | 63 | #endif | 
 
 
 
 
 | 64 |  | 
 
 
 
 
 | 65 | #ifdef __cplusplus | 
 
 
 
 
 | 66 | class PMSIHANDLE { | 
 
 
 
 
 | 67 | MSIHANDLE m_h; | 
 
 
 
 
 | 68 | public: | 
 
 
 
 
 | 69 | PMSIHANDLE():m_h(0){} | 
 
 
 
 
 | 70 | PMSIHANDLE(MSIHANDLE h):m_h(h) { } | 
 
 
 
 
 | 71 | ~PMSIHANDLE() { if (m_h!=0) MsiCloseHandle (m_h); } | 
 
 
 
 
 | 72 | void operator =(MSIHANDLE h) { if (m_h) MsiCloseHandle (m_h); m_h=h; } | 
 
 
 
 
 | 73 | operator MSIHANDLE() { return m_h; } | 
 
 
 
 
 | 74 | MSIHANDLE *operator &() { if (m_h) MsiCloseHandle (m_h); m_h = 0; return &m_h; } | 
 
 
 
 
 | 75 | }; | 
 
 
 
 
 | 76 | #endif | 
 
 
 
 
 | 77 |  | 
 
 
 
 
 | 78 | typedef enum tagINSTALLMESSAGE { | 
 
 
 
 
 | 79 | INSTALLMESSAGE_FATALEXIT = 0x00000000,INSTALLMESSAGE_ERROR = 0x01000000,INSTALLMESSAGE_WARNING = 0x02000000,INSTALLMESSAGE_USER = 0x03000000, | 
 
 
 
 
 | 80 | INSTALLMESSAGE_INFO = 0x04000000,INSTALLMESSAGE_FILESINUSE = 0x05000000,INSTALLMESSAGE_RESOLVESOURCE = 0x06000000, | 
 
 
 
 
 | 81 | INSTALLMESSAGE_OUTOFDISKSPACE = 0x07000000,INSTALLMESSAGE_ACTIONSTART = 0x08000000,INSTALLMESSAGE_ACTIONDATA = 0x09000000, | 
 
 
 
 
 | 82 | INSTALLMESSAGE_PROGRESS = 0x0A000000,INSTALLMESSAGE_COMMONDATA = 0x0B000000,INSTALLMESSAGE_INITIALIZE = 0x0C000000, | 
 
 
 
 
 | 83 | INSTALLMESSAGE_TERMINATE = 0x0D000000,INSTALLMESSAGE_SHOWDIALOG = 0x0E000000 | 
 
 
 
 
 | 84 | #if _WIN32_MSI >= 400 | 
 
 
 
 
 | 85 | ,INSTALLMESSAGE_RMFILESINUSE = 0x19000000 | 
 
 
 
 
 | 86 | #endif | 
 
 
 
 
 | 87 | #if _WIN32_MSI >= 450 | 
 
 
 
 
 | 88 | ,INSTALLMESSAGE_INSTALLSTART = 0x1A000000 | 
 
 
 
 
 | 89 | ,INSTALLMESSAGE_INSTALLEND = 0x1B000000 | 
 
 
 
 
 | 90 | #endif | 
 
 
 
 
 | 91 | } INSTALLMESSAGE; | 
 
 
 
 
 | 92 |  | 
 
 
 
 
 | 93 | typedef int (WINAPI *INSTALLUI_HANDLERA)(LPVOID pvContext,UINT iMessageType,LPCSTR szMessage); | 
 
 
 
 
 | 94 | typedef int (WINAPI *INSTALLUI_HANDLERW)(LPVOID pvContext,UINT iMessageType,LPCWSTR szMessage); | 
 
 
 
 
 | 95 | #define INSTALLUI_HANDLER __MINGW_NAME_AW(INSTALLUI_HANDLER) | 
 
 
 
 
 | 96 |  | 
 
 
 
 
 | 97 | #if (_WIN32_MSI >= 310) | 
 
 
 
 
 | 98 | typedef int (WINAPI *INSTALLUI_HANDLER_RECORD)(LPVOID pvContext,UINT iMessageType,MSIHANDLE hRecord); | 
 
 
 
 
 | 99 | typedef INSTALLUI_HANDLER_RECORD *PINSTALLUI_HANDLER_RECORD; | 
 
 
 
 
 | 100 | #endif | 
 
 
 
 
 | 101 |  | 
 
 
 
 
 | 102 | typedef enum tagINSTALLUILEVEL { | 
 
 
 
 
 | 103 | INSTALLUILEVEL_NOCHANGE = 0,INSTALLUILEVEL_DEFAULT = 1,INSTALLUILEVEL_NONE = 2,INSTALLUILEVEL_BASIC = 3,INSTALLUILEVEL_REDUCED = 4, | 
 
 
 
 
 | 104 | INSTALLUILEVEL_FULL = 5,INSTALLUILEVEL_ENDDIALOG = 0x80,INSTALLUILEVEL_PROGRESSONLY = 0x40,INSTALLUILEVEL_HIDECANCEL = 0x20, | 
 
 
 
 
 | 105 | INSTALLUILEVEL_SOURCERESONLY = 0x100 | 
 
 
 
 
 | 106 | } INSTALLUILEVEL; | 
 
 
 
 
 | 107 |  | 
 
 
 
 
 | 108 | typedef enum tagINSTALLSTATE { | 
 
 
 
 
 | 109 | INSTALLSTATE_NOTUSED = -7,INSTALLSTATE_BADCONFIG = -6,INSTALLSTATE_INCOMPLETE = -5,INSTALLSTATE_SOURCEABSENT = -4,INSTALLSTATE_MOREDATA = -3, | 
 
 
 
 
 | 110 | INSTALLSTATE_INVALIDARG = -2,INSTALLSTATE_UNKNOWN = -1,INSTALLSTATE_BROKEN = 0,INSTALLSTATE_ADVERTISED = 1,INSTALLSTATE_REMOVED = 1, | 
 
 
 
 
 | 111 | INSTALLSTATE_ABSENT = 2,INSTALLSTATE_LOCAL = 3,INSTALLSTATE_SOURCE = 4,INSTALLSTATE_DEFAULT = 5 | 
 
 
 
 
 | 112 | } INSTALLSTATE; | 
 
 
 
 
 | 113 |  | 
 
 
 
 
 | 114 | typedef enum tagUSERINFOSTATE { | 
 
 
 
 
 | 115 | USERINFOSTATE_MOREDATA = -3,USERINFOSTATE_INVALIDARG = -2,USERINFOSTATE_UNKNOWN = -1,USERINFOSTATE_ABSENT = 0, | 
 
 
 
 
 | 116 | USERINFOSTATE_PRESENT = 1 | 
 
 
 
 
 | 117 | } USERINFOSTATE; | 
 
 
 
 
 | 118 |  | 
 
 
 
 
 | 119 | typedef enum tagINSTALLLEVEL { | 
 
 
 
 
 | 120 | INSTALLLEVEL_DEFAULT = 0,INSTALLLEVEL_MINIMUM = 1,INSTALLLEVEL_MAXIMUM = 0xffff | 
 
 
 
 
 | 121 | } INSTALLLEVEL; | 
 
 
 
 
 | 122 |  | 
 
 
 
 
 | 123 | typedef enum tagREINSTALLMODE { | 
 
 
 
 
 | 124 | REINSTALLMODE_REPAIR = 0x00000001,REINSTALLMODE_FILEMISSING = 0x00000002,REINSTALLMODE_FILEOLDERVERSION = 0x00000004, | 
 
 
 
 
 | 125 | REINSTALLMODE_FILEEQUALVERSION = 0x00000008,REINSTALLMODE_FILEEXACT = 0x00000010,REINSTALLMODE_FILEVERIFY = 0x00000020, | 
 
 
 
 
 | 126 | REINSTALLMODE_FILEREPLACE = 0x00000040,REINSTALLMODE_MACHINEDATA = 0x00000080,REINSTALLMODE_USERDATA = 0x00000100, | 
 
 
 
 
 | 127 | REINSTALLMODE_SHORTCUT = 0x00000200,REINSTALLMODE_PACKAGE = 0x00000400 | 
 
 
 
 
 | 128 | } REINSTALLMODE; | 
 
 
 
 
 | 129 |  | 
 
 
 
 
 | 130 | typedef enum tagINSTALLOGMODE { | 
 
 
 
 
 | 131 | INSTALLLOGMODE_FATALEXIT = (1 << (INSTALLMESSAGE_FATALEXIT >> 24)),INSTALLLOGMODE_ERROR = (1 << (INSTALLMESSAGE_ERROR >> 24)), | 
 
 
 
 
 | 132 | INSTALLLOGMODE_WARNING = (1 << (INSTALLMESSAGE_WARNING >> 24)),INSTALLLOGMODE_USER = (1 << (INSTALLMESSAGE_USER >> 24)), | 
 
 
 
 
 | 133 | INSTALLLOGMODE_INFO = (1 << (INSTALLMESSAGE_INFO >> 24)),INSTALLLOGMODE_RESOLVESOURCE = (1 << (INSTALLMESSAGE_RESOLVESOURCE >> 24)), | 
 
 
 
 
 | 134 | INSTALLLOGMODE_OUTOFDISKSPACE = (1 << (INSTALLMESSAGE_OUTOFDISKSPACE >> 24)),INSTALLLOGMODE_ACTIONSTART = (1 << (INSTALLMESSAGE_ACTIONSTART >> 24)), | 
 
 
 
 
 | 135 | INSTALLLOGMODE_ACTIONDATA = (1 << (INSTALLMESSAGE_ACTIONDATA >> 24)),INSTALLLOGMODE_COMMONDATA = (1 << (INSTALLMESSAGE_COMMONDATA >> 24)), | 
 
 
 
 
 | 136 | INSTALLLOGMODE_PROPERTYDUMP = (1 << (INSTALLMESSAGE_PROGRESS >> 24)),INSTALLLOGMODE_VERBOSE = (1 << (INSTALLMESSAGE_INITIALIZE >> 24)), | 
 
 
 
 
 | 137 | INSTALLLOGMODE_EXTRADEBUG = (1 << (INSTALLMESSAGE_TERMINATE >> 24)),INSTALLLOGMODE_LOGONLYONERROR = (1 << (INSTALLMESSAGE_SHOWDIALOG >> 24)), | 
 
 
 
 
 | 138 | INSTALLLOGMODE_PROGRESS = (1 << (INSTALLMESSAGE_PROGRESS >> 24)),INSTALLLOGMODE_INITIALIZE = (1 << (INSTALLMESSAGE_INITIALIZE >> 24)), | 
 
 
 
 
 | 139 | INSTALLLOGMODE_TERMINATE = (1 << (INSTALLMESSAGE_TERMINATE >> 24)),INSTALLLOGMODE_SHOWDIALOG = (1 << (INSTALLMESSAGE_SHOWDIALOG >> 24)), | 
 
 
 
 
 | 140 | INSTALLLOGMODE_FILESINUSE = (1 << (INSTALLMESSAGE_FILESINUSE >> 24)) | 
 
 
 
 
 | 141 | #if _WIN32_MSI >= 400 | 
 
 
 
 
 | 142 | ,INSTALLLOGMODE_RMFILESINUSE = (1 << (INSTALLMESSAGE_RMFILESINUSE >> 24)) | 
 
 
 
 
 | 143 | #endif | 
 
 
 
 
 | 144 | #if _WIN32_MSI >= 450 | 
 
 
 
 
 | 145 | ,INSTALLLOGMODE_INSTALLSTART = (1 << (INSTALLMESSAGE_INSTALLSTART >> 24)) | 
 
 
 
 
 | 146 | ,INSTALLLOGMODE_INSTALLEND = (1 << (INSTALLMESSAGE_INSTALLEND >> 24)) | 
 
 
 
 
 | 147 | #endif | 
 
 
 
 
 | 148 | } INSTALLLOGMODE; | 
 
 
 
 
 | 149 |  | 
 
 
 
 
 | 150 | typedef enum tagINSTALLLOGATTRIBUTES { | 
 
 
 
 
 | 151 | INSTALLLOGATTRIBUTES_APPEND = (1 << 0),INSTALLLOGATTRIBUTES_FLUSHEACHLINE = (1 << 1) | 
 
 
 
 
 | 152 | } INSTALLLOGATTRIBUTES; | 
 
 
 
 
 | 153 |  | 
 
 
 
 
 | 154 | typedef enum tagINSTALLFEATUREATTRIBUTE { | 
 
 
 
 
 | 155 | INSTALLFEATUREATTRIBUTE_FAVORLOCAL = 1 << 0,INSTALLFEATUREATTRIBUTE_FAVORSOURCE = 1 << 1, | 
 
 
 
 
 | 156 | INSTALLFEATUREATTRIBUTE_FOLLOWPARENT = 1 << 2,INSTALLFEATUREATTRIBUTE_FAVORADVERTISE = 1 << 3, | 
 
 
 
 
 | 157 | INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE = 1 << 4,INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE = 1 << 5 | 
 
 
 
 
 | 158 | } INSTALLFEATUREATTRIBUTE; | 
 
 
 
 
 | 159 |  | 
 
 
 
 
 | 160 | typedef enum tagINSTALLMODE { | 
 
 
 
 
 | 161 | #if (_WIN32_MSI >= 150) | 
 
 
 
 
 | 162 | INSTALLMODE_NODETECTION_ANY = -4, | 
 
 
 
 
 | 163 | #endif | 
 
 
 
 
 | 164 | INSTALLMODE_NOSOURCERESOLUTION = -3,INSTALLMODE_NODETECTION = -2,INSTALLMODE_EXISTING = -1,INSTALLMODE_DEFAULT = 0 | 
 
 
 
 
 | 165 | } INSTALLMODE; | 
 
 
 
 
 | 166 |  | 
 
 
 
 
 | 167 | #if (_WIN32_MSI >= 300) | 
 
 
 
 
 | 168 | typedef enum tagMSIPATCHSTATE { | 
 
 
 
 
 | 169 | MSIPATCHSTATE_INVALID = 0,MSIPATCHSTATE_APPLIED = 1,MSIPATCHSTATE_SUPERSEDED = 2,MSIPATCHSTATE_OBSOLETED = 4,MSIPATCHSTATE_REGISTERED = 8, | 
 
 
 
 
 | 170 | MSIPATCHSTATE_ALL = (MSIPATCHSTATE_APPLIED | MSIPATCHSTATE_SUPERSEDED | MSIPATCHSTATE_OBSOLETED | MSIPATCHSTATE_REGISTERED) | 
 
 
 
 
 | 171 | } MSIPATCHSTATE; | 
 
 
 
 
 | 172 |  | 
 
 
 
 
 | 173 | typedef enum tagMSIINSTALLCONTEXT { | 
 
 
 
 
 | 174 | MSIINSTALLCONTEXT_FIRSTVISIBLE = 0,MSIINSTALLCONTEXT_NONE = 0,MSIINSTALLCONTEXT_USERMANAGED = 1,MSIINSTALLCONTEXT_USERUNMANAGED = 2, | 
 
 
 
 
 | 175 | MSIINSTALLCONTEXT_MACHINE = 4, | 
 
 
 
 
 | 176 | MSIINSTALLCONTEXT_ALL = (MSIINSTALLCONTEXT_USERMANAGED | MSIINSTALLCONTEXT_USERUNMANAGED | MSIINSTALLCONTEXT_MACHINE), | 
 
 
 
 
 | 177 | MSIINSTALLCONTEXT_ALLUSERMANAGED = 8 | 
 
 
 
 
 | 178 | } MSIINSTALLCONTEXT; | 
 
 
 
 
 | 179 |  | 
 
 
 
 
 | 180 | typedef enum tagMSIPATCHDATATYPE { | 
 
 
 
 
 | 181 | MSIPATCH_DATATYPE_PATCHFILE = 0,MSIPATCH_DATATYPE_XMLPATH = 1,MSIPATCH_DATATYPE_XMLBLOB = 2 | 
 
 
 
 
 | 182 | } MSIPATCHDATATYPE,*PMSIPATCHDATATYPE; | 
 
 
 
 
 | 183 |  | 
 
 
 
 
 | 184 | typedef struct tagMSIPATCHSEQUENCEINFOA { | 
 
 
 
 
 | 185 | LPCSTR szPatchData; | 
 
 
 
 
 | 186 | MSIPATCHDATATYPE ePatchDataType; | 
 
 
 
 
 | 187 | DWORD dwOrder; | 
 
 
 
 
 | 188 | UINT uStatus; | 
 
 
 
 
 | 189 | } MSIPATCHSEQUENCEINFOA,*PMSIPATCHSEQUENCEINFOA; | 
 
 
 
 
 | 190 |  | 
 
 
 
 
 | 191 | typedef struct tagMSIPATCHSEQUENCEINFOW { | 
 
 
 
 
 | 192 | LPCWSTR szPatchData; | 
 
 
 
 
 | 193 | MSIPATCHDATATYPE ePatchDataType; | 
 
 
 
 
 | 194 | DWORD dwOrder; | 
 
 
 
 
 | 195 | UINT uStatus; | 
 
 
 
 
 | 196 | } MSIPATCHSEQUENCEINFOW,*PMSIPATCHSEQUENCEINFOW; | 
 
 
 
 
 | 197 |  | 
 
 
 
 
 | 198 | __MINGW_TYPEDEF_AW(MSIPATCHSEQUENCEINFO) | 
 
 
 
 
 | 199 | __MINGW_TYPEDEF_AW(PMSIPATCHSEQUENCEINFO) | 
 
 
 
 
 | 200 | #endif | 
 
 
 
 
 | 201 |  | 
 
 
 
 
 | 202 | #define MAX_FEATURE_CHARS 38 | 
 
 
 
 
 | 203 |  | 
 
 
 
 
 | 204 | #define INSTALLPROPERTY_PACKAGENAME __TEXT("PackageName") | 
 
 
 
 
 | 205 | #define INSTALLPROPERTY_TRANSFORMS __TEXT("Transforms") | 
 
 
 
 
 | 206 | #define INSTALLPROPERTY_LANGUAGE __TEXT("Language") | 
 
 
 
 
 | 207 | #define INSTALLPROPERTY_PRODUCTNAME __TEXT("ProductName") | 
 
 
 
 
 | 208 | #define INSTALLPROPERTY_ASSIGNMENTTYPE __TEXT("AssignmentType") | 
 
 
 
 
 | 209 | #if (_WIN32_MSI >= 150) | 
 
 
 
 
 | 210 | #define INSTALLPROPERTY_INSTANCETYPE __TEXT("InstanceType") | 
 
 
 
 
 | 211 | #endif | 
 
 
 
 
 | 212 | #if (_WIN32_MSI >= 300) | 
 
 
 
 
 | 213 | #define INSTALLPROPERTY_AUTHORIZED_LUA_APP __TEXT("AuthorizedLUAApp") | 
 
 
 
 
 | 214 | #endif | 
 
 
 
 
 | 215 |  | 
 
 
 
 
 | 216 | #define INSTALLPROPERTY_PACKAGECODE __TEXT("PackageCode") | 
 
 
 
 
 | 217 | #define INSTALLPROPERTY_VERSION __TEXT("Version") | 
 
 
 
 
 | 218 | #if (_WIN32_MSI >= 110) | 
 
 
 
 
 | 219 | #define INSTALLPROPERTY_PRODUCTICON __TEXT("ProductIcon") | 
 
 
 
 
 | 220 | #endif | 
 
 
 
 
 | 221 |  | 
 
 
 
 
 | 222 | #define INSTALLPROPERTY_INSTALLEDPRODUCTNAME __TEXT("InstalledProductName") | 
 
 
 
 
 | 223 | #define INSTALLPROPERTY_VERSIONSTRING __TEXT("VersionString") | 
 
 
 
 
 | 224 | #define INSTALLPROPERTY_HELPLINK __TEXT("HelpLink") | 
 
 
 
 
 | 225 | #define INSTALLPROPERTY_HELPTELEPHONE __TEXT("HelpTelephone") | 
 
 
 
 
 | 226 | #define INSTALLPROPERTY_INSTALLLOCATION __TEXT("InstallLocation") | 
 
 
 
 
 | 227 | #define INSTALLPROPERTY_INSTALLSOURCE __TEXT("InstallSource") | 
 
 
 
 
 | 228 | #define INSTALLPROPERTY_INSTALLDATE __TEXT("InstallDate") | 
 
 
 
 
 | 229 | #define INSTALLPROPERTY_PUBLISHER __TEXT("Publisher") | 
 
 
 
 
 | 230 | #define INSTALLPROPERTY_LOCALPACKAGE __TEXT("LocalPackage") | 
 
 
 
 
 | 231 | #define INSTALLPROPERTY_URLINFOABOUT __TEXT("URLInfoAbout") | 
 
 
 
 
 | 232 | #define INSTALLPROPERTY_URLUPDATEINFO __TEXT("URLUpdateInfo") | 
 
 
 
 
 | 233 | #define INSTALLPROPERTY_VERSIONMINOR __TEXT("VersionMinor") | 
 
 
 
 
 | 234 | #define INSTALLPROPERTY_VERSIONMAJOR __TEXT("VersionMajor") | 
 
 
 
 
 | 235 | #define INSTALLPROPERTY_PRODUCTID __TEXT("ProductID") | 
 
 
 
 
 | 236 | #define INSTALLPROPERTY_REGCOMPANY __TEXT("RegCompany") | 
 
 
 
 
 | 237 | #define INSTALLPROPERTY_REGOWNER __TEXT("RegOwner") | 
 
 
 
 
 | 238 |  | 
 
 
 
 
 | 239 | #if (_WIN32_MSI >= 300) | 
 
 
 
 
 | 240 | #define INSTALLPROPERTY_UNINSTALLABLE __TEXT("Uninstallable") | 
 
 
 
 
 | 241 | #define INSTALLPROPERTY_PRODUCTSTATE __TEXT("State") | 
 
 
 
 
 | 242 | #define INSTALLPROPERTY_PATCHSTATE __TEXT("State") | 
 
 
 
 
 | 243 | #define INSTALLPROPERTY_PATCHTYPE __TEXT("PatchType") | 
 
 
 
 
 | 244 | #define INSTALLPROPERTY_LUAENABLED __TEXT("LUAEnabled") | 
 
 
 
 
 | 245 | #define INSTALLPROPERTY_DISPLAYNAME __TEXT("DisplayName") | 
 
 
 
 
 | 246 | #define INSTALLPROPERTY_MOREINFOURL __TEXT("MoreInfoURL") | 
 
 
 
 
 | 247 |  | 
 
 
 
 
 | 248 | #define INSTALLPROPERTY_LASTUSEDSOURCE __TEXT("LastUsedSource") | 
 
 
 
 
 | 249 | #define INSTALLPROPERTY_LASTUSEDTYPE __TEXT("LastUsedType") | 
 
 
 
 
 | 250 | #define INSTALLPROPERTY_MEDIAPACKAGEPATH __TEXT("MediaPackagePath") | 
 
 
 
 
 | 251 | #define INSTALLPROPERTY_DISKPROMPT __TEXT("DiskPrompt") | 
 
 
 
 
 | 252 | #endif | 
 
 
 
 
 | 253 |  | 
 
 
 
 
 | 254 | typedef enum tagSCRIPTFLAGS { | 
 
 
 
 
 | 255 | SCRIPTFLAGS_CACHEINFO = 0x00000001,SCRIPTFLAGS_SHORTCUTS = 0x00000004,SCRIPTFLAGS_MACHINEASSIGN = 0x00000008, | 
 
 
 
 
 | 256 | SCRIPTFLAGS_REGDATA_CNFGINFO = 0x00000020,SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST = 0x00000040, | 
 
 
 
 
 | 257 | #if (_WIN32_MSI >= 110) | 
 
 
 
 
 | 258 | SCRIPTFLAGS_REGDATA_CLASSINFO = 0x00000080,SCRIPTFLAGS_REGDATA_EXTENSIONINFO = 0x00000100, | 
 
 
 
 
 | 259 | SCRIPTFLAGS_REGDATA_APPINFO = SCRIPTFLAGS_REGDATA_CLASSINFO | SCRIPTFLAGS_REGDATA_EXTENSIONINFO, | 
 
 
 
 
 | 260 | #else | 
 
 
 
 
 | 261 | SCRIPTFLAGS_REGDATA_APPINFO = 0x00000010, | 
 
 
 
 
 | 262 | #endif | 
 
 
 
 
 | 263 | SCRIPTFLAGS_REGDATA = SCRIPTFLAGS_REGDATA_APPINFO | SCRIPTFLAGS_REGDATA_CNFGINFO | 
 
 
 
 
 | 264 | } SCRIPTFLAGS; | 
 
 
 
 
 | 265 |  | 
 
 
 
 
 | 266 | typedef enum tagADVERTISEFLAGS { | 
 
 
 
 
 | 267 | ADVERTISEFLAGS_MACHINEASSIGN = 0,ADVERTISEFLAGS_USERASSIGN = 1 | 
 
 
 
 
 | 268 | } ADVERTISEFLAGS; | 
 
 
 
 
 | 269 |  | 
 
 
 
 
 | 270 | typedef enum tagINSTALLTYPE { | 
 
 
 
 
 | 271 | INSTALLTYPE_DEFAULT = 0,INSTALLTYPE_NETWORK_IMAGE = 1,INSTALLTYPE_SINGLE_INSTANCE = 2 | 
 
 
 
 
 | 272 | } INSTALLTYPE; | 
 
 
 
 
 | 273 |  | 
 
 
 
 
 | 274 | #if (_WIN32_MSI >= 150) | 
 
 
 
 
 | 275 | typedef struct _MSIFILEHASHINFO { | 
 
 
 
 
 | 276 | ULONG dwFileHashInfoSize; | 
 
 
 
 
 | 277 | ULONG dwData [4]; | 
 
 
 
 
 | 278 | } MSIFILEHASHINFO,*PMSIFILEHASHINFO; | 
 
 
 
 
 | 279 |  | 
 
 
 
 
 | 280 | typedef enum tagMSIARCHITECTUREFLAGS { | 
 
 
 
 
 | 281 | MSIARCHITECTUREFLAGS_X86 = 0x00000001,MSIARCHITECTUREFLAGS_IA64 = 0x00000002,MSIARCHITECTUREFLAGS_AMD64 = 0x00000004 | 
 
 
 
 
 | 282 | } MSIARCHITECTUREFLAGS; | 
 
 
 
 
 | 283 |  | 
 
 
 
 
 | 284 | typedef enum tagMSIOPENPACKAGEFLAGS { | 
 
 
 
 
 | 285 | MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE = 0x00000001 | 
 
 
 
 
 | 286 | } MSIOPENPACKAGEFLAGS; | 
 
 
 
 
 | 287 |  | 
 
 
 
 
 | 288 | typedef enum tagMSIADVERTISEOPTIONFLAGS { | 
 
 
 
 
 | 289 | MSIADVERTISEOPTIONFLAGS_INSTANCE = 0x00000001 | 
 
 
 
 
 | 290 | } MSIADVERTISEOPTIONFLAGS; | 
 
 
 
 
 | 291 | #endif | 
 
 
 
 
 | 292 |  | 
 
 
 
 
 | 293 | #if (_WIN32_MSI >= 300) | 
 
 
 
 
 | 294 | typedef enum tagMSISOURCETYPE { | 
 
 
 
 
 | 295 | MSISOURCETYPE_UNKNOWN = 0x00000000,MSISOURCETYPE_NETWORK = 0x00000001,MSISOURCETYPE_URL = 0x00000002,MSISOURCETYPE_MEDIA = 0x00000004 | 
 
 
 
 
 | 296 | } MSISOURCETYPE; | 
 
 
 
 
 | 297 |  | 
 
 
 
 
 | 298 | typedef enum tagMSICODE { | 
 
 
 
 
 | 299 | MSICODE_PRODUCT = 0x00000000,MSICODE_PATCH = 0x40000000 | 
 
 
 
 
 | 300 | } MSICODE; | 
 
 
 
 
 | 301 |  | 
 
 
 
 
 | 302 | #if _WIN32_MSI >= 450 | 
 
 
 
 
 | 303 | typedef enum tagMSITRANSACTION { | 
 
 
 
 
 | 304 | MSITRANSACTION_CHAIN_EMBEDDEDUI = 0x00000001, | 
 
 
 
 
 | 305 | MSITRANSACTION_JOIN_EXISTING_EMBEDDEDUI = 0x00000002 | 
 
 
 
 
 | 306 | } MSITRANSACTION; | 
 
 
 
 
 | 307 |  | 
 
 
 
 
 | 308 | typedef enum tagMSITRANSACTIONSTATE { | 
 
 
 
 
 | 309 | MSITRANSACTIONSTATE_ROLLBACK = 0x00000000, | 
 
 
 
 
 | 310 | MSITRANSACTIONSTATE_COMMIT = 0x00000001 | 
 
 
 
 
 | 311 | } MSITRANSACTIONSTATE; | 
 
 
 
 
 | 312 | #endif | 
 
 
 
 
 | 313 | #endif | 
 
 
 
 
 | 314 |  | 
 
 
 
 
 | 315 | #ifdef __cplusplus | 
 
 
 
 
 | 316 | extern "C" { | 
 
 
 
 
 | 317 | #endif | 
 
 
 
 
 | 318 |  | 
 
 
 
 
 | 319 | INSTALLUILEVEL WINAPI MsiSetInternalUI(INSTALLUILEVEL dwUILevel,HWND *phWnd); | 
 
 
 
 
 | 320 | INSTALLUI_HANDLERA WINAPI MsiSetExternalUIA(INSTALLUI_HANDLERA puiHandler,DWORD dwMessageFilter,LPVOID pvContext); | 
 
 
 
 
 | 321 | INSTALLUI_HANDLERW WINAPI MsiSetExternalUIW(INSTALLUI_HANDLERW puiHandler,DWORD dwMessageFilter,LPVOID pvContext); | 
 
 
 
 
 | 322 | #define MsiSetExternalUI __MINGW_NAME_AW(MsiSetExternalUI) | 
 
 
 
 
 | 323 |  | 
 
 
 
 
 | 324 | #if (_WIN32_MSI >= 310) | 
 
 
 
 
 | 325 | UINT WINAPI MsiSetExternalUIRecord(INSTALLUI_HANDLER_RECORD puiHandler,DWORD dwMessageFilter,LPVOID pvContext,PINSTALLUI_HANDLER_RECORD ppuiPrevHandler); | 
 
 
 
 
 | 326 | #endif | 
 
 
 
 
 | 327 |  | 
 
 
 
 
 | 328 | UINT WINAPI MsiEnableLogA(DWORD dwLogMode,LPCSTR szLogFile,DWORD dwLogAttributes); | 
 
 
 
 
 | 329 | UINT WINAPI MsiEnableLogW(DWORD dwLogMode,LPCWSTR szLogFile,DWORD dwLogAttributes); | 
 
 
 
 
 | 330 | #define MsiEnableLog __MINGW_NAME_AW(MsiEnableLog) | 
 
 
 
 
 | 331 |  | 
 
 
 
 
 | 332 | INSTALLSTATE WINAPI MsiQueryProductStateA(LPCSTR szProduct); | 
 
 
 
 
 | 333 | INSTALLSTATE WINAPI MsiQueryProductStateW(LPCWSTR szProduct); | 
 
 
 
 
 | 334 | #define MsiQueryProductState __MINGW_NAME_AW(MsiQueryProductState) | 
 
 
 
 
 | 335 |  | 
 
 
 
 
 | 336 | UINT WINAPI MsiGetProductInfoA(LPCSTR szProduct,LPCSTR szAttribute,LPSTR lpValueBuf,DWORD *pcchValueBuf); | 
 
 
 
 
 | 337 | UINT WINAPI MsiGetProductInfoW(LPCWSTR szProduct,LPCWSTR szAttribute,LPWSTR lpValueBuf,DWORD *pcchValueBuf); | 
 
 
 
 
 | 338 | #define MsiGetProductInfo __MINGW_NAME_AW(MsiGetProductInfo) | 
 
 
 
 
 | 339 |  | 
 
 
 
 
 | 340 | #if (_WIN32_MSI >= 300) | 
 
 
 
 
 | 341 | UINT WINAPI MsiGetProductInfoExA(LPCSTR szProductCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,LPCSTR szProperty,LPSTR szValue,LPDWORD pcchValue); | 
 
 
 
 
 | 342 | UINT WINAPI MsiGetProductInfoExW(LPCWSTR szProductCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,LPCWSTR szProperty,LPWSTR szValue,LPDWORD pcchValue); | 
 
 
 
 
 | 343 | #define MsiGetProductInfoEx __MINGW_NAME_AW(MsiGetProductInfoEx) | 
 
 
 
 
 | 344 | #endif | 
 
 
 
 
 | 345 |  | 
 
 
 
 
 | 346 | UINT WINAPI MsiInstallProductA(LPCSTR szPackagePath,LPCSTR szCommandLine); | 
 
 
 
 
 | 347 | UINT WINAPI MsiInstallProductW(LPCWSTR szPackagePath,LPCWSTR szCommandLine); | 
 
 
 
 
 | 348 | #define MsiInstallProduct __MINGW_NAME_AW(MsiInstallProduct) | 
 
 
 
 
 | 349 |  | 
 
 
 
 
 | 350 | UINT WINAPI MsiConfigureProductA(LPCSTR szProduct,int iInstallLevel,INSTALLSTATE eInstallState); | 
 
 
 
 
 | 351 | UINT WINAPI MsiConfigureProductW(LPCWSTR szProduct,int iInstallLevel,INSTALLSTATE eInstallState); | 
 
 
 
 
 | 352 | #define MsiConfigureProduct __MINGW_NAME_AW(MsiConfigureProduct) | 
 
 
 
 
 | 353 |  | 
 
 
 
 
 | 354 | UINT WINAPI MsiConfigureProductExA(LPCSTR szProduct,int iInstallLevel,INSTALLSTATE eInstallState,LPCSTR szCommandLine); | 
 
 
 
 
 | 355 | UINT WINAPI MsiConfigureProductExW(LPCWSTR szProduct,int iInstallLevel,INSTALLSTATE eInstallState,LPCWSTR szCommandLine); | 
 
 
 
 
 | 356 | #define MsiConfigureProductEx __MINGW_NAME_AW(MsiConfigureProductEx) | 
 
 
 
 
 | 357 |  | 
 
 
 
 
 | 358 | UINT WINAPI MsiReinstallProductA(LPCSTR szProduct,DWORD szReinstallMode); | 
 
 
 
 
 | 359 | UINT WINAPI MsiReinstallProductW(LPCWSTR szProduct,DWORD szReinstallMode); | 
 
 
 
 
 | 360 | #define MsiReinstallProduct __MINGW_NAME_AW(MsiReinstallProduct) | 
 
 
 
 
 | 361 |  | 
 
 
 
 
 | 362 | #if (_WIN32_MSI >= 150) | 
 
 
 
 
 | 363 | UINT WINAPI MsiAdvertiseProductExA(LPCSTR szPackagePath,LPCSTR szScriptfilePath,LPCSTR szTransforms,LANGID lgidLanguage,DWORD dwPlatform,DWORD dwOptions); | 
 
 
 
 
 | 364 | UINT WINAPI MsiAdvertiseProductExW(LPCWSTR szPackagePath,LPCWSTR szScriptfilePath,LPCWSTR szTransforms,LANGID lgidLanguage,DWORD dwPlatform,DWORD dwOptions); | 
 
 
 
 
 | 365 | #define MsiAdvertiseProductEx __MINGW_NAME_AW(MsiAdvertiseProductEx) | 
 
 
 
 
 | 366 | #endif | 
 
 
 
 
 | 367 |  | 
 
 
 
 
 | 368 | UINT WINAPI MsiAdvertiseProductA(LPCSTR szPackagePath,LPCSTR szScriptfilePath,LPCSTR szTransforms,LANGID lgidLanguage); | 
 
 
 
 
 | 369 | UINT WINAPI MsiAdvertiseProductW(LPCWSTR szPackagePath,LPCWSTR szScriptfilePath,LPCWSTR szTransforms,LANGID lgidLanguage); | 
 
 
 
 
 | 370 | #define MsiAdvertiseProduct __MINGW_NAME_AW(MsiAdvertiseProduct) | 
 
 
 
 
 | 371 |  | 
 
 
 
 
 | 372 | #if (_WIN32_MSI >= 150) | 
 
 
 
 
 | 373 | UINT WINAPI MsiProcessAdvertiseScriptA(LPCSTR szScriptFile,LPCSTR szIconFolder,HKEY hRegData,WINBOOL fShortcuts,WINBOOL fRemoveItems); | 
 
 
 
 
 | 374 | UINT WINAPI MsiProcessAdvertiseScriptW(LPCWSTR szScriptFile,LPCWSTR szIconFolder,HKEY hRegData,WINBOOL fShortcuts,WINBOOL fRemoveItems); | 
 
 
 
 
 | 375 | #define MsiProcessAdvertiseScript __MINGW_NAME_AW(MsiProcessAdvertiseScript) | 
 
 
 
 
 | 376 | #endif | 
 
 
 
 
 | 377 |  | 
 
 
 
 
 | 378 | UINT WINAPI MsiAdvertiseScriptA(LPCSTR szScriptFile,DWORD dwFlags,PHKEY phRegData,WINBOOL fRemoveItems); | 
 
 
 
 
 | 379 | UINT WINAPI MsiAdvertiseScriptW(LPCWSTR szScriptFile,DWORD dwFlags,PHKEY phRegData,WINBOOL fRemoveItems); | 
 
 
 
 
 | 380 | #define MsiAdvertiseScript __MINGW_NAME_AW(MsiAdvertiseScript) | 
 
 
 
 
 | 381 |  | 
 
 
 
 
 | 382 | UINT WINAPI MsiGetProductInfoFromScriptA(LPCSTR szScriptFile,LPSTR lpProductBuf39,LANGID *plgidLanguage,DWORD *pdwVersion,LPSTR lpNameBuf,DWORD *pcchNameBuf,LPSTR lpPackageBuf,DWORD *pcchPackageBuf); | 
 
 
 
 
 | 383 | UINT WINAPI MsiGetProductInfoFromScriptW(LPCWSTR szScriptFile,LPWSTR lpProductBuf39,LANGID *plgidLanguage,DWORD *pdwVersion,LPWSTR lpNameBuf,DWORD *pcchNameBuf,LPWSTR lpPackageBuf,DWORD *pcchPackageBuf); | 
 
 
 
 
 | 384 | #define MsiGetProductInfoFromScript __MINGW_NAME_AW(MsiGetProductInfoFromScript) | 
 
 
 
 
 | 385 |  | 
 
 
 
 
 | 386 | UINT WINAPI MsiGetProductCodeA(LPCSTR szComponent,LPSTR lpBuf39); | 
 
 
 
 
 | 387 | UINT WINAPI MsiGetProductCodeW(LPCWSTR szComponent,LPWSTR lpBuf39); | 
 
 
 
 
 | 388 | #define MsiGetProductCode __MINGW_NAME_AW(MsiGetProductCode) | 
 
 
 
 
 | 389 |  | 
 
 
 
 
 | 390 | USERINFOSTATE WINAPI MsiGetUserInfoA(LPCSTR szProduct,LPSTR lpUserNameBuf,DWORD *pcchUserNameBuf,LPSTR lpOrgNameBuf,DWORD *pcchOrgNameBuf,LPSTR lpSerialBuf,DWORD *pcchSerialBuf); | 
 
 
 
 
 | 391 | USERINFOSTATE WINAPI MsiGetUserInfoW(LPCWSTR szProduct,LPWSTR lpUserNameBuf,DWORD *pcchUserNameBuf,LPWSTR lpOrgNameBuf,DWORD *pcchOrgNameBuf,LPWSTR lpSerialBuf,DWORD *pcchSerialBuf); | 
 
 
 
 
 | 392 | #define MsiGetUserInfo __MINGW_NAME_AW(MsiGetUserInfo) | 
 
 
 
 
 | 393 |  | 
 
 
 
 
 | 394 | UINT WINAPI MsiCollectUserInfoA(LPCSTR szProduct); | 
 
 
 
 
 | 395 | UINT WINAPI MsiCollectUserInfoW(LPCWSTR szProduct); | 
 
 
 
 
 | 396 | #define MsiCollectUserInfo __MINGW_NAME_AW(MsiCollectUserInfo) | 
 
 
 
 
 | 397 |  | 
 
 
 
 
 | 398 | UINT WINAPI MsiApplyPatchA(LPCSTR szPatchPackage,LPCSTR szInstallPackage,INSTALLTYPE eInstallType,LPCSTR szCommandLine); | 
 
 
 
 
 | 399 | UINT WINAPI MsiApplyPatchW(LPCWSTR szPatchPackage,LPCWSTR szInstallPackage,INSTALLTYPE eInstallType,LPCWSTR szCommandLine); | 
 
 
 
 
 | 400 | #define MsiApplyPatch __MINGW_NAME_AW(MsiApplyPatch) | 
 
 
 
 
 | 401 |  | 
 
 
 
 
 | 402 | UINT WINAPI MsiGetPatchInfoA(LPCSTR szPatch,LPCSTR szAttribute,LPSTR lpValueBuf,DWORD *pcchValueBuf); | 
 
 
 
 
 | 403 | UINT WINAPI MsiGetPatchInfoW(LPCWSTR szPatch,LPCWSTR szAttribute,LPWSTR lpValueBuf,DWORD *pcchValueBuf); | 
 
 
 
 
 | 404 | #define MsiGetPatchInfo __MINGW_NAME_AW(MsiGetPatchInfo) | 
 
 
 
 
 | 405 |  | 
 
 
 
 
 | 406 | UINT WINAPI MsiEnumPatchesA(LPCSTR szProduct,DWORD iPatchIndex,LPSTR lpPatchBuf,LPSTR lpTransformsBuf,DWORD *pcchTransformsBuf); | 
 
 
 
 
 | 407 | UINT WINAPI MsiEnumPatchesW(LPCWSTR szProduct,DWORD iPatchIndex,LPWSTR lpPatchBuf,LPWSTR lpTransformsBuf,DWORD *pcchTransformsBuf); | 
 
 
 
 
 | 408 | #define MsiEnumPatches __MINGW_NAME_AW(MsiEnumPatches) | 
 
 
 
 
 | 409 |  | 
 
 
 
 
 | 410 | #if (_WIN32_MSI >= 300) | 
 
 
 
 
 | 411 | UINT WINAPI MsiRemovePatchesA(LPCSTR szPatchList,LPCSTR szProductCode,INSTALLTYPE eUninstallType,LPCSTR szPropertyList); | 
 
 
 
 
 | 412 | UINT WINAPI MsiRemovePatchesW(LPCWSTR szPatchList,LPCWSTR szProductCode,INSTALLTYPE eUninstallType,LPCWSTR szPropertyList); | 
 
 
 
 
 | 413 | #define MsiRemovePatches __MINGW_NAME_AW(MsiRemovePatches) | 
 
 
 
 
 | 414 |  | 
 
 
 
 
 | 415 | UINT WINAPI MsiExtractPatchXMLDataA(LPCSTR szPatchPath,DWORD dwReserved,LPSTR szXMLData,DWORD *pcchXMLData); | 
 
 
 
 
 | 416 | UINT WINAPI MsiExtractPatchXMLDataW(LPCWSTR szPatchPath,DWORD dwReserved,LPWSTR szXMLData,DWORD *pcchXMLData); | 
 
 
 
 
 | 417 | #define MsiExtractPatchXMLData __MINGW_NAME_AW(MsiExtractPatchXMLData) | 
 
 
 
 
 | 418 |  | 
 
 
 
 
 | 419 | UINT WINAPI MsiGetPatchInfoExA(LPCSTR szPatchCode,LPCSTR szProductCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,LPCSTR szProperty,LPSTR lpValue,DWORD *pcchValue); | 
 
 
 
 
 | 420 | UINT WINAPI MsiGetPatchInfoExW(LPCWSTR szPatchCode,LPCWSTR szProductCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,LPCWSTR szProperty,LPWSTR lpValue,DWORD *pcchValue); | 
 
 
 
 
 | 421 | #define MsiGetPatchInfoEx __MINGW_NAME_AW(MsiGetPatchInfoEx) | 
 
 
 
 
 | 422 |  | 
 
 
 
 
 | 423 | UINT WINAPI MsiApplyMultiplePatchesA(LPCSTR szPatchPackages,LPCSTR szProductCode,LPCSTR szPropertiesList); | 
 
 
 
 
 | 424 | UINT WINAPI MsiApplyMultiplePatchesW(LPCWSTR szPatchPackages,LPCWSTR szProductCode,LPCWSTR szPropertiesList); | 
 
 
 
 
 | 425 | #define MsiApplyMultiplePatches __MINGW_NAME_AW(MsiApplyMultiplePatches) | 
 
 
 
 
 | 426 |  | 
 
 
 
 
 | 427 | UINT WINAPI MsiDeterminePatchSequenceA(LPCSTR szProductCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD cPatchInfo,PMSIPATCHSEQUENCEINFOA pPatchInfo); | 
 
 
 
 
 | 428 | UINT WINAPI MsiDeterminePatchSequenceW(LPCWSTR szProductCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD cPatchInfo,PMSIPATCHSEQUENCEINFOW pPatchInfo); | 
 
 
 
 
 | 429 | #define MsiDeterminePatchSequence __MINGW_NAME_AW(MsiDeterminePatchSequence) | 
 
 
 
 
 | 430 |  | 
 
 
 
 
 | 431 | UINT WINAPI MsiDetermineApplicablePatchesA(LPCSTR szProductPackagePath,DWORD cPatchInfo,PMSIPATCHSEQUENCEINFOA pPatchInfo); | 
 
 
 
 
 | 432 | UINT WINAPI MsiDetermineApplicablePatchesW(LPCWSTR szProductPackagePath,DWORD cPatchInfo,PMSIPATCHSEQUENCEINFOW pPatchInfo); | 
 
 
 
 
 | 433 | #define MsiDetermineApplicablePatches __MINGW_NAME_AW(MsiDetermineApplicablePatches) | 
 
 
 
 
 | 434 |  | 
 
 
 
 
 | 435 | UINT WINAPI MsiEnumPatchesExA(LPCSTR szProductCode,LPCSTR szUserSid,DWORD dwContext,DWORD dwFilter,DWORD dwIndex,CHAR szPatchCode[39],CHAR szTargetProductCode[39],MSIINSTALLCONTEXT *pdwTargetProductContext,LPSTR szTargetUserSid,LPDWORD pcchTargetUserSid); | 
 
 
 
 
 | 436 | UINT WINAPI MsiEnumPatchesExW(LPCWSTR szProductCode,LPCWSTR szUserSid,DWORD dwContext,DWORD dwFilter,DWORD dwIndex,WCHAR szPatchCode[39],WCHAR szTargetProductCode[39],MSIINSTALLCONTEXT *pdwTargetProductContext,LPWSTR szTargetUserSid,LPDWORD pcchTargetUserSid); | 
 
 
 
 
 | 437 | #define MsiEnumPatchesEx __MINGW_NAME_AW(MsiEnumPatchesEx) | 
 
 
 
 
 | 438 | #endif | 
 
 
 
 
 | 439 |  | 
 
 
 
 
 | 440 | INSTALLSTATE WINAPI MsiQueryFeatureStateA(LPCSTR szProduct,LPCSTR szFeature); | 
 
 
 
 
 | 441 | INSTALLSTATE WINAPI MsiQueryFeatureStateW(LPCWSTR szProduct,LPCWSTR szFeature); | 
 
 
 
 
 | 442 | #define MsiQueryFeatureState __MINGW_NAME_AW(MsiQueryFeatureState) | 
 
 
 
 
 | 443 |  | 
 
 
 
 
 | 444 | #if (_WIN32_MSI >= 300) | 
 
 
 
 
 | 445 | UINT WINAPI MsiQueryFeatureStateExA(LPCSTR szProductCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,LPCSTR szFeature,INSTALLSTATE *pdwState); | 
 
 
 
 
 | 446 | UINT WINAPI MsiQueryFeatureStateExW(LPCWSTR szProductCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,LPCWSTR szFeature,INSTALLSTATE *pdwState); | 
 
 
 
 
 | 447 | #define MsiQueryFeatureStateEx __MINGW_NAME_AW(MsiQueryFeatureStateEx) | 
 
 
 
 
 | 448 | #endif | 
 
 
 
 
 | 449 |  | 
 
 
 
 
 | 450 | INSTALLSTATE WINAPI MsiUseFeatureA(LPCSTR szProduct,LPCSTR szFeature); | 
 
 
 
 
 | 451 | INSTALLSTATE WINAPI MsiUseFeatureW(LPCWSTR szProduct,LPCWSTR szFeature); | 
 
 
 
 
 | 452 | #define MsiUseFeature __MINGW_NAME_AW(MsiUseFeature) | 
 
 
 
 
 | 453 |  | 
 
 
 
 
 | 454 | INSTALLSTATE WINAPI MsiUseFeatureExA(LPCSTR szProduct,LPCSTR szFeature,DWORD dwInstallMode,DWORD dwReserved); | 
 
 
 
 
 | 455 | INSTALLSTATE WINAPI MsiUseFeatureExW(LPCWSTR szProduct,LPCWSTR szFeature,DWORD dwInstallMode,DWORD dwReserved); | 
 
 
 
 
 | 456 | #define MsiUseFeatureEx __MINGW_NAME_AW(MsiUseFeatureEx) | 
 
 
 
 
 | 457 |  | 
 
 
 
 
 | 458 | UINT WINAPI MsiGetFeatureUsageA(LPCSTR szProduct,LPCSTR szFeature,DWORD *pdwUseCount,WORD *pwDateUsed); | 
 
 
 
 
 | 459 | UINT WINAPI MsiGetFeatureUsageW(LPCWSTR szProduct,LPCWSTR szFeature,DWORD *pdwUseCount,WORD *pwDateUsed); | 
 
 
 
 
 | 460 | #define MsiGetFeatureUsage __MINGW_NAME_AW(MsiGetFeatureUsage) | 
 
 
 
 
 | 461 |  | 
 
 
 
 
 | 462 | UINT WINAPI MsiConfigureFeatureA(LPCSTR szProduct,LPCSTR szFeature,INSTALLSTATE eInstallState); | 
 
 
 
 
 | 463 | UINT WINAPI MsiConfigureFeatureW(LPCWSTR szProduct,LPCWSTR szFeature,INSTALLSTATE eInstallState); | 
 
 
 
 
 | 464 | #define MsiConfigureFeature __MINGW_NAME_AW(MsiConfigureFeature) | 
 
 
 
 
 | 465 |  | 
 
 
 
 
 | 466 | UINT WINAPI MsiReinstallFeatureA(LPCSTR szProduct,LPCSTR szFeature,DWORD dwReinstallMode); | 
 
 
 
 
 | 467 | UINT WINAPI MsiReinstallFeatureW(LPCWSTR szProduct,LPCWSTR szFeature,DWORD dwReinstallMode); | 
 
 
 
 
 | 468 | #define MsiReinstallFeature __MINGW_NAME_AW(MsiReinstallFeature) | 
 
 
 
 
 | 469 |  | 
 
 
 
 
 | 470 | UINT WINAPI MsiProvideComponentA(LPCSTR szProduct,LPCSTR szFeature,LPCSTR szComponent,DWORD dwInstallMode,LPSTR lpPathBuf,DWORD *pcchPathBuf); | 
 
 
 
 
 | 471 | UINT WINAPI MsiProvideComponentW(LPCWSTR szProduct,LPCWSTR szFeature,LPCWSTR szComponent,DWORD dwInstallMode,LPWSTR lpPathBuf,DWORD *pcchPathBuf); | 
 
 
 
 
 | 472 | #define MsiProvideComponent __MINGW_NAME_AW(MsiProvideComponent) | 
 
 
 
 
 | 473 |  | 
 
 
 
 
 | 474 | UINT WINAPI MsiProvideQualifiedComponentA(LPCSTR szCategory,LPCSTR szQualifier,DWORD dwInstallMode,LPSTR lpPathBuf,DWORD *pcchPathBuf); | 
 
 
 
 
 | 475 | UINT WINAPI MsiProvideQualifiedComponentW(LPCWSTR szCategory,LPCWSTR szQualifier,DWORD dwInstallMode,LPWSTR lpPathBuf,DWORD *pcchPathBuf); | 
 
 
 
 
 | 476 | #define MsiProvideQualifiedComponent __MINGW_NAME_AW(MsiProvideQualifiedComponent) | 
 
 
 
 
 | 477 |  | 
 
 
 
 
 | 478 | UINT WINAPI MsiProvideQualifiedComponentExA(LPCSTR szCategory,LPCSTR szQualifier,DWORD dwInstallMode,LPCSTR szProduct,DWORD dwUnused1,DWORD dwUnused2,LPSTR lpPathBuf,DWORD *pcchPathBuf); | 
 
 
 
 
 | 479 | UINT WINAPI MsiProvideQualifiedComponentExW(LPCWSTR szCategory,LPCWSTR szQualifier,DWORD dwInstallMode,LPCWSTR szProduct,DWORD dwUnused1,DWORD dwUnused2,LPWSTR lpPathBuf,DWORD *pcchPathBuf); | 
 
 
 
 
 | 480 | #define MsiProvideQualifiedComponentEx __MINGW_NAME_AW(MsiProvideQualifiedComponentEx) | 
 
 
 
 
 | 481 |  | 
 
 
 
 
 | 482 | INSTALLSTATE WINAPI MsiGetComponentPathA(LPCSTR szProduct,LPCSTR szComponent,LPSTR lpPathBuf,DWORD *pcchBuf); | 
 
 
 
 
 | 483 | INSTALLSTATE WINAPI MsiGetComponentPathW(LPCWSTR szProduct,LPCWSTR szComponent,LPWSTR lpPathBuf,DWORD *pcchBuf); | 
 
 
 
 
 | 484 | #define MsiGetComponentPath __MINGW_NAME_AW(MsiGetComponentPath) | 
 
 
 
 
 | 485 |  | 
 
 
 
 
 | 486 | #if (_WIN32_MSI >= 150) | 
 
 
 
 
 | 487 | #define MSIASSEMBLYINFO_NETASSEMBLY 0 | 
 
 
 
 
 | 488 | #define MSIASSEMBLYINFO_WIN32ASSEMBLY 1 | 
 
 
 
 
 | 489 |  | 
 
 
 
 
 | 490 | UINT WINAPI MsiProvideAssemblyA(LPCSTR szAssemblyName,LPCSTR szAppContext,DWORD dwInstallMode,DWORD dwAssemblyInfo,LPSTR lpPathBuf,DWORD *pcchPathBuf); | 
 
 
 
 
 | 491 | UINT WINAPI MsiProvideAssemblyW(LPCWSTR szAssemblyName,LPCWSTR szAppContext,DWORD dwInstallMode,DWORD dwAssemblyInfo,LPWSTR lpPathBuf,DWORD *pcchPathBuf); | 
 
 
 
 
 | 492 | #define MsiProvideAssembly __MINGW_NAME_AW(MsiProvideAssembly) | 
 
 
 
 
 | 493 | #endif | 
 
 
 
 
 | 494 |  | 
 
 
 
 
 | 495 | #if (_WIN32_MSI >= 300) | 
 
 
 
 
 | 496 | UINT WINAPI MsiQueryComponentStateA(LPCSTR szProductCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,LPCSTR szComponentCode,INSTALLSTATE *pdwState); | 
 
 
 
 
 | 497 | UINT WINAPI MsiQueryComponentStateW(LPCWSTR szProductCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,LPCWSTR szComponentCode,INSTALLSTATE *pdwState); | 
 
 
 
 
 | 498 | #define MsiQueryComponentState __MINGW_NAME_AW(MsiQueryComponentState) | 
 
 
 
 
 | 499 | #endif | 
 
 
 
 
 | 500 |  | 
 
 
 
 
 | 501 | UINT WINAPI MsiEnumProductsA(DWORD iProductIndex,LPSTR lpProductBuf); | 
 
 
 
 
 | 502 | UINT WINAPI MsiEnumProductsW(DWORD iProductIndex,LPWSTR lpProductBuf); | 
 
 
 
 
 | 503 | #define MsiEnumProducts __MINGW_NAME_AW(MsiEnumProducts) | 
 
 
 
 
 | 504 |  | 
 
 
 
 
 | 505 | #if (_WIN32_MSI >= 300) | 
 
 
 
 
 | 506 | UINT WINAPI MsiEnumProductsExA(LPCSTR szProductCode,LPCSTR szUserSid,DWORD dwContext,DWORD dwIndex,CHAR szInstalledProductCode[39],MSIINSTALLCONTEXT *pdwInstalledContext,LPSTR szSid,LPDWORD pcchSid); | 
 
 
 
 
 | 507 | UINT WINAPI MsiEnumProductsExW(LPCWSTR szProductCode,LPCWSTR szUserSid,DWORD dwContext,DWORD dwIndex,WCHAR szInstalledProductCode[39],MSIINSTALLCONTEXT *pdwInstalledContext,LPWSTR szSid,LPDWORD pcchSid); | 
 
 
 
 
 | 508 |  | 
 
 
 
 
 | 509 | #define MsiEnumProductsEx __MINGW_NAME_AW(MsiEnumProductsEx) | 
 
 
 
 
 | 510 | #endif | 
 
 
 
 
 | 511 |  | 
 
 
 
 
 | 512 | #if (_WIN32_MSI >= 110) | 
 
 
 
 
 | 513 | UINT WINAPI MsiEnumRelatedProductsA(LPCSTR lpUpgradeCode,DWORD dwReserved,DWORD iProductIndex,LPSTR lpProductBuf); | 
 
 
 
 
 | 514 | UINT WINAPI MsiEnumRelatedProductsW(LPCWSTR lpUpgradeCode,DWORD dwReserved,DWORD iProductIndex,LPWSTR lpProductBuf); | 
 
 
 
 
 | 515 | #define MsiEnumRelatedProducts __MINGW_NAME_AW(MsiEnumRelatedProducts) | 
 
 
 
 
 | 516 | #endif | 
 
 
 
 
 | 517 |  | 
 
 
 
 
 | 518 | UINT WINAPI MsiEnumFeaturesA(LPCSTR szProduct,DWORD iFeatureIndex,LPSTR lpFeatureBuf,LPSTR lpParentBuf); | 
 
 
 
 
 | 519 | UINT WINAPI MsiEnumFeaturesW(LPCWSTR szProduct,DWORD iFeatureIndex,LPWSTR lpFeatureBuf,LPWSTR lpParentBuf); | 
 
 
 
 
 | 520 | #define MsiEnumFeatures __MINGW_NAME_AW(MsiEnumFeatures) | 
 
 
 
 
 | 521 |  | 
 
 
 
 
 | 522 | UINT WINAPI MsiEnumComponentsA(DWORD iComponentIndex,LPSTR lpComponentBuf); | 
 
 
 
 
 | 523 | UINT WINAPI MsiEnumComponentsW(DWORD iComponentIndex,LPWSTR lpComponentBuf); | 
 
 
 
 
 | 524 | #define MsiEnumComponents __MINGW_NAME_AW(MsiEnumComponents) | 
 
 
 
 
 | 525 |  | 
 
 
 
 
 | 526 | UINT WINAPI MsiEnumClientsA(LPCSTR szComponent,DWORD iProductIndex,LPSTR lpProductBuf); | 
 
 
 
 
 | 527 | UINT WINAPI MsiEnumClientsW(LPCWSTR szComponent,DWORD iProductIndex,LPWSTR lpProductBuf); | 
 
 
 
 
 | 528 | #define MsiEnumClients __MINGW_NAME_AW(MsiEnumClients) | 
 
 
 
 
 | 529 |  | 
 
 
 
 
 | 530 | UINT WINAPI MsiEnumComponentQualifiersA(LPCSTR szComponent,DWORD iIndex,LPSTR lpQualifierBuf,DWORD *pcchQualifierBuf,LPSTR lpApplicationDataBuf,DWORD *pcchApplicationDataBuf); | 
 
 
 
 
 | 531 | UINT WINAPI MsiEnumComponentQualifiersW(LPCWSTR szComponent,DWORD iIndex,LPWSTR lpQualifierBuf,DWORD *pcchQualifierBuf,LPWSTR lpApplicationDataBuf,DWORD *pcchApplicationDataBuf); | 
 
 
 
 
 | 532 | #define MsiEnumComponentQualifiers __MINGW_NAME_AW(MsiEnumComponentQualifiers) | 
 
 
 
 
 | 533 |  | 
 
 
 
 
 | 534 | UINT WINAPI MsiOpenProductA(LPCSTR szProduct,MSIHANDLE *hProduct); | 
 
 
 
 
 | 535 | UINT WINAPI MsiOpenProductW(LPCWSTR szProduct,MSIHANDLE *hProduct); | 
 
 
 
 
 | 536 | #define MsiOpenProduct __MINGW_NAME_AW(MsiOpenProduct) | 
 
 
 
 
 | 537 |  | 
 
 
 
 
 | 538 | UINT WINAPI MsiOpenPackageA(LPCSTR szPackagePath,MSIHANDLE *hProduct); | 
 
 
 
 
 | 539 | UINT WINAPI MsiOpenPackageW(LPCWSTR szPackagePath,MSIHANDLE *hProduct); | 
 
 
 
 
 | 540 | #define MsiOpenPackage __MINGW_NAME_AW(MsiOpenPackage) | 
 
 
 
 
 | 541 |  | 
 
 
 
 
 | 542 | #if (_WIN32_MSI >= 150) | 
 
 
 
 
 | 543 | UINT WINAPI MsiOpenPackageExA(LPCSTR szPackagePath,DWORD dwOptions,MSIHANDLE *hProduct); | 
 
 
 
 
 | 544 | UINT WINAPI MsiOpenPackageExW(LPCWSTR szPackagePath,DWORD dwOptions,MSIHANDLE *hProduct); | 
 
 
 
 
 | 545 | #define MsiOpenPackageEx __MINGW_NAME_AW(MsiOpenPackageEx) | 
 
 
 
 
 | 546 |  | 
 
 
 
 
 | 547 | #if _WIN32_MSI >= 400 | 
 
 
 
 
 | 548 | UINT WINAPI MsiGetPatchFileListA(LPCSTR szProductCode, LPCSTR szPatchPackages, LPDWORD pcFiles, MSIHANDLE **pphFileRecords); | 
 
 
 
 
 | 549 | UINT WINAPI MsiGetPatchFileListW(LPCWSTR szProductCode, LPCWSTR szPatchPackages, LPDWORD pcFiles, MSIHANDLE **pphFileRecords); | 
 
 
 
 
 | 550 | #define MsiGetPatchFileList __MINGW_NAME_AW(MsiGetPatchFileList) | 
 
 
 
 
 | 551 | #endif | 
 
 
 
 
 | 552 | #endif | 
 
 
 
 
 | 553 |  | 
 
 
 
 
 | 554 | UINT WINAPI MsiGetProductPropertyA(MSIHANDLE hProduct,LPCSTR szProperty,LPSTR lpValueBuf,DWORD *pcchValueBuf); | 
 
 
 
 
 | 555 | UINT WINAPI MsiGetProductPropertyW(MSIHANDLE hProduct,LPCWSTR szProperty,LPWSTR lpValueBuf,DWORD *pcchValueBuf); | 
 
 
 
 
 | 556 | #define MsiGetProductProperty __MINGW_NAME_AW(MsiGetProductProperty) | 
 
 
 
 
 | 557 |  | 
 
 
 
 
 | 558 | UINT WINAPI MsiVerifyPackageA(LPCSTR szPackagePath); | 
 
 
 
 
 | 559 | UINT WINAPI MsiVerifyPackageW(LPCWSTR szPackagePath); | 
 
 
 
 
 | 560 | #define MsiVerifyPackage __MINGW_NAME_AW(MsiVerifyPackage) | 
 
 
 
 
 | 561 |  | 
 
 
 
 
 | 562 | UINT WINAPI MsiGetFeatureInfoA(MSIHANDLE hProduct,LPCSTR szFeature,DWORD *lpAttributes,LPSTR lpTitleBuf,DWORD *pcchTitleBuf,LPSTR lpHelpBuf,DWORD *pcchHelpBuf); | 
 
 
 
 
 | 563 | UINT WINAPI MsiGetFeatureInfoW(MSIHANDLE hProduct,LPCWSTR szFeature,DWORD *lpAttributes,LPWSTR lpTitleBuf,DWORD *pcchTitleBuf,LPWSTR lpHelpBuf,DWORD *pcchHelpBuf); | 
 
 
 
 
 | 564 | #define MsiGetFeatureInfo __MINGW_NAME_AW(MsiGetFeatureInfo) | 
 
 
 
 
 | 565 |  | 
 
 
 
 
 | 566 | UINT WINAPI MsiInstallMissingComponentA(LPCSTR szProduct,LPCSTR szComponent,INSTALLSTATE eInstallState); | 
 
 
 
 
 | 567 | UINT WINAPI MsiInstallMissingComponentW(LPCWSTR szProduct,LPCWSTR szComponent,INSTALLSTATE eInstallState); | 
 
 
 
 
 | 568 | #define MsiInstallMissingComponent __MINGW_NAME_AW(MsiInstallMissingComponent) | 
 
 
 
 
 | 569 |  | 
 
 
 
 
 | 570 | UINT WINAPI MsiInstallMissingFileA(LPCSTR szProduct,LPCSTR szFile); | 
 
 
 
 
 | 571 | UINT WINAPI MsiInstallMissingFileW(LPCWSTR szProduct,LPCWSTR szFile); | 
 
 
 
 
 | 572 | #define MsiInstallMissingFile __MINGW_NAME_AW(MsiInstallMissingFile) | 
 
 
 
 
 | 573 |  | 
 
 
 
 
 | 574 | INSTALLSTATE WINAPI MsiLocateComponentA(LPCSTR szComponent,LPSTR lpPathBuf,DWORD *pcchBuf); | 
 
 
 
 
 | 575 | INSTALLSTATE WINAPI MsiLocateComponentW(LPCWSTR szComponent,LPWSTR lpPathBuf,DWORD *pcchBuf); | 
 
 
 
 
 | 576 | #define MsiLocateComponent __MINGW_NAME_AW(MsiLocateComponent) | 
 
 
 
 
 | 577 |  | 
 
 
 
 
 | 578 | #if (_WIN32_MSI >= 110) | 
 
 
 
 
 | 579 | UINT WINAPI MsiSourceListClearAllA(LPCSTR szProduct,LPCSTR szUserName,DWORD dwReserved); | 
 
 
 
 
 | 580 | UINT WINAPI MsiSourceListClearAllW(LPCWSTR szProduct,LPCWSTR szUserName,DWORD dwReserved); | 
 
 
 
 
 | 581 | #define MsiSourceListClearAll __MINGW_NAME_AW(MsiSourceListClearAll) | 
 
 
 
 
 | 582 |  | 
 
 
 
 
 | 583 | UINT WINAPI MsiSourceListAddSourceA(LPCSTR szProduct,LPCSTR szUserName,DWORD dwReserved,LPCSTR szSource); | 
 
 
 
 
 | 584 | UINT WINAPI MsiSourceListAddSourceW(LPCWSTR szProduct,LPCWSTR szUserName,DWORD dwReserved,LPCWSTR szSource); | 
 
 
 
 
 | 585 | #define MsiSourceListAddSource __MINGW_NAME_AW(MsiSourceListAddSource) | 
 
 
 
 
 | 586 |  | 
 
 
 
 
 | 587 | UINT WINAPI MsiSourceListForceResolutionA(LPCSTR szProduct,LPCSTR szUserName,DWORD dwReserved); | 
 
 
 
 
 | 588 | UINT WINAPI MsiSourceListForceResolutionW(LPCWSTR szProduct,LPCWSTR szUserName,DWORD dwReserved); | 
 
 
 
 
 | 589 | #define MsiSourceListForceResolution __MINGW_NAME_AW(MsiSourceListForceResolution) | 
 
 
 
 
 | 590 | #endif | 
 
 
 
 
 | 591 |  | 
 
 
 
 
 | 592 | #if (_WIN32_MSI >= 300) | 
 
 
 
 
 | 593 | UINT WINAPI MsiSourceListAddSourceExA(LPCSTR szProductCodeOrPatchCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,LPCSTR szSource,DWORD dwIndex); | 
 
 
 
 
 | 594 | UINT WINAPI MsiSourceListAddSourceExW(LPCWSTR szProductCodeOrPatchCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,LPCWSTR szSource,DWORD dwIndex); | 
 
 
 
 
 | 595 | #define MsiSourceListAddSourceEx __MINGW_NAME_AW(MsiSourceListAddSourceEx) | 
 
 
 
 
 | 596 |  | 
 
 
 
 
 | 597 | UINT WINAPI MsiSourceListAddMediaDiskA(LPCSTR szProductCodeOrPatchCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,DWORD dwDiskId,LPCSTR szVolumeLabel,LPCSTR szDiskPrompt); | 
 
 
 
 
 | 598 | UINT WINAPI MsiSourceListAddMediaDiskW(LPCWSTR szProductCodeOrPatchCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,DWORD dwDiskId,LPCWSTR szVolumeLabel,LPCWSTR szDiskPrompt); | 
 
 
 
 
 | 599 | #define MsiSourceListAddMediaDisk __MINGW_NAME_AW(MsiSourceListAddMediaDisk) | 
 
 
 
 
 | 600 |  | 
 
 
 
 
 | 601 | UINT WINAPI MsiSourceListClearSourceA(LPCSTR szProductCodeOrPatchCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,LPCSTR szSource); | 
 
 
 
 
 | 602 | UINT WINAPI MsiSourceListClearSourceW(LPCWSTR szProductCodeOrPatchCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,LPCWSTR szSource); | 
 
 
 
 
 | 603 | #define MsiSourceListClearSource __MINGW_NAME_AW(MsiSourceListClearSource) | 
 
 
 
 
 | 604 |  | 
 
 
 
 
 | 605 | UINT WINAPI MsiSourceListClearMediaDiskA(LPCSTR szProductCodeOrPatchCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,DWORD dwDiskId); | 
 
 
 
 
 | 606 | UINT WINAPI MsiSourceListClearMediaDiskW(LPCWSTR szProductCodeOrPatchCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,DWORD dwDiskId); | 
 
 
 
 
 | 607 | #define MsiSourceListClearMediaDisk __MINGW_NAME_AW(MsiSourceListClearMediaDisk) | 
 
 
 
 
 | 608 |  | 
 
 
 
 
 | 609 | UINT WINAPI MsiSourceListClearAllExA(LPCSTR szProductCodeOrPatchCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions); | 
 
 
 
 
 | 610 | UINT WINAPI MsiSourceListClearAllExW(LPCWSTR szProductCodeOrPatchCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions); | 
 
 
 
 
 | 611 | #define MsiSourceListClearAllEx __MINGW_NAME_AW(MsiSourceListClearAllEx) | 
 
 
 
 
 | 612 |  | 
 
 
 
 
 | 613 | UINT WINAPI MsiSourceListForceResolutionExA(LPCSTR szProductCodeOrPatchCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions); | 
 
 
 
 
 | 614 | UINT WINAPI MsiSourceListForceResolutionExW(LPCWSTR szProductCodeOrPatchCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions); | 
 
 
 
 
 | 615 | #define MsiSourceListForceResolutionEx __MINGW_NAME_AW(MsiSourceListForceResolutionEx) | 
 
 
 
 
 | 616 |  | 
 
 
 
 
 | 617 | UINT WINAPI MsiSourceListSetInfoA(LPCSTR szProductCodeOrPatchCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,LPCSTR szProperty,LPCSTR szValue); | 
 
 
 
 
 | 618 | UINT WINAPI MsiSourceListSetInfoW(LPCWSTR szProductCodeOrPatchCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,LPCWSTR szProperty,LPCWSTR szValue); | 
 
 
 
 
 | 619 | #define MsiSourceListSetInfo __MINGW_NAME_AW(MsiSourceListSetInfo) | 
 
 
 
 
 | 620 |  | 
 
 
 
 
 | 621 | UINT WINAPI MsiSourceListGetInfoA(LPCSTR szProductCodeOrPatchCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,LPCSTR szProperty,LPSTR szValue,LPDWORD pcchValue); | 
 
 
 
 
 | 622 | UINT WINAPI MsiSourceListGetInfoW(LPCWSTR szProductCodeOrPatchCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,LPCWSTR szProperty,LPWSTR szValue,LPDWORD pcchValue); | 
 
 
 
 
 | 623 | #define MsiSourceListGetInfo __MINGW_NAME_AW(MsiSourceListGetInfo) | 
 
 
 
 
 | 624 |  | 
 
 
 
 
 | 625 | UINT WINAPI MsiSourceListEnumSourcesA(LPCSTR szProductCodeOrPatchCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,DWORD dwIndex,LPSTR szSource,LPDWORD pcchSource); | 
 
 
 
 
 | 626 | UINT WINAPI MsiSourceListEnumSourcesW(LPCWSTR szProductCodeOrPatchCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,DWORD dwIndex,LPWSTR szSource,LPDWORD pcchSource); | 
 
 
 
 
 | 627 | #define MsiSourceListEnumSources __MINGW_NAME_AW(MsiSourceListEnumSources) | 
 
 
 
 
 | 628 |  | 
 
 
 
 
 | 629 | UINT WINAPI MsiSourceListEnumMediaDisksA(LPCSTR szProductCodeOrPatchCode,LPCSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,DWORD dwIndex,LPDWORD pdwDiskId,LPSTR szVolumeLabel,LPDWORD pcchVolumeLabel,LPSTR szDiskPrompt,LPDWORD pcchDiskPrompt); | 
 
 
 
 
 | 630 | UINT WINAPI MsiSourceListEnumMediaDisksW(LPCWSTR szProductCodeOrPatchCode,LPCWSTR szUserSid,MSIINSTALLCONTEXT dwContext,DWORD dwOptions,DWORD dwIndex,LPDWORD pdwDiskId,LPWSTR szVolumeLabel,LPDWORD pcchVolumeLabel,LPWSTR szDiskPrompt,LPDWORD pcchDiskPrompt); | 
 
 
 
 
 | 631 | #define MsiSourceListEnumMediaDisks __MINGW_NAME_AW(MsiSourceListEnumMediaDisks) | 
 
 
 
 
 | 632 | #endif | 
 
 
 
 
 | 633 |  | 
 
 
 
 
 | 634 | UINT WINAPI MsiGetFileVersionA(LPCSTR szFilePath,LPSTR lpVersionBuf,DWORD *pcchVersionBuf,LPSTR lpLangBuf,DWORD *pcchLangBuf); | 
 
 
 
 
 | 635 | UINT WINAPI MsiGetFileVersionW(LPCWSTR szFilePath,LPWSTR lpVersionBuf,DWORD *pcchVersionBuf,LPWSTR lpLangBuf,DWORD *pcchLangBuf); | 
 
 
 
 
 | 636 | #define MsiGetFileVersion __MINGW_NAME_AW(MsiGetFileVersion) | 
 
 
 
 
 | 637 |  | 
 
 
 
 
 | 638 | #if (_WIN32_MSI >= 150) | 
 
 
 
 
 | 639 | UINT WINAPI MsiGetFileHashA(LPCSTR szFilePath,DWORD dwOptions,PMSIFILEHASHINFO pHash); | 
 
 
 
 
 | 640 | UINT WINAPI MsiGetFileHashW(LPCWSTR szFilePath,DWORD dwOptions,PMSIFILEHASHINFO pHash); | 
 
 
 
 
 | 641 | #define MsiGetFileHash __MINGW_NAME_AW(MsiGetFileHash) | 
 
 
 
 
 | 642 |  | 
 
 
 
 
 | 643 | #ifndef _MSI_NO_CRYPTO | 
 
 
 
 
 | 644 | HRESULT WINAPI MsiGetFileSignatureInformationA(LPCSTR szSignedObjectPath,DWORD dwFlags,PCCERT_CONTEXT *ppcCertContext,BYTE *pbHashData,DWORD *pcbHashData); | 
 
 
 
 
 | 645 | HRESULT WINAPI MsiGetFileSignatureInformationW(LPCWSTR szSignedObjectPath,DWORD dwFlags,PCCERT_CONTEXT *ppcCertContext,BYTE *pbHashData,DWORD *pcbHashData); | 
 
 
 
 
 | 646 | #define MsiGetFileSignatureInformation __MINGW_NAME_AW(MsiGetFileSignatureInformation) | 
 
 
 
 
 | 647 |  | 
 
 
 
 
 | 648 | #define MSI_INVALID_HASH_IS_FATAL 0x1 | 
 
 
 
 
 | 649 | #endif | 
 
 
 
 
 | 650 | #endif | 
 
 
 
 
 | 651 |  | 
 
 
 
 
 | 652 | #if (_WIN32_MSI >= 110) | 
 
 
 
 
 | 653 | UINT WINAPI MsiGetShortcutTargetA(LPCSTR szShortcutPath,LPSTR szProductCode,LPSTR szFeatureId,LPSTR szComponentCode); | 
 
 
 
 
 | 654 | UINT WINAPI MsiGetShortcutTargetW(LPCWSTR szShortcutPath,LPWSTR szProductCode,LPWSTR szFeatureId,LPWSTR szComponentCode); | 
 
 
 
 
 | 655 | #define MsiGetShortcutTarget __MINGW_NAME_AW(MsiGetShortcutTarget) | 
 
 
 
 
 | 656 |  | 
 
 
 
 
 | 657 | UINT WINAPI MsiIsProductElevatedA(LPCSTR szProduct,WINBOOL *pfElevated); | 
 
 
 
 
 | 658 | UINT WINAPI MsiIsProductElevatedW(LPCWSTR szProduct,WINBOOL *pfElevated); | 
 
 
 
 
 | 659 | #define MsiIsProductElevated __MINGW_NAME_AW(MsiIsProductElevated) | 
 
 
 
 
 | 660 | #endif | 
 
 
 
 
 | 661 |  | 
 
 
 
 
 | 662 | #if (_WIN32_MSI >= 310) | 
 
 
 
 
 | 663 | UINT WINAPI MsiNotifySidChangeA(LPCSTR pOldSid,LPCSTR pNewSid); | 
 
 
 
 
 | 664 | UINT WINAPI MsiNotifySidChangeW(LPCWSTR pOldSid,LPCWSTR pNewSid); | 
 
 
 
 
 | 665 | #define MsiNotifySidChange __MINGW_NAME_AW(MsiNotifySidChange) | 
 
 
 
 
 | 666 |  | 
 
 
 
 
 | 667 | #if _WIN32_MSI >= 450 | 
 
 
 
 
 | 668 | UINT WINAPI MsiBeginTransactionA(LPCSTR szName, DWORD dwTransactionAttributes, MSIHANDLE *phTransactionHandle, HANDLE *phChangeOfOwnerEvent); | 
 
 
 
 
 | 669 | UINT WINAPI MsiBeginTransactionW(LPCWSTR szName, DWORD dwTransactionAttributes, MSIHANDLE *phTransactionHandle, HANDLE *phChangeOfOwnerEvent); | 
 
 
 
 
 | 670 | #define MsiBeginTransaction __MINGW_NAME_AW(MsiBeginTransaction) | 
 
 
 
 
 | 671 |  | 
 
 
 
 
 | 672 | UINT WINAPI MsiEndTransaction(DWORD dwTransactionState); | 
 
 
 
 
 | 673 | UINT WINAPI MsiJoinTransaction(MSIHANDLE hTransactionHandle, DWORD dwTransactionAttributes, HANDLE *phChangeOfOwnerEvent); | 
 
 
 
 
 | 674 | #endif | 
 
 
 
 
 | 675 | #endif | 
 
 
 
 
 | 676 |  | 
 
 
 
 
 | 677 | #ifdef __cplusplus | 
 
 
 
 
 | 678 | } | 
 
 
 
 
 | 679 | #endif | 
 
 
 
 
 | 680 |  | 
 
 
 
 
 | 681 | #ifndef ERROR_INSTALL_FAILURE | 
 
 
 
 
 | 682 | #define ERROR_INSTALL_USEREXIT __MSABI_LONG(1602) | 
 
 
 
 
 | 683 | #define ERROR_INSTALL_FAILURE __MSABI_LONG(1603) | 
 
 
 
 
 | 684 | #define ERROR_INSTALL_SUSPEND __MSABI_LONG(1604) | 
 
 
 
 
 | 685 |  | 
 
 
 
 
 | 686 | #define ERROR_UNKNOWN_PRODUCT __MSABI_LONG(1605) | 
 
 
 
 
 | 687 |  | 
 
 
 
 
 | 688 | #define ERROR_UNKNOWN_FEATURE __MSABI_LONG(1606) | 
 
 
 
 
 | 689 | #define ERROR_UNKNOWN_COMPONENT __MSABI_LONG(1607) | 
 
 
 
 
 | 690 | #define ERROR_UNKNOWN_PROPERTY __MSABI_LONG(1608) | 
 
 
 
 
 | 691 | #define ERROR_INVALID_HANDLE_STATE __MSABI_LONG(1609) | 
 
 
 
 
 | 692 |  | 
 
 
 
 
 | 693 | #define ERROR_BAD_CONFIGURATION __MSABI_LONG(1610) | 
 
 
 
 
 | 694 |  | 
 
 
 
 
 | 695 | #define ERROR_INDEX_ABSENT __MSABI_LONG(1611) | 
 
 
 
 
 | 696 |  | 
 
 
 
 
 | 697 | #define ERROR_INSTALL_SOURCE_ABSENT __MSABI_LONG(1612) | 
 
 
 
 
 | 698 |  | 
 
 
 
 
 | 699 | #define ERROR_PRODUCT_UNINSTALLED __MSABI_LONG(1614) | 
 
 
 
 
 | 700 | #define ERROR_BAD_QUERY_SYNTAX __MSABI_LONG(1615) | 
 
 
 
 
 | 701 | #define ERROR_INVALID_FIELD __MSABI_LONG(1616) | 
 
 
 
 
 | 702 | #endif | 
 
 
 
 
 | 703 |  | 
 
 
 
 
 | 704 | #ifndef ERROR_INSTALL_SERVICE_FAILURE | 
 
 
 
 
 | 705 | #define ERROR_INSTALL_SERVICE_FAILURE __MSABI_LONG(1601) | 
 
 
 
 
 | 706 | #define ERROR_INSTALL_PACKAGE_VERSION __MSABI_LONG(1613) | 
 
 
 
 
 | 707 | #define ERROR_INSTALL_ALREADY_RUNNING __MSABI_LONG(1618) | 
 
 
 
 
 | 708 | #define ERROR_INSTALL_PACKAGE_OPEN_FAILED __MSABI_LONG(1619) | 
 
 
 
 
 | 709 | #define ERROR_INSTALL_PACKAGE_INVALID __MSABI_LONG(1620) | 
 
 
 
 
 | 710 | #define ERROR_INSTALL_UI_FAILURE __MSABI_LONG(1621) | 
 
 
 
 
 | 711 | #define ERROR_INSTALL_LOG_FAILURE __MSABI_LONG(1622) | 
 
 
 
 
 | 712 | #define ERROR_INSTALL_LANGUAGE_UNSUPPORTED __MSABI_LONG(1623) | 
 
 
 
 
 | 713 | #define ERROR_INSTALL_PACKAGE_REJECTED __MSABI_LONG(1625) | 
 
 
 
 
 | 714 |  | 
 
 
 
 
 | 715 | #define ERROR_FUNCTION_NOT_CALLED __MSABI_LONG(1626) | 
 
 
 
 
 | 716 | #define ERROR_FUNCTION_FAILED __MSABI_LONG(1627) | 
 
 
 
 
 | 717 | #define ERROR_INVALID_TABLE __MSABI_LONG(1628) | 
 
 
 
 
 | 718 | #define ERROR_DATATYPE_MISMATCH __MSABI_LONG(1629) | 
 
 
 
 
 | 719 | #define ERROR_UNSUPPORTED_TYPE __MSABI_LONG(1630) | 
 
 
 
 
 | 720 |  | 
 
 
 
 
 | 721 | #define ERROR_CREATE_FAILED __MSABI_LONG(1631) | 
 
 
 
 
 | 722 | #endif | 
 
 
 
 
 | 723 |  | 
 
 
 
 
 | 724 | #ifndef ERROR_INSTALL_TEMP_UNWRITABLE | 
 
 
 
 
 | 725 | #define ERROR_INSTALL_TEMP_UNWRITABLE __MSABI_LONG(1632) | 
 
 
 
 
 | 726 | #endif | 
 
 
 
 
 | 727 |  | 
 
 
 
 
 | 728 | #ifndef ERROR_INSTALL_PLATFORM_UNSUPPORTED | 
 
 
 
 
 | 729 | #define ERROR_INSTALL_PLATFORM_UNSUPPORTED __MSABI_LONG(1633) | 
 
 
 
 
 | 730 | #endif | 
 
 
 
 
 | 731 |  | 
 
 
 
 
 | 732 | #ifndef ERROR_INSTALL_NOTUSED | 
 
 
 
 
 | 733 | #define ERROR_INSTALL_NOTUSED __MSABI_LONG(1634) | 
 
 
 
 
 | 734 | #endif | 
 
 
 
 
 | 735 |  | 
 
 
 
 
 | 736 | #ifndef ERROR_INSTALL_TRANSFORM_FAILURE | 
 
 
 
 
 | 737 | #define ERROR_INSTALL_TRANSFORM_FAILURE __MSABI_LONG(1624) | 
 
 
 
 
 | 738 | #endif | 
 
 
 
 
 | 739 |  | 
 
 
 
 
 | 740 | #ifndef ERROR_PATCH_PACKAGE_OPEN_FAILED | 
 
 
 
 
 | 741 | #define ERROR_PATCH_PACKAGE_OPEN_FAILED __MSABI_LONG(1635) | 
 
 
 
 
 | 742 | #define ERROR_PATCH_PACKAGE_INVALID __MSABI_LONG(1636) | 
 
 
 
 
 | 743 | #define ERROR_PATCH_PACKAGE_UNSUPPORTED __MSABI_LONG(1637) | 
 
 
 
 
 | 744 | #endif | 
 
 
 
 
 | 745 |  | 
 
 
 
 
 | 746 | #ifndef ERROR_PRODUCT_VERSION | 
 
 
 
 
 | 747 | #define ERROR_PRODUCT_VERSION __MSABI_LONG(1638) | 
 
 
 
 
 | 748 | #endif | 
 
 
 
 
 | 749 |  | 
 
 
 
 
 | 750 | #ifndef ERROR_INVALID_COMMAND_LINE | 
 
 
 
 
 | 751 | #define ERROR_INVALID_COMMAND_LINE __MSABI_LONG(1639) | 
 
 
 
 
 | 752 | #endif | 
 
 
 
 
 | 753 |  | 
 
 
 
 
 | 754 | #ifndef ERROR_INSTALL_REMOTE_DISALLOWED | 
 
 
 
 
 | 755 | #define ERROR_INSTALL_REMOTE_DISALLOWED __MSABI_LONG(1640) | 
 
 
 
 
 | 756 | #endif | 
 
 
 
 
 | 757 |  | 
 
 
 
 
 | 758 | #ifndef ERROR_SUCCESS_REBOOT_INITIATED | 
 
 
 
 
 | 759 | #define ERROR_SUCCESS_REBOOT_INITIATED __MSABI_LONG(1641) | 
 
 
 
 
 | 760 | #endif | 
 
 
 
 
 | 761 |  | 
 
 
 
 
 | 762 | #ifndef ERROR_PATCH_TARGET_NOT_FOUND | 
 
 
 
 
 | 763 | #define ERROR_PATCH_TARGET_NOT_FOUND __MSABI_LONG(1642) | 
 
 
 
 
 | 764 | #endif | 
 
 
 
 
 | 765 |  | 
 
 
 
 
 | 766 | #ifndef ERROR_PATCH_PACKAGE_REJECTED | 
 
 
 
 
 | 767 | #define ERROR_PATCH_PACKAGE_REJECTED __MSABI_LONG(1643) | 
 
 
 
 
 | 768 | #endif | 
 
 
 
 
 | 769 |  | 
 
 
 
 
 | 770 | #ifndef ERROR_INSTALL_TRANSFORM_REJECTED | 
 
 
 
 
 | 771 | #define ERROR_INSTALL_TRANSFORM_REJECTED __MSABI_LONG(1644) | 
 
 
 
 
 | 772 | #endif | 
 
 
 
 
 | 773 |  | 
 
 
 
 
 | 774 | #ifndef ERROR_INSTALL_REMOTE_PROHIBITED | 
 
 
 
 
 | 775 | #define ERROR_INSTALL_REMOTE_PROHIBITED __MSABI_LONG(1645) | 
 
 
 
 
 | 776 | #endif | 
 
 
 
 
 | 777 |  | 
 
 
 
 
 | 778 | #ifndef ERROR_PATCH_REMOVAL_UNSUPPORTED | 
 
 
 
 
 | 779 | #define ERROR_PATCH_REMOVAL_UNSUPPORTED __MSABI_LONG(1646) | 
 
 
 
 
 | 780 | #endif | 
 
 
 
 
 | 781 |  | 
 
 
 
 
 | 782 | #ifndef ERROR_UNKNOWN_PATCH | 
 
 
 
 
 | 783 | #define ERROR_UNKNOWN_PATCH __MSABI_LONG(1647) | 
 
 
 
 
 | 784 | #endif | 
 
 
 
 
 | 785 |  | 
 
 
 
 
 | 786 | #ifndef ERROR_PATCH_NO_SEQUENCE | 
 
 
 
 
 | 787 | #define ERROR_PATCH_NO_SEQUENCE __MSABI_LONG(1648) | 
 
 
 
 
 | 788 | #endif | 
 
 
 
 
 | 789 |  | 
 
 
 
 
 | 790 | #ifndef ERROR_PATCH_REMOVAL_DISALLOWED | 
 
 
 
 
 | 791 | #define ERROR_PATCH_REMOVAL_DISALLOWED __MSABI_LONG(1649) | 
 
 
 
 
 | 792 | #endif | 
 
 
 
 
 | 793 |  | 
 
 
 
 
 | 794 | #ifndef ERROR_INVALID_PATCH_XML | 
 
 
 
 
 | 795 | #define ERROR_INVALID_PATCH_XML __MSABI_LONG(1650) | 
 
 
 
 
 | 796 | #endif | 
 
 
 
 
 | 797 |  | 
 
 
 
 
 | 798 | #ifndef ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT | 
 
 
 
 
 | 799 | #define ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT __MSABI_LONG(1651) | 
 
 
 
 
 | 800 | #endif | 
 
 
 
 
 | 801 |  | 
 
 
 
 
 | 802 | #ifndef ERROR_INSTALL_SERVICE_SAFEBOOT | 
 
 
 
 
 | 803 | #define ERROR_INSTALL_SERVICE_SAFEBOOT __MSABI_LONG(1652) | 
 
 
 
 
 | 804 | #endif | 
 
 
 
 
 | 805 |  | 
 
 
 
 
 | 806 | #ifndef ERROR_ROLLBACK_DISABLED | 
 
 
 
 
 | 807 | #define ERROR_ROLLBACK_DISABLED __MSABI_LONG(1653) | 
 
 
 
 
 | 808 | #endif | 
 
 
 
 
 | 809 |  | 
 
 
 
 
 | 810 | #endif |