/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the w64 mingw-runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */
#ifndef __MSIDEFS
#define __MSIDEFS

#ifndef NTDDI_WIN2K
#define NTDDI_WIN2K 0x05000000
#endif
#ifndef NTDDI_WINXP
#define NTDDI_WINXP 0x05010000
#endif
#ifndef NTDDI_WINXPSP2
#define NTDDI_WINXPSP2 0x05010200
#endif
#ifndef NTDDI_WS03SP1
#define NTDDI_WS03SP1 0x05020100
#endif

#ifndef _WIN32_MSI
#if (defined(NTDDI_VERSION) && NTDDI_VERSION >= NTDDI_WS03SP1)
#define _WIN32_MSI 310
#elif (defined(NTDDI_VERSION) && NTDDI_VERSION >= NTDDI_WINXPSP2)
#define _WIN32_MSI 300
#else
#define _WIN32_MSI 200
#endif
#endif

#define IPROPNAME_PRODUCTNAME TEXT("ProductName")
#define IPROPNAME_PRODUCTCODE TEXT("ProductCode")
#define IPROPNAME_PRODUCTVERSION TEXT("ProductVersion")
#define IPROPNAME_INSTALLLANGUAGE TEXT("ProductLanguage")
#define IPROPNAME_MANUFACTURER TEXT("Manufacturer")

#define IPROPNAME_UPGRADECODE TEXT("UpgradeCode")
#define IPROPNAME_PIDTEMPLATE TEXT("PIDTemplate")
#define IPROPNAME_DISKPROMPT TEXT("DiskPrompt")
#define IPROPNAME_LEFTUNIT TEXT("LeftUnit")
#define IPROPNAME_ADMIN_PROPERTIES TEXT("AdminProperties")
#define IPROPNAME_DEFAULTUIFONT TEXT("DefaultUIFont")
#define IPROPNAME_ALLOWEDPROPERTIES TEXT("SecureCustomProperties")
#define IPROPNAME_ENABLEUSERCONTROL TEXT("EnableUserControl")
#define IPROPNAME_HIDDEN_PROPERTIES TEXT("MsiHiddenProperties")

#define IPROPNAME_USERNAME TEXT("USERNAME")
#define IPROPNAME_COMPANYNAME TEXT("COMPANYNAME")
#define IPROPNAME_PIDKEY TEXT("PIDKEY")
#define IPROPNAME_PATCH TEXT("PATCH")
#define IPROPNAME_MSIPATCHREMOVE TEXT("MSIPATCHREMOVE")
#define IPROPNAME_TARGETDIR TEXT("TARGETDIR")
#define IPROPNAME_ACTION TEXT("ACTION")
#define IPROPNAME_LIMITUI TEXT("LIMITUI")
#define IPROPNAME_LOGACTION TEXT("LOGACTION")
#define IPROPNAME_ALLUSERS TEXT("ALLUSERS")
#define IPROPNAME_INSTALLLEVEL TEXT("INSTALLLEVEL")
#define IPROPNAME_REBOOT TEXT("REBOOT")
#if (_WIN32_MSI >= 110)
#define IPROPNAME_REBOOTPROMPT TEXT("REBOOTPROMPT")
#endif
#define IPROPNAME_EXECUTEMODE TEXT("EXECUTEMODE")
#define IPROPVALUE_EXECUTEMODE_NONE TEXT("NONE")
#define IPROPVALUE_EXECUTEMODE_SCRIPT TEXT("SCRIPT")
#define IPROPNAME_EXECUTEACTION TEXT("EXECUTEACTION")
#define IPROPNAME_SOURCELIST TEXT("SOURCELIST")
#define IPROPNAME_ROOTDRIVE TEXT("ROOTDRIVE")
#define IPROPNAME_TRANSFORMS TEXT("TRANSFORMS")
#define IPROPNAME_TRANSFORMSATSOURCE TEXT("TRANSFORMSATSOURCE")
#define IPROPNAME_TRANSFORMSSECURE TEXT("TRANSFORMSSECURE")
#define IPROPNAME_SEQUENCE TEXT("SEQUENCE")
#define IPROPNAME_SHORTFILENAMES TEXT("SHORTFILENAMES")
#define IPROPNAME_PRIMARYFOLDER TEXT("PRIMARYFOLDER")
#define IPROPNAME_AFTERREBOOT TEXT("AFTERREBOOT")
#define IPROPNAME_NOCOMPANYNAME TEXT("NOCOMPANYNAME")
#define IPROPNAME_NOUSERNAME TEXT("NOUSERNAME")
#define IPROPNAME_DISABLEROLLBACK TEXT("DISABLEROLLBACK")
#define IPROPNAME_AVAILABLEFREEREG TEXT("AVAILABLEFREEREG")
#define IPROPNAME_DISABLEADVTSHORTCUTS TEXT("DISABLEADVTSHORTCUTS")
#define IPROPNAME_PATCHNEWPACKAGECODE TEXT("PATCHNEWPACKAGECODE")

