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 __MSIDEFS
7 #define __MSIDEFS
8 
9 #ifndef NTDDI_WIN2K
10 #define NTDDI_WIN2K 0x05000000
11 #endif
12 #ifndef NTDDI_WINXP
13 #define NTDDI_WINXP 0x05010000
14 #endif
15 #ifndef NTDDI_WINXPSP2
16 #define NTDDI_WINXPSP2 0x05010200
17 #endif
18 #ifndef NTDDI_WS03SP1
19 #define NTDDI_WS03SP1 0x05020100
20 #endif
21 #ifndef NTDDI_VISTA
22 #define NTDDI_VISTA 0x06000000
23 #endif
24 #ifndef NTDDI_VISTASP1
25 #define NTDDI_VISTASP1 0x6000100
26 #endif
27 
28 #ifndef _WIN32_MSI
29 #if _WIN32_WINNT >= 0x0600 || (defined(NTDDI_VERSION) && NTDDI_VERSION >= NTDDI_VISTA)
30 #if defined(NTDDI_VERSION) && NTDDI_VERSION >= NTDDI_VISTASP1
31 #define _WIN32_MSI 450
32 #else
33 #define _WIN32_MSI 400
34 #endif
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 #define IPROPNAME_PRODUCTNAME TEXT("ProductName")
45 #define IPROPNAME_PRODUCTCODE TEXT("ProductCode")
46 #define IPROPNAME_PRODUCTVERSION TEXT("ProductVersion")
47 #define IPROPNAME_INSTALLLANGUAGE TEXT("ProductLanguage")
48 #define IPROPNAME_MANUFACTURER TEXT("Manufacturer")
49 
50 #define IPROPNAME_UPGRADECODE TEXT("UpgradeCode")
51 #define IPROPNAME_PIDTEMPLATE TEXT("PIDTemplate")
52 #define IPROPNAME_DISKPROMPT TEXT("DiskPrompt")
53 #define IPROPNAME_LEFTUNIT TEXT("LeftUnit")
54 #define IPROPNAME_ADMIN_PROPERTIES TEXT("AdminProperties")
55 #define IPROPNAME_DEFAULTUIFONT TEXT("DefaultUIFont")
56 #define IPROPNAME_ALLOWEDPROPERTIES TEXT("SecureCustomProperties")
57 #define IPROPNAME_ENABLEUSERCONTROL TEXT("EnableUserControl")
58 #define IPROPNAME_HIDDEN_PROPERTIES TEXT("MsiHiddenProperties")
59 
60 #define IPROPNAME_USERNAME TEXT("USERNAME")
61 #define IPROPNAME_COMPANYNAME TEXT("COMPANYNAME")
62 #define IPROPNAME_PIDKEY TEXT("PIDKEY")
63 #define IPROPNAME_PATCH TEXT("PATCH")
64 #define IPROPNAME_MSIPATCHREMOVE TEXT("MSIPATCHREMOVE")
65 #define IPROPNAME_TARGETDIR TEXT("TARGETDIR")
66 #define IPROPNAME_ACTION TEXT("ACTION")
67 #define IPROPNAME_LIMITUI TEXT("LIMITUI")
68 #define IPROPNAME_LOGACTION TEXT("LOGACTION")
69 #define IPROPNAME_ALLUSERS TEXT("ALLUSERS")
70 #define IPROPNAME_INSTALLLEVEL TEXT("INSTALLLEVEL")
71 #define IPROPNAME_REBOOT TEXT("REBOOT")
72 #if (_WIN32_MSI >= 110)
73 #define IPROPNAME_REBOOTPROMPT TEXT("REBOOTPROMPT")
74 #endif
75 #define IPROPNAME_EXECUTEMODE TEXT("EXECUTEMODE")
76 #define IPROPVALUE_EXECUTEMODE_NONE TEXT("NONE")
77 #define IPROPVALUE_EXECUTEMODE_SCRIPT TEXT("SCRIPT")
78 #define IPROPNAME_EXECUTEACTION TEXT("EXECUTEACTION")
79 #define IPROPNAME_SOURCELIST TEXT("SOURCELIST")
80 #define IPROPNAME_ROOTDRIVE TEXT("ROOTDRIVE")
81 #define IPROPNAME_TRANSFORMS TEXT("TRANSFORMS")
82 #define IPROPNAME_TRANSFORMSATSOURCE TEXT("TRANSFORMSATSOURCE")
83 #define IPROPNAME_TRANSFORMSSECURE TEXT("TRANSFORMSSECURE")
84 #define IPROPNAME_SEQUENCE TEXT("SEQUENCE")
85 #define IPROPNAME_SHORTFILENAMES TEXT("SHORTFILENAMES")
86 #define IPROPNAME_PRIMARYFOLDER TEXT("PRIMARYFOLDER")
87 #define IPROPNAME_AFTERREBOOT TEXT("AFTERREBOOT")
88 #define IPROPNAME_NOCOMPANYNAME TEXT("NOCOMPANYNAME")
89 #define IPROPNAME_NOUSERNAME TEXT("NOUSERNAME")
90 #define IPROPNAME_DISABLEROLLBACK TEXT("DISABLEROLLBACK")
91 #define IPROPNAME_AVAILABLEFREEREG TEXT("AVAILABLEFREEREG")
92 #define IPROPNAME_DISABLEADVTSHORTCUTS TEXT("DISABLEADVTSHORTCUTS")
93 #define IPROPNAME_PATCHNEWPACKAGECODE TEXT("PATCHNEWPACKAGECODE")
94 
95 #define IPROPNAME_PATCHNEWSUMMARYSUBJECT TEXT("PATCHNEWSUMMARYSUBJECT")
96 
97 #define IPROPNAME_PATCHNEWSUMMARYCOMMENTS TEXT("PATCHNEWSUMMARYCOMMENTS")
98 
99 #define IPROPNAME_PRODUCTLANGUAGE TEXT("PRODUCTLANGUAGE")
100 
101 #if (_WIN32_MSI >= 150)
102 #define IPROPNAME_CHECKCRCS TEXT("MSICHECKCRCS")
103 #define IPROPNAME_MSINODISABLEMEDIA TEXT("MSINODISABLEMEDIA")
104 
105 #define IPROPNAME_CARRYINGNDP TEXT("CARRYINGNDP")
106 #define IPROPVALUE__CARRYINGNDP_URTREINSTALL TEXT("URTREINSTALL")
107 #define IPROPVALUE__CARRYINGNDP_URTUPGRADE TEXT("URTUPGRADE")
108 #define IPROPNAME_ENFORCE_UPGRADE_COMPONENT_RULES TEXT("MSIENFORCEUPGRADECOMPONENTRULES")
109 
110 #define IPROPNAME_MSINEWINSTANCE TEXT("MSINEWINSTANCE")
111 #define IPROPNAME_MSIINSTANCEGUID TEXT("MSIINSTANCEGUID")
112 
113 #define IPROPNAME_MSIPACKAGEDOWNLOADLOCALCOPY TEXT("MSIPACKAGEDOWNLOADLOCALCOPY")
114 #define IPROPNAME_MSIPATCHDOWNLOADLOCALCOPY TEXT("MSIPATCHDOWNLOADLOCALCOPY")
115 #endif
116 
117 #if (_WIN32_MSI >= 300)
118 #define IPROPNAME_MSIDISABLELUAPATCHING TEXT("MSIDISABLELUAPATCHING")
119 #endif
120 
121 #if _WIN32_MSI >= 400
122 #define IPROPNAME_MSILOGGINGMODE TEXT("MsiLogging")
123 #define IPROPNAME_MSILOGFILELOCATION TEXT("MsiLogFileLocation")
124 #define IPROPNAME_MSI_RM_CONTROL TEXT("MSIRESTARTMANAGERCONTROL")
125 #define IPROPVALUE_MSI_RM_CONTROL_DISABLE TEXT("Disable")
126 #define IPROPVALUE_MSI_RM_CONTROL_DISABLESHUTDOWN TEXT("DisableShutdown")
127 #define IPROPNAME_MSI_RM_SESSION_KEY TEXT("MsiRestartManagerSessionKey")
128 #define IPROPNAME_MSI_REBOOT_PENDING TEXT("MsiSystemRebootPending")
129 #define IPROPNAME_MSI_RM_SHUTDOWN TEXT("MSIRMSHUTDOWN")
130 #define IPROPNAME_MSI_RM_DISABLE_RESTART TEXT("MSIDISABLERMRESTART")
131 #define IPROPNAME_MSI_UAC_DEPLOYMENT_COMPLIANT TEXT("MSIDEPLOYMENTCOMPLIANT")
132 #define IPROPNAME_MSI_USE_REAL_ADMIN_DETECTION TEXT("MSIUSEREALADMINDETECTION")
133 #endif
134 
135 #define IPROPNAME_ARPAUTHORIZEDCDFPREFIX TEXT("ARPAUTHORIZEDCDFPREFIX")
136 #define IPROPNAME_ARPCOMMENTS TEXT("ARPCOMMENTS")
137 #define IPROPNAME_ARPCONTACT TEXT("ARPCONTACT")
138 #define IPROPNAME_ARPHELPLINK TEXT("ARPHELPLINK")
139 #define IPROPNAME_ARPHELPTELEPHONE TEXT("ARPHELPTELEPHONE")
140 #define IPROPNAME_ARPINSTALLLOCATION TEXT("ARPINSTALLLOCATION")
141 #define IPROPNAME_ARPNOMODIFY TEXT("ARPNOMODIFY")
142 #define IPROPNAME_ARPNOREMOVE TEXT("ARPNOREMOVE")
143 #define IPROPNAME_ARPNOREPAIR TEXT("ARPNOREPAIR")
144 #define IPROPNAME_ARPREADME TEXT("ARPREADME")
145 #define IPROPNAME_ARPSIZE TEXT("ARPSIZE")
146 #define IPROPNAME_ARPSYSTEMCOMPONENT TEXT("ARPSYSTEMCOMPONENT")
147 #define IPROPNAME_ARPURLINFOABOUT TEXT("ARPURLINFOABOUT")
148 #define IPROPNAME_ARPURLUPDATEINFO TEXT("ARPURLUPDATEINFO")
149 #if (_WIN32_MSI >= 110)
150 #define IPROPNAME_ARPPRODUCTICON TEXT("ARPPRODUCTICON")
151 #if _WIN32_MSI >=  400
152 #define IPROPNAME_ARPSETTINGSIDENTIFIER TEXT("MSIARPSETTINGSIDENTIFIER")
153 #endif
154 #endif
155 
156 #define IPROPNAME_INSTALLED TEXT("Installed")
157 #define IPROPNAME_PRODUCTSTATE TEXT("ProductState")
158 #define IPROPNAME_PRESELECTED TEXT("Preselected")
159 #define IPROPNAME_RESUME TEXT("RESUME")
160 #define IPROPNAME_UPDATESTARTED TEXT("UpdateStarted")
161 #define IPROPNAME_PRODUCTID TEXT("ProductID")
162 #define IPROPNAME_OUTOFDISKSPACE TEXT("OutOfDiskSpace")
163 #define IPROPNAME_OUTOFNORBDISKSPACE TEXT("OutOfNoRbDiskSpace")
164 #define IPROPNAME_COSTINGCOMPLETE TEXT("CostingComplete")
165 #define IPROPNAME_SOURCEDIR TEXT("SourceDir")
166 #define IPROPNAME_REPLACEDINUSEFILES TEXT("ReplacedInUseFiles")
167 #define IPROPNAME_PRIMARYFOLDER_PATH TEXT("PrimaryVolumePath")
168 #define IPROPNAME_PRIMARYFOLDER_SPACEAVAILABLE TEXT("PrimaryVolumeSpaceAvailable")
169 #define IPROPNAME_PRIMARYFOLDER_SPACEREQUIRED TEXT("PrimaryVolumeSpaceRequired")
170 #define IPROPNAME_PRIMARYFOLDER_SPACEREMAINING TEXT("PrimaryVolumeSpaceRemaining")
171 #define IPROPNAME_ISADMINPACKAGE TEXT("IsAdminPackage")
172 #define IPROPNAME_ROLLBACKDISABLED TEXT("RollbackDisabled")
173 #define IPROPNAME_RESTRICTEDUSERCONTROL TEXT("RestrictedUserControl")
174 #if (_WIN32_MSI >= 300)
175 #define IPROPNAME_SOURCERESONLY TEXT("MsiUISourceResOnly")
176 #define IPROPNAME_HIDECANCEL TEXT("MsiUIHideCancel")
177 #define IPROPNAME_PROGRESSONLY TEXT("MsiUIProgressOnly")
178 #endif
179 
180 #define IPROPNAME_TIME TEXT("Time")
181 #define IPROPNAME_DATE TEXT("Date")
182 #define IPROPNAME_DATETIME TEXT("DateTime")
183 
184 #define IPROPNAME_INTEL TEXT("Intel")
185 #if (_WIN32_MSI >= 150)
186 #define IPROPNAME_TEMPLATE_AMD64 TEXT("AMD64")
187 #define IPROPNAME_TEMPLATE_X64 TEXT("x64")
188 #define IPROPNAME_MSIAMD64 TEXT("MsiAMD64")
189 #define IPROPNAME_MSIX64 TEXT("Msix64")
190 #define IPROPNAME_INTEL64 TEXT("Intel64")
191 #else
192 #define IPROPNAME_IA64 TEXT("IA64")
193 #endif
194 #define IPROPNAME_TEXTHEIGHT TEXT("TextHeight")
195 #define IPROPNAME_SCREENX TEXT("ScreenX")
196 #define IPROPNAME_SCREENY TEXT("ScreenY")
197 #define IPROPNAME_CAPTIONHEIGHT TEXT("CaptionHeight")
198 #define IPROPNAME_BORDERTOP TEXT("BorderTop")
199 #define IPROPNAME_BORDERSIDE TEXT("BorderSide")
200 #define IPROPNAME_COLORBITS TEXT("ColorBits")
201 #define IPROPNAME_PHYSICALMEMORY TEXT("PhysicalMemory")
202 #define IPROPNAME_VIRTUALMEMORY TEXT("VirtualMemory")
203 #if (_WIN32_MSI >= 150)
204 #define IPROPNAME_TEXTHEIGHT_CORRECTION TEXT("TextHeightCorrection")
205 #if _WIN32_MSI >= 400
206 #define IPROPNAME_MSITABLETPC TEXT("MsiTabletPC")
207 #endif
208 #endif
209 
210 #define IPROPNAME_VERSIONNT TEXT("VersionNT")
211 #define IPROPNAME_VERSION9X TEXT("Version9X")
212 #if (_WIN32_MSI >= 150)
213 #define IPROPNAME_VERSIONNT64 TEXT("VersionNT64")
214 #endif
215 #define IPROPNAME_WINDOWSBUILD TEXT("WindowsBuild")
216 #define IPROPNAME_SERVICEPACKLEVEL TEXT("ServicePackLevel")
217 #if (_WIN32_MSI >= 110)
218 #define IPROPNAME_SERVICEPACKLEVELMINOR TEXT("ServicePackLevelMinor")
219 #endif
220 #define IPROPNAME_SHAREDWINDOWS TEXT("SharedWindows")
221 #define IPROPNAME_COMPUTERNAME TEXT("ComputerName")
222 #define IPROPNAME_SHELLADVTSUPPORT TEXT("ShellAdvtSupport")
223 #define IPROPNAME_OLEADVTSUPPORT TEXT("OLEAdvtSupport")
224 #define IPROPNAME_SYSTEMLANGUAGEID TEXT("SystemLanguageID")
225 #define IPROPNAME_TTCSUPPORT TEXT("TTCSupport")
226 #define IPROPNAME_TERMSERVER TEXT("TerminalServer")
227 #if (_WIN32_MSI >= 110)
228 #define IPROPNAME_REMOTEADMINTS TEXT("RemoteAdminTS")
229 #define IPROPNAME_REDIRECTEDDLLSUPPORT TEXT("RedirectedDllSupport")
230 #endif
231 #if (_WIN32_MSI >= 150)
232 #define IPROPNAME_NTPRODUCTTYPE TEXT("MsiNTProductType")
233 #define IPROPNAME_NTSUITEBACKOFFICE TEXT("MsiNTSuiteBackOffice")
234 #define IPROPNAME_NTSUITEDATACENTER TEXT("MsiNTSuiteDataCenter")
235 #define IPROPNAME_NTSUITEENTERPRISE TEXT("MsiNTSuiteEnterprise")
236 #define IPROPNAME_NTSUITESMALLBUSINESS TEXT("MsiNTSuiteSmallBusiness")
237 #define IPROPNAME_NTSUITESMALLBUSINESSRESTRICTED TEXT("MsiNTSuiteSmallBusinessRestricted")
238 #define IPROPNAME_NTSUITEPERSONAL TEXT("MsiNTSuitePersonal")
239 #define IPROPNAME_NTSUITEWEBSERVER TEXT("MsiNTSuiteWebServer")
240 #define IPROPNAME_NETASSEMBLYSUPPORT TEXT("MsiNetAssemblySupport")
241 #define IPROPNAME_WIN32ASSEMBLYSUPPORT TEXT("MsiWin32AssemblySupport")
242 #endif
243 
244 #define IPROPNAME_LOGONUSER TEXT("LogonUser")
245 #define IPROPNAME_USERSID TEXT("UserSID")
246 #define IPROPNAME_ADMINUSER TEXT("AdminUser")
247 #define IPROPNAME_USERLANGUAGEID TEXT("UserLanguageID")
248 #define IPROPNAME_PRIVILEGED TEXT("Privileged")
249 #if _WIN32_MSI >= 400
250 #define IPROPNAME_RUNNINGELEVATED TEXT("MsiRunningElevated")
251 #endif
252 
253 #define IPROPNAME_WINDOWS_FOLDER TEXT("WindowsFolder")
254 #define IPROPNAME_SYSTEM_FOLDER TEXT("SystemFolder")
255 #define IPROPNAME_SYSTEM16_FOLDER TEXT("System16Folder")
256 #define IPROPNAME_WINDOWS_VOLUME TEXT("WindowsVolume")
257 #define IPROPNAME_TEMP_FOLDER TEXT("TempFolder")
258 #define IPROPNAME_PROGRAMFILES_FOLDER TEXT("ProgramFilesFolder")
259 #define IPROPNAME_COMMONFILES_FOLDER TEXT("CommonFilesFolder")
260 #if (_WIN32_MSI >= 150)
261 #define IPROPNAME_SYSTEM64_FOLDER TEXT("System64Folder")
262 #define IPROPNAME_PROGRAMFILES64_FOLDER TEXT("ProgramFiles64Folder")
263 #define IPROPNAME_COMMONFILES64_FOLDER TEXT("CommonFiles64Folder")
264 #endif
265 #define IPROPNAME_STARTMENU_FOLDER TEXT("StartMenuFolder")
266 #define IPROPNAME_PROGRAMMENU_FOLDER TEXT("ProgramMenuFolder")
267 #define IPROPNAME_STARTUP_FOLDER TEXT("StartupFolder")
268 #define IPROPNAME_NETHOOD_FOLDER TEXT("NetHoodFolder")
269 #define IPROPNAME_PERSONAL_FOLDER TEXT("PersonalFolder")
270 #define IPROPNAME_SENDTO_FOLDER TEXT("SendToFolder")
271 #define IPROPNAME_DESKTOP_FOLDER TEXT("DesktopFolder")
272 #define IPROPNAME_TEMPLATE_FOLDER TEXT("TemplateFolder")
273 #define IPROPNAME_FONTS_FOLDER TEXT("FontsFolder")
274 #define IPROPNAME_FAVORITES_FOLDER TEXT("FavoritesFolder")
275 #define IPROPNAME_RECENT_FOLDER TEXT("RecentFolder")
276 #define IPROPNAME_APPDATA_FOLDER TEXT("AppDataFolder")
277 #define IPROPNAME_PRINTHOOD_FOLDER TEXT("PrintHoodFolder")
278 #if (_WIN32_MSI >= 110)
279 #define IPROPNAME_ADMINTOOLS_FOLDER TEXT("AdminToolsFolder")
280 #define IPROPNAME_COMMONAPPDATA_FOLDER TEXT("CommonAppDataFolder")
281 #define IPROPNAME_LOCALAPPDATA_FOLDER TEXT("LocalAppDataFolder")
282 #define IPROPNAME_MYPICTURES_FOLDER TEXT("MyPicturesFolder")
283 #endif
284 
285 #define IPROPNAME_FEATUREADDLOCAL TEXT("ADDLOCAL")
286 #define IPROPNAME_FEATUREADDSOURCE TEXT("ADDSOURCE")
287 #define IPROPNAME_FEATUREADDDEFAULT TEXT("ADDDEFAULT")
288 #define IPROPNAME_FEATUREREMOVE TEXT("REMOVE")
289 #define IPROPNAME_FEATUREADVERTISE TEXT("ADVERTISE")
290 #define IPROPVALUE_FEATURE_ALL TEXT("ALL")
291 
292 #define IPROPNAME_COMPONENTADDLOCAL TEXT("COMPADDLOCAL")
293 #define IPROPNAME_COMPONENTADDSOURCE TEXT("COMPADDSOURCE")
294 #define IPROPNAME_COMPONENTADDDEFAULT TEXT("COMPADDDEFAULT")
295 
296 #define IPROPNAME_FILEADDLOCAL TEXT("FILEADDLOCAL")
297 #define IPROPNAME_FILEADDSOURCE TEXT("FILEADDSOURCE")
298 #define IPROPNAME_FILEADDDEFAULT TEXT("FILEADDDEFAULT")
299 
300 #define IPROPNAME_REINSTALL TEXT("REINSTALL")
301 #define IPROPNAME_REINSTALLMODE TEXT("REINSTALLMODE")
302 #define IPROPNAME_PROMPTROLLBACKCOST TEXT("PROMPTROLLBACKCOST")
303 #define IPROPVALUE_RBCOST_PROMPT TEXT("P")
304 #define IPROPVALUE_RBCOST_SILENT TEXT("D")
305 #define IPROPVALUE_RBCOST_FAIL TEXT("F")
306 
307 #define IPROPNAME_CUSTOMACTIONDATA TEXT("CustomActionData")
308 
309 #define IACTIONNAME_INSTALL TEXT("INSTALL")
310 #define IACTIONNAME_ADVERTISE TEXT("ADVERTISE")
311 #define IACTIONNAME_ADMIN TEXT("ADMIN")
312 #define IACTIONNAME_SEQUENCE TEXT("SEQUENCE")
313 #define IACTIONNAME_COLLECTUSERINFO TEXT("CollectUserInfo")
314 #define IACTIONNAME_FIRSTRUN TEXT("FirstRun")
315 
316 #undef PID_SECURITY
317 
318 #define PID_DICTIONARY (0)
319 #define PID_CODEPAGE (0x1)
320 #define PID_TITLE 2
321 #define PID_SUBJECT 3
322 #define PID_AUTHOR 4
323 #define PID_KEYWORDS 5
324 #define PID_COMMENTS 6
325 #define PID_TEMPLATE 7
326 #define PID_LASTAUTHOR 8
327 #define PID_REVNUMBER 9
328 #define PID_EDITTIME 10
329 #define PID_LASTPRINTED 11
330 #define PID_CREATE_DTM 12
331 #define PID_LASTSAVE_DTM 13
332 #define PID_PAGECOUNT 14
333 #define PID_WORDCOUNT 15
334 #define PID_CHARCOUNT 16
335 #define PID_THUMBNAIL 17
336 #define PID_APPNAME 18
337 #define PID_SECURITY 19
338 
339 #define PID_MSIVERSION PID_PAGECOUNT
340 #define PID_MSISOURCE PID_WORDCOUNT
341 #define PID_MSIRESTRICT PID_CHARCOUNT
342 
343 enum msidbControlAttributes {
344   msidbControlAttributesVisible = 0x00000001,msidbControlAttributesEnabled = 0x00000002,msidbControlAttributesSunken = 0x00000004,
345   msidbControlAttributesIndirect = 0x00000008,msidbControlAttributesInteger = 0x00000010,msidbControlAttributesRTLRO = 0x00000020,
346   msidbControlAttributesRightAligned = 0x00000040,msidbControlAttributesLeftScroll = 0x00000080,
347   msidbControlAttributesBiDi = msidbControlAttributesRTLRO | msidbControlAttributesRightAligned | msidbControlAttributesLeftScroll,
348   msidbControlAttributesTransparent = 0x00010000,msidbControlAttributesNoPrefix = 0x00020000,msidbControlAttributesNoWrap = 0x00040000,
349   msidbControlAttributesFormatSize = 0x00080000,msidbControlAttributesUsersLanguage = 0x00100000,msidbControlAttributesMultiline = 0x00010000,
350 #if (_WIN32_MSI >= 110)
351   msidbControlAttributesPasswordInput = 0x00200000,
352 #endif
353   msidbControlAttributesProgress95 = 0x00010000,msidbControlAttributesRemovableVolume = 0x00010000,msidbControlAttributesFixedVolume = 0x00020000,
354   msidbControlAttributesRemoteVolume = 0x00040000,msidbControlAttributesCDROMVolume = 0x00080000,msidbControlAttributesRAMDiskVolume = 0x00100000,
355   msidbControlAttributesFloppyVolume = 0x00200000,msidbControlShowRollbackCost = 0x00400000,msidbControlAttributesSorted = 0x00010000,
356   msidbControlAttributesComboList = 0x00020000,msidbControlAttributesImageHandle = 0x00010000,msidbControlAttributesPushLike = 0x00020000,
357   msidbControlAttributesBitmap = 0x00040000,msidbControlAttributesIcon = 0x00080000,msidbControlAttributesFixedSize = 0x00100000,
358   msidbControlAttributesIconSize16 = 0x00200000,msidbControlAttributesIconSize32 = 0x00400000,msidbControlAttributesIconSize48 = 0x00600000,
359   msidbControlAttributesHasBorder = 0x01000000
360 };
361 
362 typedef enum _msidbLocatorType {
363   msidbLocatorTypeDirectory = 0x0,
364   msidbLocatorTypeFileName = 0x1
365 #if (_WIN32_MSI >= 110)
366   ,msidbLocatorTypeRawValue = 0x2
367 #endif
368 #if (_WIN32_MSI >= 150)
369   ,msidbLocatorType64bit = 0x10
370 #endif
371 } msidbLocatorType;
372 
373 enum msidbComponentAttributes {
374   msidbComponentAttributesLocalOnly = 0x00000000,msidbComponentAttributesSourceOnly = 0x00000001,msidbComponentAttributesOptional = 0x00000002,
375   msidbComponentAttributesRegistryKeyPath = 0x00000004,msidbComponentAttributesSharedDllRefCount = 0x00000008,
376   msidbComponentAttributesPermanent = 0x00000010,msidbComponentAttributesODBCDataSource = 0x00000020,msidbComponentAttributesTransitive = 0x00000040,
377   msidbComponentAttributesNeverOverwrite = 0x00000080
378 #if (_WIN32_MSI >= 150)
379   ,msidbComponentAttributes64bit = 0x00000100
380 #if _WIN32_MSI >= 400
381   ,msidbComponentAttributesDisableRegistryReflection = 0x00000200
382 #endif
383 #endif
384 };
385 
386 #if (_WIN32_MSI >= 150)
387 enum msidbAssemblyAttributes {
388   msidbAssemblyAttributesURT = 0x00000000,msidbAssemblyAttributesWin32 = 0x00000001
389 };
390 #endif
391 
392 enum msidbCustomActionType {
393   msidbCustomActionTypeDll = 0x00000001,msidbCustomActionTypeExe = 0x00000002,msidbCustomActionTypeTextData = 0x00000003,
394   msidbCustomActionTypeJScript = 0x00000005,msidbCustomActionTypeVBScript = 0x00000006,msidbCustomActionTypeInstall = 0x00000007,
395   msidbCustomActionTypeBinaryData = 0x00000000,msidbCustomActionTypeSourceFile = 0x00000010,msidbCustomActionTypeDirectory = 0x00000020,
396   msidbCustomActionTypeProperty = 0x00000030,msidbCustomActionTypeContinue = 0x00000040,msidbCustomActionTypeAsync = 0x00000080,
397   msidbCustomActionTypeFirstSequence = 0x00000100,msidbCustomActionTypeOncePerProcess = 0x00000200,msidbCustomActionTypeClientRepeat = 0x00000300,
398   msidbCustomActionTypeInScript = 0x00000400,msidbCustomActionTypeRollback = 0x00000100,msidbCustomActionTypeCommit = 0x00000200,
399   msidbCustomActionTypeNoImpersonate = 0x00000800
400 #if (_WIN32_MSI >= 150)
401   ,msidbCustomActionTypeTSAware = 0x00004000
402 #endif
403 #if (_WIN32_MSI >= 150)
404   ,msidbCustomActionType64BitScript = 0x00001000,msidbCustomActionTypeHideTarget = 0x00002000
405 #if _WIN32_MSI >= 450
406   ,msidbCustomActionTypePatchUninstall = 0x00008000
407 #endif
408 #endif
409 };
410 
411 enum msidbDialogAttributes {
412   msidbDialogAttributesVisible = 0x00000001,msidbDialogAttributesModal = 0x00000002,msidbDialogAttributesMinimize = 0x00000004,
413   msidbDialogAttributesSysModal = 0x00000008,msidbDialogAttributesKeepModeless = 0x00000010,msidbDialogAttributesTrackDiskSpace = 0x00000020,
414   msidbDialogAttributesUseCustomPalette = 0x00000040,msidbDialogAttributesRTLRO = 0x00000080,msidbDialogAttributesRightAligned = 0x00000100,
415   msidbDialogAttributesLeftScroll = 0x00000200,msidbDialogAttributesBiDi = msidbDialogAttributesRTLRO | msidbDialogAttributesRightAligned | msidbDialogAttributesLeftScroll,
416   msidbDialogAttributesError = 0x00010000
417 };
418 
419 enum msidbFeatureAttributes {
420   msidbFeatureAttributesFavorLocal = 0x00000000,msidbFeatureAttributesFavorSource = 0x00000001,msidbFeatureAttributesFollowParent = 0x00000002,
421   msidbFeatureAttributesFavorAdvertise = 0x00000004,msidbFeatureAttributesDisallowAdvertise = 0x00000008,
422   msidbFeatureAttributesUIDisallowAbsent = 0x00000010,msidbFeatureAttributesNoUnsupportedAdvertise= 0x00000020
423 };
424 
425 enum msidbFileAttributes {
426   msidbFileAttributesReadOnly = 0x00000001,msidbFileAttributesHidden = 0x00000002,msidbFileAttributesSystem = 0x00000004,
427   msidbFileAttributesReserved0 = 0x00000008,msidbFileAttributesReserved1 = 0x00000040,msidbFileAttributesReserved2 = 0x00000080,
428   msidbFileAttributesReserved3 = 0x00000100,msidbFileAttributesVital = 0x00000200,msidbFileAttributesChecksum = 0x00000400,
429   msidbFileAttributesPatchAdded = 0x00001000,msidbFileAttributesNoncompressed = 0x00002000,msidbFileAttributesCompressed = 0x00004000,
430   msidbFileAttributesReserved4 = 0x00008000
431 };
432 
433 typedef enum _msidbIniFileAction {
434   msidbIniFileActionAddLine = 0x00000000,msidbIniFileActionCreateLine = 0x00000001,msidbIniFileActionRemoveLine = 0x00000002,
435   msidbIniFileActionAddTag = 0x00000003,msidbIniFileActionRemoveTag = 0x00000004
436 } msidbIniFileAction;
437 
438 enum msidbMoveFileOptions {
439   msidbMoveFileOptionsMove = 0x00000001
440 };
441 
442 typedef enum _msidbODBCDataSourceRegistration {
443   msidbODBCDataSourceRegistrationPerMachine = 0x00000000,msidbODBCDataSourceRegistrationPerUser = 0x00000001
444 } msidbODBCDataSourceRegistration;
445 
446 #if (_WIN32_MSI >= 110)
447 enum msidbClassAttributes {
448   msidbClassAttributesRelativePath = 0x00000001
449 };
450 #endif
451 
452 enum msidbPatchAttributes {
453   msidbPatchAttributesNonVital = 0x00000001
454 };
455 
456 enum msidbRegistryRoot {
457   msidbRegistryRootClassesRoot = 0,msidbRegistryRootCurrentUser = 1,msidbRegistryRootLocalMachine = 2,msidbRegistryRootUsers = 3
458 };
459 
460 enum msidbRemoveFileInstallMode {
461   msidbRemoveFileInstallModeOnInstall = 0x00000001,msidbRemoveFileInstallModeOnRemove = 0x00000002,msidbRemoveFileInstallModeOnBoth = 0x00000003
462 };
463 
464 enum msidbServiceControlEvent {
465   msidbServiceControlEventStart = 0x00000001,msidbServiceControlEventStop = 0x00000002,msidbServiceControlEventDelete = 0x00000008,
466   msidbServiceControlEventUninstallStart = 0x00000010,msidbServiceControlEventUninstallStop = 0x00000020,
467   msidbServiceControlEventUninstallDelete = 0x00000080
468 };
469 
470 enum msidbServiceInstallErrorControl {
471   msidbServiceInstallErrorControlVital = 0x00008000
472 };
473 
474 enum msidbTextStyleStyleBits {
475   msidbTextStyleStyleBitsBold = 0x00000001,msidbTextStyleStyleBitsItalic = 0x00000002,msidbTextStyleStyleBitsUnderline = 0x00000004,
476   msidbTextStyleStyleBitsStrike = 0x00000008
477 };
478 
479 #if (_WIN32_MSI >= 110)
480 enum msidbUpgradeAttributes {
481   msidbUpgradeAttributesMigrateFeatures = 0x00000001,msidbUpgradeAttributesOnlyDetect = 0x00000002,
482   msidbUpgradeAttributesIgnoreRemoveFailure = 0x00000004,msidbUpgradeAttributesVersionMinInclusive = 0x00000100,
483   msidbUpgradeAttributesVersionMaxInclusive = 0x00000200,msidbUpgradeAttributesLanguagesExclusive = 0x00000400
484 };
485 #endif
486 
487 #if _WIN32_MSI >= 450
488 enum msidbEmbeddedUIAttributes {
489   msidbEmbeddedUI = 0x1, msidbEmbeddedHandlesBasic = 0x02
490 };
491 #endif
492 
493 enum msidbSumInfoSourceType {
494   msidbSumInfoSourceTypeSFN = 0x00000001,msidbSumInfoSourceTypeCompressed = 0x00000002,
495   msidbSumInfoSourceTypeAdminImage = 0x00000004
496 #if _WIN32_MSI >= 400
497   ,msidbSumInfoSourceTypeLUAPackage = 0x00000008
498 #endif
499 };
500 
501 #if _WIN32_MSI >= 400
502 enum msirbRebootType {
503   msirbRebootImmediate = 1, msirbRebootDeferred = 2
504 };
505 
506 enum msirbRebootReason {
507   msirbRebootUndeterminedReason = 0, msirbRebootInUseFilesReason = 1,
508   msirbRebootScheduleRebootReason = 2, msirbRebootForceRebootReason = 3,
509   msirbRebootCustomActionReason = 4
510 };
511 #endif
512 #endif
513