42static const char *
msifile =
"msitest.msi";
44static const char *
mstfile =
"winetest.mst";
60static const CHAR component_dat[] =
"Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
61 "s72\tS38\ts72\ti2\tS255\tS72\n"
62 "Component\tComponent\n"
63 "Five\t{8CC92E9D-14B2-4CA4-B2AA-B11D02078087}\tNEWDIR\t2\t\tfive.txt\n"
64 "Four\t{FD37B4EA-7209-45C0-8917-535F35A2F080}\tCABOUTDIR\t2\t\tfour.txt\n"
65 "One\t{783B242E-E185-4A56-AF86-C09815EC053C}\tMSITESTDIR\t2\tNOT REINSTALL\tone.txt\n"
66 "Three\t{010B6ADD-B27D-4EDD-9B3D-34C4F7D61684}\tCHANGEDDIR\t2\t\tthree.txt\n"
67 "Two\t{BF03D1A6-20DA-4A65-82F3-6CAC995915CE}\tFIRSTDIR\t2\t\ttwo.txt\n"
68 "dangler\t{6091DF25-EF96-45F1-B8E9-A9B1420C7A3C}\tTARGETDIR\t4\t\tregdata\n"
69 "component\t\tMSITESTDIR\t0\t1\tfile\n";
73 "Directory\tDirectory\n"
74 "CABOUTDIR\tMSITESTDIR\tcabout\n"
75 "CHANGEDDIR\tMSITESTDIR\tchanged:second\n"
76 "FIRSTDIR\tMSITESTDIR\tfirst\n"
77 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
78 "NEWDIR\tCABOUTDIR\tnew\n"
79 "ProgramFilesFolder\tTARGETDIR\t.\n"
80 "TARGETDIR\t\tSourceDir";
82static const CHAR feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
83 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
85 "Five\t\tFive\tThe Five Feature\t5\t3\tNEWDIR\t0\n"
86 "Four\t\tFour\tThe Four Feature\t4\t3\tCABOUTDIR\t0\n"
87 "One\t\tOne\tThe One Feature\t1\t3\tMSITESTDIR\t0\n"
88 "Three\t\tThree\tThe Three Feature\t3\t3\tCHANGEDDIR\t0\n"
89 "Two\t\tTwo\tThe Two Feature\t2\t3\tFIRSTDIR\t0\n"
90 "feature\t\t\t\t2\t1\tTARGETDIR\t0\n";
94 "FeatureComponents\tFeature_\tComponent_\n"
100 "feature\tcomponent\n";
102static const CHAR file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
103 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
105 "five.txt\tFive\tfive.txt\t1000\t\t\t16384\t5\n"
106 "four.txt\tFour\tfour.txt\t1000\t\t\t16384\t4\n"
107 "one.txt\tOne\tone.txt\t1000\t\t\t0\t1\n"
108 "three.txt\tThree\tthree.txt\t1000\t\t\t0\t3\n"
109 "two.txt\tTwo\ttwo.txt\t1000\t\t\t0\t2\n"
110 "file\tcomponent\tfilename\t100\t\t\t8192\t1\n";
114 "InstallExecuteSequence\tAction\n"
115 "AllocateRegistrySpace\tNOT Installed\t1550\n"
116 "CostFinalize\t\t1000\n"
117 "CostInitialize\t\t800\n"
119 "ResolveSource\t\t950\n"
120 "MoveFiles\t\t1700\n"
121 "InstallFiles\t\t4000\n"
122 "BindImage\t\t4100\n"
123 "DuplicateFiles\t\t4500\n"
124 "WriteEnvironmentStrings\t\t4550\n"
125 "CreateShortcuts\t\t4600\n"
126 "InstallFinalize\t\t6600\n"
127 "InstallInitialize\t\t1500\n"
128 "InstallValidate\t\t1400\n"
129 "LaunchConditions\t\t100\n"
130 "WriteRegistryValues\tSourceDir And SOURCEDIR\t5000";
132static const CHAR media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
133 "i2\ti4\tL64\tS255\tS32\tS72\n"
135 "1\t3\t\t\tDISK1\t\n"
136 "2\t5\t\tmsitest.cab\tDISK2\t\n";
140 "Property\tProperty\n"
141 "DefaultUIFont\tDlgFont8\n"
144 "InstallMode\tTypical\n"
145 "Manufacturer\tWine\n"
146 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
147 "PRIMARYFOLDER\tTARGETDIR\n"
148 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
150 "ProductLanguage\t1033\n"
151 "ProductName\tMSITEST\n"
152 "ProductVersion\t1.1.1\n"
153 "PROMPTROLLBACKCOST\tP\n"
155 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
156 "AdminProperties\tPOSTADMIN\n"
158 "MSIFASTINSTALL\t1\n";
162 "Property\tProperty\n"
163 "DefaultUIFont\tDlgFont8\n"
167 "InstallMode\tTypical\n"
168 "Manufacturer\tWine\n"
169 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
170 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
172 "ProductLanguage\t1033\n"
173 "ProductName\tMSITEST\n"
174 "ProductVersion\t1.1.1\n"
175 "PROMPTROLLBACKCOST\tP\n"
177 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
178 "AdminProperties\tPOSTADMIN\n"
180 "MSIFASTINSTALL\t1\n";
184 "Property\tProperty\n"
185 "DefaultUIFont\tDlgFont8\n"
189 "InstallMode\tTypical\n"
190 "Manufacturer\tWine\n"
191 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
192 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
194 "ProductLanguage\t1033\n"
195 "ProductName\tMSITEST\n"
196 "ProductVersion\t1.1.1\n"
197 "PROMPTROLLBACKCOST\tP\n"
199 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
200 "AdminProperties\tPOSTADMIN\n"
202 "MSIFASTINSTALL\t1\n";
206 "Property\tProperty\n"
207 "DefaultUIFont\tDlgFont8\n"
210 "InstallMode\tTypical\n"
211 "Manufacturer\tWine\n"
212 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
213 "ProductCode\t{7DF88A49-996F-4EC8-A022-BF956F9B2CBB}\n"
215 "ProductLanguage\t1033\n"
216 "ProductName\tMSITEST\n"
217 "ProductVersion\t1.1.1\n"
218 "PROMPTROLLBACKCOST\tP\n"
220 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
221 "AdminProperties\tPOSTADMIN\n"
223 "MSIFASTINSTALL\t1\n";
225static const CHAR shortcut_dat[] =
"Shortcut\tDirectory_\tName\tComponent_\tTarget\tArguments\tDescription\tHotkey\tIcon_\tIconIndex\tShowCmd\tWkDir\n"
226 "s72\ts72\tl128\ts72\ts72\tS255\tL255\tI2\tS72\tI2\tI2\tS72\n"
227 "Shortcut\tShortcut\n"
228 "Shortcut\tMSITESTDIR\tShortcut\tcomponent\tShortcut\t\tShortcut\t\t\t\t\t\n";
232 "Condition\tFeature_\tLevel\n"
237 "Property\tProperty\n"
238 "DefaultUIFont\tDlgFont8\n"
241 "InstallMode\tTypical\n"
242 "Manufacturer\tWine\n"
243 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
244 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
246 "ProductLanguage\t1033\n"
247 "ProductName\tMSITEST\n"
248 "ProductVersion\t1.1.1\n"
249 "PROMPTROLLBACKCOST\tP\n"
251 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
252 "AdminProperties\tPOSTADMIN\n"
254 "RemovePreviousVersions\t1\n"
255 "MSIFASTINSTALL\t1\n";
259 "Property\tProperty\n"
260 "DefaultUIFont\tDlgFont8\n"
263 "InstallMode\tTypical\n"
264 "Manufacturer\tWine\n"
265 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
266 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
268 "ProductLanguage\t1033\n"
269 "ProductName\tMSITEST\n"
270 "ProductVersion\t1.1.2\n"
271 "PROMPTROLLBACKCOST\tP\n"
273 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
274 "AdminProperties\tPOSTADMIN\n"
276 "MSIFASTINSTALL\t1\n";
280 "Property\tProperty\n"
281 "DefaultUIFont\tDlgFont8\n"
284 "InstallMode\tTypical\n"
285 "Manufacturer\tWine\n"
286 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
287 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
289 "ProductLanguage\t1033\n"
290 "ProductName\tMSITEST\n"
291 "ProductVersion\t1.1.2\n"
292 "PROMPTROLLBACKCOST\tP\n"
294 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
295 "AdminProperties\tPOSTADMIN\n"
297 "RemovePreviousVersions\t1\n"
298 "MSIFASTINSTALL\t1\n";
301 "s72\ti2\tl255\tL255\tL0\ts72\n"
302 "Registry\tRegistry\n"
303 "Apples\t1\tSOFTWARE\\Wine\\msitest\tName\timaname\tOne\n"
304 "Oranges\t1\tSOFTWARE\\Wine\\msitest\tnumber\t#314\tTwo\n"
305 "regdata\t1\tSOFTWARE\\Wine\\msitest\tblah\tbad\tdangler\n"
306 "OrderTest\t1\tSOFTWARE\\Wine\\msitest\tOrderTestName\tOrderTestValue\tcomponent";
310 "s72\tS38\ts72\ti2\tS255\tS72\n"
311 "Component\tComponent\n"
312 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n"
313 "augustus\t\tMSITESTDIR\t0\t1\taugustus\n"
314 "caesar\t\tMSITESTDIR\t0\t1\tcaesar\n";
317 "s72\tS38\ts72\ti2\tS255\tS72\n"
318 "Component\tComponent\n"
319 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n"
320 "augustus\t\tMSITESTDIR\t0\t0\taugustus\n"
321 "caesar\t\tMSITESTDIR\t0\t1\tcaesar\n";
323static const CHAR cc_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
324 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
326 "feature\t\t\t\t2\t1\tTARGETDIR\t0";
330 "FeatureComponents\tFeature_\tComponent_\n"
332 "feature\taugustus\n"
335static const CHAR cc_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
336 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
338 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1\n"
339 "augustus\taugustus\taugustus\t50000\t\t\t16384\t2\n"
340 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t12";
342static const CHAR cc2_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
343 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
345 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1\n"
346 "augustus\taugustus\taugustus\t50000\t\t\t16384\t2\n"
347 "tiberius\tmaximus\ttiberius\t500\t\t\t16384\t3\n"
348 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t12";
350static const CHAR cc_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
351 "i2\ti4\tL64\tS255\tS32\tS72\n"
353 "1\t10\t\ttest1.cab\tDISK1\t\n"
354 "2\t2\t\ttest2.cab\tDISK2\t\n"
355 "3\t12\t\ttest3.cab\tDISK3\t\n";
357static const CHAR cc3_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
358 "i2\ti4\tL64\tS255\tS32\tS72\n"
360 "1\t10\t\ttest1.cab\tDISK1\t\n"
361 "2\t2\t\ttest2_.cab\tDISK2\t\n"
362 "3\t12\t\ttest3.cab\tDISK3\t\n";
364static const CHAR co_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
365 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
367 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1\n"
368 "augustus\taugustus\taugustus\t50000\t\t\t16384\t2\n"
369 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t3";
371static const CHAR co_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
372 "i2\ti4\tL64\tS255\tS32\tS72\n"
374 "1\t10\t\ttest1.cab\tDISK1\t\n"
375 "2\t2\t\ttest2.cab\tDISK2\t\n"
376 "3\t3\t\ttest3.cab\tDISK3\t\n";
378static const CHAR co2_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
379 "i2\ti4\tL64\tS255\tS32\tS72\n"
381 "1\t10\t\ttest1.cab\tDISK1\t\n"
382 "2\t12\t\ttest3.cab\tDISK3\t\n"
383 "3\t2\t\ttest2.cab\tDISK2\t\n";
385static const CHAR mm_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
386 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
388 "maximus\tmaximus\tmaximus\t500\t\t\t512\t1\n"
389 "augustus\taugustus\taugustus\t500\t\t\t512\t2\n"
390 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t3";
392static const CHAR mm_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
393 "i2\ti4\tL64\tS255\tS32\tS72\n"
395 "1\t3\t\ttest1.cab\tDISK1\t\n";
397static const CHAR ss_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
398 "i2\ti4\tL64\tS255\tS32\tS72\n"
400 "1\t2\t\ttest1.cab\tDISK1\t\n"
401 "2\t2\t\ttest2.cab\tDISK2\t\n"
402 "3\t12\t\ttest3.cab\tDISK3\t\n";
406 "s72\tS38\ts72\ti2\tS255\tS72\n"
407 "Component\tComponent\n"
408 "maximus\t\tMSITESTDIR\t0\tHASUIRUN=1\tmaximus\n"
409 "augustus\t\tMSITESTDIR\t0\t1\taugustus\n"
410 "caesar\t\tMSITESTDIR\t0\t1\tcaesar\n";
414 "InstallUISequence\tAction\n"
415 "SetUIProperty\t\t5\n"
416 "ExecuteAction\t\t1100\n";
419 "s72\ti2\tS64\tS0\tS255\n"
420 "CustomAction\tAction\n"
421 "SetUIProperty\t51\tHASUIRUN\t1\t\n";
424 "s72\tS38\ts72\ti2\tS255\tS72\n"
425 "Component\tComponent\n"
426 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n";
428static const CHAR rof_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
429 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
431 "feature\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0\n"
432 "montecristo\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0";
436 "FeatureComponents\tFeature_\tComponent_\n"
438 "montecristo\tmaximus";
440static const CHAR rof_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
441 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
443 "maximus\tmaximus\tmaximus\t500\t\t\t8192\t1";
445static const CHAR rof_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
446 "i2\ti4\tL64\tS255\tS32\tS72\n"
448 "1\t1\t\t\tDISK1\t\n";
450static const CHAR rofc_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
451 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
453 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1";
455static const CHAR rofc_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
456 "i2\ti4\tL64\tS255\tS32\tS72\n"
458 "1\t1\t\ttest1.cab\tDISK1\t\n";
462 "InstallExecuteSequence\tAction\n"
463 "AllocateRegistrySpace\tNOT Installed\t1550\n"
464 "CostFinalize\t\t1000\n"
465 "CostInitialize\t\t800\n"
467 "InstallFiles\t\t4000\n"
468 "InstallFinalize\t\t6600\n"
469 "InstallInitialize\t\t1500\n"
470 "InstallValidate\t\t1400\n"
471 "LaunchConditions\t\t100\n"
472 "SetDirProperty\t\t950";
475 "s72\ti2\tS64\tS0\tS255\n"
476 "CustomAction\tAction\n"
477 "SetDirProperty\t51\tMSITESTDIR\t[CommonFilesFolder]msitest\\\t\n";
481 "InstallExecuteSequence\tAction\n"
482 "LaunchConditions\t\t100\n"
483 "CostInitialize\t\t800\n"
485 "CostFinalize\t\t1000\n"
486 "InstallValidate\t\t1400\n"
487 "InstallInitialize\t\t1500\n"
488 "InstallFiles\t\t4000\n"
489 "InstallFinalize\t\t6600\n";
492 "s72\tS38\ts72\ti2\tS255\tS72\n"
493 "Component\tComponent\n"
494 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n"
495 "augustus\t\tMSITESTDIR\t0\t1\taugustus\n"
496 "caesar\t\tMSITESTDIR\t0\t1\tcaesar\n"
497 "gaius\t\tMSITESTDIR\t0\t1\tgaius\n";
501 "FeatureComponents\tFeature_\tComponent_\n"
503 "feature\taugustus\n"
507static const CHAR cie_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
508 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
510 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1\n"
511 "augustus\taugustus\taugustus\t50000\t\t\t16384\t2\n"
512 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t12\n"
513 "gaius\tgaius\tgaius\t500\t\t\t8192\t11";
515static const CHAR cie_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
516 "i2\ti4\tL64\tS255\tS32\tS72\n"
518 "1\t1\t\ttest1.cab\tDISK1\t\n"
519 "2\t2\t\ttest2.cab\tDISK2\t\n"
520 "3\t12\t\ttest3.cab\tDISK3\t\n";
523 "s72\tS38\ts72\ti2\tS255\tS72\n"
524 "Component\tComponent\n"
525 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\tUILevel=5\tmaximus\n";
529 "FeatureComponents\tFeature_\tComponent_\n"
532static const CHAR ci2_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
533 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
535 "augustus\taugustus\taugustus\t500\t\t\t8192\t1";
539 "InstallExecuteSequence\tAction\n"
540 "ValidateProductID\t\t700\n"
541 "CostInitialize\t\t800\n"
543 "CostFinalize\t\t1000\n"
544 "InstallValidate\t\t1400\n"
545 "InstallInitialize\t\t1500\n"
546 "ProcessComponents\tPROCESS_COMPONENTS=1 Or FULL=1\t1600\n"
547 "UnpublishFeatures\tUNPUBLISH_FEATURES=1 Or FULL=1\t1800\n"
548 "RemoveFiles\t\t3500\n"
549 "InstallFiles\t\t4000\n"
550 "RegisterUser\tREGISTER_USER=1 Or FULL=1\t6000\n"
551 "RegisterProduct\tREGISTER_PRODUCT=1 Or FULL=1\t6100\n"
552 "PublishFeatures\tPUBLISH_FEATURES=1 Or FULL=1\t6300\n"
553 "PublishProduct\tPUBLISH_PRODUCT=1 Or FULL=1\t6400\n"
554 "InstallFinalize\t\t6600";
557 "s72\tS38\ts72\ti2\tS255\tS72\n"
558 "Component\tComponent\n"
559 "augustus\t\tMSITESTDIR\t0\tprop=\"val\"\taugustus\n";
562 "s72\tS38\ts72\ti2\tS255\tS72\n"
563 "Component\tComponent\n"
564 "augustus\t\tMSITESTDIR\t0\t\taugustus\n";
567 "s72\tS38\ts72\ti2\tS255\tS72\n"
568 "Component\tComponent\n"
569 "augustus\t\tMSITESTDIR\t0\tPOSTADMIN=1\taugustus";
572 "s72\ti2\tS64\tS0\tS255\n"
573 "CustomAction\tAction\n"
574 "SetPOSTADMIN\t51\tPOSTADMIN\t1\t\n";
578 "AdminExecuteSequence\tAction\n"
579 "CostFinalize\t\t1000\n"
580 "CostInitialize\t\t800\n"
582 "SetPOSTADMIN\t\t950\n"
583 "InstallFiles\t\t4000\n"
584 "InstallFinalize\t\t6600\n"
585 "InstallInitialize\t\t1500\n"
586 "InstallValidate\t\t1400\n"
587 "LaunchConditions\t\t100";
590 "s72\tS38\ts72\ti2\tS255\tS72\n"
591 "Component\tComponent\n"
592 "augustus\t\tMSITESTDIR\t0\tMYPROP=2718 and MyProp=42\taugustus\n";
596 "InstallExecuteSequence\tAction\n"
597 "ValidateProductID\t\t700\n"
598 "CostInitialize\t\t800\n"
600 "CostFinalize\t\t1000\n"
601 "InstallValidate\t\t1400\n"
602 "InstallInitialize\t\t1500\n"
603 "ProcessComponents\t\t1600\n"
604 "UnpublishFeatures\t\t1800\n"
605 "RemoveFiles\t\t3500\n"
606 "InstallFiles\t\t4000\n"
607 "RegisterProduct\t\t6100\n"
608 "PublishFeatures\t\t6300\n"
609 "PublishProduct\t\t6400\n"
610 "InstallFinalize\t\t6600";
613 "s72\tS38\ts72\ti2\tS255\tS72\n"
614 "Component\tComponent\n"
615 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n"
616 "augustus\t\tMSITESTDIR\t0\t1\taugustus\n"
617 "caesar\t\tMSITESTDIR\t0\t1\tcaesar\n"
618 "gaius\t\tMSITESTDIR\t0\tGAIUS=1\tgaius\n"
619 "tiberius\t\tMSITESTDIR\t0\t\ttiberius\n";
621static const CHAR mc_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
622 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
624 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1\n"
625 "augustus\taugustus\taugustus\t500\t\t\t0\t2\n"
626 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t3\n"
627 "gaius\tgaius\tgaius\t500\t\t\t16384\t4\n"
628 "tiberius\ttiberius\ttiberius\t500\t\t\t0\t5\n";
630static const CHAR mc_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
631 "i2\ti4\tL64\tS255\tS32\tS72\n"
633 "1\t1\t\ttest1.cab\tDISK1\t\n"
634 "2\t2\t\ttest2.cab\tDISK2\t\n"
635 "3\t3\t\ttest3.cab\tDISK3\t\n"
636 "4\t4\t\ttest3.cab\tDISK3\t\n"
637 "5\t5\t\ttest4.cab\tDISK4\t\n";
640 "s72\ti2\ti4\ti4\ti4\ti4\n"
641 "MsiFileHash\tFile_\n"
642 "caesar\t0\t850433704\t-241429251\t675791761\t-1221108824";
645 "s72\tS38\ts72\ti2\tS255\tS72\n"
646 "Component\tComponent\n"
647 "augustus\t\tMSITESTDIR\t0\t\taugustus\n";
651 "InstallExecuteSequence\tAction\n"
652 "CostInitialize\t\t100\n"
654 "CostFinalize\t\t300\n"
655 "InstallValidate\t\t400\n"
656 "InstallInitialize\t\t500\n"
658 "maintest\tMAIN_TEST\t700\n"
659 "testretval\tTEST_RETVAL\t710\n"
660 "process1\tTEST_PROCESS\t720\n"
661 "process2\tTEST_PROCESS\t721\n"
662 "process_deferred\tTEST_PROCESS\t722\n"
663 "async1\tTEST_ASYNC\t730\n"
664 "async2\tTEST_ASYNC\t731\n"
665 "InstallFinalize\t\t800\n";
669 "CustomAction\tAction\n"
670 "embednull\t51\tembednullprop\ta[~]b\n"
671 "nested51\t51\tnested\t1\n"
672 "nested1\t1\tcustom.dll\tnested\n"
673 "maintest\t1\tcustom.dll\tmain_test\n"
674 "process1\t1\tcustom.dll\tprocess1\n"
675 "process2\t1\tcustom.dll\tprocess2\n"
676 "process_deferred\t1025\tcustom.dll\tprocess2\n"
677 "async1\t129\tcustom.dll\tasync1\n"
678 "async2\t1\tcustom.dll\tasync2\n"
679 "testretval\t1\tcustom.dll\ttest_retval\n";
683 "TestSequence\tAction\n"
694 "Table\tColumn\tNullable\tMinValue\tMaxValue\tKeyTable\tKeyColumn\tCategory\tSet\tDescription\n"
695 "s32\ts32\ts4\tI4\tI4\tS255\tI2\tS32\tS255\tS255\n"
696 "_Validation\tTable\tColumn\n"
697 "test2\tA\tN\t\t\t\t\t\t\t\n"
698 "test2\tB\tN\t\t\t\t\t\t\t\n";
701 "s72\tS38\ts72\ti2\tS255\tS72\n"
702 "Component\tComponent\n"
703 "augustus\t\tMSITESTDIR\t0\tMYPROP=42\taugustus\n";
707 "InstallExecuteSequence\tAction\n"
708 "ValidateProductID\t\t700\n"
709 "GoodSetProperty\t\t725\n"
710 "BadSetProperty\t\t750\n"
711 "CostInitialize\t\t800\n"
712 "ResolveSource\t\t810\n"
714 "SetSourceDir\tSRCDIR\t910\n"
715 "CostFinalize\t\t1000\n"
716 "InstallValidate\t\t1400\n"
717 "InstallInitialize\t\t1500\n"
718 "InstallFiles\t\t4000\n"
719 "InstallFinalize\t\t6600";
723 "CustomAction\tAction\n"
724 "GoodSetProperty\t51\tMYPROP\t42\n"
725 "BadSetProperty\t51\t\tMYPROP\n"
726 "SetSourceDir\t51\tSourceDir\t[SRCDIR]\n";
728static const CHAR is_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
729 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
731 "one\t\t\t\t2\t1\t\t0\n"
732 "two\t\t\t\t2\t1\t\t1\n"
733 "three\t\t\t\t2\t1\t\t4\n"
734 "four\t\t\t\t2\t0\t\t0";
737 "s72\tS38\ts72\ti2\tS255\tS72\n"
738 "Component\tComponent\n"
739 "alpha\t\tMSITESTDIR\t0\t\talpha_file\n"
740 "beta\t\tMSITESTDIR\t1\t\tbeta_file\n"
741 "gamma\t\tMSITESTDIR\t2\t\tgamma_file\n"
742 "theta\t\tMSITESTDIR\t0\t\ttheta_file\n"
743 "delta\t\tMSITESTDIR\t1\t\tdelta_file\n"
744 "epsilon\t\tMSITESTDIR\t2\t\tepsilon_file\n"
745 "zeta\t\tMSITESTDIR\t0\t\tzeta_file\n"
746 "iota\t\tMSITESTDIR\t1\t\tiota_file\n"
747 "eta\t\tMSITESTDIR\t2\t\teta_file\n"
748 "kappa\t\tMSITESTDIR\t0\t\tkappa_file\n"
749 "lambda\t\tMSITESTDIR\t1\t\tlambda_file\n"
750 "mu\t\tMSITESTDIR\t2\t\tmu_file\n";
754 "FeatureComponents\tFeature_\tComponent_\n"
768static const CHAR is_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
769 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
771 "alpha_file\talpha\talpha\t500\t\t\t8192\t1\n"
772 "beta_file\tbeta\tbeta\t500\t\t\t8291\t2\n"
773 "gamma_file\tgamma\tgamma\t500\t\t\t8192\t3\n"
774 "theta_file\ttheta\ttheta\t500\t\t\t8192\t4\n"
775 "delta_file\tdelta\tdelta\t500\t\t\t8192\t5\n"
776 "epsilon_file\tepsilon\tepsilon\t500\t\t\t8192\t6\n"
777 "zeta_file\tzeta\tzeta\t500\t\t\t8192\t7\n"
778 "iota_file\tiota\tiota\t500\t\t\t8192\t8\n"
779 "eta_file\teta\teta\t500\t\t\t8192\t9\n"
780 "kappa_file\tkappa\tkappa\t500\t\t\t8192\t10\n"
781 "lambda_file\tlambda\tlambda\t500\t\t\t8192\t11\n"
782 "mu_file\tmu\tmu\t500\t\t\t8192\t12";
784static const CHAR is_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
785 "i2\ti4\tL64\tS255\tS32\tS72\n"
787 "1\t12\t\t\tDISK1\t\n";
790 "s72\tS38\ts72\ti2\tS255\tS72\n"
791 "Component\tComponent\n"
792 "augustus\t\tTWODIR\t0\t\taugustus\n";
796 "Directory\tDirectory\n"
797 "TARGETDIR\t\tSourceDir\n"
798 "ProgramFilesFolder\tTARGETDIR\t.\n"
799 "MSITESTDIR\tProgramFilesFolder\tmsitest:.\n"
800 "ONEDIR\tMSITESTDIR\t.:shortone|longone\n"
801 "TWODIR\tONEDIR\t.:shorttwo|longtwo";
804 "s72\tS38\ts72\ti2\tS255\tS72\n"
805 "Component\tComponent\n"
806 "hydrogen\t{C844BD1E-1907-4C00-8BC9-150BD70DF0A1}\tMSITESTDIR\t2\t\thydrogen\n"
807 "helium\t{5AD3C142-CEF8-490D-B569-784D80670685}\tMSITESTDIR\t2\t\thelium\n"
808 "lithium\t{4AF28FFC-71C7-4307-BDE4-B77C5338F56F}\tMSITESTDIR\t2\tPROPVAR=42\tlithium\n";
810static const CHAR mcp_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
811 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
813 "hydroxyl\t\thydroxyl\thydroxyl\t2\t1\tTARGETDIR\t0\n"
814 "heliox\t\theliox\theliox\t2\t5\tTARGETDIR\t0\n"
815 "lithia\t\tlithia\tlithia\t2\t10\tTARGETDIR\t0";
819 "FeatureComponents\tFeature_\tComponent_\n"
820 "hydroxyl\thydrogen\n"
824static const CHAR mcp_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
825 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
827 "hydrogen\thydrogen\thydrogen\t0\t\t\t8192\t1\n"
828 "helium\thelium\thelium\t0\t\t\t8192\t1\n"
829 "lithium\tlithium\tlithium\t0\t\t\t8192\t1\n"
830 "beryllium\tmissingcomp\tberyllium\t0\t\t\t8192\t1";
832static const CHAR ai_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
833 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
835 "five.txt\tFive\tfive.txt\t1000\t\t\t16384\t5\n"
836 "four.txt\tFour\tfour.txt\t1000\t\t\t16384\t4\n"
837 "one.txt\tOne\tone.txt\t1000\t\t\t16384\t1\n"
838 "three.txt\tThree\tthree.txt\t1000\t\t\t16384\t3\n"
839 "two.txt\tTwo\ttwo.txt\t1000\t\t\t16384\t2\n"
840 "file\tcomponent\tfilename\t100\t\t\t8192\t1\n";
844 "InstallExecuteSequence\tAction\n"
845 "CostFinalize\t\t1000\n"
846 "ValidateProductID\t\t700\n"
847 "CostInitialize\t\t800\n"
849 "RemoveFiles\t\t3500\n"
850 "InstallFiles\t\t4000\n"
851 "RegisterUser\t\t6000\n"
852 "RegisterProduct\t\t6100\n"
853 "PublishFeatures\t\t6300\n"
854 "PublishProduct\t\t6400\n"
855 "InstallFinalize\t\t6600\n"
856 "InstallInitialize\t\t1500\n"
857 "ProcessComponents\t\t1600\n"
858 "UnpublishFeatures\t\t1800\n"
859 "InstallValidate\t\t1400\n"
860 "LaunchConditions\t\t100\n"
861 "TestInstalledProp\tInstalled AND NOT REMOVE\t950\n";
864 "s72\ti2\tS64\tS0\tS255\n"
865 "CustomAction\tAction\n"
866 "TestInstalledProp\t19\t\tTest failed\t\n";
870 "InstallExecuteSequence\tAction\n"
871 "CostFinalize\t\t1000\n"
872 "ValidateProductID\t\t700\n"
873 "CostInitialize\t\t800\n"
875 "RemoveFiles\t\t3500\n"
876 "InstallFiles\t\t4000\n"
877 "RegisterUser\t\t6000\n"
878 "RegisterProduct\t\t6100\n"
879 "PublishFeatures\t\t6300\n"
880 "PublishProduct\t\t6400\n"
881 "InstallFinalize\t\t6600\n"
882 "InstallInitialize\t\t1500\n"
883 "ProcessComponents\t\t1600\n"
884 "UnpublishFeatures\t\t1800\n"
885 "InstallValidate\t\t1400\n"
886 "LaunchConditions\t\t100\n"
887 "TestAllUsersProp\tALLUSERS AND NOT REMOVE\t50\n";
891 "InstallExecuteSequence\tAction\n"
892 "CostFinalize\t\t1000\n"
893 "ValidateProductID\t\t700\n"
894 "CostInitialize\t\t800\n"
896 "RemoveFiles\t\t3500\n"
897 "InstallFiles\t\t4000\n"
898 "RegisterUser\t\t6000\n"
899 "RegisterProduct\t\t6100\n"
900 "PublishFeatures\t\t6300\n"
901 "PublishProduct\t\t6400\n"
902 "InstallFinalize\t\t6600\n"
903 "InstallInitialize\t\t1500\n"
904 "ProcessComponents\t\t1600\n"
905 "UnpublishFeatures\t\t1800\n"
906 "InstallValidate\t\t1400\n"
907 "LaunchConditions\t\t100\n"
908 "TestAllUsersProp\tALLUSERS=2 AND NOT REMOVE\t50\n";
912 "InstallExecuteSequence\tAction\n"
913 "CostFinalize\t\t1000\n"
914 "ValidateProductID\t\t700\n"
915 "CostInitialize\t\t800\n"
917 "RemoveFiles\t\t3500\n"
918 "InstallFiles\t\t4000\n"
919 "RegisterUser\t\t6000\n"
920 "RegisterProduct\t\t6100\n"
921 "PublishFeatures\t\t6300\n"
922 "PublishProduct\t\t6400\n"
923 "InstallFinalize\t\t6600\n"
924 "InstallInitialize\t\t1500\n"
925 "ProcessComponents\t\t1600\n"
926 "UnpublishFeatures\t\t1800\n"
927 "InstallValidate\t\t1400\n"
928 "LaunchConditions\t\t100\n"
929 "TestAllUsersProp\tALLUSERS=1 AND NOT REMOVE\t50\n";
932 "s72\ti2\tS64\tS0\tS255\n"
933 "CustomAction\tAction\n"
934 "TestAllUsersProp\t19\t\tTest failed\t\n";
936static const CHAR fo_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
937 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
939 "override.txt\toverride\toverride.txt\t1000\t\t\t8192\t1\n"
940 "preselected.txt\tpreselected\tpreselected.txt\t1000\t\t\t8192\t2\n"
941 "notpreselected.txt\tnotpreselected\tnotpreselected.txt\t1000\t\t\t8192\t3\n";
943static const CHAR fo_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
944 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
946 "override\t\t\toverride feature\t1\t1\tMSITESTDIR\t0\n"
947 "preselected\t\t\tpreselected feature\t1\t1\tMSITESTDIR\t0\n"
948 "notpreselected\t\t\tnotpreselected feature\t1\t1\tMSITESTDIR\t0\n";
952 "Condition\tFeature_\tLevel\n"
953 "preselected\t0\tPreselected AND NOT REMOVE\n"
954 "notpreselected\t0\tNOT Preselected AND NOT REMOVE\n";
958 "FeatureComponents\tFeature_\tComponent_\n"
959 "override\toverride\n"
960 "preselected\tpreselected\n"
961 "notpreselected\tnotpreselected\n";
964 "s72\tS38\ts72\ti2\tS255\tS72\n"
965 "Component\tComponent\n"
966 "override\t{0A00FB1D-97B0-4B42-ADF0-BB8913416623}\tMSITESTDIR\t0\t\toverride.txt\n"
967 "preselected\t{44E1DB75-605A-43DD-8CF5-CAB17F1BBD60}\tMSITESTDIR\t0\t\tpreselected.txt\n"
968 "notpreselected\t{E1647733-5E75-400A-A92E-5E60B4D4EF9F}\tMSITESTDIR\t0\t\tnotpreselected.txt\n";
971 "s72\ti2\tS64\tS0\tS255\n"
972 "CustomAction\tAction\n"
973 "SetPreselected\t51\tPreselected\t1\t\n";
977 "InstallExecuteSequence\tAction\n"
978 "LaunchConditions\t\t100\n"
979 "SetPreselected\tpreselect=1\t200\n"
980 "CostInitialize\t\t800\n"
982 "CostFinalize\t\t1000\n"
983 "InstallValidate\t\t1400\n"
984 "InstallInitialize\t\t1500\n"
985 "ProcessComponents\t\t1600\n"
986 "RemoveFiles\t\t1700\n"
987 "InstallFiles\t\t2000\n"
988 "RegisterProduct\t\t5000\n"
989 "PublishFeatures\t\t5100\n"
990 "PublishProduct\t\t5200\n"
991 "UnpublishFeatures\t\t5300\n"
992 "InstallFinalize\t\t6000\n";
994static const CHAR uc_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
995 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
997 "upgradecode.txt\tupgradecode\tupgradecode.txt\t1000\t\t\t8192\t1\n";
999static const CHAR uc_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1000 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1001 "Feature\tFeature\n"
1002 "upgradecode\t\t\tupgradecode feature\t1\t2\tMSITESTDIR\t0\n";
1006 "FeatureComponents\tFeature_\tComponent_\n"
1007 "upgradecode\tupgradecode\n";
1010 "s72\tS38\ts72\ti2\tS255\tS72\n"
1011 "Component\tComponent\n"
1012 "upgradecode\t{6952B732-2FCB-4E47-976F-989FCBD7EDFB}\tMSITESTDIR\t0\t\tupgradecode.txt\n";
1016 "Property\tProperty\n"
1018 "ProductCode\t{E5FB1241-F547-4BA7-A60E-8E75797268D4}\n"
1019 "ProductName\tMSITEST\n"
1020 "ProductVersion\t1.1.1\n"
1021 "UpgradeCode\t#UPGEADECODE#\n"
1022 "MSIFASTINSTALL\t1\n";
1026 "InstallExecuteSequence\tAction\n"
1027 "LaunchConditions\t\t100\n"
1028 "CostInitialize\t\t200\n"
1030 "CostFinalize\t\t400\n"
1031 "InstallInitialize\t\t500\n"
1032 "ProcessComponents\t\t600\n"
1033 "InstallValidate\t\t700\n"
1034 "RemoveFiles\t\t800\n"
1035 "InstallFiles\t\t900\n"
1036 "RegisterProduct\t\t1000\n"
1037 "PublishFeatures\t\t1100\n"
1038 "PublishProduct\t\t1200\n"
1039 "UnpublishFeatures\t\t1250\n"
1040 "InstallFinalize\t\t1300\n";
1043 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1044 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1045 "Feature\tFeature\n"
1046 "feature1\t\t\t\t1\t2\tMSITESTDIR\t0\n"
1047 "feature2\t\t\t\t1\t2\tMSITESTDIR\t0\n";
1050 "Feature_\tComponent_\n"
1052 "FeatureComponents\tFeature_\tComponent_\n"
1054 "feature2\tcomp2\n";
1057 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1058 "s72\tS38\ts72\ti2\tS255\tS72\n"
1059 "Component\tComponent\n"
1060 "comp1\t{DE9F0EF4-0ED3-495A-8105-060C0EA457B8}\tTARGETDIR\t4\t\tregdata1\n"
1061 "comp2\t{4912DBE7-FC3A-4F91-BB5C-88F5C15C19A5}\tTARGETDIR\t260\t\tregdata2\n";
1064 "Registry\tRoot\tKey\tName\tValue\tComponent_\n"
1065 "s72\ti2\tl255\tL255\tL0\ts72\n"
1066 "Registry\tRegistry\n"
1067 "regdata1\t2\tSOFTWARE\\Wine\\msitest\ttest1\t\tcomp1\n"
1068 "regdata2\t2\tSOFTWARE\\Wine\\msitest\ttest2\t\tcomp2\n"
1069 "regdata3\t0\tCLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\t\tCLSID_Winetest32\tcomp1\n"
1070 "regdata4\t0\tCLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32\t\twinetest32.dll\tcomp1\n"
1071 "regdata5\t0\tCLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\t\tCLSID_Winetest64\tcomp2\n"
1072 "regdata6\t0\tCLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32\t\twinetest64.dll\tcomp2\n";
1075 "Action\tCondition\tSequence\n"
1077 "InstallExecuteSequence\tAction\n"
1078 "LaunchConditions\t\t100\n"
1079 "CostInitialize\t\t200\n"
1081 "CostFinalize\t\t400\n"
1082 "InstallValidate\t\t500\n"
1083 "InstallInitialize\t\t600\n"
1084 "ProcessComponents\t\t700\n"
1085 "UnpublishFeatures\t\t800\n"
1086 "RemoveRegistryValues\t\t900\n"
1087 "WriteRegistryValues\t\t1000\n"
1088 "RegisterProduct\t\t1100\n"
1089 "PublishFeatures\t\t1200\n"
1090 "PublishProduct\t\t1300\n"
1091 "InstallFinalize\t\t1400\n";
1094 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1095 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1097 "volumeprop\tcomp\tvolumeprop.txt\t1000\t\t\t8192\t1\n";
1100 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1101 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1102 "Feature\tFeature\n"
1103 "feature\t\t\t\t1\t2\tMSITESTDIR\t0\n";
1106 "Feature_\tComponent_\n"
1108 "FeatureComponents\tFeature_\tComponent_\n"
1112 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1113 "s72\tS38\ts72\ti2\tS255\tS72\n"
1114 "Component\tComponent\n"
1115 "comp\t{24364AE7-5B7F-496C-AF5A-54893639C567}\tMSITESTDIR\t0\t\tvolumeprop\n";
1118 "Action\tType\tSource\tTarget\tISComments\n"
1119 "s72\ti2\tS64\tS0\tS255\n"
1120 "CustomAction\tAction\n"
1121 "TestPrimaryVolumePath0\t19\t\tPrimaryVolumePath set before CostFinalize\t\n"
1122 "TestPrimaryVolumeSpaceAvailable0\t19\t\tPrimaryVolumeSpaceAvailable set before CostFinalize\t\n"
1123 "TestPrimaryVolumeSpaceRequired0\t19\t\tPrimaryVolumeSpaceRequired set before CostFinalize\t\n"
1124 "TestPrimaryVolumeSpaceRemaining0\t19\t\tPrimaryVolumeSpaceRemaining set before CostFinalize\t\n"
1125 "TestPrimaryVolumePath1\t19\t\tPrimaryVolumePath set before InstallValidate\t\n"
1126 "TestPrimaryVolumeSpaceAvailable1\t19\t\tPrimaryVolumeSpaceAvailable not set before InstallValidate\t\n"
1127 "TestPrimaryVolumeSpaceRequired1\t19\t\tPrimaryVolumeSpaceRequired not set before InstallValidate\t\n"
1128 "TestPrimaryVolumeSpaceRemaining1\t19\t\tPrimaryVolumeSpaceRemaining not set before InstallValidate\t\n"
1129 "TestPrimaryVolumePath2\t19\t\tPrimaryVolumePath not set after InstallValidate\t\n"
1130 "TestPrimaryVolumeSpaceAvailable2\t19\t\tPrimaryVolumeSpaceAvailable not set after InstallValidate\t\n"
1131 "TestPrimaryVolumeSpaceRequired2\t19\t\tPrimaryVolumeSpaceRequired not set after InstallValidate\t\n"
1132 "TestPrimaryVolumeSpaceRemaining2\t19\t\tPrimaryVolumeSpaceRemaining not set after InstallValidate\t\n";
1135 "Action\tCondition\tSequence\n"
1137 "InstallExecuteSequence\tAction\n"
1138 "LaunchConditions\t\t100\n"
1139 "CostInitialize\t\t200\n"
1141 "TestPrimaryVolumePath0\tPrimaryVolumePath AND NOT REMOVE\t400\n"
1142 "TestPrimaryVolumeSpaceAvailable0\tPrimaryVolumeSpaceAvailable AND NOT REMOVE\t500\n"
1143 "TestPrimaryVolumeSpaceRequired0\tPrimaryVolumeSpaceRequired AND NOT REMOVE\t510\n"
1144 "TestPrimaryVolumeSpaceRemaining0\tPrimaryVolumeSpaceRemaining AND NOT REMOVE\t520\n"
1145 "CostFinalize\t\t600\n"
1146 "TestPrimaryVolumePath1\tPrimaryVolumePath AND NOT REMOVE\t600\n"
1147 "TestPrimaryVolumeSpaceAvailable1\tNOT PrimaryVolumeSpaceAvailable AND NOT REMOVE\t800\n"
1148 "TestPrimaryVolumeSpaceRequired1\tNOT PrimaryVolumeSpaceRequired AND NOT REMOVE\t810\n"
1149 "TestPrimaryVolumeSpaceRemaining1\tNOT PrimaryVolumeSpaceRemaining AND NOT REMOVE\t820\n"
1150 "InstallValidate\t\t900\n"
1151 "TestPrimaryVolumePath2\tNOT PrimaryVolumePath AND NOT REMOVE\t1000\n"
1152 "TestPrimaryVolumeSpaceAvailable2\tNOT PrimaryVolumeSpaceAvailable AND NOT REMOVE\t1100\n"
1153 "TestPrimaryVolumeSpaceRequired2\tNOT PrimaryVolumeSpaceRequired AND NOT REMOVE\t1110\n"
1154 "TestPrimaryVolumeSpaceRemaining2\tNOT PrimaryVolumeSpaceRemaining AND NOT REMOVE\t1120\n"
1155 "InstallInitialize\t\t1200\n"
1156 "ProcessComponents\t\t1300\n"
1157 "RemoveFiles\t\t1400\n"
1158 "InstallFiles\t\t1500\n"
1159 "RegisterProduct\t\t1600\n"
1160 "PublishFeatures\t\t1700\n"
1161 "PublishProduct\t\t1800\n"
1162 "UnpublishFeatures\t\t1850\n"
1163 "InstallFinalize\t\t1900\n";
1168 "Property\tProperty\n"
1170 "ProductCode\t{5CD99CD0-69C7-409B-9905-82DD743CC840}\n"
1171 "ProductName\tMSITEST\n"
1172 "ProductVersion\t1.1.1\n"
1173 "MSIFASTINSTALL\t1\n";
1178 "Property\tProperty\n"
1180 "ProductCode\t{4CEFADE5-DAFB-4C21-8EF2-4ED4F139F340}\n"
1181 "ProductName\tMSITEST2\n"
1182 "ProductVersion\t1.1.1\n"
1183 "MSIFASTINSTALL\t1\n";
1186 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1187 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1189 "sharedcomponent\tsharedcomponent\tsharedcomponent.txt\t1000\t\t\t8192\t1\n";
1192 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1193 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1194 "Feature\tFeature\n"
1195 "feature\t\t\t\t1\t2\tMSITESTDIR\t0\n";
1198 "Feature_\tComponent_\n"
1200 "FeatureComponents\tFeature_\tComponent_\n"
1201 "feature\tsharedcomponent\n";
1204 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1205 "s72\tS38\ts72\ti2\tS255\tS72\n"
1206 "Component\tComponent\n"
1207 "sharedcomponent\t{900A4ACB-DC6F-4795-A04B-81B530183D41}\tMSITESTDIR\t0\t\tsharedcomponent\n";
1210 "Action\tType\tSource\tTarget\tISComments\n"
1211 "s72\ti2\tS64\tS0\tS255\n"
1212 "CustomAction\tAction\n"
1213 "TestComponentAction\t19\t\twrong component action on install\t\n"
1214 "TestDisallowedAction\t19\t\twrong component action on disallowed remove\t\n"
1215 "TestRemoveAction\t19\t\twrong component action on remove\t\n";
1218 "Action\tCondition\tSequence\n"
1220 "InstallExecuteSequence\tAction\n"
1221 "LaunchConditions\t\t100\n"
1222 "CostInitialize\t\t200\n"
1224 "CostFinalize\t\t600\n"
1225 "TestDisallowedAction\tREMOVE AND ($sharedcomponent <> -1)\t700\n"
1226 "InstallValidate\t\t900\n"
1227 "InstallInitialize\t\t1200\n"
1228 "ProcessComponents\t\t1300\n"
1229 "RemoveFiles\t\t1400\n"
1230 "InstallFiles\t\t1500\n"
1231 "TestComponentAction\tNOT REMOVE AND ($sharedcomponent <> 3)\t1600\n"
1232 "RegisterProduct\t\t1700\n"
1233 "PublishFeatures\t\t1800\n"
1234 "PublishProduct\t\t1900\n"
1235 "UnpublishFeatures\t\t1950\n"
1236 "InstallFinalize\t\t2000\n";
1239 "Action\tCondition\tSequence\n"
1241 "InstallExecuteSequence\tAction\n"
1242 "LaunchConditions\t\t100\n"
1243 "CostInitialize\t\t200\n"
1245 "CostFinalize\t\t600\n"
1246 "TestRemoveAction\tREMOVE AND ($sharedcomponent <> 2)\t700\n"
1247 "InstallValidate\t\t900\n"
1248 "InstallInitialize\t\t1200\n"
1249 "ProcessComponents\t\t1300\n"
1250 "RemoveFiles\t\t1400\n"
1251 "InstallFiles\t\t1500\n"
1252 "TestComponentAction\tNOT REMOVE AND ($sharedcomponent <> 3)\t1600\n"
1253 "RegisterProduct\t\t1700\n"
1254 "PublishFeatures\t\t1800\n"
1255 "PublishProduct\t\t1900\n"
1256 "UnpublishFeatures\t\t1950\n"
1257 "InstallFinalize\t\t2000\n";
1260 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1261 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1263 "featuretree\tcomp\tfeaturetree.txt\t1000\t\t\t8192\t1\n";
1266 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1267 "s72\tS38\ts72\ti2\tS255\tS72\n"
1268 "Component\tComponent\n"
1269 "comp\t{12345678-1234-1234-1234-222222222222}\tTARGETDIR\t0\t\t\n"
1270 "comp2\t{12345678-1234-1234-1234-333333333333}\tTARGETDIR\t0\t\tfeaturetree\n";
1273 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1274 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1275 "Feature\tFeature\n"
1276 "A\t\t\t\t2\t1\t\t0\n"
1277 "C\tB\t\t\t2\t1\t\t0\n"
1278 "B\tA\t\t\t4\t1\t\t0\n"
1279 "D\t\t\t\t2\t1\t\t0\n";
1282 "Feature_\tComponent_\n"
1284 "FeatureComponents\tFeature_\tComponent_\n"
1289 "Feature_\tLevel\tCondition\n"
1291 "Condition\tFeature_\tLevel\n"
1292 "A\t0\t\"0\"<>INSTALLTYPE\n";
1295 "Action\tType\tSource\tTarget\tISComments\n"
1296 "s72\ti2\tS64\tS0\tS255\n"
1297 "CustomAction\tAction\n"
1298 "Run A\t19\t\tA\t\n"
1299 "Run B\t19\t\tB\t\n"
1300 "Run C\t19\t\tC\t\n";
1303 "Action\tCondition\tSequence\n"
1305 "InstallExecuteSequence\tAction\n"
1306 "CostInitialize\t\t100\n"
1308 "CostFinalize\t\t300\n"
1309 "InstallValidate\t\t400\n"
1310 "InstallInitialize\t\t500\n"
1311 "Run C\t3 = &C AND NOT Installed\t600\n"
1312 "Run B\t3 = &B AND NOT Installed\t700\n"
1313 "Run A\t3 = &A AND NOT Installed\t800\n"
1314 "ProcessComponents\t\t900\n"
1315 "RemoveFiles\t\t1000\n"
1316 "InstallFiles\t\t1100\n"
1317 "RegisterProduct\t\t1200\n"
1318 "PublishFeatures\t\t1300\n"
1319 "PublishProduct\t\t1400\n"
1320 "UnpublishFeatures\t\t1450\n"
1321 "InstallFinalize\t\t1500\n";
1324 "Action\tType\tSource\tTarget\n"
1325 "s72\ti2\tS64\tS0\n"
1326 "CustomAction\tAction\n"
1327 "setprop\t51\tdeferred\t[TESTPATH]\n"
1328 "immediate\t1\tcustom.dll\tda_immediate\n"
1329 "deferred\t1025\tcustom.dll\tda_deferred\n";
1332 "Action\tCondition\tSequence\n"
1334 "InstallExecuteSequence\tAction\n"
1335 "CostInitialize\t\t200\n"
1337 "CostFinalize\t\t400\n"
1338 "InstallInitialize\t\t500\n"
1341 "immediate\t\t800\n"
1342 "InstallFinalize\t\t1100\n";
1345 "Directory\tDirectory_Parent\tDefaultDir\n"
1347 "Directory\tDirectory\n"
1348 "CABOUTDIR\tMSITESTDIR\tcabout\n"
1349 "CHANGEDDIR\tMSITESTDIR\tchanged:second\n"
1350 "FIRSTDIR\tMSITESTDIR\tfirst\n"
1351 "MSITESTDIR\tProgramFiles64Folder\tmsitest\n"
1352 "NEWDIR\tCABOUTDIR\tnew\n"
1353 "ProgramFiles64Folder\tTARGETDIR\t.\n"
1354 "TARGETDIR\t\tSourceDir";
1357 "Action\tCondition\tSequence\n"
1359 "InstallExecuteSequence\tAction\n"
1360 "CostInitialize\t\t200\n"
1362 "CostFinalize\t\t400\n"
1363 "InstallValidate\t\t500\n"
1364 "InstallInitialize\t\t600\n"
1365 "sourcedir_unset\tSourceDir\t700\n"
1366 "ResolveSource\tRESOLVE_SOURCE\t800\n"
1367 "ProcessComponents\tPROCESS_COMPONENTS\t800\n"
1368 "InstallFiles\tINSTALL_FILES\t800\n"
1369 "sourcedir_set\tNOT SourceDir\t900\n"
1370 "InstallFinalize\t\t1000\n";
1373 "Action\tType\tSource\tTarget\n"
1374 "s72\ti2\tS64\tS0\n"
1375 "CustomAction\tAction\n"
1376 "sourcedir_unset\t19\t\tSourceDir should not be set\n"
1377 "sourcedir_set\t19\t\tSourceDir should be set\n";
1380 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1381 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1383 "five.txt\tFive\tfive.txt\t1000\t\t\t0\t5\n"
1384 "four.txt\tFour\tfour.txt\t1000\t\t\t0\t4\n";
1387 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1388 "s72\tS38\ts72\ti2\tS255\tS72\n"
1389 "Component\tComponent\n"
1390 "Five\t{8CC92E9D-14B2-4CA4-B2AA-B11D02078087}\tNEWDIR\t2\t\tfive.txt\n"
1391 "Four\t{FD37B4EA-7209-45C0-8917-535F35A2F080}\tCABOUTDIR\t2\t\tfour.txt\n";
1394 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1395 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1396 "Feature\tFeature\n"
1397 "Five\t\tFive\tThe Five Feature\t5\t3\tNEWDIR\t0\n"
1398 "Four\t\tFour\tThe Four Feature\t4\t3\tCABOUTDIR\t0\n";
1401 "Feature_\tComponent_\n"
1403 "FeatureComponents\tFeature_\tComponent_\n"
2105#define MEDIA_SIZE 0x7FFFFFFF
2106#define FOLDER_THRESHOLD 900000
2132 BOOL fContinuation,
void *pv)
2141 DWORD dwShareMode = 0;
2153 dwCreateDisposition, 0,
NULL);
2167 ok(
res,
"Failed to ReadFile\n");
2179 ok(
res,
"Failed to WriteFile\n");
2206 ok(
ret,
"Failed to DeleteFile %s\n", pszFile);
2242 if (tempname && (
strlen(tempname) < (
unsigned)cbTempName))
2268 ok(
res,
"Expected GetFileInformationByHandle to succeed\n");
2300 pCabParams->
setID = 0xbeef;
2301 pCabParams->
iCab = 1;
2321 ok(hfci !=
NULL,
"Failed to create an FCI context\n");
2327 ok(
res,
"Failed to add file: %s\n",
ptr);
2332 ok(
res,
"Failed to flush the cabinet\n");
2335 ok(
res,
"Failed to destroy the cabinet\n");
2344 "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", &hkey))
2512 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
2514 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
2516 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
2518 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
2536 const char *
template,
const char *packagecode)
2580 ok(
res != 0,
"couldn't find resource\n" );
2620 res =
run_query(hdb, 0,
"CREATE TABLE `Binary` (`Name` CHAR(72) NOT NULL, `Data` OBJECT NOT NULL PRIMARY KEY `Name`)");
2627 res =
run_query(hdb,
record,
"INSERT INTO `Binary` (`Name`, `Data`) VALUES ('custom.dll', ?)");
2634 INT version,
INT wordcount,
const char *
template,
const char *packagecode)
2649 for (
j = 0;
j < num_tables;
j++)
2682 skip(
"process is limited\n");
2703 "Expected ERROR_PATH_NOT_FOUND, got %d\n",
r);
2712 skip(
"Not enough rights to perform tests\n");
2737 ok(
num == 314,
"Expected 314, got %lu\n",
num);
2876 skip(
"Not enough rights to perform tests\n");
2925 query =
"SELECT * FROM `Media`";
2934 ok(
check_record(rec, 2,
"LastSequence"),
"wrong column label\n");
2965 static CHAR cab_context[] =
"test%d.cab";
2978 ok(hfci !=
NULL,
"Failed to create an FCI context\n");
2981 ok(
res,
"Failed to add file maximus\n");
2984 ok(
res,
"Failed to add file augustus\n");
2987 ok(
res,
"Failed to add file tiberius\n");
2990 ok(
res,
"Failed to flush the cabinet\n");
2993 ok(
res,
"Failed to destroy the cabinet\n");
3027 skip(
"process is limited\n");
3039 skip(
"Not enough rights to perform tests\n");
3062 skip(
"Not enough rights to perform tests\n");
3088 skip(
"Not enough rights to perform tests\n");
3104 ok(
MoveFileA(
"test2.cab",
"test2_.cab"),
"Cannot rename test2.cab to test2_.cab\n");
3112 skip(
"Not enough rights to perform tests\n");
3148 skip(
"Not enough rights to perform tests\n");
3220 skip(
"process is limited\n");
3238 skip(
"Not enough rights to perform tests\n");
3305 ok(!
delete_pf(
"msitest\\maximus",
TRUE),
"UI install occurred, but execute-only was requested.\n");
3340 skip(
"process is limited\n");
3364 skip(
"Not enough rights to perform tests\n");
3389 skip(
"process is limited\n");
3416 skip(
"Not enough rights to perform tests\n");
3428 ok(!
memcmp(
buf,
"maximus",
sizeof(
"maximus")-1 ),
"Expected file to be overwritten, got '%s'\n",
buf);
3446 skip(
"process is limited\n");
3459 skip(
"Not enough rights to perform tests\n");
3479 skip(
"process is limited\n");
3500 skip(
"Not enough rights to perform tests\n");
3588 "{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}1.1.1;"
3589 "{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}1.1.1;"
3590 "{4C0EAA15-0264-4E5A-8758-609EF142B92D}");
3621 query =
"INSERT INTO `Property` ( `Property`, `Value` ) VALUES ( 'prop', 'val' )";
3641static const WCHAR name1[] = { 0x4840, 0x3f3f, 0x4577, 0x446c, 0x3b6a, 0x45e4, 0x4824, 0 };
3642static const WCHAR name2[] = { 0x4840, 0x3f3f, 0x4577, 0x446c, 0x3e6a, 0x44b2, 0x482f, 0 };
3643static const WCHAR name3[] = { 0x4840, 0x4559, 0x44f2, 0x4568, 0x4737, 0 };
3657 0x0201, 0x0001, 0x0002,
3660static const struct {
3680 const CLSID CLSID_MsiTransform = { 0xc1082,0,0,{0xc0,0,0,0,0,0,0,0x46}};
3685 ok(
r ==
S_OK,
"failed to create storage\n");
3689 r = IStorage_SetClass(stg, &CLSID_MsiTransform);
3690 ok(
r ==
S_OK,
"failed to set storage type\n");
3698 ok(0,
"failed to create stream %#lx\n",
r);
3705 ok(0,
"failed to write stream\n");
3706 IStream_Release(stm);
3709 IStorage_Release(stg);
3720 skip(
"process is limited\n");
3734 skip(
"Not enough rights to perform tests\n");
3768 skip(
"process is limited\n");
3795 skip(
"Not enough rights to perform tests\n");
3867 skip(
"Not enough rights to perform tests\n");
3873 ok(!
DeleteFileA(
"c:\\msitest\\augustus"),
"File installed\n");
3883 ok(
DeleteFileA(
"c:\\msitest\\augustus"),
"File not installed\n");
3905 ok(
hr ==
S_OK,
"Expected S_OK, got %#lx\n",
hr);
3909 hr = IStorage_CreateStream(stg,
L"\x41ca\x4330\x3e71\x44b5\x4233\x45f5\x422c\x4836",
3911 ok(
hr ==
S_OK,
"Expected S_OK, got %#lx\n",
hr);
3913 hr = IStream_Write(stm,
L"MYPROP=2718 MyProp=42",
sizeof(
L"MYPROP=2718 MyProp=42"), &
count);
3914 ok(
hr ==
S_OK,
"Expected S_OK, got %#lx\n",
hr);
3916 IStream_Release(stm);
3917 IStorage_Release(stg);
3926 skip(
"process is limited\n");
3942 skip(
"Not enough rights to perform tests\n");
3969#define create_pf(file, is_file) create_pf_data(file, file, is_file)
3977 skip(
"process is limited\n");
4000 skip(
"Not enough rights to perform tests\n");
4007 ok(
compare_pf_data(
"msitest\\tiberius",
"abcdefgh",
sizeof(
"abcdefgh")),
"Wrong file contents\n");
4025 ok(
compare_pf_data(
"msitest\\tiberius",
"abcdefgh",
sizeof(
"abcdefgh")),
"Wrong file contents\n");
4047 skip(
"process is limited\n");
4061 skip(
"Not enough rights to perform tests\n");
4065 "Expected ERROR_INSTALL_FAILURE, got %u\n",
r);
4075 "Expected ERROR_INSTALL_FAILURE, got %u\n",
r);
4097 run_query(hdb, 0,
"CREATE TABLE `Test` (`Name` CHAR(10), `Number` INTEGER, `Data` OBJECT PRIMARY KEY `Name`)");
4102 run_query(hdb,
record,
"INSERT INTO `Test` (`Name`, `Number`, `Data`) VALUES ('one', 1, ?)");
4104 run_query(hdb,
record,
"INSERT INTO `Test` (`Name`, `Number`, `Data`) VALUES ('two', 2, ?)");
4132 ok(!
r,
"got %u\n",
r);
4136 ok(!
r,
"got %u\n",
r);
4150 skip(
"process is limited\n");
4164 skip(
"Not enough rights to perform tests\n");
4183 skip(
"process is limited\n");
4208 skip(
"Not enough rights to perform tests\n");
4305 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4306 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4307 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4308 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4309 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4310 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4311 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4312 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4313 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4314 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4315 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4316 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4317 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4318 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4319 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4320 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4321 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4322 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4323 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4324 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4325 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4326 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4327 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4328 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4329 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4330 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4331 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4332 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4333 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4334 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4335 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4336 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4337 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4338 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4339 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4340 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4341 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4342 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4343 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4344 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4345 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4346 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4347 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4348 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4349 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4350 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4351 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4352 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4353 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4354 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4355 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4356 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4357 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4358 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4359 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4360 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4361 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4362 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4363 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4364 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4365 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4366 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4367 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4368 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4369 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4370 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4371 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4372 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4373 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4374 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4375 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4376 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4377 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4378 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4379 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4380 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4381 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4382 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4383 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4384 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4385 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4386 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4387 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4388 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4389 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4390 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4391 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4392 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4393 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4394 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4395 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4396 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4397 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4398 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4399 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4400 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4401 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4402 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4403 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4404 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4405 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4406 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4407 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4408 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4409 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4410 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4411 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4412 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4413 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4414 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4415 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4416 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4417 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4418 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4419 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4420 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4421 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4422 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4423 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4424 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4425 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4426 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4427 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4428 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4429 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4430 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4431 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4432 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4433 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4434 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4435 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4436 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4437 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4438 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4439 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4440 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4441 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4442 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4443 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4444 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4445 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4446 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4447 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4448 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4449 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4450 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4451 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4452 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4453 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4454 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4455 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4456 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4457 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4458 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4459 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4460 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4461 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4462 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4463 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4464 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4465 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4466 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4467 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4468 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4469 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4470 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4471 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4472 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4473 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4474 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4475 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4476 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4477 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4478 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4479 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4480 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4481 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4482 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4483 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4484 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4485 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4486 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4487 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4488 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4489 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4490 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4491 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4492 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4493 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4494 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4495 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4496 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4497 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4498 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4499 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4500 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4501 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4502 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4503 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4504 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4505 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4506 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4507 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4508 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4509 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4510 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4511 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4512 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4513 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4514 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4515 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4516 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4517 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4518 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4519 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4520 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4521 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4522 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4523 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4524 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4525 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4526 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4527 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4528 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4529 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4530 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4531 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4532 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4533 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4534 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4535 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4536 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4537 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4538 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4539 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4540 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4541 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4542 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4543 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4544 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4545 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4546 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4547 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4548 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4549 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4550 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4551 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4552 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4553 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4554 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4555 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4556 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4557 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4558 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4559 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4560 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4588 skip(
"Run in interactive mode to run source path tests.\n");
4669 skip(
"process is limited\n");
4686 skip(
"Not enough rights to perform tests\n");
4695 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
4696 ok(
pf_exists(
"msitest\\helium"),
"File not installed\n");
4697 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
4698 ok(!
pf_exists(
"msitest\\beryllium"),
"File installed\n");
4706 ok(!
pf_exists(
"msitest\\beryllium"),
"File installed\n");
4725 skip(
"process is limited\n");
4739 skip(
"Not enough rights to perform tests\n");
4776 skip(
"process is limited\n");
4789 create_file(
"msitest\\cabout\\new\\five.txt", 100);
4794 "{004757CA-5092-49C2-AD20-28E1CE0DF5F2}");
4801 skip(
"Not enough rights to perform tests\n");
4813 ";1033",
"{004757CA-5092-49C2-AD20-28E1CE0DF5F2}");
4820 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
4822 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
4847 skip(
"process is limited\n");
4861 skip(
"Not enough rights to perform tests\n");
4886 static const char int0[] =
"int0\ni0\nint0\tint0\n1";
4887 static const char int1[] =
"int1\ni1\nint1\tint1\n1";
4888 static const char int2[] =
"int2\ni2\nint2\tint2\n1";
4889 static const char int3[] =
"int3\ni3\nint3\tint3\n1";
4890 static const char int4[] =
"int4\ni4\nint4\tint4\n1";
4891 static const char int5[] =
"int5\ni5\nint5\tint5\n1";
4892 static const char int8[] =
"int8\ni8\nint8\tint8\n1";
4953 skip(
"process is limited\n");
4965 skip(
"Not enough rights to perform tests\n");
5000 skip(
"process is limited\n");
5012 skip(
"Not enough rights to perform tests\n");
5017 ok(!
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File installed\n");
5019 ok(!
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File installed\n");
5021 ok(!
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File installed\n");
5032 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
5034 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
5036 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
5038 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
5051 static const char prodcode[] =
"{7df88a48-996f-4ec8-a022-bf956f9b2cbb}";
5056 skip(
"process is limited\n");
5068 skip(
"Not enough rights to perform tests\n");
5095 skip(
"process is limited\n");
5108 skip(
"Not enough rights to perform tests\n");
5160static const char session_manager[] =
"System\\CurrentControlSet\\Control\\Session Manager";
5171 ok(!
ret,
"RegQueryValueExA failed %ld\n",
ret);
5178 ok(!
ret,
"RegQueryValueExA failed %ld\n",
ret);
5204 if (
src[0] ==
'\\' &&
src[1] ==
'?' &&
src[2] ==
'?' &&
src[3] ==
'\\')
src += 4;
5207 if (
dst[0] ==
'\\' &&
dst[1] ==
'?' &&
dst[2] ==
'?' &&
dst[3] ==
'\\')
dst += 4;
5218 ok(found,
"Expected a 'msitest' entry\n");
5256 skip(
"process is limited\n");
5278 skip(
"Not enough rights to perform tests\n");
5315 skip(
"process is limited\n");
5340 skip(
"Not enough rights to perform tests\n");
5376 skip(
"process is limited\n");
5394 skip(
"Not enough rights to perform tests\n");
5399 ok(
pf_exists(
"msitest\\override.txt"),
"file not installed\n");
5400 ok(!
pf_exists(
"msitest\\preselected.txt"),
"file installed\n");
5401 ok(!
pf_exists(
"msitest\\notpreselected.txt"),
"file installed\n");
5411 ok(
pf_exists(
"msitest\\override.txt"),
"file not installed\n");
5412 ok(
pf_exists(
"msitest\\preselected.txt"),
"file not installed\n");
5413 ok(!
pf_exists(
"msitest\\notpreselected.txt"),
"file installed\n");
5419 ok(!
delete_pf(
"msitest\\preselected.txt",
TRUE),
"file not removed\n");
5425 ok(
pf_exists(
"msitest\\override.txt"),
"file not installed\n");
5426 ok(
pf_exists(
"msitest\\preselected.txt"),
"file not installed\n");
5427 ok(!
pf_exists(
"msitest\\notpreselected.txt"),
"file installed\n");
5433 ok(!
delete_pf(
"msitest\\preselected.txt",
TRUE),
"file not removed\n");
5452 static const char prodcode[] =
"{7DF88A49-996F-4EC8-A022-BF956F9B2CBB}";
5456 skip(
"process is limited\n");
5467 query =
"CREATE TABLE `Icon` (`Name` CHAR(72) NOT NULL, `Data` OBJECT NOT NULL PRIMARY KEY `Name`)";
5476 query =
"INSERT INTO `Icon` (`Name`, `Data`) VALUES ('testicon', ?)";
5492 skip(
"Not enough rights to perform tests\n");
5534 skip(
"process is limited\n");
5547 skip(
"Not enough rights to perform tests\n");
5725 skip(
"process is limited\n");
5738 ok(
pf_exists(
"msitest\\upgradecode.txt"),
"file not installed\n");
5743 ok(!
delete_pf(
"msitest\\upgradecode.txt",
TRUE),
"file not removed\n");
5761 skip(
"process is limited\n");
5766 skip(
"this test must be run on 64-bit\n");
5775 skip(
"Not enough rights to perform tests\n");
5781 ok(!
res,
"can't open 32-bit component key, got %ld\n",
res);
5783 ok(!
res,
"expected RegQueryValueEx to succeed, got %ld\n",
res);
5785 ok(
res,
"expected RegQueryValueEx to fail, got %ld\n",
res);
5789 ok(!
res,
"can't open 64-bit component key, got %ld\n",
res);
5791 ok(
res,
"expected RegQueryValueEx to fail, got %ld\n",
res);
5793 ok(!
res,
"expected RegQueryValueEx to succeed, got %ld\n",
res);
5797 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32",
5808 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32",
5828 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}",
5833 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}",
5844 ok(!
res,
"can't open 32-bit component key, got %ld\n",
res);
5846 ok(!
res,
"expected RegQueryValueEx to succeed, got %ld\n",
res);
5848 ok(
res,
"expected RegQueryValueEx to fail, got %ld\n",
res);
5852 ok(!
res,
"can't open 64-bit component key, got %ld\n",
res);
5854 ok(
res,
"expected RegQueryValueEx to fail, got %ld\n",
res);
5856 ok(!
res,
"expected RegQueryValueEx to succeed, got %ld\n",
res);
5860 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32",
5871 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32",
5891 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}",
5896 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}",
5910 skip(
"process is limited\n");
5936 skip(
"process is limited\n");
5940 create_file(
"msitest\\sharedcomponent.txt", 1000);
5942 100, 0,
";",
"{A8826420-FD72-4E61-9E15-C1944CF4CBE1}");
5944 100, 0,
";",
"{A8B50B30-0E8A-4ACD-B3CF-1A5DC58B2739}");
5951 ok(
pf_exists(
"msitest\\sharedcomponent.txt"),
"file not installed\n");
5956 ok(
pf_exists(
"msitest\\sharedcomponent.txt"),
"file not installed\n");
5961 ok(
pf_exists(
"msitest\\sharedcomponent.txt"),
"file removed\n");
5966 ok(!
pf_exists(
"msitest\\sharedcomponent.txt"),
"file not removed\n");
5985 skip(
"process is limited\n" );
5999 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UpgradeCodes\\51AAE0C44620A5E4788506E91F249BD2",
6010 ok( !
buf[0],
"wrong data\n" );
6017 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UpgradeCodes\\51AAE0C44620A5E4788506E91F249BD2",
6031 skip(
"process is limited\n" );
6082 skip(
"Not enough rights to perform tests\n");
6102 skip(
"test must be run on WoW64\n");
6108 skip(
"process is limited\n");
6117 skip(
"Not enough rights to perform tests\n");
6123 ok(!
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File installed\n");
6125 ok(!
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File installed\n");
6127 ok(!
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File installed\n");
6161 skip(
"process is limited\n" );
int strcmp(const char *String1, const char *String2)
char * strstr(char *String1, char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
char * strchr(const char *String, int ch)
static const WCHAR nameW[]
#define RegCloseKey(hKey)
static const CHAR suminfo[]
#define check_record(rec,...)
#define mem_free(ptr, bsize)
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
LONG WINAPI RegDeleteKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ REGSAM samDesired, _In_ DWORD Reserved)
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegDeleteValueA(HKEY hKey, LPCSTR lpValueName)
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
#define ERROR_INVALID_PARAMETER
#define INVALID_SET_FILE_POINTER
#define ReadFile(a, b, c, d, e)
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define GetCurrentProcess()
#define FILE_ATTRIBUTE_NORMAL
#define MultiByteToWideChar
static const WCHAR version[]
BOOL WINAPI CopyFileA(IN LPCSTR lpExistingFileName, IN LPCSTR lpNewFileName, IN BOOL bFailIfExists)
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
BOOL WINAPI RemoveDirectoryA(IN LPCSTR lpPathName)
BOOL WINAPI CreateDirectoryW(IN LPCWSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
BOOL WINAPI RemoveDirectoryW(IN LPCWSTR lpPathName)
BOOL WINAPI CreateDirectoryA(IN LPCSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
BOOL WINAPI GetFileInformationByHandle(HANDLE hFile, LPBY_HANDLE_FILE_INFORMATION lpFileInformation)
BOOL WINAPI SetEndOfFile(HANDLE hFile)
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName)
BOOL WINAPI MoveFileA(IN LPCSTR lpExistingFileName, IN LPCSTR lpNewFileName)
BOOL WINAPI MoveFileExA(IN LPCSTR lpExistingFileName, IN LPCSTR lpNewFileName OPTIONAL, IN DWORD dwFlags)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
DWORD WINAPI GetCurrentDirectoryA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
UINT WINAPI GetWindowsDirectoryA(OUT LPSTR lpBuffer, IN UINT uSize)
BOOL WINAPI SetCurrentDirectoryA(IN LPCSTR lpPathName)
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
BOOL WINAPI FileTimeToLocalFileTime(IN CONST FILETIME *lpFileTime, OUT LPFILETIME lpLocalFileTime)
BOOL WINAPI FileTimeToDosDateTime(IN CONST FILETIME *lpFileTime, OUT LPWORD lpFatDate, OUT LPWORD lpFatTime)
BOOL WINAPI Wow64RevertWow64FsRedirection(IN PVOID OldValue)
BOOL WINAPI Wow64DisableWow64FsRedirection(IN PVOID *OldValue)
HRSRC WINAPI FindResourceA(HMODULE hModule, LPCSTR name, LPCSTR type)
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
LPVOID WINAPI LockResource(HGLOBAL handle)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
LANGID WINAPI GetSystemDefaultLangID(void)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
UINT WINAPI MsiDatabaseImportW(MSIHANDLE handle, const WCHAR *szFolder, const WCHAR *szFilename)
UINT WINAPI MsiDatabaseImportA(MSIHANDLE handle, const char *szFolder, const char *szFilename)
UINT WINAPI MsiOpenDatabaseW(LPCWSTR szDBPath, LPCWSTR szPersist, MSIHANDLE *phDB)
UINT WINAPI MsiCloseHandle(MSIHANDLE handle)
UINT WINAPI MsiGetComponentStateA(MSIHANDLE hInstall, LPCSTR szComponent, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
UINT WINAPI MsiDoActionA(MSIHANDLE hInstall, LPCSTR szAction)
UINT WINAPI MsiSetComponentStateA(MSIHANDLE hInstall, LPCSTR szComponent, INSTALLSTATE iState)
UINT WINAPI MsiConfigureProductExA(LPCSTR szProduct, int iInstallLevel, INSTALLSTATE eInstallState, LPCSTR szCommandLine)
UINT WINAPI MsiSetExternalUIRecord(INSTALLUI_HANDLER_RECORD handler, DWORD filter, void *context, INSTALLUI_HANDLER_RECORD *prev)
UINT WINAPI MsiInstallProductA(LPCSTR szPackagePath, LPCSTR szCommandLine)
UINT WINAPI MsiEnableLogA(DWORD dwLogMode, const char *szLogFile, DWORD attributes)
INSTALLUILEVEL WINAPI MsiSetInternalUI(INSTALLUILEVEL dwUILevel, HWND *phWnd)
UINT WINAPI MsiOpenPackageA(LPCSTR szPackage, MSIHANDLE *phPackage)
int WINAPI MsiRecordGetInteger(MSIHANDLE handle, UINT iField)
UINT WINAPI MsiRecordGetStringA(MSIHANDLE handle, UINT iField, char *szValue, DWORD *pcchValue)
MSIHANDLE WINAPI MsiCreateRecord(UINT cParams)
UINT WINAPI MsiRecordSetStreamA(MSIHANDLE hRecord, UINT iField, const char *szFilename)
UINT WINAPI MsiRecordGetFieldCount(MSIHANDLE handle)
UINT WINAPI MsiSummaryInfoSetPropertyA(MSIHANDLE handle, UINT uiProperty, UINT uiDataType, INT iValue, FILETIME *pftValue, const char *szValue)
UINT WINAPI MsiGetSummaryInformationA(MSIHANDLE hDatabase, const char *szDatabase, UINT uiUpdateCount, MSIHANDLE *pHandle)
UINT WINAPI MsiCreateTransformSummaryInfoA(MSIHANDLE db, MSIHANDLE db_ref, const char *transform, int error, int validation)
UINT WINAPI MsiSummaryInfoPersist(MSIHANDLE handle)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI StgOpenStorage(const OLECHAR *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen)
HRESULT WINAPI StgCreateDocfile(LPCOLESTR pwcsName, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen)
static const WCHAR fileW[]
BOOL __cdecl FCIAddFile(HFCI hfci, char *pszSourceFile, char *pszFileName, BOOL fExecute, PFNFCIGETNEXTCABINET pfnfcignc, PFNFCISTATUS pfnfcis, PFNFCIGETOPENINFO pfnfcigoi, TCOMP typeCompress)
BOOL __cdecl FCIDestroy(HFCI hfci)
HFCI __cdecl FCICreate(PERF perf, PFNFCIFILEPLACED pfnfiledest, PFNFCIALLOC pfnalloc, PFNFCIFREE pfnfree, PFNFCIOPEN pfnopen, PFNFCIREAD pfnread, PFNFCIWRITE pfnwrite, PFNFCICLOSE pfnclose, PFNFCISEEK pfnseek, PFNFCIDELETE pfndelete, PFNFCIGETTEMPFILE pfnfcigtf, PCCAB pccab, void *pv)
BOOL __cdecl FCIFlushCabinet(HFCI hfci, BOOL fGetNextCab, PFNFCIGETNEXTCABINET pfnfcignc, PFNFCISTATUS pfnfcis)
UINT WINAPI GetTempFileNameA(IN LPCSTR lpPathName, IN LPCSTR lpPrefixString, IN UINT uUnique, OUT LPSTR lpTempFileName)
#define MOVEFILE_REPLACE_EXISTING
#define MOVEFILE_COPY_ALLOWED
GLuint GLuint GLsizei GLenum type
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLint GLboolean GLint GLenum access
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
double __cdecl erf(double)
#define FILE_FLAG_SEQUENTIAL_SCAN
#define ERROR_FILE_NOT_FOUND
static struct test_info tests[]
#define sprintf(buf, format,...)
static void create_cab_file(void)
static char CURR_DIR[MAX_PATH]
#define create_file(name, size)
static HMODULE MODULEINFO DWORD cb
static char memory[1024 *256]
void restart_as_admin_elevated(void)
#define todo_wine_if(is_todo)
static const msi_table icon_base_tables[]
static void test_volume_props(void)
static const CHAR co2_media_dat[]
static const msi_table up_tables[]
#define create_pf(file, is_file)
static DWORD get_pf_file_size(LPCSTR file)
static const CHAR registry_dat[]
static void set_admin_summary_info(const WCHAR *name)
static const msi_table fiu_tables[]
static const CHAR ci_component_dat[]
static const CHAR rof_feature_comp_dat[]
static const msi_table ft_tables[]
static const CHAR property_dat[]
static const CHAR fo_custom_action_dat[]
static const CHAR adm_admin_exec_seq_dat[]
static void set_cab_parameters(PCCAB pCabParams, const CHAR *name, DWORD max_size)
static const CHAR uc_component_dat[]
static const CHAR ca51_custom_action_dat[]
static BOOL CDECL get_next_cabinet(PCCAB pccab, ULONG cbPrevCab, void *pv)
static const CHAR uc_install_exec_seq_dat[]
static const CHAR uc_feature_comp_dat[]
static void test_shared_component(void)
static const msi_table aup2_tables[]
static const msi_table fiuc_tables[]
static const CHAR ca1_test_seq_dat[]
static const WCHAR msifile2W[]
static const msi_table ip_tables[]
static void test_sourcedirprop(void)
static const BOOL is_64bit
static BOOL file_matches(LPSTR path)
static const CHAR mcp_file_dat[]
static const CHAR mm_media_dat[]
static const struct sourcepathmap spmap[256]
static const WCHAR msifileW[]
static const CHAR rofc_media_dat[]
static BOOL delete_pf_native(const CHAR *rel_path, BOOL is_file)
static const CHAR directory_dat[]
static void process_pending_renames(HKEY hkey)
static void test_packagecoltypes(void)
static void test_upgrade_code(void)
static void delete_pf_files(void)
static void delete_test_files(void)
static const msi_table ca51_tables[]
static const CHAR ss_media_dat[]
static const CHAR cie_feature_comp_dat[]
UINT run_query(MSIHANDLE hdb, MSIHANDLE hrec, const char *query)
static const msi_table amp_tables[]
static const CHAR sp_component_dat[]
static const msi_table up5_tables[]
static void test_continuouscabs(void)
static void test_sourcepath(void)
static const char mixed_feature_comp_dat[]
static void test_propcase(void)
static void test_remove_upgrade_code(void)
static void test_int_widths(void)
static void test_admin(void)
static const char * msifile2
static const msi_table mm_tables[]
static void test_icon_table(void)
static const CHAR co_file_dat[]
static const CHAR file_dat[]
static const msi_table up2_tables[]
static const char ft_condition_dat[]
static const CHAR aup2_property_dat[]
static const char shc2_property_dat[]
static const CHAR cc3_media_dat[]
static const CHAR fo_file_dat[]
static const CHAR cwd_component_dat[]
static const CHAR is_feature_dat[]
static const CHAR rem_install_exec_seq_dat[]
static const CHAR pv_install_exec_seq_dat[]
static const CHAR mc_file_hash_dat[]
static const CHAR fo_component_dat[]
static const msi_table aup4_tables[]
static const msi_table cc_tables[]
static const char ft_comp_dat[]
BOOL delete_pf(const CHAR *rel_path, BOOL is_file)
static const char * customdll
static const CHAR cc_media_dat[]
static const msi_table sr_tables[]
static const CHAR cie_file_dat[]
static void test_uiLevelFlags(void)
static const CHAR ca51_component_dat[]
static void test_installed_prop(void)
static const msi_table sp_tables[]
static const CHAR ca1__validation_dat[]
static const msi_table ca1_tables[]
static void test_setdirproperty(void)
static void test_allusers_prop(void)
static const CHAR install_exec_seq_dat[]
static const char data1[]
static const msi_table sc_tables[]
static const CHAR mc_file_dat[]
static void test_customaction1(void)
static const CHAR sdp_custom_action_dat[]
static const CHAR is_feature_comp_dat[]
static const msi_table tp_tables[]
static const CHAR ui_custom_action_dat[]
static void test_preselected(void)
static const msi_table pv_tables[]
static char * load_resource(const char *name)
static UINT CDECL fci_write(INT_PTR hf, void *memory, UINT cb, int *err, void *pv)
static const char mixed_registry_dat[]
static const CHAR sp_directory_dat[]
static const CHAR sdp_install_exec_seq_dat[]
static const CHAR up2_property_dat[]
static const msi_table mcp_tables[]
static BOOL file_matches_data(LPCSTR file, LPCSTR data)
BOOL pf_exists(const char *file)
static const CHAR is_component_dat[]
static const CHAR ci2_feature_comp_dat[]
static void test_file_in_use(void)
static const char session_manager[]
static void test_wow64(void)
static const CHAR aup2_install_exec_seq_dat[]
static const msi_table uc_tables[]
static const msi_table vp_tables[]
static const WCHAR name3[]
static BOOL CDECL get_temp_file(char *pszTempName, int cbTempName, void *pv)
static const CHAR up_property_dat[]
static const CHAR ca1_install_exec_seq_dat[]
static const msi_table cwd_tables[]
BOOL get_system_dirs(void)
char APP_DATA_DIR[MAX_PATH]
static UINT CDECL fci_read(INT_PTR hf, void *memory, UINT cb, int *err, void *pv)
static const msi_table up4_tables[]
static void test_feature_tree(void)
static const char rename_ops[]
static const CHAR aup_property_dat[]
static void test_MsiSetComponentState(void)
static const msi_table adm_tables[]
static const WCHAR name2[]
static const CHAR uc_property_dat[]
static const char vp_feature_comp_dat[]
static void test_adminprops(void)
static const WCHAR data2[]
static const char ft_feature_comp_dat[]
static void create_test_files(void)
static const char shc_component_dat[]
static const msi_table aup3_tables[]
static const char vp_component_dat[]
static INT_PTR CDECL get_open_info(char *pszName, USHORT *pdate, USHORT *ptime, USHORT *pattribs, int *err, void *pv)
static const CHAR cc2_component_dat[]
static const msi_table cc3_tables[]
static const CHAR ca51_install_exec_seq_dat[]
static const msi_table ss_tables[]
BOOL file_exists(const char *file)
static const char ft_file_dat[]
char PROG_FILES_DIR[MAX_PATH]
static void test_currentworkingdir(void)
static const CHAR uc_feature_dat[]
static const char da_custom_action_dat[]
static const CHAR uc_file_dat[]
char COMMON_FILES_DIR[MAX_PATH]
static const msi_table pc_tables[]
static const struct @1689 table_transform_data[]
static const msi_table mc_tables[]
static const msi_table mixed_tables[]
static const msi_table cie_tables[]
static const CHAR aup3_install_exec_seq_dat[]
static const CHAR tp_component_dat[]
static const msi_table ai2_tables[]
static INT_PTR CDECL fci_open(char *pszFile, int oflag, int pmode, int *err, void *pv)
static const CHAR rof_file_dat[]
static const CHAR sr_install_exec_seq_dat[]
static void generate_transform_manual(void)
static void test_adminimage(void)
static const char shc2_install_exec_seq_dat[]
static const CHAR ci2_file_dat[]
static const msi_table ps_tables[]
static const CHAR mcp_component_dat[]
static const WCHAR data3[]
static void test_deferred_action(void)
static const CHAR feature_dat[]
static void test_samesequence(void)
static BOOL delete_cf(const CHAR *rel_path, BOOL is_file)
static const char da_install_exec_seq_dat[]
static const msi_table sf_tables[]
static const char * msifile
static const char vp_file_dat[]
void create_file_data(LPCSTR name, LPCSTR data, DWORD size)
static const msi_table ui_tables[]
static const msi_table tables[]
static void test_MsiInstallProduct(void)
static void test_transformprop(void)
static const CHAR ca1_test2_dat[]
static const CHAR cc_feature_comp_dat[]
static void create_cc_test_files(void)
static const CHAR icon_property_dat[]
static const char vp_custom_action_dat[]
static const char ft_install_exec_seq_dat[]
static const char vp_feature_dat[]
static const msi_table aup_tables[]
static const CHAR cie_media_dat[]
static const msi_table up7_tables[]
static BOOL add_file(HFCI hfci, const char *file, TCOMP compress)
static const CHAR cc_feature_dat[]
static const CHAR aup_custom_action_dat[]
static const CHAR cc_component_dat[]
static const CHAR mc_component_dat[]
static const CHAR ui_install_ui_seq_dat[]
BOOL is_process_elevated(void)
static const msi_table da_tables[]
static void write_msi_summary_info(MSIHANDLE db, INT version, INT wordcount, const char *template, const char *packagecode)
static void test_readonlyfile_cab(void)
static const CHAR ai2_file_dat[]
static void test_package_validation(void)
static const CHAR cc_file_dat[]
static void generate_transform(void)
static const msi_table ai_tables[]
static void test_sourcefolder(void)
static const char shc_feature_dat[]
static const CHAR adm_custom_action_dat[]
static const msi_table sdp_tables[]
static const char shc_feature_comp_dat[]
static const char shc_property_dat[]
static int CDECL fci_delete(char *pszFile, int *err, void *pv)
static const CHAR fo_feature_comp_dat[]
static const CHAR ip_install_exec_seq_dat[]
static const CHAR rof_media_dat[]
static void check_file_matches(const char *filename, const char *text)
static void test_file_in_use_cab(void)
static const CHAR x64_directory_dat[]
static void test_cabisextracted(void)
static void set_admin_property_stream(LPCSTR file)
static const CHAR fo_install_exec_seq_dat[]
static const CHAR up3_property_dat[]
static const msi_table x64_tables[]
static const CHAR adm_component_dat[]
static const CHAR wrv_component_dat[]
static const CHAR component_dat[]
static const CHAR sr_custom_action_dat[]
static void test_mixedmedia(void)
static const CHAR cc2_file_dat[]
static const CHAR media_dat[]
void create_pf_data(LPCSTR file, LPCSTR data, BOOL is_file)
static void test_feature_override(void)
char PROG_FILES_DIR_NATIVE[MAX_PATH]
static const CHAR ai2_feature_comp_dat[]
static BOOL compare_pf_data(const char *filename, const char *data, DWORD size)
static void test_installstate(void)
static const msi_table co_tables[]
static int CDECL file_placed(PCCAB pccab, char *pszFile, LONG cbFile, BOOL fContinuation, void *pv)
static const CHAR rof_component_dat[]
void create_database_wordcount(const CHAR *name, const msi_table *tables, int num_tables, INT version, INT wordcount, const char *template, const char *packagecode)
static void test_shortcut(void)
static const char shc_custom_action_dat[]
static const char ft_feature_dat[]
static const CHAR is_media_dat[]
static const CHAR ai2_feature_dat[]
static const CHAR is_file_dat[]
static const msi_table co2_tables[]
static const CHAR ai2_component_dat[]
static const CHAR ca1_custom_action_dat[]
static const CHAR amp_component_dat[]
static const CHAR shortcut_dat[]
static const msi_table shc_tables[]
static LONG CDECL fci_seek(INT_PTR hf, LONG dist, int seektype, int *err, void *pv)
static const msi_table rofc_tables[]
static void test_caborder(void)
static const msi_table cc2_tables[]
char WINDOWS_DIR[MAX_PATH]
static const CHAR mm_file_dat[]
static const msi_table rof_tables[]
static const char mixed_component_dat[]
static const WCHAR name1[]
static const char shc_file_dat[]
static const msi_table up3_tables[]
static const CHAR ip_custom_action_dat[]
static const char mixed_feature_dat[]
static const char * mstfile
static INT CALLBACK ok_callback(void *context, UINT message_type, MSIHANDLE record)
static const char vp_install_exec_seq_dat[]
static const msi_table fo_tables[]
static const CHAR condition_dat[]
static const CHAR rof_feature_dat[]
static void test_customaction51(void)
static const CHAR feature_comp_dat[]
static const CHAR co_media_dat[]
static const CHAR fo_feature_dat[]
static const CHAR rofc_file_dat[]
static const msi_table is_tables[]
static const CHAR pp_install_exec_seq_dat[]
static const CHAR aup_install_exec_seq_dat[]
static void test_readonlyfile(void)
static void test_missingcomponent(void)
static const char mixed_install_exec_seq_dat[]
static const CHAR mcp_feature_dat[]
static void write_file(const CHAR *filename, const char *data, int data_size)
static const char shc_install_exec_seq_dat[]
static const char ft_custom_action_dat[]
static const CHAR mcp_feature_comp_dat[]
static void add_custom_dll(MSIHANDLE hdb)
static int CDECL fci_close(INT_PTR hf, int *err, void *pv)
static void test_mixed_package(void)
static void delete_pfmsitest_files(void)
static const CHAR fo_condition_dat[]
static void test_source_resolution(void)
static const msi_table up6_tables[]
static const msi_table shc2_tables[]
static const CHAR ui_component_dat[]
static void set_transform_summary_info(void)
void delete_cab_files(void)
static const CHAR cie_component_dat[]
static const CHAR mc_media_dat[]
static const CHAR ai_file_dat[]
static void test_missingcab(void)
#define create_database(name, tables, num_tables)
#define create_database_template(name, tables, num_tables, version, template)
INTERNETFEATURELIST feature
@ INSTALLLOGMODE_FATALEXIT
@ INSTALLUILEVEL_SOURCERESONLY
@ msidbSumInfoSourceTypeAdminImage
@ msidbSumInfoSourceTypeCompressed
UINT WINAPI MsiViewClose(MSIHANDLE hView)
UINT WINAPI MsiViewExecute(MSIHANDLE hView, MSIHANDLE hRec)
UINT WINAPI MsiDatabaseGenerateTransformA(MSIHANDLE hdb, MSIHANDLE hdbref, const char *szTransformFile, int iReserved1, int iReserved2)
UINT WINAPI MsiDatabaseCommit(MSIHANDLE hdb)
UINT WINAPI MsiViewGetColumnInfo(MSIHANDLE hView, MSICOLINFO info, MSIHANDLE *hRec)
UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE hdb, const char *szQuery, MSIHANDLE *phView)
#define MSIDBOPEN_TRANSACT
#define MSIDBOPEN_READONLY
#define FILE_ATTRIBUTE_READONLY
#define FILE_SHARE_DELETE
#define STGM_SHARE_EXCLUSIVE
@ COINIT_APARTMENTTHREADED
#define SUBLANG_ENGLISH_US
int ZEXPORT compress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)
#define FOF_NOCONFIRMATION
static char tmpdir[MAX_PATH]
int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp)
char szCabPath[CB_MAX_CAB_PATH]
char szCab[CB_MAX_CABINET_NAME]
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
#define INVALID_FILE_ATTRIBUTES
static const WCHAR props[]
DWORD WINAPI GetLastError(void)
#define INVALID_FILE_SIZE
#define ERROR_INSTALL_FAILURE
#define ERROR_INSTALL_PACKAGE_INVALID
#define ERROR_INSTALL_USEREXIT
#define ERROR_SHARING_VIOLATION
#define ERROR_PATH_NOT_FOUND
#define ERROR_INSTALL_PACKAGE_REJECTED
#define ERROR_INSTALL_PLATFORM_UNSUPPORTED
#define ERROR_INSTALL_LANGUAGE_UNSUPPORTED
#define ERROR_SUCCESS_REBOOT_REQUIRED
#define ERROR_FUNCTION_FAILED
enum _TOKEN_ELEVATION_TYPE TOKEN_ELEVATION_TYPE
@ TokenElevationTypeDefault
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
#define HKEY_CLASSES_ROOT