#define IPROPNAME_PATCHNEWSUMMARYSUBJECT TEXT("PATCHNEWSUMMARYSUBJECT")

#define IPROPNAME_PATCHNEWSUMMARYCOMMENTS TEXT("PATCHNEWSUMMARYCOMMENTS")

#define IPROPNAME_PRODUCTLANGUAGE TEXT("PRODUCTLANGUAGE")

#if (_WIN32_MSI >= 150)
#define IPROPNAME_CHECKCRCS TEXT("MSICHECKCRCS")
#define IPROPNAME_MSINODISABLEMEDIA TEXT("MSINODISABLEMEDIA")

#define IPROPNAME_CARRYINGNDP TEXT("CARRYINGNDP")
#define IPROPVALUE__CARRYINGNDP_URTREINSTALL TEXT("URTREINSTALL")
#define IPROPVALUE__CARRYINGNDP_URTUPGRADE TEXT("URTUPGRADE")
#define IPROPNAME_ENFORCE_UPGRADE_COMPONENT_RULES TEXT("MSIENFORCEUPGRADECOMPONENTRULES")

#define IPROPNAME_MSINEWINSTANCE TEXT("MSINEWINSTANCE")
#define IPROPNAME_MSIINSTANCEGUID TEXT("MSIINSTANCEGUID")

#define IPROPNAME_MSIPACKAGEDOWNLOADLOCALCOPY TEXT("MSIPACKAGEDOWNLOADLOCALCOPY")
#define IPROPNAME_MSIPATCHDOWNLOADLOCALCOPY TEXT("MSIPATCHDOWNLOADLOCALCOPY")
#endif

#if (_WIN32_MSI >= 300)

#define IPROPNAME_MSIDISABLELUAPATCHING TEXT("MSIDISABLELUAPATCHING")
#endif

#define IPROPNAME_ARPAUTHORIZEDCDFPREFIX TEXT("ARPAUTHORIZEDCDFPREFIX")
#define IPROPNAME_ARPCOMMENTS TEXT("ARPCOMMENTS")
#define IPROPNAME_ARPCONTACT TEXT("ARPCONTACT")
#define IPROPNAME_ARPHELPLINK TEXT("ARPHELPLINK")
#define IPROPNAME_ARPHELPTELEPHONE TEXT("ARPHELPTELEPHONE")
#define IPROPNAME_ARPINSTALLLOCATION TEXT("ARPINSTALLLOCATION")
#define IPROPNAME_ARPNOMODIFY TEXT("ARPNOMODIFY")
#define IPROPNAME_ARPNOREMOVE TEXT("ARPNOREMOVE")
#define IPROPNAME_ARPNOREPAIR TEXT("ARPNOREPAIR")
#define IPROPNAME_ARPREADME TEXT("ARPREADME")
#define IPROPNAME_ARPSIZE TEXT("ARPSIZE")
#define IPROPNAME_ARPSYSTEMCOMPONENT TEXT("ARPSYSTEMCOMPONENT")
#define IPROPNAME_ARPURLINFOABOUT TEXT("ARPURLINFOABOUT")
#define IPROPNAME_ARPURLUPDATEINFO TEXT("ARPURLUPDATEINFO")
#if (_WIN32_MSI >= 110)
#define IPROPNAME_ARPPRODUCTICON TEXT("ARPPRODUCTICON")
#endif

