42static UINT (
WINAPI *pMsiSourceListEnumSourcesA)
49static BOOL (
WINAPI *pWow64DisableWow64FsRedirection)(
void **);
50static BOOL (
WINAPI *pWow64RevertWow64FsRedirection)(
void *);
58static const char *
msifile =
"msitest.msi";
60static const char *
mstfile =
"winetest.mst";
76static const CHAR component_dat[] =
"Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
77 "s72\tS38\ts72\ti2\tS255\tS72\n"
78 "Component\tComponent\n"
79 "Five\t{8CC92E9D-14B2-4CA4-B2AA-B11D02078087}\tNEWDIR\t2\t\tfive.txt\n"
80 "Four\t{FD37B4EA-7209-45C0-8917-535F35A2F080}\tCABOUTDIR\t2\t\tfour.txt\n"
81 "One\t{783B242E-E185-4A56-AF86-C09815EC053C}\tMSITESTDIR\t2\tNOT REINSTALL\tone.txt\n"
82 "Three\t{010B6ADD-B27D-4EDD-9B3D-34C4F7D61684}\tCHANGEDDIR\t2\t\tthree.txt\n"
83 "Two\t{BF03D1A6-20DA-4A65-82F3-6CAC995915CE}\tFIRSTDIR\t2\t\ttwo.txt\n"
84 "dangler\t{6091DF25-EF96-45F1-B8E9-A9B1420C7A3C}\tTARGETDIR\t4\t\tregdata\n"
85 "component\t\tMSITESTDIR\t0\t1\tfile\n";
89 "Directory\tDirectory\n"
90 "CABOUTDIR\tMSITESTDIR\tcabout\n"
91 "CHANGEDDIR\tMSITESTDIR\tchanged:second\n"
92 "FIRSTDIR\tMSITESTDIR\tfirst\n"
93 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
94 "NEWDIR\tCABOUTDIR\tnew\n"
95 "ProgramFilesFolder\tTARGETDIR\t.\n"
96 "TARGETDIR\t\tSourceDir";
98static const CHAR feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
99 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
101 "Five\t\tFive\tThe Five Feature\t5\t3\tNEWDIR\t0\n"
102 "Four\t\tFour\tThe Four Feature\t4\t3\tCABOUTDIR\t0\n"
103 "One\t\tOne\tThe One Feature\t1\t3\tMSITESTDIR\t0\n"
104 "Three\t\tThree\tThe Three Feature\t3\t3\tCHANGEDDIR\t0\n"
105 "Two\t\tTwo\tThe Two Feature\t2\t3\tFIRSTDIR\t0\n"
106 "feature\t\t\t\t2\t1\tTARGETDIR\t0\n";
110 "FeatureComponents\tFeature_\tComponent_\n"
116 "feature\tcomponent\n";
118static const CHAR file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
119 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
121 "five.txt\tFive\tfive.txt\t1000\t\t\t16384\t5\n"
122 "four.txt\tFour\tfour.txt\t1000\t\t\t16384\t4\n"
123 "one.txt\tOne\tone.txt\t1000\t\t\t0\t1\n"
124 "three.txt\tThree\tthree.txt\t1000\t\t\t0\t3\n"
125 "two.txt\tTwo\ttwo.txt\t1000\t\t\t0\t2\n"
126 "file\tcomponent\tfilename\t100\t\t\t8192\t1\n";
130 "InstallExecuteSequence\tAction\n"
131 "AllocateRegistrySpace\tNOT Installed\t1550\n"
132 "CostFinalize\t\t1000\n"
133 "CostInitialize\t\t800\n"
135 "ResolveSource\t\t950\n"
136 "MoveFiles\t\t1700\n"
137 "InstallFiles\t\t4000\n"
138 "BindImage\t\t4100\n"
139 "DuplicateFiles\t\t4500\n"
140 "WriteEnvironmentStrings\t\t4550\n"
141 "CreateShortcuts\t\t4600\n"
142 "InstallFinalize\t\t6600\n"
143 "InstallInitialize\t\t1500\n"
144 "InstallValidate\t\t1400\n"
145 "LaunchConditions\t\t100\n"
146 "WriteRegistryValues\tSourceDir And SOURCEDIR\t5000";
148static const CHAR media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
149 "i2\ti4\tL64\tS255\tS32\tS72\n"
151 "1\t3\t\t\tDISK1\t\n"
152 "2\t5\t\tmsitest.cab\tDISK2\t\n";
156 "Property\tProperty\n"
157 "DefaultUIFont\tDlgFont8\n"
160 "InstallMode\tTypical\n"
161 "Manufacturer\tWine\n"
162 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
163 "PRIMARYFOLDER\tTARGETDIR\n"
164 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
166 "ProductLanguage\t1033\n"
167 "ProductName\tMSITEST\n"
168 "ProductVersion\t1.1.1\n"
169 "PROMPTROLLBACKCOST\tP\n"
171 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
172 "AdminProperties\tPOSTADMIN\n"
174 "MSIFASTINSTALL\t1\n";
178 "Property\tProperty\n"
179 "DefaultUIFont\tDlgFont8\n"
183 "InstallMode\tTypical\n"
184 "Manufacturer\tWine\n"
185 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
186 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
188 "ProductLanguage\t1033\n"
189 "ProductName\tMSITEST\n"
190 "ProductVersion\t1.1.1\n"
191 "PROMPTROLLBACKCOST\tP\n"
193 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
194 "AdminProperties\tPOSTADMIN\n"
196 "MSIFASTINSTALL\t1\n";
200 "Property\tProperty\n"
201 "DefaultUIFont\tDlgFont8\n"
205 "InstallMode\tTypical\n"
206 "Manufacturer\tWine\n"
207 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
208 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
210 "ProductLanguage\t1033\n"
211 "ProductName\tMSITEST\n"
212 "ProductVersion\t1.1.1\n"
213 "PROMPTROLLBACKCOST\tP\n"
215 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
216 "AdminProperties\tPOSTADMIN\n"
218 "MSIFASTINSTALL\t1\n";
222 "Property\tProperty\n"
223 "DefaultUIFont\tDlgFont8\n"
226 "InstallMode\tTypical\n"
227 "Manufacturer\tWine\n"
228 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
229 "ProductCode\t{7DF88A49-996F-4EC8-A022-BF956F9B2CBB}\n"
231 "ProductLanguage\t1033\n"
232 "ProductName\tMSITEST\n"
233 "ProductVersion\t1.1.1\n"
234 "PROMPTROLLBACKCOST\tP\n"
236 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
237 "AdminProperties\tPOSTADMIN\n"
239 "MSIFASTINSTALL\t1\n";
241static const CHAR shortcut_dat[] =
"Shortcut\tDirectory_\tName\tComponent_\tTarget\tArguments\tDescription\tHotkey\tIcon_\tIconIndex\tShowCmd\tWkDir\n"
242 "s72\ts72\tl128\ts72\ts72\tS255\tL255\tI2\tS72\tI2\tI2\tS72\n"
243 "Shortcut\tShortcut\n"
244 "Shortcut\tMSITESTDIR\tShortcut\tcomponent\tShortcut\t\tShortcut\t\t\t\t\t\n";
248 "Condition\tFeature_\tLevel\n"
253 "Property\tProperty\n"
254 "DefaultUIFont\tDlgFont8\n"
257 "InstallMode\tTypical\n"
258 "Manufacturer\tWine\n"
259 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
260 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
262 "ProductLanguage\t1033\n"
263 "ProductName\tMSITEST\n"
264 "ProductVersion\t1.1.1\n"
265 "PROMPTROLLBACKCOST\tP\n"
267 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
268 "AdminProperties\tPOSTADMIN\n"
270 "RemovePreviousVersions\t1\n"
271 "MSIFASTINSTALL\t1\n";
275 "Property\tProperty\n"
276 "DefaultUIFont\tDlgFont8\n"
279 "InstallMode\tTypical\n"
280 "Manufacturer\tWine\n"
281 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
282 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
284 "ProductLanguage\t1033\n"
285 "ProductName\tMSITEST\n"
286 "ProductVersion\t1.1.2\n"
287 "PROMPTROLLBACKCOST\tP\n"
289 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
290 "AdminProperties\tPOSTADMIN\n"
292 "MSIFASTINSTALL\t1\n";
296 "Property\tProperty\n"
297 "DefaultUIFont\tDlgFont8\n"
300 "InstallMode\tTypical\n"
301 "Manufacturer\tWine\n"
302 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
303 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
305 "ProductLanguage\t1033\n"
306 "ProductName\tMSITEST\n"
307 "ProductVersion\t1.1.2\n"
308 "PROMPTROLLBACKCOST\tP\n"
310 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
311 "AdminProperties\tPOSTADMIN\n"
313 "RemovePreviousVersions\t1\n"
314 "MSIFASTINSTALL\t1\n";
317 "s72\ti2\tl255\tL255\tL0\ts72\n"
318 "Registry\tRegistry\n"
319 "Apples\t1\tSOFTWARE\\Wine\\msitest\tName\timaname\tOne\n"
320 "Oranges\t1\tSOFTWARE\\Wine\\msitest\tnumber\t#314\tTwo\n"
321 "regdata\t1\tSOFTWARE\\Wine\\msitest\tblah\tbad\tdangler\n"
322 "OrderTest\t1\tSOFTWARE\\Wine\\msitest\tOrderTestName\tOrderTestValue\tcomponent";
326 "s72\tS38\ts72\ti2\tS255\tS72\n"
327 "Component\tComponent\n"
328 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n"
329 "augustus\t\tMSITESTDIR\t0\t1\taugustus\n"
330 "caesar\t\tMSITESTDIR\t0\t1\tcaesar\n";
333 "s72\tS38\ts72\ti2\tS255\tS72\n"
334 "Component\tComponent\n"
335 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n"
336 "augustus\t\tMSITESTDIR\t0\t0\taugustus\n"
337 "caesar\t\tMSITESTDIR\t0\t1\tcaesar\n";
339static const CHAR cc_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
340 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
342 "feature\t\t\t\t2\t1\tTARGETDIR\t0";
346 "FeatureComponents\tFeature_\tComponent_\n"
348 "feature\taugustus\n"
351static const CHAR cc_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
352 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
354 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1\n"
355 "augustus\taugustus\taugustus\t50000\t\t\t16384\t2\n"
356 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t12";
358static const CHAR cc2_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
359 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
361 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1\n"
362 "augustus\taugustus\taugustus\t50000\t\t\t16384\t2\n"
363 "tiberius\tmaximus\ttiberius\t500\t\t\t16384\t3\n"
364 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t12";
366static const CHAR cc_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
367 "i2\ti4\tL64\tS255\tS32\tS72\n"
369 "1\t10\t\ttest1.cab\tDISK1\t\n"
370 "2\t2\t\ttest2.cab\tDISK2\t\n"
371 "3\t12\t\ttest3.cab\tDISK3\t\n";
373static const CHAR cc3_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
374 "i2\ti4\tL64\tS255\tS32\tS72\n"
376 "1\t10\t\ttest1.cab\tDISK1\t\n"
377 "2\t2\t\ttest2_.cab\tDISK2\t\n"
378 "3\t12\t\ttest3.cab\tDISK3\t\n";
380static const CHAR co_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
381 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
383 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1\n"
384 "augustus\taugustus\taugustus\t50000\t\t\t16384\t2\n"
385 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t3";
387static const CHAR co_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
388 "i2\ti4\tL64\tS255\tS32\tS72\n"
390 "1\t10\t\ttest1.cab\tDISK1\t\n"
391 "2\t2\t\ttest2.cab\tDISK2\t\n"
392 "3\t3\t\ttest3.cab\tDISK3\t\n";
394static const CHAR co2_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
395 "i2\ti4\tL64\tS255\tS32\tS72\n"
397 "1\t10\t\ttest1.cab\tDISK1\t\n"
398 "2\t12\t\ttest3.cab\tDISK3\t\n"
399 "3\t2\t\ttest2.cab\tDISK2\t\n";
401static const CHAR mm_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
402 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
404 "maximus\tmaximus\tmaximus\t500\t\t\t512\t1\n"
405 "augustus\taugustus\taugustus\t500\t\t\t512\t2\n"
406 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t3";
408static const CHAR mm_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
409 "i2\ti4\tL64\tS255\tS32\tS72\n"
411 "1\t3\t\ttest1.cab\tDISK1\t\n";
413static const CHAR ss_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
414 "i2\ti4\tL64\tS255\tS32\tS72\n"
416 "1\t2\t\ttest1.cab\tDISK1\t\n"
417 "2\t2\t\ttest2.cab\tDISK2\t\n"
418 "3\t12\t\ttest3.cab\tDISK3\t\n";
422 "s72\tS38\ts72\ti2\tS255\tS72\n"
423 "Component\tComponent\n"
424 "maximus\t\tMSITESTDIR\t0\tHASUIRUN=1\tmaximus\n"
425 "augustus\t\tMSITESTDIR\t0\t1\taugustus\n"
426 "caesar\t\tMSITESTDIR\t0\t1\tcaesar\n";
430 "InstallUISequence\tAction\n"
431 "SetUIProperty\t\t5\n"
432 "ExecuteAction\t\t1100\n";
435 "s72\ti2\tS64\tS0\tS255\n"
436 "CustomAction\tAction\n"
437 "SetUIProperty\t51\tHASUIRUN\t1\t\n";
440 "s72\tS38\ts72\ti2\tS255\tS72\n"
441 "Component\tComponent\n"
442 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n";
444static const CHAR rof_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
445 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
447 "feature\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0\n"
448 "montecristo\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0";
452 "FeatureComponents\tFeature_\tComponent_\n"
454 "montecristo\tmaximus";
456static const CHAR rof_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
457 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
459 "maximus\tmaximus\tmaximus\t500\t\t\t8192\t1";
461static const CHAR rof_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
462 "i2\ti4\tL64\tS255\tS32\tS72\n"
464 "1\t1\t\t\tDISK1\t\n";
466static const CHAR rofc_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
467 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
469 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1";
471static const CHAR rofc_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
472 "i2\ti4\tL64\tS255\tS32\tS72\n"
474 "1\t1\t\ttest1.cab\tDISK1\t\n";
478 "InstallExecuteSequence\tAction\n"
479 "AllocateRegistrySpace\tNOT Installed\t1550\n"
480 "CostFinalize\t\t1000\n"
481 "CostInitialize\t\t800\n"
483 "InstallFiles\t\t4000\n"
484 "InstallFinalize\t\t6600\n"
485 "InstallInitialize\t\t1500\n"
486 "InstallValidate\t\t1400\n"
487 "LaunchConditions\t\t100\n"
488 "SetDirProperty\t\t950";
491 "s72\ti2\tS64\tS0\tS255\n"
492 "CustomAction\tAction\n"
493 "SetDirProperty\t51\tMSITESTDIR\t[CommonFilesFolder]msitest\\\t\n";
497 "InstallExecuteSequence\tAction\n"
498 "LaunchConditions\t\t100\n"
499 "CostInitialize\t\t800\n"
501 "CostFinalize\t\t1000\n"
502 "InstallValidate\t\t1400\n"
503 "InstallInitialize\t\t1500\n"
504 "InstallFiles\t\t4000\n"
505 "InstallFinalize\t\t6600\n";
508 "s72\tS38\ts72\ti2\tS255\tS72\n"
509 "Component\tComponent\n"
510 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n"
511 "augustus\t\tMSITESTDIR\t0\t1\taugustus\n"
512 "caesar\t\tMSITESTDIR\t0\t1\tcaesar\n"
513 "gaius\t\tMSITESTDIR\t0\t1\tgaius\n";
517 "FeatureComponents\tFeature_\tComponent_\n"
519 "feature\taugustus\n"
523static const CHAR cie_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
524 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
526 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1\n"
527 "augustus\taugustus\taugustus\t50000\t\t\t16384\t2\n"
528 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t12\n"
529 "gaius\tgaius\tgaius\t500\t\t\t8192\t11";
531static const CHAR cie_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
532 "i2\ti4\tL64\tS255\tS32\tS72\n"
534 "1\t1\t\ttest1.cab\tDISK1\t\n"
535 "2\t2\t\ttest2.cab\tDISK2\t\n"
536 "3\t12\t\ttest3.cab\tDISK3\t\n";
539 "s72\tS38\ts72\ti2\tS255\tS72\n"
540 "Component\tComponent\n"
541 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\tUILevel=5\tmaximus\n";
545 "FeatureComponents\tFeature_\tComponent_\n"
548static const CHAR ci2_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
549 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
551 "augustus\taugustus\taugustus\t500\t\t\t8192\t1";
555 "InstallExecuteSequence\tAction\n"
556 "ValidateProductID\t\t700\n"
557 "CostInitialize\t\t800\n"
559 "CostFinalize\t\t1000\n"
560 "InstallValidate\t\t1400\n"
561 "InstallInitialize\t\t1500\n"
562 "ProcessComponents\tPROCESS_COMPONENTS=1 Or FULL=1\t1600\n"
563 "UnpublishFeatures\tUNPUBLISH_FEATURES=1 Or FULL=1\t1800\n"
564 "RemoveFiles\t\t3500\n"
565 "InstallFiles\t\t4000\n"
566 "RegisterUser\tREGISTER_USER=1 Or FULL=1\t6000\n"
567 "RegisterProduct\tREGISTER_PRODUCT=1 Or FULL=1\t6100\n"
568 "PublishFeatures\tPUBLISH_FEATURES=1 Or FULL=1\t6300\n"
569 "PublishProduct\tPUBLISH_PRODUCT=1 Or FULL=1\t6400\n"
570 "InstallFinalize\t\t6600";
573 "s72\tS38\ts72\ti2\tS255\tS72\n"
574 "Component\tComponent\n"
575 "augustus\t\tMSITESTDIR\t0\tprop=\"val\"\taugustus\n";
578 "s72\tS38\ts72\ti2\tS255\tS72\n"
579 "Component\tComponent\n"
580 "augustus\t\tMSITESTDIR\t0\t\taugustus\n";
583 "s72\tS38\ts72\ti2\tS255\tS72\n"
584 "Component\tComponent\n"
585 "augustus\t\tMSITESTDIR\t0\tPOSTADMIN=1\taugustus";
588 "s72\ti2\tS64\tS0\tS255\n"
589 "CustomAction\tAction\n"
590 "SetPOSTADMIN\t51\tPOSTADMIN\t1\t\n";
594 "AdminExecuteSequence\tAction\n"
595 "CostFinalize\t\t1000\n"
596 "CostInitialize\t\t800\n"
598 "SetPOSTADMIN\t\t950\n"
599 "InstallFiles\t\t4000\n"
600 "InstallFinalize\t\t6600\n"
601 "InstallInitialize\t\t1500\n"
602 "InstallValidate\t\t1400\n"
603 "LaunchConditions\t\t100";
606 "s72\tS38\ts72\ti2\tS255\tS72\n"
607 "Component\tComponent\n"
608 "augustus\t\tMSITESTDIR\t0\tMYPROP=2718 and MyProp=42\taugustus\n";
612 "InstallExecuteSequence\tAction\n"
613 "ValidateProductID\t\t700\n"
614 "CostInitialize\t\t800\n"
616 "CostFinalize\t\t1000\n"
617 "InstallValidate\t\t1400\n"
618 "InstallInitialize\t\t1500\n"
619 "ProcessComponents\t\t1600\n"
620 "UnpublishFeatures\t\t1800\n"
621 "RemoveFiles\t\t3500\n"
622 "InstallFiles\t\t4000\n"
623 "RegisterProduct\t\t6100\n"
624 "PublishFeatures\t\t6300\n"
625 "PublishProduct\t\t6400\n"
626 "InstallFinalize\t\t6600";
629 "s72\tS38\ts72\ti2\tS255\tS72\n"
630 "Component\tComponent\n"
631 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n"
632 "augustus\t\tMSITESTDIR\t0\t1\taugustus\n"
633 "caesar\t\tMSITESTDIR\t0\t1\tcaesar\n"
634 "gaius\t\tMSITESTDIR\t0\tGAIUS=1\tgaius\n"
635 "tiberius\t\tMSITESTDIR\t0\t\ttiberius\n";
637static const CHAR mc_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
638 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
640 "maximus\tmaximus\tmaximus\t500\t\t\t16384\t1\n"
641 "augustus\taugustus\taugustus\t500\t\t\t0\t2\n"
642 "caesar\tcaesar\tcaesar\t500\t\t\t16384\t3\n"
643 "gaius\tgaius\tgaius\t500\t\t\t16384\t4\n"
644 "tiberius\ttiberius\ttiberius\t500\t\t\t0\t5\n";
646static const CHAR mc_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
647 "i2\ti4\tL64\tS255\tS32\tS72\n"
649 "1\t1\t\ttest1.cab\tDISK1\t\n"
650 "2\t2\t\ttest2.cab\tDISK2\t\n"
651 "3\t3\t\ttest3.cab\tDISK3\t\n"
652 "4\t4\t\ttest3.cab\tDISK3\t\n"
653 "5\t5\t\ttest4.cab\tDISK4\t\n";
656 "s72\ti2\ti4\ti4\ti4\ti4\n"
657 "MsiFileHash\tFile_\n"
658 "caesar\t0\t850433704\t-241429251\t675791761\t-1221108824";
661 "s72\tS38\ts72\ti2\tS255\tS72\n"
662 "Component\tComponent\n"
663 "augustus\t\tMSITESTDIR\t0\t\taugustus\n";
667 "InstallExecuteSequence\tAction\n"
668 "CostInitialize\t\t100\n"
670 "CostFinalize\t\t300\n"
671 "InstallValidate\t\t400\n"
672 "InstallInitialize\t\t500\n"
674 "maintest\tMAIN_TEST\t700\n"
675 "testretval\tTEST_RETVAL\t710\n"
676 "process1\tTEST_PROCESS\t720\n"
677 "process2\tTEST_PROCESS\t721\n"
678 "process_deferred\tTEST_PROCESS\t722\n"
679 "async1\tTEST_ASYNC\t730\n"
680 "async2\tTEST_ASYNC\t731\n"
681 "InstallFinalize\t\t800\n";
685 "CustomAction\tAction\n"
686 "embednull\t51\tembednullprop\ta[~]b\n"
687 "nested51\t51\tnested\t1\n"
688 "nested1\t1\tcustom.dll\tnested\n"
689 "maintest\t1\tcustom.dll\tmain_test\n"
690 "process1\t1\tcustom.dll\tprocess1\n"
691 "process2\t1\tcustom.dll\tprocess2\n"
692 "process_deferred\t1025\tcustom.dll\tprocess2\n"
693 "async1\t129\tcustom.dll\tasync1\n"
694 "async2\t1\tcustom.dll\tasync2\n"
695 "testretval\t1\tcustom.dll\ttest_retval\n";
699 "TestSequence\tAction\n"
710 "Table\tColumn\tNullable\tMinValue\tMaxValue\tKeyTable\tKeyColumn\tCategory\tSet\tDescription\n"
711 "s32\ts32\ts4\tI4\tI4\tS255\tI2\tS32\tS255\tS255\n"
712 "_Validation\tTable\tColumn\n"
713 "test2\tA\tN\t\t\t\t\t\t\t\n"
714 "test2\tB\tN\t\t\t\t\t\t\t\n";
717 "s72\tS38\ts72\ti2\tS255\tS72\n"
718 "Component\tComponent\n"
719 "augustus\t\tMSITESTDIR\t0\tMYPROP=42\taugustus\n";
723 "InstallExecuteSequence\tAction\n"
724 "ValidateProductID\t\t700\n"
725 "GoodSetProperty\t\t725\n"
726 "BadSetProperty\t\t750\n"
727 "CostInitialize\t\t800\n"
728 "ResolveSource\t\t810\n"
730 "SetSourceDir\tSRCDIR\t910\n"
731 "CostFinalize\t\t1000\n"
732 "InstallValidate\t\t1400\n"
733 "InstallInitialize\t\t1500\n"
734 "InstallFiles\t\t4000\n"
735 "InstallFinalize\t\t6600";
739 "CustomAction\tAction\n"
740 "GoodSetProperty\t51\tMYPROP\t42\n"
741 "BadSetProperty\t51\t\tMYPROP\n"
742 "SetSourceDir\t51\tSourceDir\t[SRCDIR]\n";
744static const CHAR is_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
745 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
747 "one\t\t\t\t2\t1\t\t0\n"
748 "two\t\t\t\t2\t1\t\t1\n"
749 "three\t\t\t\t2\t1\t\t4\n"
750 "four\t\t\t\t2\t0\t\t0";
753 "s72\tS38\ts72\ti2\tS255\tS72\n"
754 "Component\tComponent\n"
755 "alpha\t\tMSITESTDIR\t0\t\talpha_file\n"
756 "beta\t\tMSITESTDIR\t1\t\tbeta_file\n"
757 "gamma\t\tMSITESTDIR\t2\t\tgamma_file\n"
758 "theta\t\tMSITESTDIR\t0\t\ttheta_file\n"
759 "delta\t\tMSITESTDIR\t1\t\tdelta_file\n"
760 "epsilon\t\tMSITESTDIR\t2\t\tepsilon_file\n"
761 "zeta\t\tMSITESTDIR\t0\t\tzeta_file\n"
762 "iota\t\tMSITESTDIR\t1\t\tiota_file\n"
763 "eta\t\tMSITESTDIR\t2\t\teta_file\n"
764 "kappa\t\tMSITESTDIR\t0\t\tkappa_file\n"
765 "lambda\t\tMSITESTDIR\t1\t\tlambda_file\n"
766 "mu\t\tMSITESTDIR\t2\t\tmu_file\n";
770 "FeatureComponents\tFeature_\tComponent_\n"
784static const CHAR is_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
785 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
787 "alpha_file\talpha\talpha\t500\t\t\t8192\t1\n"
788 "beta_file\tbeta\tbeta\t500\t\t\t8291\t2\n"
789 "gamma_file\tgamma\tgamma\t500\t\t\t8192\t3\n"
790 "theta_file\ttheta\ttheta\t500\t\t\t8192\t4\n"
791 "delta_file\tdelta\tdelta\t500\t\t\t8192\t5\n"
792 "epsilon_file\tepsilon\tepsilon\t500\t\t\t8192\t6\n"
793 "zeta_file\tzeta\tzeta\t500\t\t\t8192\t7\n"
794 "iota_file\tiota\tiota\t500\t\t\t8192\t8\n"
795 "eta_file\teta\teta\t500\t\t\t8192\t9\n"
796 "kappa_file\tkappa\tkappa\t500\t\t\t8192\t10\n"
797 "lambda_file\tlambda\tlambda\t500\t\t\t8192\t11\n"
798 "mu_file\tmu\tmu\t500\t\t\t8192\t12";
800static const CHAR is_media_dat[] =
"DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
801 "i2\ti4\tL64\tS255\tS32\tS72\n"
803 "1\t12\t\t\tDISK1\t\n";
806 "s72\tS38\ts72\ti2\tS255\tS72\n"
807 "Component\tComponent\n"
808 "augustus\t\tTWODIR\t0\t\taugustus\n";
812 "Directory\tDirectory\n"
813 "TARGETDIR\t\tSourceDir\n"
814 "ProgramFilesFolder\tTARGETDIR\t.\n"
815 "MSITESTDIR\tProgramFilesFolder\tmsitest:.\n"
816 "ONEDIR\tMSITESTDIR\t.:shortone|longone\n"
817 "TWODIR\tONEDIR\t.:shorttwo|longtwo";
820 "s72\tS38\ts72\ti2\tS255\tS72\n"
821 "Component\tComponent\n"
822 "hydrogen\t{C844BD1E-1907-4C00-8BC9-150BD70DF0A1}\tMSITESTDIR\t2\t\thydrogen\n"
823 "helium\t{5AD3C142-CEF8-490D-B569-784D80670685}\tMSITESTDIR\t2\t\thelium\n"
824 "lithium\t{4AF28FFC-71C7-4307-BDE4-B77C5338F56F}\tMSITESTDIR\t2\tPROPVAR=42\tlithium\n";
826static const CHAR mcp_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
827 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
829 "hydroxyl\t\thydroxyl\thydroxyl\t2\t1\tTARGETDIR\t0\n"
830 "heliox\t\theliox\theliox\t2\t5\tTARGETDIR\t0\n"
831 "lithia\t\tlithia\tlithia\t2\t10\tTARGETDIR\t0";
835 "FeatureComponents\tFeature_\tComponent_\n"
836 "hydroxyl\thydrogen\n"
840static const CHAR mcp_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
841 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
843 "hydrogen\thydrogen\thydrogen\t0\t\t\t8192\t1\n"
844 "helium\thelium\thelium\t0\t\t\t8192\t1\n"
845 "lithium\tlithium\tlithium\t0\t\t\t8192\t1\n"
846 "beryllium\tmissingcomp\tberyllium\t0\t\t\t8192\t1";
848static const CHAR ai_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
849 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
851 "five.txt\tFive\tfive.txt\t1000\t\t\t16384\t5\n"
852 "four.txt\tFour\tfour.txt\t1000\t\t\t16384\t4\n"
853 "one.txt\tOne\tone.txt\t1000\t\t\t16384\t1\n"
854 "three.txt\tThree\tthree.txt\t1000\t\t\t16384\t3\n"
855 "two.txt\tTwo\ttwo.txt\t1000\t\t\t16384\t2\n"
856 "file\tcomponent\tfilename\t100\t\t\t8192\t1\n";
860 "InstallExecuteSequence\tAction\n"
861 "CostFinalize\t\t1000\n"
862 "ValidateProductID\t\t700\n"
863 "CostInitialize\t\t800\n"
865 "RemoveFiles\t\t3500\n"
866 "InstallFiles\t\t4000\n"
867 "RegisterUser\t\t6000\n"
868 "RegisterProduct\t\t6100\n"
869 "PublishFeatures\t\t6300\n"
870 "PublishProduct\t\t6400\n"
871 "InstallFinalize\t\t6600\n"
872 "InstallInitialize\t\t1500\n"
873 "ProcessComponents\t\t1600\n"
874 "UnpublishFeatures\t\t1800\n"
875 "InstallValidate\t\t1400\n"
876 "LaunchConditions\t\t100\n"
877 "TestInstalledProp\tInstalled AND NOT REMOVE\t950\n";
880 "s72\ti2\tS64\tS0\tS255\n"
881 "CustomAction\tAction\n"
882 "TestInstalledProp\t19\t\tTest failed\t\n";
886 "InstallExecuteSequence\tAction\n"
887 "CostFinalize\t\t1000\n"
888 "ValidateProductID\t\t700\n"
889 "CostInitialize\t\t800\n"
891 "RemoveFiles\t\t3500\n"
892 "InstallFiles\t\t4000\n"
893 "RegisterUser\t\t6000\n"
894 "RegisterProduct\t\t6100\n"
895 "PublishFeatures\t\t6300\n"
896 "PublishProduct\t\t6400\n"
897 "InstallFinalize\t\t6600\n"
898 "InstallInitialize\t\t1500\n"
899 "ProcessComponents\t\t1600\n"
900 "UnpublishFeatures\t\t1800\n"
901 "InstallValidate\t\t1400\n"
902 "LaunchConditions\t\t100\n"
903 "TestAllUsersProp\tALLUSERS AND NOT REMOVE\t50\n";
907 "InstallExecuteSequence\tAction\n"
908 "CostFinalize\t\t1000\n"
909 "ValidateProductID\t\t700\n"
910 "CostInitialize\t\t800\n"
912 "RemoveFiles\t\t3500\n"
913 "InstallFiles\t\t4000\n"
914 "RegisterUser\t\t6000\n"
915 "RegisterProduct\t\t6100\n"
916 "PublishFeatures\t\t6300\n"
917 "PublishProduct\t\t6400\n"
918 "InstallFinalize\t\t6600\n"
919 "InstallInitialize\t\t1500\n"
920 "ProcessComponents\t\t1600\n"
921 "UnpublishFeatures\t\t1800\n"
922 "InstallValidate\t\t1400\n"
923 "LaunchConditions\t\t100\n"
924 "TestAllUsersProp\tALLUSERS=2 AND NOT REMOVE\t50\n";
928 "InstallExecuteSequence\tAction\n"
929 "CostFinalize\t\t1000\n"
930 "ValidateProductID\t\t700\n"
931 "CostInitialize\t\t800\n"
933 "RemoveFiles\t\t3500\n"
934 "InstallFiles\t\t4000\n"
935 "RegisterUser\t\t6000\n"
936 "RegisterProduct\t\t6100\n"
937 "PublishFeatures\t\t6300\n"
938 "PublishProduct\t\t6400\n"
939 "InstallFinalize\t\t6600\n"
940 "InstallInitialize\t\t1500\n"
941 "ProcessComponents\t\t1600\n"
942 "UnpublishFeatures\t\t1800\n"
943 "InstallValidate\t\t1400\n"
944 "LaunchConditions\t\t100\n"
945 "TestAllUsersProp\tALLUSERS=1 AND NOT REMOVE\t50\n";
948 "s72\ti2\tS64\tS0\tS255\n"
949 "CustomAction\tAction\n"
950 "TestAllUsersProp\t19\t\tTest failed\t\n";
952static const CHAR fo_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
953 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
955 "override.txt\toverride\toverride.txt\t1000\t\t\t8192\t1\n"
956 "preselected.txt\tpreselected\tpreselected.txt\t1000\t\t\t8192\t2\n"
957 "notpreselected.txt\tnotpreselected\tnotpreselected.txt\t1000\t\t\t8192\t3\n";
959static const CHAR fo_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
960 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
962 "override\t\t\toverride feature\t1\t1\tMSITESTDIR\t0\n"
963 "preselected\t\t\tpreselected feature\t1\t1\tMSITESTDIR\t0\n"
964 "notpreselected\t\t\tnotpreselected feature\t1\t1\tMSITESTDIR\t0\n";
968 "Condition\tFeature_\tLevel\n"
969 "preselected\t0\tPreselected AND NOT REMOVE\n"
970 "notpreselected\t0\tNOT Preselected AND NOT REMOVE\n";
974 "FeatureComponents\tFeature_\tComponent_\n"
975 "override\toverride\n"
976 "preselected\tpreselected\n"
977 "notpreselected\tnotpreselected\n";
980 "s72\tS38\ts72\ti2\tS255\tS72\n"
981 "Component\tComponent\n"
982 "override\t{0A00FB1D-97B0-4B42-ADF0-BB8913416623}\tMSITESTDIR\t0\t\toverride.txt\n"
983 "preselected\t{44E1DB75-605A-43DD-8CF5-CAB17F1BBD60}\tMSITESTDIR\t0\t\tpreselected.txt\n"
984 "notpreselected\t{E1647733-5E75-400A-A92E-5E60B4D4EF9F}\tMSITESTDIR\t0\t\tnotpreselected.txt\n";
987 "s72\ti2\tS64\tS0\tS255\n"
988 "CustomAction\tAction\n"
989 "SetPreselected\t51\tPreselected\t1\t\n";
993 "InstallExecuteSequence\tAction\n"
994 "LaunchConditions\t\t100\n"
995 "SetPreselected\tpreselect=1\t200\n"
996 "CostInitialize\t\t800\n"
998 "CostFinalize\t\t1000\n"
999 "InstallValidate\t\t1400\n"
1000 "InstallInitialize\t\t1500\n"
1001 "ProcessComponents\t\t1600\n"
1002 "RemoveFiles\t\t1700\n"
1003 "InstallFiles\t\t2000\n"
1004 "RegisterProduct\t\t5000\n"
1005 "PublishFeatures\t\t5100\n"
1006 "PublishProduct\t\t5200\n"
1007 "UnpublishFeatures\t\t5300\n"
1008 "InstallFinalize\t\t6000\n";
1010static const CHAR uc_file_dat[] =
"File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1011 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1013 "upgradecode.txt\tupgradecode\tupgradecode.txt\t1000\t\t\t8192\t1\n";
1015static const CHAR uc_feature_dat[] =
"Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1016 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1017 "Feature\tFeature\n"
1018 "upgradecode\t\t\tupgradecode feature\t1\t2\tMSITESTDIR\t0\n";
1022 "FeatureComponents\tFeature_\tComponent_\n"
1023 "upgradecode\tupgradecode\n";
1026 "s72\tS38\ts72\ti2\tS255\tS72\n"
1027 "Component\tComponent\n"
1028 "upgradecode\t{6952B732-2FCB-4E47-976F-989FCBD7EDFB}\tMSITESTDIR\t0\t\tupgradecode.txt\n";
1032 "Property\tProperty\n"
1034 "ProductCode\t{E5FB1241-F547-4BA7-A60E-8E75797268D4}\n"
1035 "ProductName\tMSITEST\n"
1036 "ProductVersion\t1.1.1\n"
1037 "UpgradeCode\t#UPGEADECODE#\n"
1038 "MSIFASTINSTALL\t1\n";
1042 "InstallExecuteSequence\tAction\n"
1043 "LaunchConditions\t\t100\n"
1044 "CostInitialize\t\t200\n"
1046 "CostFinalize\t\t400\n"
1047 "InstallInitialize\t\t500\n"
1048 "ProcessComponents\t\t600\n"
1049 "InstallValidate\t\t700\n"
1050 "RemoveFiles\t\t800\n"
1051 "InstallFiles\t\t900\n"
1052 "RegisterProduct\t\t1000\n"
1053 "PublishFeatures\t\t1100\n"
1054 "PublishProduct\t\t1200\n"
1055 "UnpublishFeatures\t\t1250\n"
1056 "InstallFinalize\t\t1300\n";
1059 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1060 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1061 "Feature\tFeature\n"
1062 "feature1\t\t\t\t1\t2\tMSITESTDIR\t0\n"
1063 "feature2\t\t\t\t1\t2\tMSITESTDIR\t0\n";
1066 "Feature_\tComponent_\n"
1068 "FeatureComponents\tFeature_\tComponent_\n"
1070 "feature2\tcomp2\n";
1073 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1074 "s72\tS38\ts72\ti2\tS255\tS72\n"
1075 "Component\tComponent\n"
1076 "comp1\t{DE9F0EF4-0ED3-495A-8105-060C0EA457B8}\tTARGETDIR\t4\t\tregdata1\n"
1077 "comp2\t{4912DBE7-FC3A-4F91-BB5C-88F5C15C19A5}\tTARGETDIR\t260\t\tregdata2\n";
1080 "Registry\tRoot\tKey\tName\tValue\tComponent_\n"
1081 "s72\ti2\tl255\tL255\tL0\ts72\n"
1082 "Registry\tRegistry\n"
1083 "regdata1\t2\tSOFTWARE\\Wine\\msitest\ttest1\t\tcomp1\n"
1084 "regdata2\t2\tSOFTWARE\\Wine\\msitest\ttest2\t\tcomp2\n"
1085 "regdata3\t0\tCLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\t\tCLSID_Winetest32\tcomp1\n"
1086 "regdata4\t0\tCLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32\t\twinetest32.dll\tcomp1\n"
1087 "regdata5\t0\tCLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\t\tCLSID_Winetest64\tcomp2\n"
1088 "regdata6\t0\tCLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32\t\twinetest64.dll\tcomp2\n";
1091 "Action\tCondition\tSequence\n"
1093 "InstallExecuteSequence\tAction\n"
1094 "LaunchConditions\t\t100\n"
1095 "CostInitialize\t\t200\n"
1097 "CostFinalize\t\t400\n"
1098 "InstallValidate\t\t500\n"
1099 "InstallInitialize\t\t600\n"
1100 "ProcessComponents\t\t700\n"
1101 "UnpublishFeatures\t\t800\n"
1102 "RemoveRegistryValues\t\t900\n"
1103 "WriteRegistryValues\t\t1000\n"
1104 "RegisterProduct\t\t1100\n"
1105 "PublishFeatures\t\t1200\n"
1106 "PublishProduct\t\t1300\n"
1107 "InstallFinalize\t\t1400\n";
1110 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1111 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1113 "volumeprop\tcomp\tvolumeprop.txt\t1000\t\t\t8192\t1\n";
1116 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1117 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1118 "Feature\tFeature\n"
1119 "feature\t\t\t\t1\t2\tMSITESTDIR\t0\n";
1122 "Feature_\tComponent_\n"
1124 "FeatureComponents\tFeature_\tComponent_\n"
1128 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1129 "s72\tS38\ts72\ti2\tS255\tS72\n"
1130 "Component\tComponent\n"
1131 "comp\t{24364AE7-5B7F-496C-AF5A-54893639C567}\tMSITESTDIR\t0\t\tvolumeprop\n";
1134 "Action\tType\tSource\tTarget\tISComments\n"
1135 "s72\ti2\tS64\tS0\tS255\n"
1136 "CustomAction\tAction\n"
1137 "TestPrimaryVolumePath0\t19\t\tPrimaryVolumePath set before CostFinalize\t\n"
1138 "TestPrimaryVolumeSpaceAvailable0\t19\t\tPrimaryVolumeSpaceAvailable set before CostFinalize\t\n"
1139 "TestPrimaryVolumeSpaceRequired0\t19\t\tPrimaryVolumeSpaceRequired set before CostFinalize\t\n"
1140 "TestPrimaryVolumeSpaceRemaining0\t19\t\tPrimaryVolumeSpaceRemaining set before CostFinalize\t\n"
1141 "TestPrimaryVolumePath1\t19\t\tPrimaryVolumePath set before InstallValidate\t\n"
1142 "TestPrimaryVolumeSpaceAvailable1\t19\t\tPrimaryVolumeSpaceAvailable not set before InstallValidate\t\n"
1143 "TestPrimaryVolumeSpaceRequired1\t19\t\tPrimaryVolumeSpaceRequired not set before InstallValidate\t\n"
1144 "TestPrimaryVolumeSpaceRemaining1\t19\t\tPrimaryVolumeSpaceRemaining not set before InstallValidate\t\n"
1145 "TestPrimaryVolumePath2\t19\t\tPrimaryVolumePath not set after InstallValidate\t\n"
1146 "TestPrimaryVolumeSpaceAvailable2\t19\t\tPrimaryVolumeSpaceAvailable not set after InstallValidate\t\n"
1147 "TestPrimaryVolumeSpaceRequired2\t19\t\tPrimaryVolumeSpaceRequired not set after InstallValidate\t\n"
1148 "TestPrimaryVolumeSpaceRemaining2\t19\t\tPrimaryVolumeSpaceRemaining not set after InstallValidate\t\n";
1151 "Action\tCondition\tSequence\n"
1153 "InstallExecuteSequence\tAction\n"
1154 "LaunchConditions\t\t100\n"
1155 "CostInitialize\t\t200\n"
1157 "TestPrimaryVolumePath0\tPrimaryVolumePath AND NOT REMOVE\t400\n"
1158 "TestPrimaryVolumeSpaceAvailable0\tPrimaryVolumeSpaceAvailable AND NOT REMOVE\t500\n"
1159 "TestPrimaryVolumeSpaceRequired0\tPrimaryVolumeSpaceRequired AND NOT REMOVE\t510\n"
1160 "TestPrimaryVolumeSpaceRemaining0\tPrimaryVolumeSpaceRemaining AND NOT REMOVE\t520\n"
1161 "CostFinalize\t\t600\n"
1162 "TestPrimaryVolumePath1\tPrimaryVolumePath AND NOT REMOVE\t600\n"
1163 "TestPrimaryVolumeSpaceAvailable1\tNOT PrimaryVolumeSpaceAvailable AND NOT REMOVE\t800\n"
1164 "TestPrimaryVolumeSpaceRequired1\tNOT PrimaryVolumeSpaceRequired AND NOT REMOVE\t810\n"
1165 "TestPrimaryVolumeSpaceRemaining1\tNOT PrimaryVolumeSpaceRemaining AND NOT REMOVE\t820\n"
1166 "InstallValidate\t\t900\n"
1167 "TestPrimaryVolumePath2\tNOT PrimaryVolumePath AND NOT REMOVE\t1000\n"
1168 "TestPrimaryVolumeSpaceAvailable2\tNOT PrimaryVolumeSpaceAvailable AND NOT REMOVE\t1100\n"
1169 "TestPrimaryVolumeSpaceRequired2\tNOT PrimaryVolumeSpaceRequired AND NOT REMOVE\t1110\n"
1170 "TestPrimaryVolumeSpaceRemaining2\tNOT PrimaryVolumeSpaceRemaining AND NOT REMOVE\t1120\n"
1171 "InstallInitialize\t\t1200\n"
1172 "ProcessComponents\t\t1300\n"
1173 "RemoveFiles\t\t1400\n"
1174 "InstallFiles\t\t1500\n"
1175 "RegisterProduct\t\t1600\n"
1176 "PublishFeatures\t\t1700\n"
1177 "PublishProduct\t\t1800\n"
1178 "UnpublishFeatures\t\t1850\n"
1179 "InstallFinalize\t\t1900\n";
1184 "Property\tProperty\n"
1186 "ProductCode\t{5CD99CD0-69C7-409B-9905-82DD743CC840}\n"
1187 "ProductName\tMSITEST\n"
1188 "ProductVersion\t1.1.1\n"
1189 "MSIFASTINSTALL\t1\n";
1194 "Property\tProperty\n"
1196 "ProductCode\t{4CEFADE5-DAFB-4C21-8EF2-4ED4F139F340}\n"
1197 "ProductName\tMSITEST2\n"
1198 "ProductVersion\t1.1.1\n"
1199 "MSIFASTINSTALL\t1\n";
1202 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1203 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1205 "sharedcomponent\tsharedcomponent\tsharedcomponent.txt\t1000\t\t\t8192\t1\n";
1208 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1209 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1210 "Feature\tFeature\n"
1211 "feature\t\t\t\t1\t2\tMSITESTDIR\t0\n";
1214 "Feature_\tComponent_\n"
1216 "FeatureComponents\tFeature_\tComponent_\n"
1217 "feature\tsharedcomponent\n";
1220 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1221 "s72\tS38\ts72\ti2\tS255\tS72\n"
1222 "Component\tComponent\n"
1223 "sharedcomponent\t{900A4ACB-DC6F-4795-A04B-81B530183D41}\tMSITESTDIR\t0\t\tsharedcomponent\n";
1226 "Action\tType\tSource\tTarget\tISComments\n"
1227 "s72\ti2\tS64\tS0\tS255\n"
1228 "CustomAction\tAction\n"
1229 "TestComponentAction\t19\t\twrong component action on install\t\n"
1230 "TestDisallowedAction\t19\t\twrong component action on disallowed remove\t\n"
1231 "TestRemoveAction\t19\t\twrong component action on remove\t\n";
1234 "Action\tCondition\tSequence\n"
1236 "InstallExecuteSequence\tAction\n"
1237 "LaunchConditions\t\t100\n"
1238 "CostInitialize\t\t200\n"
1240 "CostFinalize\t\t600\n"
1241 "TestDisallowedAction\tREMOVE AND ($sharedcomponent <> -1)\t700\n"
1242 "InstallValidate\t\t900\n"
1243 "InstallInitialize\t\t1200\n"
1244 "ProcessComponents\t\t1300\n"
1245 "RemoveFiles\t\t1400\n"
1246 "InstallFiles\t\t1500\n"
1247 "TestComponentAction\tNOT REMOVE AND ($sharedcomponent <> 3)\t1600\n"
1248 "RegisterProduct\t\t1700\n"
1249 "PublishFeatures\t\t1800\n"
1250 "PublishProduct\t\t1900\n"
1251 "UnpublishFeatures\t\t1950\n"
1252 "InstallFinalize\t\t2000\n";
1255 "Action\tCondition\tSequence\n"
1257 "InstallExecuteSequence\tAction\n"
1258 "LaunchConditions\t\t100\n"
1259 "CostInitialize\t\t200\n"
1261 "CostFinalize\t\t600\n"
1262 "TestRemoveAction\tREMOVE AND ($sharedcomponent <> 2)\t700\n"
1263 "InstallValidate\t\t900\n"
1264 "InstallInitialize\t\t1200\n"
1265 "ProcessComponents\t\t1300\n"
1266 "RemoveFiles\t\t1400\n"
1267 "InstallFiles\t\t1500\n"
1268 "TestComponentAction\tNOT REMOVE AND ($sharedcomponent <> 3)\t1600\n"
1269 "RegisterProduct\t\t1700\n"
1270 "PublishFeatures\t\t1800\n"
1271 "PublishProduct\t\t1900\n"
1272 "UnpublishFeatures\t\t1950\n"
1273 "InstallFinalize\t\t2000\n";
1276 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1277 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1279 "featuretree\tcomp\tfeaturetree.txt\t1000\t\t\t8192\t1\n";
1282 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1283 "s72\tS38\ts72\ti2\tS255\tS72\n"
1284 "Component\tComponent\n"
1285 "comp\t{12345678-1234-1234-1234-222222222222}\tTARGETDIR\t0\t\t\n"
1286 "comp2\t{12345678-1234-1234-1234-333333333333}\tTARGETDIR\t0\t\tfeaturetree\n";
1289 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1290 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1291 "Feature\tFeature\n"
1292 "A\t\t\t\t2\t1\t\t0\n"
1293 "C\tB\t\t\t2\t1\t\t0\n"
1294 "B\tA\t\t\t4\t1\t\t0\n"
1295 "D\t\t\t\t2\t1\t\t0\n";
1298 "Feature_\tComponent_\n"
1300 "FeatureComponents\tFeature_\tComponent_\n"
1305 "Feature_\tLevel\tCondition\n"
1307 "Condition\tFeature_\tLevel\n"
1308 "A\t0\t\"0\"<>INSTALLTYPE\n";
1311 "Action\tType\tSource\tTarget\tISComments\n"
1312 "s72\ti2\tS64\tS0\tS255\n"
1313 "CustomAction\tAction\n"
1314 "Run A\t19\t\tA\t\n"
1315 "Run B\t19\t\tB\t\n"
1316 "Run C\t19\t\tC\t\n";
1319 "Action\tCondition\tSequence\n"
1321 "InstallExecuteSequence\tAction\n"
1322 "CostInitialize\t\t100\n"
1324 "CostFinalize\t\t300\n"
1325 "InstallValidate\t\t400\n"
1326 "InstallInitialize\t\t500\n"
1327 "Run C\t3 = &C AND NOT Installed\t600\n"
1328 "Run B\t3 = &B AND NOT Installed\t700\n"
1329 "Run A\t3 = &A AND NOT Installed\t800\n"
1330 "ProcessComponents\t\t900\n"
1331 "RemoveFiles\t\t1000\n"
1332 "InstallFiles\t\t1100\n"
1333 "RegisterProduct\t\t1200\n"
1334 "PublishFeatures\t\t1300\n"
1335 "PublishProduct\t\t1400\n"
1336 "UnpublishFeatures\t\t1450\n"
1337 "InstallFinalize\t\t1500\n";
1340 "Action\tType\tSource\tTarget\n"
1341 "s72\ti2\tS64\tS0\n"
1342 "CustomAction\tAction\n"
1343 "setprop\t51\tdeferred\t[TESTPATH]\n"
1344 "immediate\t1\tcustom.dll\tda_immediate\n"
1345 "deferred\t1025\tcustom.dll\tda_deferred\n";
1348 "Action\tCondition\tSequence\n"
1350 "InstallExecuteSequence\tAction\n"
1351 "CostInitialize\t\t200\n"
1353 "CostFinalize\t\t400\n"
1354 "InstallInitialize\t\t500\n"
1357 "immediate\t\t800\n"
1358 "InstallFinalize\t\t1100\n";
1361 "Directory\tDirectory_Parent\tDefaultDir\n"
1363 "Directory\tDirectory\n"
1364 "CABOUTDIR\tMSITESTDIR\tcabout\n"
1365 "CHANGEDDIR\tMSITESTDIR\tchanged:second\n"
1366 "FIRSTDIR\tMSITESTDIR\tfirst\n"
1367 "MSITESTDIR\tProgramFiles64Folder\tmsitest\n"
1368 "NEWDIR\tCABOUTDIR\tnew\n"
1369 "ProgramFiles64Folder\tTARGETDIR\t.\n"
1370 "TARGETDIR\t\tSourceDir";
1373 "Action\tCondition\tSequence\n"
1375 "InstallExecuteSequence\tAction\n"
1376 "CostInitialize\t\t200\n"
1378 "CostFinalize\t\t400\n"
1379 "InstallValidate\t\t500\n"
1380 "InstallInitialize\t\t600\n"
1381 "sourcedir_unset\tSourceDir\t700\n"
1382 "ResolveSource\tRESOLVE_SOURCE\t800\n"
1383 "ProcessComponents\tPROCESS_COMPONENTS\t800\n"
1384 "InstallFiles\tINSTALL_FILES\t800\n"
1385 "sourcedir_set\tNOT SourceDir\t900\n"
1386 "InstallFinalize\t\t1000\n";
1389 "Action\tType\tSource\tTarget\n"
1390 "s72\ti2\tS64\tS0\n"
1391 "CustomAction\tAction\n"
1392 "sourcedir_unset\t19\t\tSourceDir should not be set\n"
1393 "sourcedir_set\t19\t\tSourceDir should be set\n";
1396 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1397 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1399 "five.txt\tFive\tfive.txt\t1000\t\t\t0\t5\n"
1400 "four.txt\tFour\tfour.txt\t1000\t\t\t0\t4\n";
1403 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1404 "s72\tS38\ts72\ti2\tS255\tS72\n"
1405 "Component\tComponent\n"
1406 "Five\t{8CC92E9D-14B2-4CA4-B2AA-B11D02078087}\tNEWDIR\t2\t\tfive.txt\n"
1407 "Four\t{FD37B4EA-7209-45C0-8917-535F35A2F080}\tCABOUTDIR\t2\t\tfour.txt\n";
1410 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1411 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1412 "Feature\tFeature\n"
1413 "Five\t\tFive\tThe Five Feature\t5\t3\tNEWDIR\t0\n"
1414 "Four\t\tFour\tThe Four Feature\t4\t3\tCABOUTDIR\t0\n";
1417 "Feature_\tComponent_\n"
1419 "FeatureComponents\tFeature_\tComponent_\n"
2121#define MEDIA_SIZE 0x7FFFFFFF
2122#define FOLDER_THRESHOLD 900000
2148 BOOL fContinuation,
void *pv)
2157 DWORD dwShareMode = 0;
2169 dwCreateDisposition, 0,
NULL);
2183 ok(
res,
"Failed to ReadFile\n");
2195 ok(
res,
"Failed to WriteFile\n");
2222 ok(
ret,
"Failed to DeleteFile %s\n", pszFile);
2234#define GET_PROC(mod, func) \
2235 p ## func = (void*)GetProcAddress(mod, #func); \
2237 trace("GetProcAddress(%s) failed\n", #func);
2265 trace(
"Could not check if the current user is an administrator\n");
2308 if (tempname && (
strlen(tempname) < (
unsigned)cbTempName))
2334 ok(
res,
"Expected GetFileInformationByHandle to succeed\n");
2366 pCabParams->
setID = 0xbeef;
2367 pCabParams->
iCab = 1;
2387 ok(hfci !=
NULL,
"Failed to create an FCI context\n");
2393 ok(
res,
"Failed to add file: %s\n",
ptr);
2398 ok(
res,
"Failed to flush the cabinet\n");
2401 ok(
res,
"Failed to destroy the cabinet\n");
2410 "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", &hkey))
2578 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
2580 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
2582 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
2584 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
2602 const char *
template,
const char *packagecode)
2646 ok(
res != 0,
"couldn't find resource\n" );
2686 res =
run_query(hdb, 0,
"CREATE TABLE `Binary` (`Name` CHAR(72) NOT NULL, `Data` OBJECT NOT NULL PRIMARY KEY `Name`)");
2693 res =
run_query(hdb,
record,
"INSERT INTO `Binary` (`Name`, `Data`) VALUES ('custom.dll', ?)");
2700 INT version,
INT wordcount,
const char *
template,
const char *packagecode)
2715 for (
j = 0;
j < num_tables;
j++)
2746 return pSRSetRestorePointA(&spec,
status);
2753 res = pSRRemoveRestorePoint(seq_number);
2755 trace(
"Failed to remove the restore point: %#lx\n",
res);
2760 if (pRegDeleteKeyExA)
2761 return pRegDeleteKeyExA(
key, subkey,
access, 0 );
2776 skip(
"process is limited\n");
2797 "Expected ERROR_PATH_NOT_FOUND, got %d\n",
r);
2806 skip(
"Not enough rights to perform tests\n");
2831 ok(
num == 314,
"Expected 314, got %lu\n",
num);
2970 skip(
"Not enough rights to perform tests\n");
3019 query =
"SELECT * FROM `Media`";
3028 ok(
check_record(rec, 2,
"LastSequence"),
"wrong column label\n");
3059 static CHAR cab_context[] =
"test%d.cab";
3072 ok(hfci !=
NULL,
"Failed to create an FCI context\n");
3075 ok(
res,
"Failed to add file maximus\n");
3078 ok(
res,
"Failed to add file augustus\n");
3081 ok(
res,
"Failed to add file tiberius\n");
3084 ok(
res,
"Failed to flush the cabinet\n");
3087 ok(
res,
"Failed to destroy the cabinet\n");
3121 skip(
"process is limited\n");
3133 skip(
"Not enough rights to perform tests\n");
3156 skip(
"Not enough rights to perform tests\n");
3182 skip(
"Not enough rights to perform tests\n");
3198 ok(
MoveFileA(
"test2.cab",
"test2_.cab"),
"Cannot rename test2.cab to test2_.cab\n");
3206 skip(
"Not enough rights to perform tests\n");
3242 skip(
"Not enough rights to perform tests\n");
3314 skip(
"process is limited\n");
3332 skip(
"Not enough rights to perform tests\n");
3399 ok(!
delete_pf(
"msitest\\maximus",
TRUE),
"UI install occurred, but execute-only was requested.\n");
3434 skip(
"process is limited\n");
3458 skip(
"Not enough rights to perform tests\n");
3483 skip(
"process is limited\n");
3510 skip(
"Not enough rights to perform tests\n");
3522 ok(!
memcmp(
buf,
"maximus",
sizeof(
"maximus")-1 ),
"Expected file to be overwritten, got '%s'\n",
buf);
3540 skip(
"process is limited\n");
3553 skip(
"Not enough rights to perform tests\n");
3573 skip(
"process is limited\n");
3594 skip(
"Not enough rights to perform tests\n");
3682 "{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}1.1.1;"
3683 "{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}1.1.1;"
3684 "{4C0EAA15-0264-4E5A-8758-609EF142B92D}");
3715 query =
"INSERT INTO `Property` ( `Property`, `Value` ) VALUES ( 'prop', 'val' )";
3735static const WCHAR name1[] = { 0x4840, 0x3f3f, 0x4577, 0x446c, 0x3b6a, 0x45e4, 0x4824, 0 };
3736static const WCHAR name2[] = { 0x4840, 0x3f3f, 0x4577, 0x446c, 0x3e6a, 0x44b2, 0x482f, 0 };
3737static const WCHAR name3[] = { 0x4840, 0x4559, 0x44f2, 0x4568, 0x4737, 0 };
3751 0x0201, 0x0001, 0x0002,
3754static const struct {
3774 const CLSID CLSID_MsiTransform = { 0xc1082,0,0,{0xc0,0,0,0,0,0,0,0x46}};
3779 ok(
r ==
S_OK,
"failed to create storage\n");
3783 r = IStorage_SetClass(stg, &CLSID_MsiTransform);
3784 ok(
r ==
S_OK,
"failed to set storage type\n");
3792 ok(0,
"failed to create stream %#lx\n",
r);
3799 ok(0,
"failed to write stream\n");
3800 IStream_Release(stm);
3803 IStorage_Release(stg);
3814 skip(
"process is limited\n");
3828 skip(
"Not enough rights to perform tests\n");
3862 skip(
"process is limited\n");
3889 skip(
"Not enough rights to perform tests\n");
3961 skip(
"Not enough rights to perform tests\n");
3967 ok(!
DeleteFileA(
"c:\\msitest\\augustus"),
"File installed\n");
3977 ok(
DeleteFileA(
"c:\\msitest\\augustus"),
"File not installed\n");
3999 ok(
hr ==
S_OK,
"Expected S_OK, got %#lx\n",
hr);
4003 hr = IStorage_CreateStream(stg,
L"\x41ca\x4330\x3e71\x44b5\x4233\x45f5\x422c\x4836",
4005 ok(
hr ==
S_OK,
"Expected S_OK, got %#lx\n",
hr);
4007 hr = IStream_Write(stm,
L"MYPROP=2718 MyProp=42",
sizeof(
L"MYPROP=2718 MyProp=42"), &
count);
4008 ok(
hr ==
S_OK,
"Expected S_OK, got %#lx\n",
hr);
4010 IStream_Release(stm);
4011 IStorage_Release(stg);
4020 skip(
"process is limited\n");
4036 skip(
"Not enough rights to perform tests\n");
4063#define create_pf(file, is_file) create_pf_data(file, file, is_file)
4071 skip(
"process is limited\n");
4094 skip(
"Not enough rights to perform tests\n");
4101 ok(
compare_pf_data(
"msitest\\tiberius",
"abcdefgh",
sizeof(
"abcdefgh")),
"Wrong file contents\n");
4119 ok(
compare_pf_data(
"msitest\\tiberius",
"abcdefgh",
sizeof(
"abcdefgh")),
"Wrong file contents\n");
4141 skip(
"process is limited\n");
4155 skip(
"Not enough rights to perform tests\n");
4159 "Expected ERROR_INSTALL_FAILURE, got %u\n",
r);
4169 "Expected ERROR_INSTALL_FAILURE, got %u\n",
r);
4191 run_query(hdb, 0,
"CREATE TABLE `Test` (`Name` CHAR(10), `Number` INTEGER, `Data` OBJECT PRIMARY KEY `Name`)");
4196 run_query(hdb,
record,
"INSERT INTO `Test` (`Name`, `Number`, `Data`) VALUES ('one', 1, ?)");
4198 run_query(hdb,
record,
"INSERT INTO `Test` (`Name`, `Number`, `Data`) VALUES ('two', 2, ?)");
4226 ok(!
r,
"got %u\n",
r);
4230 ok(!
r,
"got %u\n",
r);
4244 skip(
"process is limited\n");
4258 skip(
"Not enough rights to perform tests\n");
4277 skip(
"process is limited\n");
4302 skip(
"Not enough rights to perform tests\n");
4399 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4400 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4401 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4402 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4403 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4404 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4405 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4406 {
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4407 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4408 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4409 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4410 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4411 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4412 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4413 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4414 {
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4415 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4416 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4417 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4418 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4419 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4420 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4421 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4422 {
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4423 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4424 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4425 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4426 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4427 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4428 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4429 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4430 {
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4431 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4432 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4433 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4434 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4435 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4436 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4437 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4438 {
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4439 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4440 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4441 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4442 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4443 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4444 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4445 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4446 {
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4447 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4448 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4449 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4450 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4451 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4452 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4453 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4454 {
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4455 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4456 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4457 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4458 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4459 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4460 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4461 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4462 {
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4463 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4464 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4465 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4466 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4467 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4468 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4469 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4470 {
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4471 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4472 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4473 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4474 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4475 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4476 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4477 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4478 {
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4479 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4480 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4481 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4482 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4483 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4484 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4485 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4486 {
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4487 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4488 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4489 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4490 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4491 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4492 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4493 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4494 {
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4495 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4496 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4497 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4498 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4499 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4500 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4501 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4502 {
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4503 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4504 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4505 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4506 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4507 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4508 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4509 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4510 {
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4511 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4512 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4513 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4514 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4515 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4516 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4517 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4518 {
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4519 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4520 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4521 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4522 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4523 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4524 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4525 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4526 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4527 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4528 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4529 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4530 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4531 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4532 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4533 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4534 {
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4535 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4536 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4537 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4538 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4539 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4540 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4541 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4542 {
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4543 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4544 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4545 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4546 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4547 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4548 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4549 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4550 {
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4551 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4552 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4553 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4554 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4555 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4556 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4557 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4558 {
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4559 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4560 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4561 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4562 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4563 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4564 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4565 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4566 {
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4567 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4568 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4569 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4570 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4571 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4572 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4573 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4574 {
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4575 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4576 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4577 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4578 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4579 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4580 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4581 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4582 {
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4583 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4584 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4585 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4586 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4587 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4588 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4589 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4590 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4591 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4592 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4593 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4594 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4595 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4596 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4597 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4598 {
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4599 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4600 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4601 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4602 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4603 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4604 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4605 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4606 {
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4607 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4608 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4609 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4610 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4611 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4612 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4613 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4614 {
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4615 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4616 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4617 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4618 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4619 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4620 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4621 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4622 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4623 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4624 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4625 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4626 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4627 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4628 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4629 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4630 {
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4631 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4632 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4633 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4634 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4635 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_SUCCESS, 200},
4636 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4637 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_SUCCESS, 200},
4638 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4639 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4640 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4641 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4642 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4643 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4644 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4645 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4646 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4647 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4648 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4649 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4650 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4651 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4652 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4653 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
ERROR_INSTALL_FAILURE, 0},
4654 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
ERROR_INSTALL_FAILURE, 0},
4682 skip(
"Run in interactive mode to run source path tests.\n");
4763 skip(
"process is limited\n");
4780 skip(
"Not enough rights to perform tests\n");
4789 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
4790 ok(
pf_exists(
"msitest\\helium"),
"File not installed\n");
4791 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
4792 ok(!
pf_exists(
"msitest\\beryllium"),
"File installed\n");
4800 ok(!
pf_exists(
"msitest\\beryllium"),
"File installed\n");
4819 skip(
"process is limited\n");
4833 skip(
"Not enough rights to perform tests\n");
4870 skip(
"process is limited\n");
4883 create_file(
"msitest\\cabout\\new\\five.txt", 100);
4888 "{004757CA-5092-49C2-AD20-28E1CE0DF5F2}");
4895 skip(
"Not enough rights to perform tests\n");
4907 ";1033",
"{004757CA-5092-49C2-AD20-28E1CE0DF5F2}");
4914 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
4916 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
4941 skip(
"process is limited\n");
4955 skip(
"Not enough rights to perform tests\n");
4980 static const char int0[] =
"int0\ni0\nint0\tint0\n1";
4981 static const char int1[] =
"int1\ni1\nint1\tint1\n1";
4982 static const char int2[] =
"int2\ni2\nint2\tint2\n1";
4983 static const char int3[] =
"int3\ni3\nint3\tint3\n1";
4984 static const char int4[] =
"int4\ni4\nint4\tint4\n1";
4985 static const char int5[] =
"int5\ni5\nint5\tint5\n1";
4986 static const char int8[] =
"int8\ni8\nint8\tint8\n1";
5047 skip(
"process is limited\n");
5059 skip(
"Not enough rights to perform tests\n");
5094 skip(
"process is limited\n");
5106 skip(
"Not enough rights to perform tests\n");
5111 ok(!
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File installed\n");
5113 ok(!
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File installed\n");
5115 ok(!
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File installed\n");
5126 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
5128 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
5130 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
5132 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
5145 static const char prodcode[] =
"{7df88a48-996f-4ec8-a022-bf956f9b2cbb}";
5150 skip(
"process is limited\n");
5162 skip(
"Not enough rights to perform tests\n");
5189 skip(
"process is limited\n");
5202 skip(
"Not enough rights to perform tests\n");
5254static const char session_manager[] =
"System\\CurrentControlSet\\Control\\Session Manager";
5265 ok(!
ret,
"RegQueryValueExA failed %ld\n",
ret);
5272 ok(!
ret,
"RegQueryValueExA failed %ld\n",
ret);
5298 if (
src[0] ==
'\\' &&
src[1] ==
'?' &&
src[2] ==
'?' &&
src[3] ==
'\\')
src += 4;
5301 if (
dst[0] ==
'\\' &&
dst[1] ==
'?' &&
dst[2] ==
'?' &&
dst[3] ==
'\\')
dst += 4;
5312 ok(found,
"Expected a 'msitest' entry\n");
5350 skip(
"process is limited\n");
5372 skip(
"Not enough rights to perform tests\n");
5409 skip(
"process is limited\n");
5434 skip(
"Not enough rights to perform tests\n");
5470 skip(
"process is limited\n");
5488 skip(
"Not enough rights to perform tests\n");
5493 ok(
pf_exists(
"msitest\\override.txt"),
"file not installed\n");
5494 ok(!
pf_exists(
"msitest\\preselected.txt"),
"file installed\n");
5495 ok(!
pf_exists(
"msitest\\notpreselected.txt"),
"file installed\n");
5505 ok(
pf_exists(
"msitest\\override.txt"),
"file not installed\n");
5506 ok(
pf_exists(
"msitest\\preselected.txt"),
"file not installed\n");
5507 ok(!
pf_exists(
"msitest\\notpreselected.txt"),
"file installed\n");
5513 ok(!
delete_pf(
"msitest\\preselected.txt",
TRUE),
"file not removed\n");
5519 ok(
pf_exists(
"msitest\\override.txt"),
"file not installed\n");
5520 ok(
pf_exists(
"msitest\\preselected.txt"),
"file not installed\n");
5521 ok(!
pf_exists(
"msitest\\notpreselected.txt"),
"file installed\n");
5527 ok(!
delete_pf(
"msitest\\preselected.txt",
TRUE),
"file not removed\n");
5546 static const char prodcode[] =
"{7DF88A49-996F-4EC8-A022-BF956F9B2CBB}";
5550 skip(
"process is limited\n");
5561 query =
"CREATE TABLE `Icon` (`Name` CHAR(72) NOT NULL, `Data` OBJECT NOT NULL PRIMARY KEY `Name`)";
5570 query =
"INSERT INTO `Icon` (`Name`, `Data`) VALUES ('testicon', ?)";
5586 skip(
"Not enough rights to perform tests\n");
5628 skip(
"process is limited\n");
5641 skip(
"Not enough rights to perform tests\n");
5819 skip(
"process is limited\n");
5832 ok(
pf_exists(
"msitest\\upgradecode.txt"),
"file not installed\n");
5837 ok(!
delete_pf(
"msitest\\upgradecode.txt",
TRUE),
"file not removed\n");
5855 skip(
"process is limited\n");
5860 skip(
"this test must be run on 64-bit\n");
5869 skip(
"Not enough rights to perform tests\n");
5875 ok(!
res,
"can't open 32-bit component key, got %ld\n",
res);
5877 ok(!
res,
"expected RegQueryValueEx to succeed, got %ld\n",
res);
5879 ok(
res,
"expected RegQueryValueEx to fail, got %ld\n",
res);
5883 ok(!
res,
"can't open 64-bit component key, got %ld\n",
res);
5885 ok(
res,
"expected RegQueryValueEx to fail, got %ld\n",
res);
5887 ok(!
res,
"expected RegQueryValueEx to succeed, got %ld\n",
res);
5891 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32",
5902 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32",
5922 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}",
5927 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}",
5938 ok(!
res,
"can't open 32-bit component key, got %ld\n",
res);
5940 ok(!
res,
"expected RegQueryValueEx to succeed, got %ld\n",
res);
5942 ok(
res,
"expected RegQueryValueEx to fail, got %ld\n",
res);
5946 ok(!
res,
"can't open 64-bit component key, got %ld\n",
res);
5948 ok(
res,
"expected RegQueryValueEx to fail, got %ld\n",
res);
5950 ok(!
res,
"expected RegQueryValueEx to succeed, got %ld\n",
res);
5954 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32",
5965 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}\\InProcServer32",
5985 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}",
5990 "CLSID\\{8dfef911-6885-41eb-b280-8f0304728e8b}",
6004 skip(
"process is limited\n");
6030 skip(
"process is limited\n");
6034 create_file(
"msitest\\sharedcomponent.txt", 1000);
6036 100, 0,
";",
"{A8826420-FD72-4E61-9E15-C1944CF4CBE1}");
6038 100, 0,
";",
"{A8B50B30-0E8A-4ACD-B3CF-1A5DC58B2739}");
6045 ok(
pf_exists(
"msitest\\sharedcomponent.txt"),
"file not installed\n");
6050 ok(
pf_exists(
"msitest\\sharedcomponent.txt"),
"file not installed\n");
6055 ok(
pf_exists(
"msitest\\sharedcomponent.txt"),
"file removed\n");
6060 ok(!
pf_exists(
"msitest\\sharedcomponent.txt"),
"file not removed\n");
6079 skip(
"process is limited\n" );
6093 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UpgradeCodes\\51AAE0C44620A5E4788506E91F249BD2",
6104 ok( !
buf[0],
"wrong data\n" );
6111 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UpgradeCodes\\51AAE0C44620A5E4788506E91F249BD2",
6125 skip(
"process is limited\n" );
6176 skip(
"Not enough rights to perform tests\n");
6196 skip(
"test must be run on WoW64\n");
6202 skip(
"process is limited\n");
6211 skip(
"Not enough rights to perform tests\n");
6215 pWow64DisableWow64FsRedirection(&
cookie);
6217 ok(!
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File installed\n");
6219 ok(!
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File installed\n");
6221 ok(!
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File installed\n");
6241 pWow64RevertWow64FsRedirection(
cookie);
6255 skip(
"process is limited\n" );
6288 if (pIsWow64Process)
6310 if (pSRSetRestorePointA && !pMsiGetComponentPathExA)
6325 if (pSRSetRestorePointA)
6376 if (pSRSetRestorePointA && !pMsiGetComponentPathExA &&
ret)
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[]
static SID_IDENTIFIER_AUTHORITY NtAuthority
#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 CheckTokenMembership(IN HANDLE ExistingTokenHandle, IN PSID SidToCheck, OUT PBOOL IsMember)
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, PSID *pSid)
PVOID WINAPI FreeSid(PSID pSid)
#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)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
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)
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)
INSTALLSTATE WINAPI MsiGetComponentPathExA(LPCSTR product, LPCSTR comp, LPCSTR usersid, MSIINSTALLCONTEXT ctx, LPSTR buf, LPDWORD buflen)
UINT WINAPI MsiQueryComponentStateA(LPCSTR szProductCode, LPCSTR szUserSid, MSIINSTALLCONTEXT dwContext, LPCSTR szComponent, INSTALLSTATE *pdwState)
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 MsiSourceListEnumSourcesA(const char *szProductCodeOrPatch, const char *szUserSid, MSIINSTALLCONTEXT dwContext, DWORD dwOptions, DWORD dwIndex, char *szSource, DWORD *pcchSource)
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
LANGID WINAPI GetSystemDefaultLangID(void)
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR 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 HINSTANCE hkernel32
static char memory[1024 *256]
#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 void remove_restore_point(DWORD seq_number)
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[]
BOOL is_process_limited(void)
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 notify_system_change(DWORD event_type, STATEMGRSTATUS *status)
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 void init_functionpointers(void)
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 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 struct @1676 table_transform_data[]
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[]
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 INSTALLSTATE *static LPDWORD
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[]
#define GET_PROC(mod, func)
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 STATEMGRSTATUS *static BOOL is_wow64
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 delete_key(r, p, s)
#define SUBLANG_ENGLISH_US
int ZEXPORT compress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)
BOOL WINAPI SRSetRestorePointA(PRESTOREPOINTINFOA pRestorePtSpec, PSTATEMGRSTATUS pSMgrStatus)
#define FOF_NOCONFIRMATION
static char tmpdir[MAX_PATH]
int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp)
DWORD WINAPI SRRemoveRestorePoint(DWORD dwNumber)
#define APPLICATION_INSTALL
#define BEGIN_NESTED_SYSTEM_CHANGE
#define END_NESTED_SYSTEM_CHANGE
char szCabPath[CB_MAX_CAB_PATH]
char szCab[CB_MAX_CABINET_NAME]
CHAR szDescription[MAX_DESC]
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
@ TokenElevationTypeLimited
@ TokenElevationTypeDefault
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
#define HKEY_CLASSES_ROOT
#define SECURITY_BUILTIN_DOMAIN_RID
#define SECURITY_NT_AUTHORITY
#define DOMAIN_ALIAS_RID_ADMINS