diff options
Diffstat (limited to '')
-rw-r--r-- | src/WixToolset.Data/Msi/MsiInterop.cs | 313 |
1 files changed, 0 insertions, 313 deletions
diff --git a/src/WixToolset.Data/Msi/MsiInterop.cs b/src/WixToolset.Data/Msi/MsiInterop.cs deleted file mode 100644 index e4dad358..00000000 --- a/src/WixToolset.Data/Msi/MsiInterop.cs +++ /dev/null | |||
@@ -1,313 +0,0 @@ | |||
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 | |||
3 | namespace WixToolset.Data.Msi | ||
4 | { | ||
5 | public class MsiInterop | ||
6 | { | ||
7 | // Patching constants | ||
8 | internal const int MsiMaxStreamNameLength = 62; // http://msdn2.microsoft.com/library/aa370551.aspx | ||
9 | |||
10 | // Component.Attributes | ||
11 | public const int MsidbComponentAttributesLocalOnly = 0; | ||
12 | public const int MsidbComponentAttributesSourceOnly = 1; | ||
13 | public const int MsidbComponentAttributesOptional = 2; | ||
14 | public const int MsidbComponentAttributesRegistryKeyPath = 4; | ||
15 | public const int MsidbComponentAttributesSharedDllRefCount = 8; | ||
16 | public const int MsidbComponentAttributesPermanent = 16; | ||
17 | public const int MsidbComponentAttributesODBCDataSource = 32; | ||
18 | public const int MsidbComponentAttributesTransitive = 64; | ||
19 | public const int MsidbComponentAttributesNeverOverwrite = 128; | ||
20 | public const int MsidbComponentAttributes64bit = 256; | ||
21 | public const int MsidbComponentAttributesDisableRegistryReflection = 512; | ||
22 | public const int MsidbComponentAttributesUninstallOnSupersedence = 1024; | ||
23 | public const int MsidbComponentAttributesShared = 2048; | ||
24 | |||
25 | // BBControl.Attributes & Control.Attributes | ||
26 | internal const int MsidbControlAttributesVisible = 0x00000001; | ||
27 | internal const int MsidbControlAttributesEnabled = 0x00000002; | ||
28 | internal const int MsidbControlAttributesSunken = 0x00000004; | ||
29 | internal const int MsidbControlAttributesIndirect = 0x00000008; | ||
30 | internal const int MsidbControlAttributesInteger = 0x00000010; | ||
31 | internal const int MsidbControlAttributesRTLRO = 0x00000020; | ||
32 | internal const int MsidbControlAttributesRightAligned = 0x00000040; | ||
33 | internal const int MsidbControlAttributesLeftScroll = 0x00000080; | ||
34 | internal const int MsidbControlAttributesBiDi = MsidbControlAttributesRTLRO | MsidbControlAttributesRightAligned | MsidbControlAttributesLeftScroll; | ||
35 | |||
36 | // Text controls | ||
37 | internal const int MsidbControlAttributesTransparent = 0x00010000; | ||
38 | internal const int MsidbControlAttributesNoPrefix = 0x00020000; | ||
39 | internal const int MsidbControlAttributesNoWrap = 0x00040000; | ||
40 | internal const int MsidbControlAttributesFormatSize = 0x00080000; | ||
41 | internal const int MsidbControlAttributesUsersLanguage = 0x00100000; | ||
42 | |||
43 | // Edit controls | ||
44 | internal const int MsidbControlAttributesMultiline = 0x00010000; | ||
45 | internal const int MsidbControlAttributesPasswordInput = 0x00200000; | ||
46 | |||
47 | // ProgressBar controls | ||
48 | internal const int MsidbControlAttributesProgress95 = 0x00010000; | ||
49 | |||
50 | // VolumeSelectCombo and DirectoryCombo controls | ||
51 | internal const int MsidbControlAttributesRemovableVolume = 0x00010000; | ||
52 | internal const int MsidbControlAttributesFixedVolume = 0x00020000; | ||
53 | internal const int MsidbControlAttributesRemoteVolume = 0x00040000; | ||
54 | internal const int MsidbControlAttributesCDROMVolume = 0x00080000; | ||
55 | internal const int MsidbControlAttributesRAMDiskVolume = 0x00100000; | ||
56 | internal const int MsidbControlAttributesFloppyVolume = 0x00200000; | ||
57 | |||
58 | // VolumeCostList controls | ||
59 | internal const int MsidbControlShowRollbackCost = 0x00400000; | ||
60 | |||
61 | // ListBox and ComboBox controls | ||
62 | internal const int MsidbControlAttributesSorted = 0x00010000; | ||
63 | internal const int MsidbControlAttributesComboList = 0x00020000; | ||
64 | |||
65 | // picture button controls | ||
66 | internal const int MsidbControlAttributesImageHandle = 0x00010000; | ||
67 | internal const int MsidbControlAttributesPushLike = 0x00020000; | ||
68 | internal const int MsidbControlAttributesBitmap = 0x00040000; | ||
69 | internal const int MsidbControlAttributesIcon = 0x00080000; | ||
70 | internal const int MsidbControlAttributesFixedSize = 0x00100000; | ||
71 | internal const int MsidbControlAttributesIconSize16 = 0x00200000; | ||
72 | internal const int MsidbControlAttributesIconSize32 = 0x00400000; | ||
73 | internal const int MsidbControlAttributesIconSize48 = 0x00600000; | ||
74 | internal const int MsidbControlAttributesElevationShield = 0x00800000; | ||
75 | |||
76 | // RadioButton controls | ||
77 | internal const int MsidbControlAttributesHasBorder = 0x01000000; | ||
78 | |||
79 | // CustomAction.Type | ||
80 | // executable types | ||
81 | internal const int MsidbCustomActionTypeDll = 0x00000001; // Target = entry point name | ||
82 | internal const int MsidbCustomActionTypeExe = 0x00000002; // Target = command line args | ||
83 | internal const int MsidbCustomActionTypeTextData = 0x00000003; // Target = text string to be formatted and set into property | ||
84 | internal const int MsidbCustomActionTypeJScript = 0x00000005; // Target = entry point name; null if none to call | ||
85 | internal const int MsidbCustomActionTypeVBScript = 0x00000006; // Target = entry point name; null if none to call | ||
86 | internal const int MsidbCustomActionTypeInstall = 0x00000007; // Target = property list for nested engine initialization | ||
87 | internal const int MsidbCustomActionTypeSourceBits = 0x00000030; | ||
88 | internal const int MsidbCustomActionTypeTargetBits = 0x00000007; | ||
89 | internal const int MsidbCustomActionTypeReturnBits = 0x000000C0; | ||
90 | internal const int MsidbCustomActionTypeExecuteBits = 0x00000700; | ||
91 | |||
92 | // source of code | ||
93 | internal const int MsidbCustomActionTypeBinaryData = 0x00000000; // Source = Binary.Name; data stored in stream | ||
94 | internal const int MsidbCustomActionTypeSourceFile = 0x00000010; // Source = File.File; file part of installation | ||
95 | internal const int MsidbCustomActionTypeDirectory = 0x00000020; // Source = Directory.Directory; folder containing existing file | ||
96 | internal const int MsidbCustomActionTypeProperty = 0x00000030; // Source = Property.Property; full path to executable | ||
97 | |||
98 | // return processing; default is syncronous execution; process return code | ||
99 | internal const int MsidbCustomActionTypeContinue = 0x00000040; // ignore action return status; continue running | ||
100 | internal const int MsidbCustomActionTypeAsync = 0x00000080; // run asynchronously | ||
101 | |||
102 | // execution scheduling flags; default is execute whenever sequenced | ||
103 | internal const int MsidbCustomActionTypeFirstSequence = 0x00000100; // skip if UI sequence already run | ||
104 | internal const int MsidbCustomActionTypeOncePerProcess = 0x00000200; // skip if UI sequence already run in same process | ||
105 | internal const int MsidbCustomActionTypeClientRepeat = 0x00000300; // run on client only if UI already run on client | ||
106 | internal const int MsidbCustomActionTypeInScript = 0x00000400; // queue for execution within script | ||
107 | internal const int MsidbCustomActionTypeRollback = 0x00000100; // in conjunction with InScript: queue in Rollback script | ||
108 | internal const int MsidbCustomActionTypeCommit = 0x00000200; // in conjunction with InScript: run Commit ops from script on success | ||
109 | |||
110 | // security context flag; default to impersonate as user; valid only if InScript | ||
111 | internal const int MsidbCustomActionTypeNoImpersonate = 0x00000800; // no impersonation; run in system context | ||
112 | internal const int MsidbCustomActionTypeTSAware = 0x00004000; // impersonate for per-machine installs on TS machines | ||
113 | internal const int MsidbCustomActionType64BitScript = 0x00001000; // script should run in 64bit process | ||
114 | internal const int MsidbCustomActionTypeHideTarget = 0x00002000; // don't record the contents of the Target field in the log file. | ||
115 | |||
116 | internal const int MsidbCustomActionTypePatchUninstall = 0x00008000; // run on patch uninstall | ||
117 | |||
118 | // Dialog.Attributes | ||
119 | internal const int MsidbDialogAttributesVisible = 0x00000001; | ||
120 | internal const int MsidbDialogAttributesModal = 0x00000002; | ||
121 | internal const int MsidbDialogAttributesMinimize = 0x00000004; | ||
122 | internal const int MsidbDialogAttributesSysModal = 0x00000008; | ||
123 | internal const int MsidbDialogAttributesKeepModeless = 0x00000010; | ||
124 | internal const int MsidbDialogAttributesTrackDiskSpace = 0x00000020; | ||
125 | internal const int MsidbDialogAttributesUseCustomPalette = 0x00000040; | ||
126 | internal const int MsidbDialogAttributesRTLRO = 0x00000080; | ||
127 | internal const int MsidbDialogAttributesRightAligned = 0x00000100; | ||
128 | internal const int MsidbDialogAttributesLeftScroll = 0x00000200; | ||
129 | internal const int MsidbDialogAttributesBiDi = MsidbDialogAttributesRTLRO | MsidbDialogAttributesRightAligned | MsidbDialogAttributesLeftScroll; | ||
130 | internal const int MsidbDialogAttributesError = 0x00010000; | ||
131 | internal const int CommonControlAttributesInvert = MsidbControlAttributesVisible + MsidbControlAttributesEnabled; | ||
132 | internal const int DialogAttributesInvert = MsidbDialogAttributesVisible + MsidbDialogAttributesModal + MsidbDialogAttributesMinimize; | ||
133 | |||
134 | // Feature.Attributes | ||
135 | internal const int MsidbFeatureAttributesFavorLocal = 0; | ||
136 | internal const int MsidbFeatureAttributesFavorSource = 1; | ||
137 | internal const int MsidbFeatureAttributesFollowParent = 2; | ||
138 | internal const int MsidbFeatureAttributesFavorAdvertise = 4; | ||
139 | internal const int MsidbFeatureAttributesDisallowAdvertise = 8; | ||
140 | internal const int MsidbFeatureAttributesUIDisallowAbsent = 16; | ||
141 | internal const int MsidbFeatureAttributesNoUnsupportedAdvertise = 32; | ||
142 | |||
143 | // File.Attributes | ||
144 | public const int MsidbFileAttributesReadOnly = 1; | ||
145 | public const int MsidbFileAttributesHidden = 2; | ||
146 | public const int MsidbFileAttributesSystem = 4; | ||
147 | public const int MsidbFileAttributesVital = 512; | ||
148 | public const int MsidbFileAttributesChecksum = 1024; | ||
149 | public const int MsidbFileAttributesPatchAdded = 4096; | ||
150 | public const int MsidbFileAttributesNoncompressed = 8192; | ||
151 | public const int MsidbFileAttributesCompressed = 16384; | ||
152 | |||
153 | // IniFile.Action & RemoveIniFile.Action | ||
154 | internal const int MsidbIniFileActionAddLine = 0; | ||
155 | internal const int MsidbIniFileActionCreateLine = 1; | ||
156 | internal const int MsidbIniFileActionRemoveLine = 2; | ||
157 | internal const int MsidbIniFileActionAddTag = 3; | ||
158 | internal const int MsidbIniFileActionRemoveTag = 4; | ||
159 | |||
160 | // MoveFile.Options | ||
161 | internal const int MsidbMoveFileOptionsMove = 1; | ||
162 | |||
163 | // ServiceInstall.Attributes | ||
164 | internal const int MsidbServiceInstallOwnProcess = 0x00000010; | ||
165 | internal const int MsidbServiceInstallShareProcess = 0x00000020; | ||
166 | internal const int MsidbServiceInstallInteractive = 0x00000100; | ||
167 | internal const int MsidbServiceInstallAutoStart = 0x00000002; | ||
168 | internal const int MsidbServiceInstallDemandStart = 0x00000003; | ||
169 | internal const int MsidbServiceInstallDisabled = 0x00000004; | ||
170 | internal const int MsidbServiceInstallErrorIgnore = 0x00000000; | ||
171 | internal const int MsidbServiceInstallErrorNormal = 0x00000001; | ||
172 | internal const int MsidbServiceInstallErrorCritical = 0x00000003; | ||
173 | internal const int MsidbServiceInstallErrorControlVital = 0x00008000; | ||
174 | |||
175 | // ServiceConfig.Event | ||
176 | internal const int MsidbServiceConfigEventInstall = 0x00000001; | ||
177 | internal const int MsidbServiceConfigEventUninstall = 0x00000002; | ||
178 | internal const int MsidbServiceConfigEventReinstall = 0x00000004; | ||
179 | |||
180 | // ServiceControl.Attributes | ||
181 | internal const int MsidbServiceControlEventStart = 0x00000001; | ||
182 | internal const int MsidbServiceControlEventStop = 0x00000002; | ||
183 | internal const int MsidbServiceControlEventDelete = 0x00000008; | ||
184 | internal const int MsidbServiceControlEventUninstallStart = 0x00000010; | ||
185 | internal const int MsidbServiceControlEventUninstallStop = 0x00000020; | ||
186 | internal const int MsidbServiceControlEventUninstallDelete = 0x00000080; | ||
187 | |||
188 | // TextStyle.StyleBits | ||
189 | internal const int MsidbTextStyleStyleBitsBold = 1; | ||
190 | internal const int MsidbTextStyleStyleBitsItalic = 2; | ||
191 | internal const int MsidbTextStyleStyleBitsUnderline = 4; | ||
192 | internal const int MsidbTextStyleStyleBitsStrike = 8; | ||
193 | |||
194 | // Upgrade.Attributes | ||
195 | internal const int MsidbUpgradeAttributesMigrateFeatures = 0x00000001; | ||
196 | internal const int MsidbUpgradeAttributesOnlyDetect = 0x00000002; | ||
197 | internal const int MsidbUpgradeAttributesIgnoreRemoveFailure = 0x00000004; | ||
198 | internal const int MsidbUpgradeAttributesVersionMinInclusive = 0x00000100; | ||
199 | internal const int MsidbUpgradeAttributesVersionMaxInclusive = 0x00000200; | ||
200 | internal const int MsidbUpgradeAttributesLanguagesExclusive = 0x00000400; | ||
201 | |||
202 | // Registry Hive Roots | ||
203 | internal const int MsidbRegistryRootClassesRoot = 0; | ||
204 | internal const int MsidbRegistryRootCurrentUser = 1; | ||
205 | internal const int MsidbRegistryRootLocalMachine = 2; | ||
206 | internal const int MsidbRegistryRootUsers = 3; | ||
207 | |||
208 | // Locator Types | ||
209 | internal const int MsidbLocatorTypeDirectory = 0; | ||
210 | internal const int MsidbLocatorTypeFileName = 1; | ||
211 | internal const int MsidbLocatorTypeRawValue = 2; | ||
212 | internal const int MsidbLocatorType64bit = 16; | ||
213 | |||
214 | internal const int MsidbClassAttributesRelativePath = 1; | ||
215 | |||
216 | // RemoveFile.InstallMode | ||
217 | internal const int MsidbRemoveFileInstallModeOnInstall = 0x00000001; | ||
218 | internal const int MsidbRemoveFileInstallModeOnRemove = 0x00000002; | ||
219 | internal const int MsidbRemoveFileInstallModeOnBoth = 0x00000003; | ||
220 | |||
221 | // ODBCDataSource.Registration | ||
222 | internal const int MsidbODBCDataSourceRegistrationPerMachine = 0; | ||
223 | internal const int MsidbODBCDataSourceRegistrationPerUser = 1; | ||
224 | |||
225 | // ModuleConfiguration.Format | ||
226 | internal const int MsidbModuleConfigurationFormatText = 0; | ||
227 | internal const int MsidbModuleConfigurationFormatKey = 1; | ||
228 | internal const int MsidbModuleConfigurationFormatInteger = 2; | ||
229 | internal const int MsidbModuleConfigurationFormatBitfield = 3; | ||
230 | |||
231 | // ModuleConfiguration.Attributes | ||
232 | internal const int MsidbMsmConfigurableOptionKeyNoOrphan = 1; | ||
233 | internal const int MsidbMsmConfigurableOptionNonNullable = 2; | ||
234 | |||
235 | // ' Windows API function ShowWindow constants - used in Shortcut table | ||
236 | internal const int SWSHOWNORMAL = 0x00000001; | ||
237 | internal const int SWSHOWMAXIMIZED = 0x00000003; | ||
238 | internal const int SWSHOWMINNOACTIVE = 0x00000007; | ||
239 | |||
240 | // NameToBit arrays | ||
241 | // UI elements | ||
242 | internal static readonly string[] CommonControlAttributes = { "Hidden", "Disabled", "Sunken", "Indirect", "Integer", "RightToLeft", "RightAligned", "LeftScroll" }; | ||
243 | internal static readonly string[] TextControlAttributes = { "Transparent", "NoPrefix", "NoWrap", "FormatSize", "UserLanguage" }; | ||
244 | internal static readonly string[] HyperlinkControlAttributes = { "Transparent" }; | ||
245 | internal static readonly string[] EditControlAttributes = { "Multiline", null, null, null, null, "Password" }; | ||
246 | internal static readonly string[] ProgressControlAttributes = { "ProgressBlocks" }; | ||
247 | internal static readonly string[] VolumeControlAttributes = { "Removable", "Fixed", "Remote", "CDROM", "RAMDisk", "Floppy", "ShowRollbackCost" }; | ||
248 | internal static readonly string[] ListboxControlAttributes = { "Sorted", null, null, null, "UserLanguage" }; | ||
249 | internal static readonly string[] ListviewControlAttributes = { "Sorted", null, null, null, "FixedSize", "Icon16", "Icon32" }; | ||
250 | internal static readonly string[] ComboboxControlAttributes = { "Sorted", "ComboList", null, null, "UserLanguage" }; | ||
251 | internal static readonly string[] RadioControlAttributes = { "Image", "PushLike", "Bitmap", "Icon", "FixedSize", "Icon16", "Icon32", null, "HasBorder" }; | ||
252 | internal static readonly string[] ButtonControlAttributes = { "Image", null, "Bitmap", "Icon", "FixedSize", "Icon16", "Icon32", "ElevationShield" }; | ||
253 | internal static readonly string[] IconControlAttributes = { "Image", null, null, null, "FixedSize", "Icon16", "Icon32" }; | ||
254 | internal static readonly string[] BitmapControlAttributes = { "Image", null, null, null, "FixedSize" }; | ||
255 | internal static readonly string[] CheckboxControlAttributes = { null, "PushLike", "Bitmap", "Icon", "FixedSize", "Icon16", "Icon32" }; | ||
256 | |||
257 | internal const int MsidbEmbeddedUI = 0x01; | ||
258 | internal const int MsidbEmbeddedHandlesBasic = 0x02; | ||
259 | |||
260 | internal const int INSTALLLOGMODE_FATALEXIT = 0x00001; | ||
261 | internal const int INSTALLLOGMODE_ERROR = 0x00002; | ||
262 | internal const int INSTALLLOGMODE_WARNING = 0x00004; | ||
263 | internal const int INSTALLLOGMODE_USER = 0x00008; | ||
264 | internal const int INSTALLLOGMODE_INFO = 0x00010; | ||
265 | internal const int INSTALLLOGMODE_FILESINUSE = 0x00020; | ||
266 | internal const int INSTALLLOGMODE_RESOLVESOURCE = 0x00040; | ||
267 | internal const int INSTALLLOGMODE_OUTOFDISKSPACE = 0x00080; | ||
268 | internal const int INSTALLLOGMODE_ACTIONSTART = 0x00100; | ||
269 | internal const int INSTALLLOGMODE_ACTIONDATA = 0x00200; | ||
270 | internal const int INSTALLLOGMODE_PROGRESS = 0x00400; | ||
271 | internal const int INSTALLLOGMODE_COMMONDATA = 0x00800; | ||
272 | internal const int INSTALLLOGMODE_INITIALIZE = 0x01000; | ||
273 | internal const int INSTALLLOGMODE_TERMINATE = 0x02000; | ||
274 | internal const int INSTALLLOGMODE_SHOWDIALOG = 0x04000; | ||
275 | internal const int INSTALLLOGMODE_RMFILESINUSE = 0x02000000; | ||
276 | internal const int INSTALLLOGMODE_INSTALLSTART = 0x04000000; | ||
277 | internal const int INSTALLLOGMODE_INSTALLEND = 0x08000000; | ||
278 | |||
279 | internal const int MSICONDITIONFALSE = 0; // The table is temporary. | ||
280 | internal const int MSICONDITIONTRUE = 1; // The table is persistent. | ||
281 | internal const int MSICONDITIONNONE = 2; // The table is unknown. | ||
282 | internal const int MSICONDITIONERROR = 3; // An invalid handle or invalid parameter was passed to the function. | ||
283 | |||
284 | internal const int MSIDBOPENREADONLY = 0; | ||
285 | internal const int MSIDBOPENTRANSACT = 1; | ||
286 | internal const int MSIDBOPENDIRECT = 2; | ||
287 | internal const int MSIDBOPENCREATE = 3; | ||
288 | internal const int MSIDBOPENCREATEDIRECT = 4; | ||
289 | internal const int MSIDBOPENPATCHFILE = 32; | ||
290 | |||
291 | internal const int MSIMODIFYSEEK = -1; // Refreshes the information in the supplied record without changing the position in the result set and without affecting subsequent fetch operations. The record may then be used for subsequent Update, Delete, and Refresh. All primary key columns of the table must be in the query and the record must have at least as many fields as the query. Seek cannot be used with multi-table queries. This mode cannot be used with a view containing joins. See also the remarks. | ||
292 | internal const int MSIMODIFYREFRESH = 0; // Refreshes the information in the record. Must first call MsiViewFetch with the same record. Fails for a deleted row. Works with read-write and read-only records. | ||
293 | internal const int MSIMODIFYINSERT = 1; // Inserts a record. Fails if a row with the same primary keys exists. Fails with a read-only database. This mode cannot be used with a view containing joins. | ||
294 | internal const int MSIMODIFYUPDATE = 2; // Updates an existing record. Nonprimary keys only. Must first call MsiViewFetch. Fails with a deleted record. Works only with read-write records. | ||
295 | internal const int MSIMODIFYASSIGN = 3; // Writes current data in the cursor to a table row. Updates record if the primary keys match an existing row and inserts if they do not match. Fails with a read-only database. This mode cannot be used with a view containing joins. | ||
296 | internal const int MSIMODIFYREPLACE = 4; // Updates or deletes and inserts a record into a table. Must first call MsiViewFetch with the same record. Updates record if the primary keys are unchanged. Deletes old row and inserts new if primary keys have changed. Fails with a read-only database. This mode cannot be used with a view containing joins. | ||
297 | internal const int MSIMODIFYMERGE = 5; // Inserts or validates a record in a table. Inserts if primary keys do not match any row and validates if there is a match. Fails if the record does not match the data in the table. Fails if there is a record with a duplicate key that is not identical. Works only with read-write records. This mode cannot be used with a view containing joins. | ||
298 | internal const int MSIMODIFYDELETE = 6; // Remove a row from the table. You must first call the MsiViewFetch function with the same record. Fails if the row has been deleted. Works only with read-write records. This mode cannot be used with a view containing joins. | ||
299 | internal const int MSIMODIFYINSERTTEMPORARY = 7; // Inserts a temporary record. The information is not persistent. Fails if a row with the same primary key exists. Works only with read-write records. This mode cannot be used with a view containing joins. | ||
300 | internal const int MSIMODIFYVALIDATE = 8; // Validates a record. Does not validate across joins. You must first call the MsiViewFetch function with the same record. Obtain validation errors with MsiViewGetError. Works with read-write and read-only records. This mode cannot be used with a view containing joins. | ||
301 | internal const int MSIMODIFYVALIDATENEW = 9; // Validate a new record. Does not validate across joins. Checks for duplicate keys. Obtain validation errors by calling MsiViewGetError. Works with read-write and read-only records. This mode cannot be used with a view containing joins. | ||
302 | internal const int MSIMODIFYVALIDATEFIELD = 10; // Validates fields of a fetched or new record. Can validate one or more fields of an incomplete record. Obtain validation errors by calling MsiViewGetError. Works with read-write and read-only records. This mode cannot be used with a view containing joins. | ||
303 | internal const int MSIMODIFYVALIDATEDELETE = 11; // Validates a record that will be deleted later. You must first call MsiViewFetch. Fails if another row refers to the primary keys of this row. Validation does not check for the existence of the primary keys of this row in properties or strings. Does not check if a column is a foreign key to multiple tables. Obtain validation errors by calling MsiViewGetError. Works with read-write and read-only records. This mode cannot be used with a view containing joins. | ||
304 | |||
305 | internal const uint VTI2 = 2; | ||
306 | internal const uint VTI4 = 3; | ||
307 | internal const uint VTLPWSTR = 30; | ||
308 | internal const uint VTFILETIME = 64; | ||
309 | |||
310 | internal const int MSICOLINFONAMES = 0; // return column names | ||
311 | internal const int MSICOLINFOTYPES = 1; // return column definitions, datatype code followed by width | ||
312 | } | ||
313 | } | ||