#define IPROPNAME_INSTALLED TEXT("Installed")
#define IPROPNAME_PRODUCTSTATE TEXT("ProductState")
#define IPROPNAME_PRESELECTED TEXT("Preselected")
#define IPROPNAME_RESUME TEXT("RESUME")
#define IPROPNAME_UPDATESTARTED TEXT("UpdateStarted")
#define IPROPNAME_PRODUCTID TEXT("ProductID")
#define IPROPNAME_OUTOFDISKSPACE TEXT("OutOfDiskSpace")
#define IPROPNAME_OUTOFNORBDISKSPACE TEXT("OutOfNoRbDiskSpace")
#define IPROPNAME_COSTINGCOMPLETE TEXT("CostingComplete")
#define IPROPNAME_SOURCEDIR TEXT("SourceDir")
#define IPROPNAME_REPLACEDINUSEFILES TEXT("ReplacedInUseFiles")
#define IPROPNAME_PRIMARYFOLDER_PATH TEXT("PrimaryVolumePath")
#define IPROPNAME_PRIMARYFOLDER_SPACEAVAILABLE TEXT("PrimaryVolumeSpaceAvailable")
#define IPROPNAME_PRIMARYFOLDER_SPACEREQUIRED TEXT("PrimaryVolumeSpaceRequired")
#define IPROPNAME_PRIMARYFOLDER_SPACEREMAINING TEXT("PrimaryVolumeSpaceRemaining")
#define IPROPNAME_ISADMINPACKAGE TEXT("IsAdminPackage")
#define IPROPNAME_ROLLBACKDISABLED TEXT("RollbackDisabled")
#define IPROPNAME_RESTRICTEDUSERCONTROL TEXT("RestrictedUserControl")
#if (_WIN32_MSI >= 300)
#define IPROPNAME_SOURCERESONLY TEXT("MsiUISourceResOnly")
#define IPROPNAME_HIDECANCEL TEXT("MsiUIHideCancel")
#define IPROPNAME_PROGRESSONLY TEXT("MsiUIProgressOnly")
#endif

#define IPROPNAME_TIME TEXT("Time")
#define IPROPNAME_DATE TEXT("Date")
#define IPROPNAME_DATETIME TEXT("DateTime")

#define IPROPNAME_INTEL TEXT("Intel")
#if (_WIN32_MSI >= 150)
#define IPROPNAME_TEMPLATE_AMD64 TEXT("AMD64")
#define IPROPNAME_TEMPLATE_X64 TEXT("x64")
#define IPROPNAME_MSIAMD64 TEXT("MsiAMD64")
#define IPROPNAME_MSIX64 TEXT("Msix64")
#define IPROPNAME_INTEL64 TEXT("Intel64")
#else
#define IPROPNAME_IA64 TEXT("IA64")
#endif
#define IPROPNAME_TEXTHEIGHT TEXT("TextHeight")
#define IPROPNAME_SCREENX TEXT("ScreenX")
#define IPROPNAME_SCREENY TEXT("ScreenY")
#define IPROPNAME_CAPTIONHEIGHT TEXT("CaptionHeight")
#define IPROPNAME_BORDERTOP TEXT("BorderTop")
#define IPROPNAME_BORDERSIDE TEXT("BorderSide")
#define IPROPNAME_COLORBITS TEXT("ColorBits")
#define IPROPNAME_PHYSICALMEMORY TEXT("PhysicalMemory")
#define IPROPNAME_VIRTUALMEMORY TEXT("VirtualMemory")
#if (_WIN32_MSI >= 150)
#define IPROPNAME_TEXTHEIGHT_CORRECTION TEXT("TextHeightCorrection")
#endif

