MsiDefs.h 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646
  1. //--------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows - Windows Installer (MSI)
  4. //
  5. // Copyright (C) Microsoft Corporation. All rights reserved.
  6. //
  7. //--------------------------------------------------------------------------
  8. #ifndef __MSIDEFS
  9. #define __MSIDEFS
  10. #ifndef _WIN32_MSI
  11. #if (_WIN32_WINNT > 0x0502)
  12. #define _WIN32_MSI 300
  13. #elif (_WIN32_WINNT >= 0x0501)
  14. #define _WIN32_MSI 200
  15. #elif (_WIN32_WINNT >= 0x0500)
  16. #define _WIN32_MSI 110
  17. #else
  18. #define _WIN32_MSI 100
  19. #endif //_WIN32_WINNT
  20. #endif // !_WIN32_MSI
  21. //__________________________________________________________________________
  22. //
  23. // INSTALLER PROPERTY DEFINITIONS
  24. //__________________________________________________________________________
  25. // Required properties: set in Property table
  26. #define IPROPNAME_PRODUCTNAME TEXT("ProductName") // name registered for display
  27. #define IPROPNAME_PRODUCTCODE TEXT("ProductCode") // unique string GUID for product
  28. #define IPROPNAME_PRODUCTVERSION TEXT("ProductVersion") // string product version
  29. #define IPROPNAME_INSTALLLANGUAGE TEXT("ProductLanguage") // install language of product, use to load resources
  30. #define IPROPNAME_MANUFACTURER TEXT("Manufacturer") // name of manufacturer
  31. // Customization properties: set in Property table
  32. #define IPROPNAME_UPGRADECODE TEXT("UpgradeCode") // unique string GUID for product family
  33. #define IPROPNAME_PIDTEMPLATE TEXT("PIDTemplate") // drives Product ID processing
  34. #define IPROPNAME_DISKPROMPT TEXT("DiskPrompt") // prompt for CD
  35. #define IPROPNAME_LEFTUNIT TEXT("LeftUnit") // name of unit placed to left of number instead of right
  36. #define IPROPNAME_ADMIN_PROPERTIES TEXT("AdminProperties") // properties to stuff in admin package
  37. #define IPROPNAME_DEFAULTUIFONT TEXT("DefaultUIFont") // the font used in the UI if no other font is specified
  38. #define IPROPNAME_ALLOWEDPROPERTIES TEXT("SecureCustomProperties")
  39. #define IPROPNAME_ENABLEUSERCONTROL TEXT("EnableUserControl") // allows user to specify any public property
  40. #define IPROPNAME_HIDDEN_PROPERTIES TEXT("MsiHiddenProperties") // properties that should not be dumped into the log file
  41. // Customization properties: set on command-line or in Property table
  42. #define IPROPNAME_USERNAME TEXT("USERNAME")
  43. #define IPROPNAME_COMPANYNAME TEXT("COMPANYNAME")
  44. #define IPROPNAME_PIDKEY TEXT("PIDKEY") // used with PIDTemplate to form ProductID
  45. #define IPROPNAME_PATCH TEXT("PATCH") // patch package to apply - SET BY INSTALLER
  46. #define IPROPNAME_MSIPATCHREMOVE TEXT("MSIPATCHREMOVE") // patch package to remove - SET BY INSTALLER
  47. #define IPROPNAME_TARGETDIR TEXT("TARGETDIR") // target location - defaults to ROOTDRIVE
  48. #define IPROPNAME_ACTION TEXT("ACTION") // top-level action to perform - default to INSTALL
  49. #define IPROPNAME_LIMITUI TEXT("LIMITUI") // limit ui level to Basic
  50. #define IPROPNAME_LOGACTION TEXT("LOGACTION") // log only these actions
  51. #define IPROPNAME_ALLUSERS TEXT("ALLUSERS") // install for all users
  52. #define IPROPNAME_INSTALLLEVEL TEXT("INSTALLLEVEL")
  53. #define IPROPNAME_REBOOT TEXT("REBOOT") // force or suppress reboot
  54. #if (_WIN32_MSI >= 110)
  55. #define IPROPNAME_REBOOTPROMPT TEXT("REBOOTPROMPT") // allow or suppress reboot prompt
  56. #endif //(_WIN32_MSI >= 110)
  57. #define IPROPNAME_EXECUTEMODE TEXT("EXECUTEMODE") // NONE or SCRIPT
  58. #define IPROPVALUE_EXECUTEMODE_NONE TEXT("NONE") // do not update system
  59. #define IPROPVALUE_EXECUTEMODE_SCRIPT TEXT("SCRIPT") // default - run script to update system
  60. #define IPROPNAME_EXECUTEACTION TEXT("EXECUTEACTION") // run action on server side
  61. #define IPROPNAME_SOURCELIST TEXT("SOURCELIST")
  62. #define IPROPNAME_ROOTDRIVE TEXT("ROOTDRIVE") // default drive to install - SET BY INSTALLER
  63. #define IPROPNAME_TRANSFORMS TEXT("TRANSFORMS") // transforms to apply
  64. #define IPROPNAME_TRANSFORMSATSOURCE TEXT("TRANSFORMSATSOURCE") // transforms can be found at source
  65. #define IPROPNAME_TRANSFORMSSECURE TEXT("TRANSFORMSSECURE") // file transforms are secured
  66. #define IPROPNAME_SEQUENCE TEXT("SEQUENCE") // sequence table to run with SEQUENCE action
  67. #define IPROPNAME_SHORTFILENAMES TEXT("SHORTFILENAMES") // force short file names
  68. #define IPROPNAME_PRIMARYFOLDER TEXT("PRIMARYFOLDER") // Folder on the volume the author wants costing info for
  69. #define IPROPNAME_AFTERREBOOT TEXT("AFTERREBOOT") // install is after a ForceReboot triggered reboot
  70. #define IPROPNAME_NOCOMPANYNAME TEXT("NOCOMPANYNAME")
  71. #define IPROPNAME_NOUSERNAME TEXT("NOUSERNAME")
  72. #define IPROPNAME_DISABLEROLLBACK TEXT("DISABLEROLLBACK") // disable rollback for this install
  73. #define IPROPNAME_AVAILABLEFREEREG TEXT("AVAILABLEFREEREG") // set up the free space in the registry before commencing the install
  74. #define IPROPNAME_DISABLEADVTSHORTCUTS TEXT("DISABLEADVTSHORTCUTS") // disable creating darwin shortcuts even if supported
  75. #define IPROPNAME_PATCHNEWPACKAGECODE TEXT("PATCHNEWPACKAGECODE") // added to property table by patch transforms - used to update
  76. // PackageCode of admin packages when patching admin installs
  77. #define IPROPNAME_PATCHNEWSUMMARYSUBJECT TEXT("PATCHNEWSUMMARYSUBJECT") // added to property table by patch transforms - used to update
  78. // Subject summary info property of admin packages when patching admin installs
  79. #define IPROPNAME_PATCHNEWSUMMARYCOMMENTS TEXT("PATCHNEWSUMMARYCOMMENTS") // added to property table by patch transforms - used to update
  80. // Comments summary info property of admin packages when patching admin installs
  81. #define IPROPNAME_PRODUCTLANGUAGE TEXT("PRODUCTLANGUAGE") // requested language, must be one in summary information list, selects language transform
  82. #if (_WIN32_MSI >= 150)
  83. #define IPROPNAME_CHECKCRCS TEXT("MSICHECKCRCS") // requests Darwin to check CRCs after copying, moving, patching & duplicating files.
  84. #define IPROPNAME_MSINODISABLEMEDIA TEXT("MSINODISABLEMEDIA") // if set, DISABLEMEDIA won't be set in the AdminProperties stream during an admin install of
  85. // a package with compressed source
  86. // property used for URT bootstrapping
  87. #define IPROPNAME_CARRYINGNDP TEXT("CARRYINGNDP")
  88. #define IPROPVALUE__CARRYINGNDP_URTREINSTALL TEXT("URTREINSTALL") // reinstalling/ uninstalling core URT files
  89. #define IPROPVALUE__CARRYINGNDP_URTUPGRADE TEXT("URTUPGRADE") // upgrading core URT files
  90. #define IPROPNAME_ENFORCE_UPGRADE_COMPONENT_RULES TEXT("MSIENFORCEUPGRADECOMPONENTRULES") // if set, doesn't allow upgrade packages to break component rules.
  91. // property used for multiple instance support
  92. #define IPROPNAME_MSINEWINSTANCE TEXT("MSINEWINSTANCE")
  93. #define IPROPNAME_MSIINSTANCEGUID TEXT("MSIINSTANCEGUID")
  94. // properties used for URL download reduction for admins
  95. #define IPROPNAME_MSIPACKAGEDOWNLOADLOCALCOPY TEXT("MSIPACKAGEDOWNLOADLOCALCOPY")
  96. #define IPROPNAME_MSIPATCHDOWNLOADLOCALCOPY TEXT("MSIPATCHDOWNLOADLOCALCOPY")
  97. #endif // (_WIN32_MSI >= 150)
  98. #if (_WIN32_MSI >= 300)
  99. // properties for limited-user account (LUA) patching support (per-machine applications only)
  100. #define IPROPNAME_MSIDISABLELUAPATCHING TEXT("MSIDISABLELUAPATCHING")
  101. #endif //(_WIN32_MSI >= 300)
  102. // Properties used to populate Add/Remove Control Panel values
  103. #define IPROPNAME_ARPAUTHORIZEDCDFPREFIX TEXT("ARPAUTHORIZEDCDFPREFIX")
  104. #define IPROPNAME_ARPCOMMENTS TEXT("ARPCOMMENTS")
  105. #define IPROPNAME_ARPCONTACT TEXT("ARPCONTACT")
  106. #define IPROPNAME_ARPHELPLINK TEXT("ARPHELPLINK")
  107. #define IPROPNAME_ARPHELPTELEPHONE TEXT("ARPHELPTELEPHONE")
  108. #define IPROPNAME_ARPINSTALLLOCATION TEXT("ARPINSTALLLOCATION")
  109. #define IPROPNAME_ARPNOMODIFY TEXT("ARPNOMODIFY")
  110. #define IPROPNAME_ARPNOREMOVE TEXT("ARPNOREMOVE")
  111. #define IPROPNAME_ARPNOREPAIR TEXT("ARPNOREPAIR")
  112. #define IPROPNAME_ARPREADME TEXT("ARPREADME")
  113. #define IPROPNAME_ARPSIZE TEXT("ARPSIZE")
  114. #define IPROPNAME_ARPSYSTEMCOMPONENT TEXT("ARPSYSTEMCOMPONENT")
  115. #define IPROPNAME_ARPURLINFOABOUT TEXT("ARPURLINFOABOUT")
  116. #define IPROPNAME_ARPURLUPDATEINFO TEXT("ARPURLUPDATEINFO")
  117. #if (_WIN32_MSI >= 110)
  118. #define IPROPNAME_ARPPRODUCTICON TEXT("ARPPRODUCTICON")
  119. #endif //(_WIN32_MSI >= 110)
  120. // Dynamic properties set by installer during install
  121. #define IPROPNAME_INSTALLED TEXT("Installed") // product already installed
  122. #define IPROPNAME_PRODUCTSTATE TEXT("ProductState") // state of product (installed,advertised,etc...)
  123. #define IPROPNAME_PRESELECTED TEXT("Preselected") // selections made on command line
  124. #define IPROPNAME_RESUME TEXT("RESUME") // resuming suspended install
  125. #define IPROPNAME_UPDATESTARTED TEXT("UpdateStarted") // have begun to update system
  126. #define IPROPNAME_PRODUCTID TEXT("ProductID") // the complete validated Product ID
  127. #define IPROPNAME_OUTOFDISKSPACE TEXT("OutOfDiskSpace")
  128. #define IPROPNAME_OUTOFNORBDISKSPACE TEXT("OutOfNoRbDiskSpace")
  129. #define IPROPNAME_COSTINGCOMPLETE TEXT("CostingComplete")
  130. #define IPROPNAME_SOURCEDIR TEXT("SourceDir") // source location - SET BY INSTALLER
  131. #define IPROPNAME_REPLACEDINUSEFILES TEXT("ReplacedInUseFiles") // need reboot to completely install one or more files
  132. #define IPROPNAME_PRIMARYFOLDER_PATH TEXT("PrimaryVolumePath")
  133. #define IPROPNAME_PRIMARYFOLDER_SPACEAVAILABLE TEXT("PrimaryVolumeSpaceAvailable")
  134. #define IPROPNAME_PRIMARYFOLDER_SPACEREQUIRED TEXT("PrimaryVolumeSpaceRequired")
  135. #define IPROPNAME_PRIMARYFOLDER_SPACEREMAINING TEXT("PrimaryVolumeSpaceRemaining")
  136. #define IPROPNAME_ISADMINPACKAGE TEXT("IsAdminPackage")
  137. #define IPROPNAME_ROLLBACKDISABLED TEXT("RollbackDisabled")
  138. #define IPROPNAME_RESTRICTEDUSERCONTROL TEXT("RestrictedUserControl")
  139. #if (_WIN32_MSI >= 300)
  140. #define IPROPNAME_SOURCERESONLY TEXT("MsiUISourceResOnly") // INSTALLUILEVEL_SOURCERESONLY provided as internal UI level
  141. #define IPROPNAME_HIDECANCEL TEXT("MsiUIHideCancel") // UI configured with a hidden cancel button (INSTALLUILEVEL_HIDECANCEL)
  142. #define IPROPNAME_PROGRESSONLY TEXT("MsiUIProgressOnly") // UI configured to only show progress, no modal or error dialogs displayed (INSTALLUILEVEL_PROGRESSONLY)
  143. #endif // (_WIN32_MSI >= 300)
  144. // Dynamic properties evaluated upon use
  145. #define IPROPNAME_TIME TEXT("Time")
  146. #define IPROPNAME_DATE TEXT("Date")
  147. #define IPROPNAME_DATETIME TEXT("DateTime")
  148. // Hardware properties: set by installer at initialization
  149. #define IPROPNAME_INTEL TEXT("Intel")
  150. #if (_WIN32_MSI >= 150)
  151. #define IPROPNAME_TEMPLATE_AMD64 TEXT("AMD64")
  152. #define IPROPNAME_MSIAMD64 TEXT("MsiAMD64")
  153. #define IPROPNAME_INTEL64 TEXT("Intel64")
  154. #else // (_WIN32_MSI >= 150)
  155. #define IPROPNAME_IA64 TEXT("IA64")
  156. #endif // (_WIN32_MSI >= 150)
  157. #define IPROPNAME_TEXTHEIGHT TEXT("TextHeight")
  158. #define IPROPNAME_SCREENX TEXT("ScreenX")
  159. #define IPROPNAME_SCREENY TEXT("ScreenY")
  160. #define IPROPNAME_CAPTIONHEIGHT TEXT("CaptionHeight")
  161. #define IPROPNAME_BORDERTOP TEXT("BorderTop")
  162. #define IPROPNAME_BORDERSIDE TEXT("BorderSide")
  163. #define IPROPNAME_COLORBITS TEXT("ColorBits")
  164. #define IPROPNAME_PHYSICALMEMORY TEXT("PhysicalMemory")
  165. #define IPROPNAME_VIRTUALMEMORY TEXT("VirtualMemory")
  166. #if (_WIN32_MSI >= 150)
  167. #define IPROPNAME_TEXTHEIGHT_CORRECTION TEXT("TextHeightCorrection")
  168. #endif // (_WIN32_MSI >= 150)
  169. // Operating System properties: set by installer at initialization
  170. #define IPROPNAME_VERSIONNT TEXT("VersionNT")
  171. #define IPROPNAME_VERSION9X TEXT("Version9X")
  172. #if (_WIN32_MSI >= 150)
  173. #define IPROPNAME_VERSIONNT64 TEXT("VersionNT64")
  174. #endif // (_WIN32_MSI >= 150)
  175. #define IPROPNAME_WINDOWSBUILD TEXT("WindowsBuild")
  176. #define IPROPNAME_SERVICEPACKLEVEL TEXT("ServicePackLevel")
  177. #if (_WIN32_MSI >= 110)
  178. #define IPROPNAME_SERVICEPACKLEVELMINOR TEXT("ServicePackLevelMinor")
  179. #endif //(_WIN32_MSI >= 110)
  180. #define IPROPNAME_SHAREDWINDOWS TEXT("SharedWindows")
  181. #define IPROPNAME_COMPUTERNAME TEXT("ComputerName")
  182. #define IPROPNAME_SHELLADVTSUPPORT TEXT("ShellAdvtSupport")
  183. #define IPROPNAME_OLEADVTSUPPORT TEXT("OLEAdvtSupport")
  184. #define IPROPNAME_SYSTEMLANGUAGEID TEXT("SystemLanguageID")
  185. #define IPROPNAME_TTCSUPPORT TEXT("TTCSupport")
  186. #define IPROPNAME_TERMSERVER TEXT("TerminalServer")
  187. #if (_WIN32_MSI >= 110)
  188. #define IPROPNAME_REMOTEADMINTS TEXT("RemoteAdminTS")
  189. #define IPROPNAME_REDIRECTEDDLLSUPPORT TEXT("RedirectedDllSupport")
  190. #endif //(_WIN32_MSI >= 110)
  191. #if (_WIN32_MSI >= 150)
  192. #define IPROPNAME_NTPRODUCTTYPE TEXT("MsiNTProductType")
  193. #define IPROPNAME_NTSUITEBACKOFFICE TEXT("MsiNTSuiteBackOffice")
  194. #define IPROPNAME_NTSUITEDATACENTER TEXT("MsiNTSuiteDataCenter")
  195. #define IPROPNAME_NTSUITEENTERPRISE TEXT("MsiNTSuiteEnterprise")
  196. #define IPROPNAME_NTSUITESMALLBUSINESS TEXT("MsiNTSuiteSmallBusiness")
  197. #define IPROPNAME_NTSUITESMALLBUSINESSRESTRICTED TEXT("MsiNTSuiteSmallBusinessRestricted")
  198. #define IPROPNAME_NTSUITEPERSONAL TEXT("MsiNTSuitePersonal")
  199. #define IPROPNAME_NTSUITEWEBSERVER TEXT("MsiNTSuiteWebServer")
  200. #define IPROPNAME_NETASSEMBLYSUPPORT TEXT("MsiNetAssemblySupport")
  201. #define IPROPNAME_WIN32ASSEMBLYSUPPORT TEXT("MsiWin32AssemblySupport")
  202. #endif // (_WIN32_MSI >= 150)
  203. // User properties: set by installer at initialization
  204. #define IPROPNAME_LOGONUSER TEXT("LogonUser")
  205. #define IPROPNAME_USERSID TEXT("UserSID")
  206. #define IPROPNAME_ADMINUSER TEXT("AdminUser")
  207. #define IPROPNAME_USERLANGUAGEID TEXT("UserLanguageID")
  208. #define IPROPNAME_PRIVILEGED TEXT("Privileged")
  209. // System folder properties: set by installer at initialization
  210. #define IPROPNAME_WINDOWS_FOLDER TEXT("WindowsFolder")
  211. #define IPROPNAME_SYSTEM_FOLDER TEXT("SystemFolder")
  212. #define IPROPNAME_SYSTEM16_FOLDER TEXT("System16Folder")
  213. #define IPROPNAME_WINDOWS_VOLUME TEXT("WindowsVolume")
  214. #define IPROPNAME_TEMP_FOLDER TEXT("TempFolder")
  215. #define IPROPNAME_PROGRAMFILES_FOLDER TEXT("ProgramFilesFolder")
  216. #define IPROPNAME_COMMONFILES_FOLDER TEXT("CommonFilesFolder")
  217. #if (_WIN32_MSI >= 150)
  218. #define IPROPNAME_SYSTEM64_FOLDER TEXT("System64Folder")
  219. #define IPROPNAME_PROGRAMFILES64_FOLDER TEXT("ProgramFiles64Folder")
  220. #define IPROPNAME_COMMONFILES64_FOLDER TEXT("CommonFiles64Folder")
  221. #endif // (_WIN32_MSI >= 150)
  222. #define IPROPNAME_STARTMENU_FOLDER TEXT("StartMenuFolder")
  223. #define IPROPNAME_PROGRAMMENU_FOLDER TEXT("ProgramMenuFolder")
  224. #define IPROPNAME_STARTUP_FOLDER TEXT("StartupFolder")
  225. #define IPROPNAME_NETHOOD_FOLDER TEXT("NetHoodFolder")
  226. #define IPROPNAME_PERSONAL_FOLDER TEXT("PersonalFolder")
  227. #define IPROPNAME_SENDTO_FOLDER TEXT("SendToFolder")
  228. #define IPROPNAME_DESKTOP_FOLDER TEXT("DesktopFolder")
  229. #define IPROPNAME_TEMPLATE_FOLDER TEXT("TemplateFolder")
  230. #define IPROPNAME_FONTS_FOLDER TEXT("FontsFolder")
  231. #define IPROPNAME_FAVORITES_FOLDER TEXT("FavoritesFolder")
  232. #define IPROPNAME_RECENT_FOLDER TEXT("RecentFolder")
  233. #define IPROPNAME_APPDATA_FOLDER TEXT("AppDataFolder")
  234. #define IPROPNAME_PRINTHOOD_FOLDER TEXT("PrintHoodFolder")
  235. #if (_WIN32_MSI >= 110)
  236. #define IPROPNAME_ADMINTOOLS_FOLDER TEXT("AdminToolsFolder")
  237. #define IPROPNAME_COMMONAPPDATA_FOLDER TEXT("CommonAppDataFolder")
  238. #define IPROPNAME_LOCALAPPDATA_FOLDER TEXT("LocalAppDataFolder")
  239. #define IPROPNAME_MYPICTURES_FOLDER TEXT("MyPicturesFolder")
  240. #endif //(_WIN32_MSI >= 110)
  241. // Feature/Component installation properties: set on command-line
  242. #define IPROPNAME_FEATUREADDLOCAL TEXT("ADDLOCAL")
  243. #define IPROPNAME_FEATUREADDSOURCE TEXT("ADDSOURCE")
  244. #define IPROPNAME_FEATUREADDDEFAULT TEXT("ADDDEFAULT")
  245. #define IPROPNAME_FEATUREREMOVE TEXT("REMOVE")
  246. #define IPROPNAME_FEATUREADVERTISE TEXT("ADVERTISE")
  247. #define IPROPVALUE_FEATURE_ALL TEXT("ALL")
  248. #define IPROPNAME_COMPONENTADDLOCAL TEXT("COMPADDLOCAL")
  249. #define IPROPNAME_COMPONENTADDSOURCE TEXT("COMPADDSOURCE")
  250. #define IPROPNAME_COMPONENTADDDEFAULT TEXT("COMPADDDEFAULT")
  251. #define IPROPNAME_FILEADDLOCAL TEXT("FILEADDLOCAL")
  252. #define IPROPNAME_FILEADDSOURCE TEXT("FILEADDSOURCE")
  253. #define IPROPNAME_FILEADDDEFAULT TEXT("FILEADDDEFAULT")
  254. #define IPROPNAME_REINSTALL TEXT("REINSTALL")
  255. #define IPROPNAME_REINSTALLMODE TEXT("REINSTALLMODE")
  256. #define IPROPNAME_PROMPTROLLBACKCOST TEXT("PROMPTROLLBACKCOST")
  257. #define IPROPVALUE_RBCOST_PROMPT TEXT("P")
  258. #define IPROPVALUE_RBCOST_SILENT TEXT("D")
  259. #define IPROPVALUE_RBCOST_FAIL TEXT("F")
  260. // Property for custom actions to communicate
  261. #define IPROPNAME_CUSTOMACTIONDATA TEXT("CustomActionData")
  262. //__________________________________________________________________________
  263. //
  264. // TOP-LEVEL ACTION NAMES
  265. //__________________________________________________________________________
  266. #define IACTIONNAME_INSTALL TEXT("INSTALL")
  267. #define IACTIONNAME_ADVERTISE TEXT("ADVERTISE")
  268. #define IACTIONNAME_ADMIN TEXT("ADMIN")
  269. #define IACTIONNAME_SEQUENCE TEXT("SEQUENCE")
  270. #define IACTIONNAME_COLLECTUSERINFO TEXT("CollectUserInfo")
  271. #define IACTIONNAME_FIRSTRUN TEXT("FirstRun")
  272. //__________________________________________________________________________
  273. //
  274. // SummaryInformation property stream property IDs
  275. //__________________________________________________________________________
  276. #undef PID_SECURITY // defined as ( 0x80000002 ) in objidl.h, need to redefine here
  277. // standard property definitions, from OLE2 documentation
  278. #define PID_DICTIONARY ( 0 )// integer count + array of entries
  279. #define PID_CODEPAGE ( 0x1 )// short integer
  280. #define PID_TITLE 2 // string
  281. #define PID_SUBJECT 3 // string
  282. #define PID_AUTHOR 4 // string
  283. #define PID_KEYWORDS 5 // string
  284. #define PID_COMMENTS 6 // string
  285. #define PID_TEMPLATE 7 // string
  286. #define PID_LASTAUTHOR 8 // string
  287. #define PID_REVNUMBER 9 // string
  288. #define PID_EDITTIME 10 // datatime
  289. #define PID_LASTPRINTED 11 // datetime
  290. #define PID_CREATE_DTM 12 // datetime
  291. #define PID_LASTSAVE_DTM 13 // datetime
  292. #define PID_PAGECOUNT 14 // integer
  293. #define PID_WORDCOUNT 15 // integer
  294. #define PID_CHARCOUNT 16 // integer
  295. #define PID_THUMBNAIL 17 // clipboard format + metafile/bitmap (not supported)
  296. #define PID_APPNAME 18 // string
  297. #define PID_SECURITY 19 // integer
  298. // PIDs given specific meanings for Installer
  299. #define PID_MSIVERSION PID_PAGECOUNT // integer, Installer version number (major*100+minor)
  300. #define PID_MSISOURCE PID_WORDCOUNT // integer, type of file image, short/long, media/tree
  301. #define PID_MSIRESTRICT PID_CHARCOUNT // integer, transform restrictions
  302. //__________________________________________________________________________
  303. //
  304. // INSTALLER DATABASE INTEGER COLUMN DEFINITIONS
  305. //__________________________________________________________________________
  306. // BBControl.Attributes
  307. // Control.Attributes
  308. enum msidbControlAttributes
  309. {
  310. msidbControlAttributesVisible = 0x00000001,
  311. msidbControlAttributesEnabled = 0x00000002,
  312. msidbControlAttributesSunken = 0x00000004,
  313. msidbControlAttributesIndirect = 0x00000008,
  314. msidbControlAttributesInteger = 0x00000010,
  315. msidbControlAttributesRTLRO = 0x00000020,
  316. msidbControlAttributesRightAligned = 0x00000040,
  317. msidbControlAttributesLeftScroll = 0x00000080,
  318. msidbControlAttributesBiDi = msidbControlAttributesRTLRO |
  319. msidbControlAttributesRightAligned |
  320. msidbControlAttributesLeftScroll,
  321. // Text controls
  322. msidbControlAttributesTransparent = 0x00010000,
  323. msidbControlAttributesNoPrefix = 0x00020000,
  324. msidbControlAttributesNoWrap = 0x00040000,
  325. msidbControlAttributesFormatSize = 0x00080000,
  326. msidbControlAttributesUsersLanguage = 0x00100000,
  327. // Edit controls
  328. msidbControlAttributesMultiline = 0x00010000,
  329. #if (_WIN32_MSI >= 110)
  330. msidbControlAttributesPasswordInput = 0x00200000,
  331. #endif //(_WIN32_MSI >= 110)
  332. // ProgressBar controls
  333. msidbControlAttributesProgress95 = 0x00010000,
  334. // VolumeSelectCombo and DirectoryCombo controls
  335. msidbControlAttributesRemovableVolume = 0x00010000,
  336. msidbControlAttributesFixedVolume = 0x00020000,
  337. msidbControlAttributesRemoteVolume = 0x00040000,
  338. msidbControlAttributesCDROMVolume = 0x00080000,
  339. msidbControlAttributesRAMDiskVolume = 0x00100000,
  340. msidbControlAttributesFloppyVolume = 0x00200000,
  341. // VolumeCostList controls
  342. msidbControlShowRollbackCost = 0x00400000,
  343. // ListBox and ComboBox controls
  344. msidbControlAttributesSorted = 0x00010000,
  345. msidbControlAttributesComboList = 0x00020000,
  346. // picture button controls
  347. msidbControlAttributesImageHandle = 0x00010000,
  348. msidbControlAttributesPushLike = 0x00020000,
  349. msidbControlAttributesBitmap = 0x00040000,
  350. msidbControlAttributesIcon = 0x00080000,
  351. msidbControlAttributesFixedSize = 0x00100000,
  352. msidbControlAttributesIconSize16 = 0x00200000,
  353. msidbControlAttributesIconSize32 = 0x00400000,
  354. msidbControlAttributesIconSize48 = 0x00600000,
  355. // RadioButton controls
  356. msidbControlAttributesHasBorder = 0x01000000,
  357. };
  358. // CompLocator.Type
  359. // IniLocator.Type
  360. // RegLocator.Type
  361. typedef enum _msidbLocatorType
  362. {
  363. msidbLocatorTypeDirectory = 0x00000000,
  364. msidbLocatorTypeFileName = 0x00000001,
  365. #if (_WIN32_MSI >= 110)
  366. msidbLocatorTypeRawValue = 0x00000002,
  367. #endif //(_WIN32_MSI >= 110)
  368. #if (_WIN32_MSI >= 150)
  369. msidbLocatorType64bit = 0x00000010,
  370. #endif //(_WIN32_MSI >= 150)
  371. } msidbLocatorType;
  372. // Component.Attributes
  373. enum msidbComponentAttributes
  374. {
  375. msidbComponentAttributesLocalOnly = 0x00000000,
  376. msidbComponentAttributesSourceOnly = 0x00000001,
  377. msidbComponentAttributesOptional = 0x00000002, // local or source
  378. msidbComponentAttributesRegistryKeyPath = 0x00000004, // KeyPath is key to Registry table
  379. msidbComponentAttributesSharedDllRefCount = 0x00000008, // increment SharedDll count
  380. msidbComponentAttributesPermanent = 0x00000010, // never uninstall component
  381. msidbComponentAttributesODBCDataSource = 0x00000020, // KeyFile is key to ODBCDataSource table
  382. msidbComponentAttributesTransitive = 0x00000040, // Can transition to/from installed/uninstalled based on changing conditional
  383. msidbComponentAttributesNeverOverwrite = 0x00000080, // dont stomp over existing component if key path exists (file/ regkey)
  384. #if (_WIN32_MSI >= 150)
  385. msidbComponentAttributes64bit = 0x00000100, // designates a 64-bit component; 32-bit if missing.
  386. #endif // (_WIN32_MSI >= 150)
  387. };
  388. #if (_WIN32_MSI >= 150)
  389. // Assembly.Attributes
  390. enum msidbAssemblyAttributes
  391. {
  392. msidbAssemblyAttributesURT = 0x00000000,
  393. msidbAssemblyAttributesWin32 = 0x00000001,
  394. };
  395. #endif // (_WIN32_MSI >= 150)
  396. // CustomAction.Type
  397. enum msidbCustomActionType
  398. {
  399. // executable types
  400. msidbCustomActionTypeDll = 0x00000001, // Target = entry point name
  401. msidbCustomActionTypeExe = 0x00000002, // Target = command line args
  402. msidbCustomActionTypeTextData = 0x00000003, // Target = text string to be formatted and set into property
  403. msidbCustomActionTypeJScript = 0x00000005, // Target = entry point name, null if none to call
  404. msidbCustomActionTypeVBScript = 0x00000006, // Target = entry point name, null if none to call
  405. msidbCustomActionTypeInstall = 0x00000007, // Target = property list for nested engine initialization
  406. // source of code
  407. msidbCustomActionTypeBinaryData = 0x00000000, // Source = Binary.Name, data stored in stream
  408. msidbCustomActionTypeSourceFile = 0x00000010, // Source = File.File, file part of installation
  409. msidbCustomActionTypeDirectory = 0x00000020, // Source = Directory.Directory, folder containing existing file
  410. msidbCustomActionTypeProperty = 0x00000030, // Source = Property.Property, full path to executable
  411. // return processing // default is syncronous execution, process return code
  412. msidbCustomActionTypeContinue = 0x00000040, // ignore action return status, continue running
  413. msidbCustomActionTypeAsync = 0x00000080, // run asynchronously
  414. // execution scheduling flags // default is execute whenever sequenced
  415. msidbCustomActionTypeFirstSequence = 0x00000100, // skip if UI sequence already run
  416. msidbCustomActionTypeOncePerProcess = 0x00000200, // skip if UI sequence already run in same process
  417. msidbCustomActionTypeClientRepeat = 0x00000300, // run on client only if UI already run on client
  418. msidbCustomActionTypeInScript = 0x00000400, // queue for execution within script
  419. msidbCustomActionTypeRollback = 0x00000100, // in conjunction with InScript: queue in Rollback script
  420. msidbCustomActionTypeCommit = 0x00000200, // in conjunction with InScript: run Commit ops from script on success
  421. // security context flag, default to impersonate as user, valid only if InScript
  422. msidbCustomActionTypeNoImpersonate = 0x00000800, // no impersonation, run in system context
  423. #if (_WIN32_MSI >= 150)
  424. msidbCustomActionTypeTSAware = 0x00004000, // impersonate for per-machine installs on TS machines
  425. #endif // (_WIN32_MSI >= 150)
  426. #if (_WIN32_MSI >= 150)
  427. // script requires 64bit process
  428. msidbCustomActionType64BitScript = 0x00001000, // script should run in 64bit process
  429. // don't record the contents of the Target field in the log file.
  430. msidbCustomActionTypeHideTarget = 0x00002000,
  431. #endif // (_WIN32_MSI >= 150)
  432. };
  433. // Dialog.Attributes
  434. enum msidbDialogAttributes
  435. {
  436. msidbDialogAttributesVisible = 0x00000001,
  437. msidbDialogAttributesModal = 0x00000002,
  438. msidbDialogAttributesMinimize = 0x00000004,
  439. msidbDialogAttributesSysModal = 0x00000008,
  440. msidbDialogAttributesKeepModeless = 0x00000010,
  441. msidbDialogAttributesTrackDiskSpace = 0x00000020,
  442. msidbDialogAttributesUseCustomPalette = 0x00000040,
  443. msidbDialogAttributesRTLRO = 0x00000080,
  444. msidbDialogAttributesRightAligned = 0x00000100,
  445. msidbDialogAttributesLeftScroll = 0x00000200,
  446. msidbDialogAttributesBiDi = msidbDialogAttributesRTLRO |
  447. msidbDialogAttributesRightAligned |
  448. msidbDialogAttributesLeftScroll,
  449. msidbDialogAttributesError = 0x00010000,
  450. };
  451. // Feature.Attributes
  452. enum msidbFeatureAttributes
  453. {
  454. msidbFeatureAttributesFavorLocal = 0x00000000,
  455. msidbFeatureAttributesFavorSource = 0x00000001,
  456. msidbFeatureAttributesFollowParent = 0x00000002,
  457. msidbFeatureAttributesFavorAdvertise = 0x00000004,
  458. msidbFeatureAttributesDisallowAdvertise = 0x00000008,
  459. msidbFeatureAttributesUIDisallowAbsent = 0x00000010,
  460. msidbFeatureAttributesNoUnsupportedAdvertise= 0x00000020,
  461. };
  462. // File.Attributes
  463. enum msidbFileAttributes
  464. {
  465. msidbFileAttributesReadOnly = 0x00000001,
  466. msidbFileAttributesHidden = 0x00000002,
  467. msidbFileAttributesSystem = 0x00000004,
  468. msidbFileAttributesReserved0 = 0x00000008, // Internal use only - must be 0
  469. msidbFileAttributesReserved1 = 0x00000040, // Internal use only - must be 0
  470. msidbFileAttributesReserved2 = 0x00000080, // Internal use only - must be 0
  471. msidbFileAttributesReserved3 = 0x00000100, // Internal use only - must be 0
  472. msidbFileAttributesVital = 0x00000200,
  473. msidbFileAttributesChecksum = 0x00000400,
  474. msidbFileAttributesPatchAdded = 0x00001000, // Internal use only - set by patches
  475. msidbFileAttributesNoncompressed = 0x00002000,
  476. msidbFileAttributesCompressed = 0x00004000,
  477. msidbFileAttributesReserved4 = 0x00008000, // Internal use only - must be 0
  478. };
  479. // IniFile.Action
  480. // RemoveIniFile.Action
  481. typedef enum _msidbIniFileAction
  482. {
  483. msidbIniFileActionAddLine = 0x00000000,
  484. msidbIniFileActionCreateLine = 0x00000001,
  485. msidbIniFileActionRemoveLine = 0x00000002,
  486. msidbIniFileActionAddTag = 0x00000003,
  487. msidbIniFileActionRemoveTag = 0x00000004,
  488. } msidbIniFileAction;
  489. // MoveFile.Options
  490. enum msidbMoveFileOptions
  491. {
  492. msidbMoveFileOptionsMove = 0x00000001,
  493. };
  494. // ODBCDataSource.Registration
  495. typedef enum _msidbODBCDataSourceRegistration
  496. {
  497. msidbODBCDataSourceRegistrationPerMachine = 0x00000000,
  498. msidbODBCDataSourceRegistrationPerUser = 0x00000001,
  499. } msidbODBCDataSourceRegistration;
  500. #if (_WIN32_MSI >= 110)
  501. // Class.Attributes
  502. enum msidbClassAttributes
  503. {
  504. msidbClassAttributesRelativePath = 0x00000001,
  505. };
  506. #endif //(_WIN32_MSI >= 110)
  507. // Patch.Attributes
  508. enum msidbPatchAttributes
  509. {
  510. msidbPatchAttributesNonVital = 0x00000001,
  511. };
  512. // Registry.Root
  513. // RegLocator.Root
  514. // RemoveRegistry.Root
  515. enum msidbRegistryRoot
  516. {
  517. msidbRegistryRootClassesRoot = 0,
  518. msidbRegistryRootCurrentUser = 1,
  519. msidbRegistryRootLocalMachine = 2,
  520. msidbRegistryRootUsers = 3,
  521. };
  522. // RemoveFile.InstallMode
  523. enum msidbRemoveFileInstallMode
  524. {
  525. msidbRemoveFileInstallModeOnInstall = 0x00000001,
  526. msidbRemoveFileInstallModeOnRemove = 0x00000002,
  527. msidbRemoveFileInstallModeOnBoth = 0x00000003,
  528. };
  529. // ServiceControl.Event
  530. enum msidbServiceControlEvent
  531. {
  532. msidbServiceControlEventStart = 0x00000001,
  533. msidbServiceControlEventStop = 0x00000002,
  534. msidbServiceControlEventDelete = 0x00000008,
  535. msidbServiceControlEventUninstallStart = 0x00000010,
  536. msidbServiceControlEventUninstallStop = 0x00000020,
  537. msidbServiceControlEventUninstallDelete = 0x00000080,
  538. };
  539. // ServiceInstall.ErrorControl
  540. enum msidbServiceInstallErrorControl
  541. {
  542. msidbServiceInstallErrorControlVital = 0x00008000,
  543. };
  544. // TextStyle.StyleBits
  545. enum msidbTextStyleStyleBits
  546. {
  547. msidbTextStyleStyleBitsBold = 0x00000001,
  548. msidbTextStyleStyleBitsItalic = 0x00000002,
  549. msidbTextStyleStyleBitsUnderline = 0x00000004,
  550. msidbTextStyleStyleBitsStrike = 0x00000008,
  551. };
  552. #if (_WIN32_MSI >= 110)
  553. // Upgrade.Attributes
  554. enum msidbUpgradeAttributes
  555. {
  556. msidbUpgradeAttributesMigrateFeatures = 0x00000001,
  557. msidbUpgradeAttributesOnlyDetect = 0x00000002,
  558. msidbUpgradeAttributesIgnoreRemoveFailure = 0x00000004,
  559. msidbUpgradeAttributesVersionMinInclusive = 0x00000100,
  560. msidbUpgradeAttributesVersionMaxInclusive = 0x00000200,
  561. msidbUpgradeAttributesLanguagesExclusive = 0x00000400,
  562. };
  563. #endif //(_WIN32_MSI >= 110)
  564. //__________________________________________________________________________
  565. //
  566. // SUMMARY INFORMATION PROPERTY DEFINITIONS
  567. //__________________________________________________________________________
  568. enum msidbSumInfoSourceType
  569. {
  570. msidbSumInfoSourceTypeSFN = 0x00000001, // source uses short filenames
  571. msidbSumInfoSourceTypeCompressed = 0x00000002, // source is compressed
  572. msidbSumInfoSourceTypeAdminImage = 0x00000004, // source is an admin image
  573. };
  574. #endif // __MSIDEFS