38#define SQUASHED_GUID_SIZE (33)
41static const char msifile[] =
"winetest.msi";
87#define GET_PROC(dll, func) \
88 p ## func = (void *)GetProcAddress(dll, #func); \
90 trace("GetProcAddress(%s) failed\n", #func);
118#define MEDIA_SIZE 0x7FFFFFFF
119#define FOLDER_THRESHOLD 900000
138 IStorage_Release(stg);
152 IStream_Release(stm);
153 IStorage_Release(stg);
161 "Directory\tDirectory_Parent\tDefaultDir\n"
163 "Directory\tDirectory\n"
164 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
165 "ProgramFilesFolder\tTARGETDIR\t.\n"
166 "TARGETDIR\t\tSourceDir";
169 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
170 "s72\tS38\ts72\ti2\tS255\tS72\n"
171 "Component\tComponent\n"
172 "One\t{8F5BAEEF-DD92-40AC-9397-BE3CF9F97C81}\tMSITESTDIR\t2\tNOT REINSTALL\tone.txt\n";
175 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
176 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
178 "One\t\tOne\tOne\t1\t3\tMSITESTDIR\t0\n"
179 "Two\t\t\t\t2\t1\tTARGETDIR\t0\n";
182 "Feature_\tComponent_\n"
184 "FeatureComponents\tFeature_\tComponent_\n"
188 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
189 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
191 "one.txt\tOne\tone.txt\t1000\t\t\t0\t1\n";
194 "Action\tCondition\tSequence\n"
196 "InstallExecuteSequence\tAction\n"
197 "ValidateProductID\t\t700\n"
198 "CostInitialize\t\t800\n"
200 "CostFinalize\t\t1000\n"
201 "InstallValidate\t\t1400\n"
202 "InstallInitialize\t\t1500\n"
203 "ProcessComponents\t\t1600\n"
204 "UnpublishFeatures\t\t1800\n"
205 "RemoveFiles\t\t3500\n"
206 "InstallFiles\t\t4000\n"
207 "RegisterProduct\t\t6100\n"
208 "PublishFeatures\t\t6300\n"
209 "PublishProduct\t\t6400\n"
210 "InstallFinalize\t\t6600";
213 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
214 "i2\ti4\tL64\tS255\tS32\tS72\n"
216 "1\t1\t\t\tDISK1\t\n";
221 "Property\tProperty\n"
223 "Manufacturer\tWine\n"
224 "ProductCode\t{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}\n"
225 "ProductName\tMSITEST\n"
226 "ProductVersion\t1.1.1\n"
227 "UpgradeCode\t{9574448F-9B86-4E07-B6F6-8D199DA12127}\n"
228 "MSIFASTINSTALL\t1\n";
233 "Property\tProperty\n"
235 "Manufacturer\tWine\n"
236 "ProductCode\t{FF4AFE9C-6AC2-44F9-A060-9EA6BD16C75E}\n"
237 "ProductName\tMSITEST2\n"
238 "ProductVersion\t1.1.1\n"
239 "UpgradeCode\t{6B60C3CA-B8CA-4FB7-A395-092D98FF5D2A}\n"
240 "MSIFASTINSTALL\t1\n";
243 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
244 "s72\tS38\ts72\ti2\tS255\tS72\n"
245 "Component\tComponent\n"
246 "hydrogen\t{C844BD1E-1907-4C00-8BC9-150BD70DF0A1}\tMSITESTDIR\t2\t\thydrogen\n"
247 "helium\t{5AD3C142-CEF8-490D-B569-784D80670685}\tMSITESTDIR\t2\t\thelium\n"
248 "lithium\t{4AF28FFC-71C7-4307-BDE4-B77C5338F56F}\tMSITESTDIR\t2\tPROPVAR=42\tlithium\n";
251 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
252 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
254 "hydroxyl\t\thydroxyl\thydroxyl\t2\t1\tTARGETDIR\t0\n"
255 "heliox\t\theliox\theliox\t2\t5\tTARGETDIR\t0\n"
256 "lithia\t\tlithia\tlithia\t2\t10\tTARGETDIR\t0";
259 "Feature_\tComponent_\n"
261 "FeatureComponents\tFeature_\tComponent_\n"
262 "hydroxyl\thydrogen\n"
267 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
268 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
270 "hydrogen\thydrogen\thydrogen\t0\t\t\t8192\t1\n"
271 "helium\thelium\thelium\t0\t\t\t8192\t1\n"
272 "lithium\tlithium\tlithium\t0\t\t\t8192\t1";
275 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
276 "s72\tS38\ts72\ti2\tS255\tS72\n"
277 "Component\tComponent\n"
278 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\tUILevel=5\tmaximus\n";
281 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
282 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
284 "feature\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0\n"
285 "montecristo\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0";
288 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
289 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
291 "maximus\tmaximus\tmaximus\t500\t\t\t8192\t1";
294 "Feature_\tComponent_\n"
296 "FeatureComponents\tFeature_\tComponent_\n"
298 "montecristo\tmaximus";
301 "Action\tCondition\tSequence\n"
303 "InstallExecuteSequence\tAction\n"
304 "ValidateProductID\t\t700\n"
305 "CostInitialize\t\t800\n"
307 "CostFinalize\t\t1000\n"
308 "InstallValidate\t\t1400\n"
309 "InstallInitialize\t\t1500\n"
310 "ProcessComponents\tPROCESS_COMPONENTS=1 Or FULL=1\t1600\n"
311 "UnpublishFeatures\tUNPUBLISH_FEATURES=1 Or FULL=1\t1800\n"
312 "RemoveFiles\t\t3500\n"
313 "InstallFiles\t\t4000\n"
314 "RegisterUser\tREGISTER_USER=1 Or FULL=1\t6000\n"
315 "RegisterProduct\tREGISTER_PRODUCT=1 Or FULL=1\t6100\n"
316 "PublishFeatures\tPUBLISH_FEATURES=1 Or FULL=1\t6300\n"
317 "PublishProduct\tPUBLISH_PRODUCT=1 Or FULL=1\t6400\n"
318 "InstallFinalize\t\t6600";
321 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
322 "i2\ti4\tL64\tS255\tS32\tS72\n"
324 "1\t1\t\t\tDISK1\t\n";
327 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
328 "i2\ti4\tL64\tS255\tS32\tS72\n"
330 "1\t1\t\ttest1.cab\tDISK1\t\n";
333 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
334 "i2\ti4\tL64\tS255\tS32\tS72\n"
336 "1\t1\t\t#test1.cab\tDISK1\t\n";
339 "Action\tType\tSource\tTarget\tISComments\n"
340 "s72\ti2\tS64\tS0\tS255\n"
341 "CustomAction\tAction\n"
342 "SetFolderProp\t51\tMSITESTDIR\t[ProgramFilesFolder]\\msitest\\added\t\n"
343 "SetFolderProp2\t51\tMSITESTDIR\t[ProgramFilesFolder]\\msitest\\added\\added2\t\n";
346 "Action\tCondition\tSequence\n"
348 "InstallExecuteSequence\tAction\n"
349 "CostInitialize\t\t800\n"
351 "SetFolderProp\t\t950\n"
352 "SetFolderProp2\t\t960\n"
353 "CostFinalize\t\t1000\n"
354 "InstallValidate\t\t1400\n"
355 "InstallInitialize\t\t1500\n"
356 "InstallFiles\t\t4000\n"
357 "InstallServices\t\t5000\n"
358 "InstallFinalize\t\t6600\n";
361 "Action\tCondition\tSequence\n"
363 "InstallUISequence\tAction\n"
364 "CostInitialize\t\t800\n"
366 "CostFinalize\t\t1000\n"
367 "ExecuteAction\t\t1100\n";
370 "Directory\tDirectory_Parent\tDefaultDir\n"
372 "Directory\tDirectory\n"
373 "PARENTDIR\tTARGETDIR\tparent\n"
374 "CHILDDIR\tPARENTDIR\tchild\n"
375 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
376 "ProgramFilesFolder\tTARGETDIR\t.\n"
377 "TARGETDIR\t\tSourceDir";
380 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
381 "s72\tS38\ts72\ti2\tS255\tS72\n"
382 "Component\tComponent\n"
383 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\tUILevel=5\tmaximus\n";
386 "Action\tCondition\tSequence\n"
388 "InstallExecuteSequence\tAction\n"
389 "CostInitialize\t\t800\n"
391 "FormatParentFolderCheck\t\t910\n"
392 "FormatChildFolderCheck\t\t920\n"
393 "CheckParentFolder\tNOT PARENTDIR=PARENTDIRCHECK\t930\n"
394 "CheckChildFolder\tNOT CHILDDIR=CHILDDIRCHECK\t940\n"
395 "FormatParentFolderCheck2\t\t945\n"
396 "SetParentFolder\t\t950\n"
397 "CheckParentFolder2\tNOT PARENTDIR=PARENTDIRCHECK\t960\n"
398 "CheckChildFolder2\tNOT CHILDDIR=CHILDDIRCHECK\t970\n"
399 "CostFinalize\t\t1000\n"
400 "FormatParentFolderCheck3\t\t1005\n"
401 "CheckParentFolder3\tNOT PARENTDIR=PARENTDIRCHECK\t1010\n"
402 "CheckChildFolder3\tNOT CHILDDIR=CHILDDIRCHECK\t1020\n"
403 "InstallValidate\t\t1400\n"
404 "InstallInitialize\t\t1500\n"
405 "InstallFiles\t\t4000\n"
406 "CreateShortcuts\t\t4100\n"
407 "InstallFinalize\t\t6600\n";
410 "Action\tType\tSource\tTarget\tISComments\n"
411 "s72\ti2\tS64\tS0\tS255\n"
412 "CustomAction\tAction\n"
413 "FormatParentFolderCheck\t51\tPARENTDIRCHECK\t[TARGETDIR]parent\\\t\n"
414 "FormatChildFolderCheck\t51\tCHILDDIRCHECK\t[TARGETDIR]parent\\child\\\t\n"
415 "CheckParentFolder\t19\tPARENTDIR\tparent prop wrong before set: [PARENTDIR]\t\n"
416 "CheckChildFolder\t19\tCHILDDIR\tchild prop wrong before set: [CHILDDIR]\t\n"
417 "FormatParentFolderCheck2\t51\tPARENTDIRCHECK\t[ProgramFilesFolder]msitest\\parent\t\n"
418 "SetParentFolder\t51\tPARENTDIR\t[PARENTDIRCHECK]\t\n"
419 "CheckParentFolder2\t19\tPARENTDIR\tparent prop wrong after set: [PARENTDIR]\t\n"
420 "CheckChildFolder2\t19\tCHILDDIR\tchild prop wrong after set: [CHILDDIR]\t\n"
421 "FormatParentFolderCheck3\t51\tPARENTDIRCHECK\t[ProgramFilesFolder]msitest\\parent\\\t\n"
422 "CheckParentFolder3\t19\tPARENTDIR\tparent prop wrong after CostFinalize: [PARENTDIR]\t\n"
423 "CheckChildFolder3\t19\tCHILDDIR\tchild prop wrong after CostFinalize: [CHILDDIR]\t\n";
426 "Shortcut\tDirectory_\tName\tComponent_\tTarget\tArguments\tDescription\tHotkey\tIcon_\tIconIndex\tShowCmd\tWkDir\n"
427 "s72\ts72\tl128\ts72\ts72\tS255\tL255\tI2\tS72\tI2\tI2\tS72\n"
428 "Shortcut\tShortcut\n"
429 "Shortcut\tCHILDDIR\tShortcut\tmaximus\t[#maximus]\t\tShortcut\t\t\t\t\tMSITESTDIR\n";
432 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
433 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
435 "sourcedir.txt\tsourcedir\tsourcedir.txt\t1000\t\t\t8192\t1\n";
438 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
439 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
441 "sourcedir\t\t\tsourcedir feature\t1\t2\tMSITESTDIR\t0\n";
444 "Feature_\tComponent_\n"
446 "FeatureComponents\tFeature_\tComponent_\n"
447 "sourcedir\tsourcedir\n";
450 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
451 "s72\tS38\ts72\ti2\tS255\tS72\n"
452 "Component\tComponent\n"
453 "sourcedir\t{DD422F92-3ED8-49B5-A0B7-F266F98357DF}\tMSITESTDIR\t0\t\tsourcedir.txt\n";
456 "Action\tCondition\tSequence\n"
458 "InstallUISequence\tAction\n"
459 "TestSourceDirProp1\tnot SourceDir and not SOURCEDIR and not Installed\t99\n"
461 "TestSourceDirProp2\tnot SourceDir and not SOURCEDIR and not Installed\t101\n"
462 "LaunchConditions\tnot Installed \t110\n"
463 "TestSourceDirProp3\tnot SourceDir and not SOURCEDIR and not Installed\t111\n"
464 "FindRelatedProducts\t\t120\n"
465 "TestSourceDirProp4\tnot SourceDir and not SOURCEDIR and not Installed\t121\n"
467 "TestSourceDirProp5\tnot SourceDir and not SOURCEDIR and not Installed\t131\n"
468 "RMCCPSearch\t\t140\n"
469 "TestSourceDirProp6\tnot SourceDir and not SOURCEDIR and not Installed\t141\n"
470 "ValidateProductID\t\t150\n"
471 "TestSourceDirProp7\tnot SourceDir and not SOURCEDIR and not Installed\t151\n"
472 "CostInitialize\t\t800\n"
473 "TestSourceDirProp8\tnot SourceDir and not SOURCEDIR and not Installed\t801\n"
475 "TestSourceDirProp9\tnot SourceDir and not SOURCEDIR and not Installed\t901\n"
476 "IsolateComponents\t\t1000\n"
477 "TestSourceDirProp10\tnot SourceDir and not SOURCEDIR and not Installed\t1001\n"
478 "CostFinalize\t\t1100\n"
479 "TestSourceDirProp11\tnot SourceDir and not SOURCEDIR and not Installed\t1101\n"
480 "MigrateFeatureStates\t\t1200\n"
481 "TestSourceDirProp12\tnot SourceDir and not SOURCEDIR and not Installed\t1201\n"
482 "ExecuteAction\t\t1300\n"
483 "TestSourceDirProp13\tnot SourceDir and not SOURCEDIR and not Installed\t1301\n";
486 "Action\tCondition\tSequence\n"
488 "InstallExecuteSequence\tAction\n"
489 "TestSourceDirProp14\tSourceDir and SOURCEDIR and not Installed\t99\n"
490 "LaunchConditions\t\t100\n"
491 "TestSourceDirProp15\tSourceDir and SOURCEDIR and not Installed\t101\n"
492 "ValidateProductID\t\t700\n"
493 "TestSourceDirProp16\tSourceDir and SOURCEDIR and not Installed\t701\n"
494 "CostInitialize\t\t800\n"
495 "TestSourceDirProp17\tSourceDir and SOURCEDIR and not Installed\t801\n"
496 "ResolveSource\tResolveSource and not Installed\t850\n"
497 "TestSourceDirProp18\tResolveSource and not SourceDir and not SOURCEDIR and not Installed\t851\n"
498 "TestSourceDirProp19\tnot ResolveSource and SourceDir and SOURCEDIR and not Installed\t852\n"
500 "TestSourceDirProp20\tSourceDir and SOURCEDIR and not Installed\t901\n"
501 "IsolateComponents\t\t1000\n"
502 "TestSourceDirProp21\tSourceDir and SOURCEDIR and not Installed\t1001\n"
503 "CostFinalize\t\t1100\n"
504 "TestSourceDirProp22\tSourceDir and SOURCEDIR and not Installed\t1101\n"
505 "MigrateFeatureStates\t\t1200\n"
506 "TestSourceDirProp23\tSourceDir and SOURCEDIR and not Installed\t1201\n"
507 "InstallValidate\t\t1400\n"
508 "TestSourceDirProp24\tSourceDir and SOURCEDIR and not Installed\t1401\n"
509 "InstallInitialize\t\t1500\n"
510 "TestSourceDirProp25\tSourceDir and SOURCEDIR and not Installed\t1501\n"
511 "ProcessComponents\t\t1600\n"
512 "TestSourceDirProp26\tnot SourceDir and not SOURCEDIR and not Installed\t1601\n"
513 "UnpublishFeatures\t\t1800\n"
514 "TestSourceDirProp27\tnot SourceDir and not SOURCEDIR and not Installed\t1801\n"
515 "RemoveFiles\t\t3500\n"
516 "TestSourceDirProp28\tnot SourceDir and not SOURCEDIR and not Installed\t3501\n"
517 "InstallFiles\t\t4000\n"
518 "TestSourceDirProp29\tnot SourceDir and not SOURCEDIR and not Installed\t4001\n"
519 "RegisterUser\t\t6000\n"
520 "TestSourceDirProp30\tnot SourceDir and not SOURCEDIR and not Installed\t6001\n"
521 "RegisterProduct\t\t6100\n"
522 "TestSourceDirProp31\tnot SourceDir and not SOURCEDIR and not Installed\t6101\n"
523 "PublishFeatures\t\t6300\n"
524 "TestSourceDirProp32\tnot SourceDir and not SOURCEDIR and not Installed\t6301\n"
525 "PublishProduct\t\t6400\n"
526 "TestSourceDirProp33\tnot SourceDir and not SOURCEDIR and not Installed\t6401\n"
527 "InstallExecute\t\t6500\n"
528 "TestSourceDirProp34\tnot SourceDir and not SOURCEDIR and not Installed\t6501\n"
529 "InstallFinalize\t\t6600\n"
530 "TestSourceDirProp35\tnot SourceDir and not SOURCEDIR and not Installed\t6601\n";
533 "Action\tType\tSource\tTarget\tISComments\n"
534 "s72\ti2\tS64\tS0\tS255\n"
535 "CustomAction\tAction\n"
536 "TestSourceDirProp1\t19\t\tTest 1 failed\t\n"
537 "TestSourceDirProp2\t19\t\tTest 2 failed\t\n"
538 "TestSourceDirProp3\t19\t\tTest 3 failed\t\n"
539 "TestSourceDirProp4\t19\t\tTest 4 failed\t\n"
540 "TestSourceDirProp5\t19\t\tTest 5 failed\t\n"
541 "TestSourceDirProp6\t19\t\tTest 6 failed\t\n"
542 "TestSourceDirProp7\t19\t\tTest 7 failed\t\n"
543 "TestSourceDirProp8\t19\t\tTest 8 failed\t\n"
544 "TestSourceDirProp9\t19\t\tTest 9 failed\t\n"
545 "TestSourceDirProp10\t19\t\tTest 10 failed\t\n"
546 "TestSourceDirProp11\t19\t\tTest 11 failed\t\n"
547 "TestSourceDirProp12\t19\t\tTest 12 failed\t\n"
548 "TestSourceDirProp13\t19\t\tTest 13 failed\t\n"
549 "TestSourceDirProp14\t19\t\tTest 14 failed\t\n"
550 "TestSourceDirProp15\t19\t\tTest 15 failed\t\n"
551 "TestSourceDirProp16\t19\t\tTest 16 failed\t\n"
552 "TestSourceDirProp17\t19\t\tTest 17 failed\t\n"
553 "TestSourceDirProp18\t19\t\tTest 18 failed\t\n"
554 "TestSourceDirProp19\t19\t\tTest 19 failed\t\n"
555 "TestSourceDirProp20\t19\t\tTest 20 failed\t\n"
556 "TestSourceDirProp21\t19\t\tTest 21 failed\t\n"
557 "TestSourceDirProp22\t19\t\tTest 22 failed\t\n"
558 "TestSourceDirProp23\t19\t\tTest 23 failed\t\n"
559 "TestSourceDirProp24\t19\t\tTest 24 failed\t\n"
560 "TestSourceDirProp25\t19\t\tTest 25 failed\t\n"
561 "TestSourceDirProp26\t19\t\tTest 26 failed\t\n"
562 "TestSourceDirProp27\t19\t\tTest 27 failed\t\n"
563 "TestSourceDirProp28\t19\t\tTest 28 failed\t\n"
564 "TestSourceDirProp29\t19\t\tTest 29 failed\t\n"
565 "TestSourceDirProp30\t19\t\tTest 30 failed\t\n"
566 "TestSourceDirProp31\t19\t\tTest 31 failed\t\n"
567 "TestSourceDirProp32\t19\t\tTest 32 failed\t\n"
568 "TestSourceDirProp33\t19\t\tTest 33 failed\t\n"
569 "TestSourceDirProp34\t19\t\tTest 34 failed\t\n"
570 "TestSourceDirProp35\t19\t\tTest 35 failed\t\n";
573 "Action\tCondition\tSequence\n"
575 "InstallExecuteSequence\tAction\n"
576 "CostInitialize\t\t800\n"
578 "CostFinalize\t\t1000\n"
579 "InstallValidate\t\t1400\n"
580 "InstallInitialize\t\t1500\n"
581 "RunInstall\tnot Installed\t1550\n"
582 "ProcessComponents\t\t1600\n"
583 "UnpublishFeatures\t\t1800\n"
584 "RemoveFiles\t\t3500\n"
585 "InstallFiles\t\t4000\n"
586 "RegisterProduct\t\t6100\n"
587 "PublishFeatures\t\t6300\n"
588 "PublishProduct\t\t6400\n"
589 "InstallFinalize\t\t6600\n";
592 "Action\tType\tSource\tTarget\tISComments\n"
593 "s72\ti2\tS64\tS0\tS255\n"
594 "CustomAction\tAction\n"
595 "RunInstall\t23\tmsitest\\concurrent.msi\tMYPROP=[UILevel]\t\n";
598 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
599 "s72\tS38\ts72\ti2\tS255\tS72\n"
600 "Component\tComponent\n"
601 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\tUILevel=5\tmaximus\n";
604 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
605 "s72\tS38\ts72\ti2\tS255\tS72\n"
606 "Component\tComponent\n"
607 "augustus\t\tMSITESTDIR\t0\tUILevel=3 AND MYPROP=5\taugustus\n";
610 "Feature_\tComponent_\n"
612 "FeatureComponents\tFeature_\tComponent_\n"
616 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
617 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
619 "augustus\taugustus\taugustus\t500\t\t\t8192\t1";
622 "Action\tType\tSource\tTarget\tISComments\n"
623 "s72\ti2\tS64\tS0\tS255\n"
624 "CustomAction\tAction\n"
625 "TestCommandlineProp\t19\t\tTest1\t\n";
628 "Action\tCondition\tSequence\n"
630 "InstallExecuteSequence\tAction\n"
631 "LaunchConditions\t\t100\n"
632 "ValidateProductID\t\t700\n"
633 "CostInitialize\t\t800\n"
635 "CostFinalize\t\t1000\n"
636 "TestCommandlineProp\tP=\"one\"\t1100\n"
637 "InstallInitialize\t\t1500\n"
638 "ProcessComponents\t\t1600\n"
639 "InstallValidate\t\t1400\n"
640 "InstallFinalize\t\t5000\n";
793 "Installation Database");
797 "Installation Database");
809 "{A2078D65-94D6-4205-8DEE-F68D6FD622AA}");
847 "CREATE TABLE `Directory` ( "
848 "`Directory` CHAR(255) NOT NULL, "
849 "`Directory_Parent` CHAR(255), "
850 "`DefaultDir` CHAR(255) NOT NULL "
851 "PRIMARY KEY `Directory`)");
855 "CREATE TABLE `Property` ( "
856 "`Property` CHAR(72) NOT NULL, "
858 "PRIMARY KEY `Property`)");
862 "(`Property`, `Value`) "
863 "VALUES( 'ProductCode', '%s' )", prodcode);
877 if (!pMsiUseFeatureExA)
879 win_skip(
"MsiUseFeatureExA not implemented\n");
892 r = pMsiUseFeatureExA(
NULL,
"WORDVIEWFiles", -2, 1 );
895 r = pMsiUseFeatureExA(
"{90850409-6000-11d3-8cfe-0150048383c9}",
899 r = pMsiUseFeatureExA(
"{9085040-6000-11d3-8cfe-0150048383c9}",
900 "WORDVIEWFiles", -2, 0 );
903 r = pMsiUseFeatureExA(
"{0085040-6000-11d3-8cfe-0150048383c9}",
904 "WORDVIEWFiles", -2, 0 );
907 r = pMsiUseFeatureExA(
"{90850409-6000-11d3-8cfe-0150048383c9}",
908 "WORDVIEWFiles", -2, 1 );
914 if (pRegDeleteKeyExA)
915 return pRegDeleteKeyExA(
key, subkey,
access, 0 );
924 DWORD dwType, cbData;
932 r = pMsiOpenPackageExW(
NULL, 0, &hpkg);
960 skip(
"Not enough rights to perform tests\n");
969 if (!(lpData =
malloc(cbData)))
skip(
"Out of memory\n");
980 skip(
"Not enough rights to perform tests\n");
1030 if(!pMsiGetComponentPathA)
1036 r = pMsiGetComponentPathA(
"bogus",
"bogus",
NULL,
NULL );
1039 r = pMsiGetComponentPathA(
"bogus",
"{00000000-0000-0000-000000000000}",
NULL,
NULL );
1044 r = pMsiGetComponentPathA(
"bogus",
"{00000000-0000-0000-000000000000}",
buffer, &sz );
1047 r = pMsiGetComponentPathA(
"{00000000-78E1-11D2-B60F-006097C998E7}",
1048 "{00000000-0000-0000-0000-000000000000}",
buffer, &sz );
1051 r = pMsiGetComponentPathA(
"{00000409-78E1-11D2-B60F-006097C998E7}",
1052 "{00000000-0000-0000-0000-00000000}",
buffer, &sz );
1055 r = pMsiGetComponentPathA(
"{00000409-78E1-11D2-B60F-006097C998E7}",
1056 "{029E403D-A86A-1D11-5B5B0006799C897E}",
buffer, &sz );
1059 r = pMsiGetComponentPathA(
"{00000000-78E1-11D2-B60F-006097C9987e}",
1060 "{00000000-A68A-11d1-5B5B-0006799C897E}",
buffer, &sz );
1098#define HASHSIZE sizeof(MSIFILEHASHINFO)
1115 { 0x98500190, 0xb04fd23c, 0x7d3f96d6, 0x727fe128 },
1119 {
"C:\\Program Files\\msitest\\caesar\n", 0,
1121 { 0x2b566794, 0xfd42181b, 0x2514d6e4, 0x5768b4e2 },
1125 {
"C:\\Program Files\\msitest\\caesar\n", 500,
1127 { 0x58095058, 0x805efeff, 0x10f3483e, 0x0147d653 },
1134 const char name[] =
"msitest.bin";
1139 if (!pMsiGetFileHashA)
1141 win_skip(
"MsiGetFileHash not implemented\n");
1152 r = pMsiGetFileHashA(
"", 0, &
hash);
1154 "Expected ERROR_PATH_NOT_FOUND or ERROR_BAD_PATHNAME, got %d\n",
r);
1165 hash.dwFileHashInfoSize = 0;
1186 ok(!
ret,
"Hash incorrect\n");
1234 ok(
hr ==
S_OK,
"Expected S_OK, got %#lx\n",
hr);
1252 char *usersid =
NULL;
1290 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1297 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1304 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1311 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1325 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1335 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
1348 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\");
1354 skip(
"Not enough rights to perform tests\n");
1383 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1391 skip(
"Not enough rights to perform tests\n");
1470 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
1472 lstrcatA(keypath,
"\\Installer\\Products\\");
1480 "Expected INSTALLSTATE_ADVERTISED, got %d\n",
state);
1482 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1492 "Expected INSTALLSTATE_ADVERTISED, got %d\n",
state);
1499 "Expected INSTALLSTATE_ADVERTISED, got %d\n",
state);
1519 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
1525 skip(
"insufficient rights\n" );
1534 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1535 lstrcatA(keypath,
"S-1-5-18\\Products\\");
1543 "Expected INSTALLSTATE_ADVERTISED, got %d\n",
state);
1550 "Expected INSTALLSTATE_ADVERTISED, got %d\n",
state);
1572"!$%&'()*+,-.0123456789=?@ABCDEFGHIJKLMNO"
1573"PQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwx"
1582 unsigned int x, *
p,
i;
1584 p = (
unsigned int*)
guid;
1585 for(
i=0;
i<4;
i++ )
1611 ok(
hr ==
S_OK,
"Expected S_OK, got %#lx\n",
hr);
1614 ok(
size == 39,
"Expected 39, got %d\n",
size);
1625 HKEY userkey, localkey, compkey, compkey2;
1651 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1658 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1665 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1672 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1686 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1693 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1711 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Features\\");
1734 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1743 skip(
"Not enough rights to perform tests\n");
1794 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1796 lstrcatA(keypath,
"\\Components\\");
1802 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1804 lstrcatA(keypath,
"\\Components\\");
1898 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
1900 lstrcatA(keypath,
"\\Installer\\Features\\");
1917 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1954 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1956 lstrcatA(keypath,
"\\Components\\");
1962 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1964 lstrcatA(keypath,
"\\Components\\");
2005 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Features\\");
2011 skip(
"insufficient rights\n" );
2028 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
2029 lstrcatA(keypath,
"S-1-5-18\\Products\\");
2064 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
2065 lstrcatA(keypath,
"S-1-5-18\\Components\\");
2071 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
2072 lstrcatA(keypath,
"S-1-5-18\\Components\\");
2115 HKEY compkey, prodkey;
2131 if (!pMsiQueryComponentStateA)
2133 win_skip(
"MsiQueryComponentStateA not implemented\n");
2145 state = MAGIC_ERROR;
2150 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2151 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2154 state = MAGIC_ERROR;
2159 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2160 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2163 state = MAGIC_ERROR;
2168 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2169 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2172 state = MAGIC_ERROR;
2177 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2178 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2181 state = MAGIC_ERROR;
2186 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2187 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2190 state = MAGIC_ERROR;
2195 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2196 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2198 state = MAGIC_ERROR;
2203 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2204 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2206 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
2212 skip(
"Not enough rights to perform tests\n");
2218 state = MAGIC_ERROR;
2224 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2230 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Products\\");
2232 lstrcatA(keypath,
"\\InstallProperties");
2237 skip(
"Not enough rights to perform tests\n");
2244 state = MAGIC_ERROR;
2248 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2249 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2255 state = MAGIC_ERROR;
2261 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2263 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Components\\");
2270 state = MAGIC_ERROR;
2276 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2282 state = MAGIC_ERROR;
2288 "Expected INSTALLSTATE_NOTUSED or INSTALLSTATE_LOCAL, got %d\n",
state);
2289 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2292 state = MAGIC_ERROR;
2297 ok(
state == MAGIC_ERROR,
"Expected state not changed, got %d\n",
state);
2298 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2304 state = MAGIC_ERROR;
2310 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2316 state = MAGIC_ERROR;
2322 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2328 state = MAGIC_ERROR;
2334 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2340 state = MAGIC_ERROR;
2346 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2352 state = MAGIC_ERROR;
2358 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2369 state = MAGIC_ERROR;
2372 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2374 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
2380 state = MAGIC_ERROR;
2388 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
2392 lstrcatA(keypath,
"\\InstallProperties");
2402 state = MAGIC_ERROR;
2407 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
2409 lstrcatA(keypath,
"\\Components\\");
2416 state = MAGIC_ERROR;
2425 state = MAGIC_ERROR;
2429 "Expected INSTALLSTATE_NOTUSED or INSTALLSTATE_LOCAL, got %d\n",
state);
2434 state = MAGIC_ERROR;
2441 state = MAGIC_ERROR;
2444 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2446 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
2452 state = MAGIC_ERROR;
2455 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2460 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
2462 lstrcatA(keypath,
"\\Installer\\Products\\");
2468 state = MAGIC_ERROR;
2476 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
2480 lstrcatA(keypath,
"\\InstallProperties");
2488 state = MAGIC_ERROR;
2505 HKEY compkey, prodkey, installprop;
2576 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2577 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Components\\");
2583 skip(
"Not enough rights to perform tests\n");
2609 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2616 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2618 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2619 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Products\\");
2621 lstrcatA(keypath,
"\\InstallProperties");
2636 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2643 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2653 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2660 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2667 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2674 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2684 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2685 lstrcatA(keypath,
"Installer\\UserData\\");
2687 lstrcatA(keypath,
"\\Components\\");
2713 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2720 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2722 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2723 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Products\\");
2725 lstrcatA(keypath,
"\\InstallProperties");
2740 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2747 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2757 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2764 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2774 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2775 lstrcatA(keypath,
"Installer\\Managed\\");
2777 lstrcatA(keypath,
"\\Installer\\Products\\");
2794 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2795 lstrcatA(keypath,
"Installer\\UserData\\");
2797 lstrcatA(keypath,
"\\Components\\");
2823 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2830 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2832 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2833 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Products\\");
2835 lstrcatA(keypath,
"\\InstallProperties");
2850 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2857 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2867 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2874 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2886 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
2903 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2904 lstrcatA(keypath,
"Installer\\UserData\\");
2906 lstrcatA(keypath,
"\\Components\\");
2932 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2939 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2949 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2956 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2965 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
2971 skip(
"insufficient rights\n" );
2988 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2989 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Components\\");
3015 ok(
size == 10,
"Expected 10, got %lu\n",
size);
3022 ok(
size == 10,
"Expected 10, got %lu\n",
size);
3032 ok(
size == 10,
"Expected 10, got %lu\n",
size);
3039 ok(
size == 10,
"Expected 10, got %lu\n",
size);
3052 HKEY key_comp, key_installprop, key_prod;
3061 if (!pMsiGetComponentPathExA)
3063 win_skip(
"MsiGetComponentPathExA not present\n" );
3109 lstrcpyA( path_key,
"Software\\Microsoft\\Windows\\CurrentVersion\\" );
3110 lstrcatA( path_key,
"Installer\\UserData\\S-1-5-18\\Components\\" );
3111 lstrcatA( path_key, comp_squashed );
3116 skip(
"insufficient rights\n" );
3138 lstrcpyA( path_key,
"Software\\Microsoft\\Windows\\CurrentVersion\\" );
3139 lstrcatA( path_key,
"Installer\\UserData\\S-1-5-18\\Products\\" );
3140 lstrcatA( path_key, prod_squashed );
3141 lstrcatA( path_key,
"\\InstallProperties" );