#define IPROPNAME_VERSIONNT TEXT("VersionNT")
#define IPROPNAME_VERSION9X TEXT("Version9X")
#if (_WIN32_MSI >= 150)
#define IPROPNAME_VERSIONNT64 TEXT("VersionNT64")
#endif
#define IPROPNAME_WINDOWSBUILD TEXT("WindowsBuild")
#define IPROPNAME_SERVICEPACKLEVEL TEXT("ServicePackLevel")
#if (_WIN32_MSI >= 110)
#define IPROPNAME_SERVICEPACKLEVELMINOR TEXT("ServicePackLevelMinor")
#endif
#define IPROPNAME_SHAREDWINDOWS TEXT("SharedWindows")
#define IPROPNAME_COMPUTERNAME TEXT("ComputerName")
#define IPROPNAME_SHELLADVTSUPPORT TEXT("ShellAdvtSupport")
#define IPROPNAME_OLEADVTSUPPORT TEXT("OLEAdvtSupport")
#define IPROPNAME_SYSTEMLANGUAGEID TEXT("SystemLanguageID")
#define IPROPNAME_TTCSUPPORT TEXT("TTCSupport")
#define IPROPNAME_TERMSERVER TEXT("TerminalServer")
#if (_WIN32_MSI >= 110)
#define IPROPNAME_REMOTEADMINTS TEXT("RemoteAdminTS")
#define IPROPNAME_REDIRECTEDDLLSUPPORT TEXT("RedirectedDllSupport")
#endif
#if (_WIN32_MSI >= 150)
#define IPROPNAME_NTPRODUCTTYPE TEXT("MsiNTProductType")
#define IPROPNAME_NTSUITEBACKOFFICE TEXT("MsiNTSuiteBackOffice")
#define IPROPNAME_NTSUITEDATACENTER TEXT("MsiNTSuiteDataCenter")
#define IPROPNAME_NTSUITEENTERPRISE TEXT("MsiNTSuiteEnterprise")
#define IPROPNAME_NTSUITESMALLBUSINESS TEXT("MsiNTSuiteSmallBusiness")
#define IPROPNAME_NTSUITESMALLBUSINESSRESTRICTED TEXT("MsiNTSuiteSmallBusinessRestricted")
#define IPROPNAME_NTSUITEPERSONAL TEXT("MsiNTSuitePersonal")
#define IPROPNAME_NTSUITEWEBSERVER TEXT("MsiNTSuiteWebServer")
#define IPROPNAME_NETASSEMBLYSUPPORT TEXT("MsiNetAssemblySupport")
#define IPROPNAME_WIN32ASSEMBLYSUPPORT TEXT("MsiWin32AssemblySupport")
#endif

#define IPROPNAME_LOGONUSER TEXT("LogonUser")
#define IPROPNAME_USERSID TEXT("UserSID")
#define IPROPNAME_ADMINUSER TEXT("AdminUser")
#define IPROPNAME_USERLANGUAGEID TEXT("UserLanguageID")
#define IPROPNAME_PRIVILEGED TEXT("Privileged")

