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 811