aboutsummaryrefslogtreecommitdiff
path: root/src/dtf/WixToolset.Dtf.WindowsInstaller/ColumnEnums.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/dtf/WixToolset.Dtf.WindowsInstaller/ColumnEnums.cs')
-rw-r--r--src/dtf/WixToolset.Dtf.WindowsInstaller/ColumnEnums.cs689
1 files changed, 689 insertions, 0 deletions
diff --git a/src/dtf/WixToolset.Dtf.WindowsInstaller/ColumnEnums.cs b/src/dtf/WixToolset.Dtf.WindowsInstaller/ColumnEnums.cs
new file mode 100644
index 00000000..ad0a945b
--- /dev/null
+++ b/src/dtf/WixToolset.Dtf.WindowsInstaller/ColumnEnums.cs
@@ -0,0 +1,689 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolset.Dtf.WindowsInstaller
4{
5 using System;
6 using System.Diagnostics.CodeAnalysis;
7
8 // Enumerations are in alphabetical order.
9
10 /// <summary>
11 /// Available values for the Attributes column of the Component table.
12 /// </summary>
13 [Flags]
14 public enum ComponentAttributes : int
15 {
16 /// <summary>
17 /// Local only - Component cannot be run from source.
18 /// </summary>
19 /// <remarks><p>
20 /// Set this value for all components belonging to a feature to prevent the feature from being run-from-network or
21 /// run-from-source. Note that if a feature has no components, the feature always shows run-from-source and
22 /// run-from-my-computer as valid options.
23 /// </p></remarks>
24 None = 0x0000,
25
26 /// <summary>
27 /// Component can only be run from source.
28 /// </summary>
29 /// <remarks><p>
30 /// Set this bit for all components belonging to a feature to prevent the feature from being run-from-my-computer.
31 /// Note that if a feature has no components, the feature always shows run-from-source and run-from-my-computer
32 /// as valid options.
33 /// </p></remarks>
34 SourceOnly = 0x0001,
35
36 /// <summary>
37 /// Component can run locally or from source.
38 /// </summary>
39 Optional = 0x0002,
40
41 /// <summary>
42 /// If this bit is set, the value in the KeyPath column is used as a key into the Registry table.
43 /// </summary>
44 /// <remarks><p>
45 /// If the Value field of the corresponding record in the Registry table is null, the Name field in that record
46 /// must not contain "+", "-", or "*". For more information, see the description of the Name field in Registry
47 /// table.
48 /// <p>Setting this bit is recommended for registry entries written to the HKCU hive. This ensures the installer
49 /// writes the necessary HKCU registry entries when there are multiple users on the same machine.</p>
50 /// </p></remarks>
51 RegistryKeyPath = 0x0004,
52
53 /// <summary>
54 /// If this bit is set, the installer increments the reference count in the shared DLL registry of the component's
55 /// key file. If this bit is not set, the installer increments the reference count only if the reference count
56 /// already exists.
57 /// </summary>
58 SharedDllRefCount = 0x0008,
59
60 /// <summary>
61 /// If this bit is set, the installer does not remove the component during an uninstall. The installer registers
62 /// an extra system client for the component in the Windows Installer registry settings.
63 /// </summary>
64 Permanent = 0x0010,
65
66 /// <summary>
67 /// If this bit is set, the value in the KeyPath column is a key into the ODBCDataSource table.
68 /// </summary>
69 OdbcDataSource = 0x0020,
70
71 /// <summary>
72 /// If this bit is set, the installer reevaluates the value of the statement in the Condition column upon a reinstall.
73 /// If the value was previously False and has changed to true, the installer installs the component. If the value
74 /// was previously true and has changed to false, the installer removes the component even if the component has
75 /// other products as clients.
76 /// </summary>
77 Transitive = 0x0040,
78
79 /// <summary>
80 /// If this bit is set, the installer does not install or reinstall the component if a key path file or a key path
81 /// registry entry for the component already exists. The application does register itself as a client of the component.
82 /// </summary>
83 /// <remarks><p>
84 /// Use this flag only for components that are being registered by the Registry table. Do not use this flag for
85 /// components registered by the AppId, Class, Extension, ProgId, MIME, and Verb tables.
86 /// </p></remarks>
87 NeverOverwrite = 0x0080,
88
89 /// <summary>
90 /// Set this bit to mark this as a 64-bit component. This attribute facilitates the installation of packages that
91 /// include both 32-bit and 64-bit components. If this bit is not set, the component is registered as a 32-bit component.
92 /// </summary>
93 /// <remarks><p>
94 /// If this is a 64-bit component replacing a 32-bit component, set this bit and assign a new GUID in the
95 /// ComponentId column.
96 /// </p></remarks>
97 SixtyFourBit = 0x0100,
98
99 /// <summary>
100 /// Set this bit to disable registry reflection on all existing and new registry keys affected by this component.
101 /// </summary>
102 /// <remarks><p>
103 /// If this bit is set, the Windows Installer calls the RegDisableReflectionKey on each key being accessed by the component.
104 /// This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems.
105 /// </p></remarks>
106 DisableRegistryReflection = 0x0200,
107
108 /// <summary>
109 /// [MSI 4.5] Set this bit for a component in a patch package to prevent leaving orphan components on the computer.
110 /// </summary>
111 /// <remarks><p>
112 /// If a subsequent patch is installed, marked with the SupersedeEarlier flag in its MsiPatchSequence
113 /// table to supersede the first patch, Windows Installer 4.5 can unregister and uninstall components marked with the
114 /// UninstallOnSupersedence value. If the component is not marked with this bit, installation of a superseding patch can leave
115 /// behind an unused component on the computer.
116 /// </p></remarks>
117 [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Supersedence")]
118 UninstallOnSupersedence = 0x0400,
119
120 /// <summary>
121 /// [MSI 4.5] If a component is marked with this attribute value in at least one package installed on the system,
122 /// the installer treats the component as marked in all packages. If a package that shares the marked component
123 /// is uninstalled, Windows Installer 4.5 can continue to share the highest version of the component on the system,
124 /// even if that highest version was installed by the package that is being uninstalled.
125 /// </summary>
126 Shared = 0x0800,
127 }
128
129 /// <summary>
130 /// Defines flags for the Attributes column of the Control table.
131 /// </summary>
132 [Flags]
133 public enum ControlAttributes : int
134 {
135 /// <summary>If this bit is set, the control is visible on the dialog box.</summary>
136 Visible = 0x00000001,
137
138 /// <summary>specifies if the given control is enabled or disabled. Most controls appear gray when disabled.</summary>
139 Enabled = 0x00000002,
140
141 /// <summary>If this bit is set, the control is displayed with a sunken, three dimensional look.</summary>
142 Sunken = 0x00000004,
143
144 /// <summary>The Indirect control attribute specifies whether the value displayed or changed by this control is referenced indirectly.</summary>
145 Indirect = 0x00000008,
146
147 /// <summary>If this bit is set on a control, the associated property specified in the Property column of the Control table is an integer.</summary>
148 Integer = 0x00000010,
149
150 /// <summary>If this bit is set the text in the control is displayed in a right-to-left reading order.</summary>
151 RightToLeftReadingOrder = 0x00000020,
152
153 /// <summary>If this style bit is set, text in the control is aligned to the right.</summary>
154 RightAligned = 0x00000040,
155
156 /// <summary>If this bit is set, the scroll bar is located on the left side of the control, otherwise it is on the right.</summary>
157 LeftScroll = 0x00000080,
158
159 /// <summary>This is a combination of the RightToLeftReadingOrder, RightAligned, and LeftScroll attributes.</summary>
160 Bidirectional = RightToLeftReadingOrder | RightAligned | LeftScroll,
161
162 /// <summary>If this bit is set on a text control, the control is displayed transparently with the background showing through the control where there are no characters.</summary>
163 Transparent = 0x00010000,
164
165 /// <summary>If this bit is set on a text control, the occurrence of the character "&amp;" in a text string is displayed as itself.</summary>
166 NoPrefix = 0x00020000,
167
168 /// <summary>If this bit is set the text in the control is displayed on a single line.</summary>
169 NoWrap = 0x00040000,
170
171 /// <summary>If this bit is set for a text control, the control will automatically attempt to format the displayed text as a number representing a count of bytes.</summary>
172 FormatSize = 0x00080000,
173
174 /// <summary>If this bit is set, fonts are created using the user's default UI code page. Otherwise it is created using the database code page.</summary>
175 UsersLanguage = 0x00100000,
176
177 /// <summary>If this bit is set on an Edit control, the installer creates a multiple line edit control with a vertical scroll bar.</summary>
178 Multiline = 0x00010000,
179
180 /// <summary>This attribute creates an edit control for entering passwords. The control displays each character as an asterisk (*) as they are typed into the control.</summary>
181 PasswordInput = 0x00200000,
182
183 /// <summary>If this bit is set on a ProgressBar control, the bar is drawn as a series of small rectangles in Microsoft Windows 95-style. Otherwise it is drawn as a single continuous rectangle.</summary>
184 Progress95 = 0x00010000,
185
186 /// <summary>If this bit is set, the control shows removable volumes.</summary>
187 RemovableVolume = 0x00010000,
188
189 /// <summary>If this bit is set, the control shows fixed internal hard drives.</summary>
190 FixedVolume = 0x00020000,
191
192 /// <summary>If this bit is set, the control shows remote volumes.</summary>
193 RemoteVolume = 0x00040000,
194
195 /// <summary>If this bit is set, the control shows CD-ROM volumes.</summary>
196 [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Cdrom")]
197 CdromVolume = 0x00080000,
198
199 /// <summary>If this bit is set, the control shows RAM disk volumes.</summary>
200 RamDiskVolume = 0x00100000,
201
202 /// <summary>If this bit is set, the control shows floppy volumes.</summary>
203 FloppyVolume = 0x00200000,
204
205 /// <summary>Specifies whether or not the rollback backup files are included in the costs displayed by the VolumeCostList control.</summary>
206 ShowRollbackCost = 0x00400000,
207
208 /// <summary>If this bit is set, the items listed in the control are displayed in a specified order. Otherwise, items are displayed in alphabetical order.</summary>
209 Sorted = 0x00010000,
210
211 /// <summary>If this bit is set on a combo box, the edit field is replaced by a static text field. This prevents a user from entering a new value and requires the user to choose only one of the predefined values.</summary>
212 ComboList = 0x00020000,
213
214 //ImageHandle = 0x00010000,
215
216 /// <summary>If this bit is set on a check box or a radio button group, the button is drawn with the appearance of a push button, but its logic stays the same.</summary>
217 PushLike = 0x00020000,
218
219 /// <summary>If this bit is set, the text in the control is replaced by a bitmap image. The Text column in the Control table is a foreign key into the Binary table.</summary>
220 Bitmap = 0x00040000,
221
222 /// <summary>If this bit is set, text is replaced by an icon image and the Text column in the Control table is a foreign key into the Binary table.</summary>
223 Icon = 0x00080000,
224
225 /// <summary>If this bit is set, the picture is cropped or centered in the control without changing its shape or size.</summary>
226 FixedSize = 0x00100000,
227
228 /// <summary>Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.</summary>
229 IconSize16 = 0x00200000,
230
231 /// <summary>Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.</summary>
232 IconSize32 = 0x00400000,
233
234 /// <summary>Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.</summary>
235 IconSize48 = 0x00600000,
236
237 /// <summary>If this bit is set, and the installation is not yet running with elevated privileges, the control is created with a UAC icon.</summary>
238 ElevationShield = 0x00800000,
239
240 /// <summary>If this bit is set, the RadioButtonGroup has text and a border displayed around it.</summary>
241 HasBorder = 0x01000000,
242 }
243
244 /// <summary>
245 /// Defines flags for the Type column of the CustomAction table.
246 /// </summary>
247 [SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags")]
248 [Flags]
249 public enum CustomActionTypes : int
250 {
251 /// <summary>Unspecified custom action type.</summary>
252 None = 0x0000,
253
254 /// <summary>Target = entry point name</summary>
255 Dll = 0x0001,
256
257 /// <summary>Target = command line args</summary>
258 Exe = 0x0002,
259
260 /// <summary>Target = text string to be formatted and set into property</summary>
261 TextData = 0x0003,
262
263 /// <summary>Target = entry point name, null if none to call</summary>
264 JScript = 0x0005,
265
266 /// <summary>Target = entry point name, null if none to call</summary>
267 VBScript = 0x0006,
268
269 /// <summary>Target = property list for nested engine initialization</summary>
270 Install = 0x0007,
271
272 /// <summary>Source = File.File, file part of installation</summary>
273 SourceFile = 0x0010,
274
275 /// <summary>Source = Directory.Directory, folder containing existing file</summary>
276 Directory = 0x0020,
277
278 /// <summary>Source = Property.Property, full path to executable</summary>
279 Property = 0x0030,
280
281 /// <summary>Ignore action return status, continue running</summary>
282 Continue = 0x0040,
283
284 /// <summary>Run asynchronously</summary>
285 Async = 0x0080,
286
287 /// <summary>Skip if UI sequence already run</summary>
288 FirstSequence = 0x0100,
289
290 /// <summary>Skip if UI sequence already run in same process</summary>
291 OncePerProcess = 0x0200,
292
293 /// <summary>Run on client only if UI already run on client</summary>
294 ClientRepeat = 0x0300,
295
296 /// <summary>Queue for execution within script</summary>
297 InScript = 0x0400,
298
299 /// <summary>In conjunction with InScript: queue in Rollback script</summary>
300 Rollback = 0x0100,
301
302 /// <summary>In conjunction with InScript: run Commit ops from script on success</summary>
303 Commit = 0x0200,
304
305 /// <summary>No impersonation, run in system context</summary>
306 NoImpersonate = 0x0800,
307
308 /// <summary>Impersonate for per-machine installs on TS machines</summary>
309 TSAware = 0x4000,
310
311 /// <summary>Script requires 64bit process</summary>
312 SixtyFourBitScript = 0x1000,
313
314 /// <summary>Don't record the contents of the Target field in the log file</summary>
315 HideTarget = 0x2000,
316
317 /// <summary>The custom action runs only when a patch is being uninstalled</summary>
318 PatchUninstall = 0x8000,
319 }
320
321 /// <summary>
322 /// Defines flags for the Attributes column of the Dialog table.
323 /// </summary>
324 [Flags]
325 public enum DialogAttributes : int
326 {
327 /// <summary>If this bit is set, the dialog is originally created as visible, otherwise it is hidden.</summary>
328 Visible = 0x00000001,
329
330 /// <summary>If this bit is set, the dialog box is modal, other dialogs of the same application cannot be put on top of it, and the dialog keeps the control while it is running.</summary>
331 Modal = 0x00000002,
332
333 /// <summary>If this bit is set, the dialog box can be minimized. This bit is ignored for modal dialog boxes, which cannot be minimized.</summary>
334 Minimize = 0x00000004,
335
336 /// <summary>If this style bit is set, the dialog box will stop all other applications and no other applications can take the focus.</summary>
337 SysModal = 0x00000008,
338
339 /// <summary>If this bit is set, the other dialogs stay alive when this dialog box is created.</summary>
340 KeepModeless = 0x00000010,
341
342 /// <summary>If this bit is set, the dialog box periodically calls the installer. If the property changes, it notifies the controls on the dialog.</summary>
343 TrackDiskSpace = 0x00000020,
344
345 /// <summary>If this bit is set, the pictures on the dialog box are created with the custom palette (one per dialog received from the first control created).</summary>
346 UseCustomPalette = 0x00000040,
347
348 /// <summary>If this style bit is set the text in the dialog box is displayed in right-to-left-reading order.</summary>
349 RightToLeftReadingOrder = 0x00000080,
350
351 /// <summary>If this style bit is set, the text is aligned on the right side of the dialog box.</summary>
352 RightAligned = 0x00000100,
353
354 /// <summary>If this style bit is set, the scroll bar is located on the left side of the dialog box.</summary>
355 LeftScroll = 0x00000200,
356
357 /// <summary>This is a combination of the RightToLeftReadingOrder, RightAligned, and the LeftScroll dialog style bits.</summary>
358 Bidirectional = RightToLeftReadingOrder | RightAligned | LeftScroll,
359
360 /// <summary>If this bit is set, the dialog box is an error dialog.</summary>
361 Error = 0x00010000,
362 }
363
364 /// <summary>
365 /// Available values for the Attributes column of the Feature table.
366 /// </summary>
367 [Flags]
368 public enum FeatureAttributes : int
369 {
370 /// <summary>
371 /// Favor local - Components of this feature that are not marked for installation from source are installed locally.
372 /// </summary>
373 /// <remarks><p>
374 /// A component shared by two or more features, some of which are set to FavorLocal and some to FavorSource,
375 /// is installed locally. Components marked <see cref="ComponentAttributes.SourceOnly"/> in the Component
376 /// table are always run from the source CD/server. The bits FavorLocal and FavorSource work with features not
377 /// listed by the ADVERTISE property.
378 /// </p></remarks>
379 None = 0x0000,
380
381 /// <summary>
382 /// Components of this feature not marked for local installation are installed to run from the source
383 /// CD-ROM or server.
384 /// </summary>
385 /// <remarks><p>
386 /// A component shared by two or more features, some of which are set to FavorLocal and some to FavorSource,
387 /// is installed to run locally. Components marked <see cref="ComponentAttributes.None"/> (local-only) in the
388 /// Component table are always installed locally. The bits FavorLocal and FavorSource work with features
389 /// not listed by the ADVERTISE property.
390 /// </p></remarks>
391 FavorSource = 0x0001,
392
393 /// <summary>
394 /// Set this attribute and the state of the feature is the same as the state of the feature's parent.
395 /// You cannot use this option if the feature is located at the root of a feature tree.
396 /// </summary>
397 /// <remarks><p>
398 /// Omit this attribute and the feature state is determined according to DisallowAdvertise and
399 /// FavorLocal and FavorSource.
400 /// <p>To guarantee that the child feature's state always follows the state of its parent, even when the
401 /// child and parent are initially set to absent in the SelectionTree control, you must include both
402 /// FollowParent and UIDisallowAbsent in the attributes of the child feature.</p>
403 /// <p>Note that if you set FollowParent without setting UIDisallowAbsent, the installer cannot force
404 /// the child feature out of the absent state. In this case, the child feature matches the parent's
405 /// installation state only if the child is set to something other than absent.</p>
406 /// <p>Set FollowParent and UIDisallowAbsent to ensure a child feature follows the state of the parent feature.</p>
407 /// </p></remarks>
408 FollowParent = 0x0002,
409
410 /// <summary>
411 /// Set this attribute and the feature state is Advertise.
412 /// </summary>
413 /// <remarks><p>
414 /// If the feature is listed by the ADDDEFAULT property this bit is ignored and the feature state is determined
415 /// according to FavorLocal and FavorSource.
416 /// <p>Omit this attribute and the feature state is determined according to DisallowAdvertise and FavorLocal
417 /// and FavorSource.</p>
418 /// </p></remarks>
419 FavorAdvertise = 0x0004,
420
421 /// <summary>
422 /// Set this attribute to prevent the feature from being advertised.
423 /// </summary>
424 /// <remarks><p>
425 /// Note that this bit works only with features that are listed by the ADVERTISE property.
426 /// <p>Set this attribute and if the listed feature is not a parent or child, the feature is installed according to
427 /// FavorLocal and FavorSource.</p>
428 /// <p>Set this attribute for the parent of a listed feature and the parent is installed.</p>
429 /// <p>Set this attribute for the child of a listed feature and the state of the child is Absent.</p>
430 /// <p>Omit this attribute and if the listed feature is not a parent or child, the feature state is Advertise.</p>
431 /// <p>Omit this attribute and if the listed feature is a parent or child, the state of both features is Advertise.</p>
432 /// </p></remarks>
433 DisallowAdvertise = 0x0008,
434
435 /// <summary>
436 /// Set this attribute and the user interface does not display an option to change the feature state
437 /// to Absent. Setting this attribute forces the feature to the installation state, whether or not the
438 /// feature is visible in the UI.
439 /// </summary>
440 /// <remarks><p>
441 /// Omit this attribute and the user interface displays an option to change the feature state to Absent.
442 /// <p>Set FollowParent and UIDisallowAbsent to ensure a child feature follows the state of the parent feature.</p>
443 /// <p>Setting this attribute not only affects the UI, but also forces the feature to the install state whether
444 /// the feature is visible in the UI or not.</p>
445 /// </p></remarks>
446 UIDisallowAbsent = 0x0010,
447
448 /// <summary>
449 /// Set this attribute and advertising is disabled for the feature if the operating system shell does not
450 /// support Windows Installer descriptors.
451 /// </summary>
452 NoUnsupportedAdvertise = 0x0020,
453 }
454
455 /// <summary>
456 /// Available values for the Attributes column of the File table.
457 /// </summary>
458 [Flags]
459 public enum FileAttributes : int
460 {
461 /// <summary>No attributes.</summary>
462 None = 0x0000,
463
464 /// <summary>Read-only.</summary>
465 ReadOnly = 0x0001,
466
467 /// <summary>Hidden.</summary>
468 Hidden = 0x0002,
469
470 /// <summary>System.</summary>
471 System = 0x0004,
472
473 /// <summary>The file is vital for the proper operation of the component to which it belongs.</summary>
474 Vital = 0x0200,
475
476 /// <summary>The file contains a valid checksum. A checksum is required to repair a file that has become corrupted.</summary>
477 Checksum = 0x0400,
478
479 /// <summary>This bit must only be added by a patch and if the file is being added by the patch.</summary>
480 PatchAdded = 0x1000,
481
482 /// <summary>
483 /// The file's source type is uncompressed. If set, ignore the WordCount summary information property. If neither
484 /// Noncompressed nor Compressed are set, the compression state of the file is specified by the WordCount summary
485 /// information property. Do not set both Noncompressed and Compressed.
486 /// </summary>
487 NonCompressed = 0x2000,
488
489 /// <summary>
490 /// The file's source type is compressed. If set, ignore the WordCount summary information property. If neither
491 /// Noncompressed or Compressed are set, the compression state of the file is specified by the WordCount summary
492 /// information property. Do not set both Noncompressed and Compressed.
493 /// </summary>
494 Compressed = 0x4000,
495 }
496
497 /// <summary>
498 /// Defines values for the Action column of the IniFile and RemoveIniFile tables.
499 /// </summary>
500 [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ini")]
501 public enum IniFileAction : int
502 {
503 /// <summary>Creates or updates a .ini entry.</summary>
504 AddLine = 0,
505
506 /// <summary>Creates a .ini entry only if the entry does not already exist.</summary>
507 CreateLine = 1,
508
509 /// <summary>Deletes .ini entry.</summary>
510 RemoveLine = 2,
511
512 /// <summary>Creates a new entry or appends a new comma-separated value to an existing entry.</summary>
513 AddTag = 3,
514
515 /// <summary>Deletes a tag from a .ini entry.</summary>
516 RemoveTag = 4,
517 }
518
519 /// <summary>
520 /// Defines values for the Type column of the CompLocator, IniLocator, and RegLocator tables.
521 /// </summary>
522 [Flags]
523 [SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue")]
524 public enum LocatorTypes : int
525 {
526 /// <summary>Key path is a directory.</summary>
527 Directory = 0x00000000,
528
529 /// <summary>Key path is a file name.</summary>
530 FileName = 0x00000001,
531
532 /// <summary>Key path is a registry value.</summary>
533 RawValue = 0x00000002,
534
535 /// <summary>Set this bit to have the installer search the 64-bit portion of the registry.</summary>
536 SixtyFourBit = 0x00000010,
537 }
538
539 /// <summary>
540 /// Defines values for the Root column of the Registry, RemoveRegistry, and RegLocator tables.
541 /// </summary>
542 public enum RegistryRoot : int
543 {
544 /// <summary>HKEY_CURRENT_USER for a per-user installation,
545 /// or HKEY_LOCAL_MACHINE for a per-machine installation.</summary>
546 UserOrMachine = -1,
547
548 /// <summary>HKEY_CLASSES_ROOT</summary>
549 ClassesRoot = 0,
550
551 /// <summary>HKEY_CURRENT_USER</summary>
552 CurrentUser = 1,
553
554 /// <summary>HKEY_LOCAL_MACHINE</summary>
555 LocalMachine = 2,
556
557 /// <summary>HKEY_USERS</summary>
558 Users = 3,
559 }
560
561 /// <summary>
562 /// Defines values for the InstallMode column of the RemoveFile table.
563 /// </summary>
564 [Flags]
565 public enum RemoveFileModes : int
566 {
567 /// <summary>Never remove.</summary>
568 None = 0,
569
570 /// <summary>Remove when the associated component is being installed (install state = local or source).</summary>
571 OnInstall = 1,
572
573 /// <summary>Remove when the associated component is being removed (install state = absent).</summary>
574 OnRemove = 2,
575 }
576
577 /// <summary>
578 /// Defines values for the ServiceType, StartType, and ErrorControl columns of the ServiceInstall table.
579 /// </summary>
580 [Flags]
581 public enum ServiceAttributes : int
582 {
583 /// <summary>No flags.</summary>
584 None = 0,
585
586 /// <summary>A Win32 service that runs its own process.</summary>
587 OwnProcess = 0x0010,
588
589 /// <summary>A Win32 service that shares a process.</summary>
590 ShareProcess = 0x0020,
591
592 /// <summary>A Win32 service that interacts with the desktop.
593 /// This value cannot be used alone and must be added to either
594 /// <see cref="OwnProcess"/> or <see cref="ShareProcess"/>.</summary>
595 Interactive = 0x0100,
596
597 /// <summary>Service starts during startup of the system.</summary>
598 AutoStart = 0x0002,
599
600 /// <summary>Service starts when the service control manager calls the StartService function.</summary>
601 DemandStart = 0x0003,
602
603 /// <summary>Specifies a service that can no longer be started.</summary>
604 Disabled = 0x0004,
605
606 /// <summary>Logs the error, displays a message box and continues the startup operation.</summary>
607 ErrorMessage = 0x0001,
608
609 /// <summary>Logs the error if it is possible and the system is restarted with the last configuration
610 /// known to be good. If the last-known-good configuration is being started, the startup operation fails.</summary>
611 ErrorCritical = 0x0003,
612
613 /// <summary>When combined with other error flags, specifies that the overall install should fail if
614 /// the service cannot be installed into the system.</summary>
615 ErrorControlVital = 0x8000,
616 }
617
618 /// <summary>
619 /// Defines values for the Event column of the ServiceControl table.
620 /// </summary>
621 [Flags]
622 public enum ServiceControlEvents : int
623 {
624 /// <summary>No control events.</summary>
625 None = 0x0000,
626
627 /// <summary>During an install, starts the service during the StartServices action.</summary>
628 Start = 0x0001,
629
630 /// <summary>During an install, stops the service during the StopServices action.</summary>
631 Stop = 0x0002,
632
633 /// <summary>During an install, deletes the service during the DeleteServices action.</summary>
634 Delete = 0x0008,
635
636 /// <summary>During an uninstall, starts the service during the StartServices action.</summary>
637 UninstallStart = 0x0010,
638
639 /// <summary>During an uninstall, stops the service during the StopServices action.</summary>
640 UninstallStop = 0x0020,
641
642 /// <summary>During an uninstall, deletes the service during the DeleteServices action.</summary>
643 UninstallDelete = 0x0080,
644 }
645
646 /// <summary>
647 /// Defines values for the StyleBits column of the TextStyle table.
648 /// </summary>
649 [Flags]
650 public enum TextStyles : int
651 {
652 /// <summary>Bold</summary>
653 Bold = 0x0001,
654
655 /// <summary>Italic</summary>
656 Italic = 0x0002,
657
658 /// <summary>Underline</summary>
659 Underline = 0x0004,
660
661 /// <summary>Strike out</summary>
662 Strike = 0x0008,
663 }
664
665 /// <summary>
666 /// Defines values for the Attributes column of the Upgrade table.
667 /// </summary>
668 [Flags]
669 public enum UpgradeAttributes : int
670 {
671 /// <summary>Migrates feature states by enabling the logic in the MigrateFeatureStates action.</summary>
672 MigrateFeatures = 0x0001,
673
674 /// <summary>Detects products and applications but does not remove.</summary>
675 OnlyDetect = 0x0002,
676
677 /// <summary>Continues installation upon failure to remove a product or application.</summary>
678 IgnoreRemoveFailure = 0x0004,
679
680 /// <summary>Detects the range of versions including the value in VersionMin.</summary>
681 VersionMinInclusive = 0x0100,
682
683 /// <summary>Dectects the range of versions including the value in VersionMax.</summary>
684 VersionMaxInclusive = 0x0200,
685
686 /// <summary>Detects all languages, excluding the languages listed in the Language column.</summary>
687 LanguagesExclusive = 0x0400,
688 }
689}