#define IPROPNAME_WINDOWS_FOLDER TEXT("WindowsFolder")
#define IPROPNAME_SYSTEM_FOLDER TEXT("SystemFolder")
#define IPROPNAME_SYSTEM16_FOLDER TEXT("System16Folder")
#define IPROPNAME_WINDOWS_VOLUME TEXT("WindowsVolume")
#define IPROPNAME_TEMP_FOLDER TEXT("TempFolder")
#define IPROPNAME_PROGRAMFILES_FOLDER TEXT("ProgramFilesFolder")
#define IPROPNAME_COMMONFILES_FOLDER TEXT("CommonFilesFolder")
#if (_WIN32_MSI >= 150)
#define IPROPNAME_SYSTEM64_FOLDER TEXT("System64Folder")
#define IPROPNAME_PROGRAMFILES64_FOLDER TEXT("ProgramFiles64Folder")
#define IPROPNAME_COMMONFILES64_FOLDER TEXT("CommonFiles64Folder")
#endif
#define IPROPNAME_STARTMENU_FOLDER TEXT("StartMenuFolder")
#define IPROPNAME_PROGRAMMENU_FOLDER TEXT("ProgramMenuFolder")
#define IPROPNAME_STARTUP_FOLDER TEXT("StartupFolder")
#define IPROPNAME_NETHOOD_FOLDER TEXT("NetHoodFolder")
#define IPROPNAME_PERSONAL_FOLDER TEXT("PersonalFolder")
#define IPROPNAME_SENDTO_FOLDER TEXT("SendToFolder")
#define IPROPNAME_DESKTOP_FOLDER TEXT("DesktopFolder")
#define IPROPNAME_TEMPLATE_FOLDER TEXT("TemplateFolder")
#define IPROPNAME_FONTS_FOLDER TEXT("FontsFolder")
#define IPROPNAME_FAVORITES_FOLDER TEXT("FavoritesFolder")
#define IPROPNAME_RECENT_FOLDER TEXT("RecentFolder")
#define IPROPNAME_APPDATA_FOLDER TEXT("AppDataFolder")
#define IPROPNAME_PRINTHOOD_FOLDER TEXT("PrintHoodFolder")
#if (_WIN32_MSI >= 110)
#define IPROPNAME_ADMINTOOLS_FOLDER TEXT("AdminToolsFolder")
#define IPROPNAME_COMMONAPPDATA_FOLDER TEXT("CommonAppDataFolder")
#define IPROPNAME_LOCALAPPDATA_FOLDER TEXT("LocalAppDataFolder")
#define IPROPNAME_MYPICTURES_FOLDER TEXT("MyPicturesFolder")
#endif

#define IPROPNAME_FEATUREADDLOCAL TEXT("ADDLOCAL")
#define IPROPNAME_FEATUREADDSOURCE TEXT("ADDSOURCE")
#define IPROPNAME_FEATUREADDDEFAULT TEXT("ADDDEFAULT")
#define IPROPNAME_FEATUREREMOVE TEXT("REMOVE")
#define IPROPNAME_FEATUREADVERTISE TEXT("ADVERTISE")
#define IPROPVALUE_FEATURE_ALL TEXT("ALL")

#define IPROPNAME_COMPONENTADDLOCAL TEXT("COMPADDLOCAL")
#define IPROPNAME_COMPONENTADDSOURCE TEXT("COMPADDSOURCE")
#define IPROPNAME_COMPONENTADDDEFAULT TEXT("COMPADDDEFAULT")

#define IPROPNAME_FILEADDLOCAL TEXT("FILEADDLOCAL")
#define IPROPNAME_FILEADDSOURCE TEXT("FILEADDSOURCE")
#define IPROPNAME_FILEADDDEFAULT TEXT("FILEADDDEFAULT")

#define IPROPNAME_REINSTALL TEXT("REINSTALL")
#define IPROPNAME_REINSTALLMODE TEXT("REINSTALLMODE")
#define IPROPNAME_PROMPTROLLBACKCOST TEXT("PROMPTROLLBACKCOST")
#define IPROPVALUE_RBCOST_PROMPT TEXT("P")
#define IPROPVALUE_RBCOST_SILENT TEXT("D")
#define IPROPVALUE_RBCOST_FAIL TEXT("F")

#define IPROPNAME_CUSTOMACTIONDATA TEXT("CustomActionData")

#define IACTIONNAME_INSTALL TEXT("INSTALL")
#define IACTIONNAME_ADVERTISE TEXT("ADVERTISE")
#define IACTIONNAME_ADMIN TEXT("ADMIN")
#define IACTIONNAME_SEQUENCE TEXT("SEQUENCE")
#define IACTIONNAME_COLLECTUSERINFO TEXT("CollectUserInfo")
#define IACTIONNAME_FIRSTRUN TEXT("FirstRun")

#undef PID_SECURITY

#define PID_DICTIONARY (0)
#define PID_CODEPAGE (0x1)
#define PID_TITLE 2
#define PID_SUBJECT 3
#define PID_AUTHOR 4
#define PID_KEYWORDS 5
#define PID_COMMENTS 6
#define PID_TEMPLATE 7
#define PID_LASTAUTHOR 8
#define PID_REVNUMBER 9
#define PID_EDITTIME 10
#define PID_LASTPRINTED 11
#define PID_CREATE_DTM 12
#define PID_LASTSAVE_DTM 13
#define PID_PAGECOUNT 14
#define PID_WORDCOUNT 15
#define PID_CHARCOUNT 16
#define PID_THUMBNAIL 17
#define PID_APPNAME 18
#define PID_SECURITY 19

#define PID_MSIVERSION PID_PAGECOUNT
#define PID_MSISOURCE PID_WORDCOUNT
#define PID_MSIRESTRICT PID_CHARCOUNT

enum msidbControlAttributes {
  msidbControlAttributesVisible = 0x00000001,msidbControlAttributesEnabled = 0x00000002,msidbControlAttributesSunken = 0x00000004,
  msidbControlAttributesIndirect = 0x00000008,msidbControlAttributesInteger = 0x00000010,msidbControlAttributesRTLRO = 0x00000020,
  msidbControlAttributesRightAligned = 0x00000040,msidbControlAttributesLeftScroll = 0x00000080,
  msidbControlAttributesBiDi = msidbControlAttributesRTLRO | msidbControlAttributesRightAligned | msidbControlAttributesLeftScroll,
  msidbControlAttributesTransparent = 0x00010000,msidbControlAttributesNoPrefix = 0x00020000,msidbControlAttributesNoWrap = 0x00040000,
  msidbControlAttributesFormatSize = 0x00080000,msidbControlAttributesUsersLanguage = 0x00100000,msidbControlAttributesMultiline = 0x00010000,
#if (_WIN32_MSI >= 110)
  msidbControlAttributesPasswordInput = 0x00200000,
#endif
  msidbControlAttributesProgress95 = 0x00010000,msidbControlAttributesRemovableVolume = 0x00010000,msidbControlAttributesFixedVolume = 0x00020000,
  msidbControlAttributesRemoteVolume = 0x00040000,msidbControlAttributesCDROMVolume = 0x00080000,msidbControlAttributesRAMDiskVolume = 0x00100000,
  msidbControlAttributesFloppyVolume = 0x00200000,msidbControlShowRollbackCost = 0x00400000,msidbControlAttributesSorted = 0x00010000,
  msidbControlAttributesComboList = 0x00020000,msidbControlAttributesImageHandle = 0x00010000,msidbControlAttributesPushLike = 0x00020000,
  msidbControlAttributesBitmap = 0x00040000,msidbControlAttributesIcon = 0x00080000,msidbControlAttributesFixedSize = 0x00100000,
  msidbControlAttributesIconSize16 = 0x00200000,msidbControlAttributesIconSize32 = 0x00400000,msidbControlAttributesIconSize48 = 0x00600000,
  msidbControlAttributesHasBorder = 0x01000000
};

typedef enum _msidbLocatorType {
  msidbLocatorTypeDirectory = 0x0,
  msidbLocatorTypeFileName = 0x1,
#if (_WIN32_MSI >= 110)
  msidbLocatorTypeRawValue = 0x2,
#endif
#if (_WIN32_MSI >= 150)
  msidbLocatorType64bit = 0x10
#endif
} msidbLocatorType;

enum msidbComponentAttributes {
  msidbComponentAttributesLocalOnly = 0x00000000,msidbComponentAttributesSourceOnly = 0x00000001,msidbComponentAttributesOptional = 0x00000002,
  msidbComponentAttributesRegistryKeyPath = 0x00000004,msidbComponentAttributesSharedDllRefCount = 0x00000008,
  msidbComponentAttributesPermanent = 0x00000010,msidbComponentAttributesODBCDataSource = 0x00000020,msidbComponentAttributesTransitive = 0x00000040,
  msidbComponentAttributesNeverOverwrite = 0x00000080,
#if (_WIN32_MSI >= 150)
  msidbComponentAttributes64bit = 0x00000100
#endif
};

#if (_WIN32_MSI >= 150)
enum msidbAssemblyAttributes {
  msidbAssemblyAttributesURT = 0x00000000,msidbAssemblyAttributesWin32 = 0x00000001
};
#endif

enum msidbCustomActionType {
  msidbCustomActionTypeDll = 0x00000001,msidbCustomActionTypeExe = 0x00000002,msidbCustomActionTypeTextData = 0x00000003,
  msidbCustomActionTypeJScript = 0x00000005,msidbCustomActionTypeVBScript = 0x00000006,msidbCustomActionTypeInstall = 0x00000007,
  msidbCustomActionTypeBinaryData = 0x00000000,msidbCustomActionTypeSourceFile = 0x00000010,msidbCustomActionTypeDirectory = 0x00000020,
  msidbCustomActionTypeProperty = 0x00000030,msidbCustomActionTypeContinue = 0x00000040,msidbCustomActionTypeAsync = 0x00000080,
  msidbCustomActionTypeFirstSequence = 0x00000100,msidbCustomActionTypeOncePerProcess = 0x00000200,msidbCustomActionTypeClientRepeat = 0x00000300,
  msidbCustomActionTypeInScript = 0x00000400,msidbCustomActionTypeRollback = 0x00000100,msidbCustomActionTypeCommit = 0x00000200,
  msidbCustomActionTypeNoImpersonate = 0x00000800,
#if (_WIN32_MSI >= 150)
  msidbCustomActionTypeTSAware = 0x00004000,
#endif
#if (_WIN32_MSI >= 150)
  msidbCustomActionType64BitScript = 0x00001000,msidbCustomActionTypeHideTarget = 0x00002000
#endif
};

enum msidbDialogAttributes {
  msidbDialogAttributesVisible = 0x00000001,msidbDialogAttributesModal = 0x00000002,msidbDialogAttributesMinimize = 0x00000004,
  msidbDialogAttributesSysModal = 0x00000008,msidbDialogAttributesKeepModeless = 0x00000010,msidbDialogAttributesTrackDiskSpace = 0x00000020,
  msidbDialogAttributesUseCustomPalette = 0x00000040,msidbDialogAttributesRTLRO = 0x00000080,msidbDialogAttributesRightAligned = 0x00000100,
  msidbDialogAttributesLeftScroll = 0x00000200,msidbDialogAttributesBiDi = msidbDialogAttributesRTLRO | msidbDialogAttributesRightAligned | msidbDialogAttributesLeftScroll,
  msidbDialogAttributesError = 0x00010000
};

enum msidbFeatureAttributes {
  msidbFeatureAttributesFavorLocal = 0x00000000,msidbFeatureAttributesFavorSource = 0x00000001,msidbFeatureAttributesFollowParent = 0x00000002,
  msidbFeatureAttributesFavorAdvertise = 0x00000004,msidbFeatureAttributesDisallowAdvertise = 0x00000008,
  msidbFeatureAttributesUIDisallowAbsent = 0x00000010,msidbFeatureAttributesNoUnsupportedAdvertise= 0x00000020
};

enum msidbFileAttributes {
  msidbFileAttributesReadOnly = 0x00000001,msidbFileAttributesHidden = 0x00000002,msidbFileAttributesSystem = 0x00000004,
  msidbFileAttributesReserved0 = 0x00000008,msidbFileAttributesReserved1 = 0x00000040,msidbFileAttributesReserved2 = 0x00000080,
  msidbFileAttributesReserved3 = 0x00000100,msidbFileAttributesVital = 0x00000200,msidbFileAttributesChecksum = 0x00000400,
  msidbFileAttributesPatchAdded = 0x00001000,msidbFileAttributesNoncompressed = 0x00002000,msidbFileAttributesCompressed = 0x00004000,
  msidbFileAttributesReserved4 = 0x00008000
};

typedef enum _msidbIniFileAction {
  msidbIniFileActionAddLine = 0x00000000,msidbIniFileActionCreateLine = 0x00000001,msidbIniFileActionRemoveLine = 0x00000002,
  msidbIniFileActionAddTag = 0x00000003,msidbIniFileActionRemoveTag = 0x00000004
} msidbIniFileAction;

enum msidbMoveFileOptions {
  msidbMoveFileOptionsMove = 0x00000001
};

typedef enum _msidbODBCDataSourceRegistration {
  msidbODBCDataSourceRegistrationPerMachine = 0x00000000,msidbODBCDataSourceRegistrationPerUser = 0x00000001
} msidbODBCDataSourceRegistration;

#if (_WIN32_MSI >= 110)
enum msidbClassAttributes {
  msidbClassAttributesRelativePath = 0x00000001
};
#endif

enum msidbPatchAttributes {
  msidbPatchAttributesNonVital = 0x00000001
};

enum msidbRegistryRoot {
  msidbRegistryRootClassesRoot = 0,msidbRegistryRootCurrentUser = 1,msidbRegistryRootLocalMachine = 2,msidbRegistryRootUsers = 3
};

enum msidbRemoveFileInstallMode {
  msidbRemoveFileInstallModeOnInstall = 0x00000001,msidbRemoveFileInstallModeOnRemove = 0x00000002,msidbRemoveFileInstallModeOnBoth = 0x00000003
};

enum msidbServiceControlEvent {
  msidbServiceControlEventStart = 0x00000001,msidbServiceControlEventStop = 0x00000002,msidbServiceControlEventDelete = 0x00000008,
  msidbServiceControlEventUninstallStart = 0x00000010,msidbServiceControlEventUninstallStop = 0x00000020,
  msidbServiceControlEventUninstallDelete = 0x00000080
};

enum msidbServiceInstallErrorControl {
  msidbServiceInstallErrorControlVital = 0x00008000
};

enum msidbTextStyleStyleBits {
  msidbTextStyleStyleBitsBold = 0x00000001,msidbTextStyleStyleBitsItalic = 0x00000002,msidbTextStyleStyleBitsUnderline = 0x00000004,
  msidbTextStyleStyleBitsStrike = 0x00000008
};

#if (_WIN32_MSI >= 110)
enum msidbUpgradeAttributes {
  msidbUpgradeAttributesMigrateFeatures = 0x00000001,msidbUpgradeAttributesOnlyDetect = 0x00000002,
  msidbUpgradeAttributesIgnoreRemoveFailure = 0x00000004,msidbUpgradeAttributesVersionMinInclusive = 0x00000100,
  msidbUpgradeAttributesVersionMaxInclusive = 0x00000200,msidbUpgradeAttributesLanguagesExclusive = 0x00000400
};
#endif

enum msidbSumInfoSourceType {
  msidbSumInfoSourceTypeSFN = 0x00000001,msidbSumInfoSourceTypeCompressed = 0x00000002,msidbSumInfoSourceTypeAdminImage = 0x00000004
};
#endif
