48static UINT (
WINAPI *pMsiSourceListEnumSourcesA)
66static const char *
msifile =
"msitest.msi";
71 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
72 "s72\tS38\ts72\ti2\tS255\tS72\n"
73 "Component\tComponent\n"
74 "Five\t{8CC92E9D-14B2-4CA4-B2AA-B11D02078087}\tNEWDIR\t2\t\tfive.txt\n"
75 "Four\t{FD37B4EA-7209-45C0-8917-535F35A2F080}\tCABOUTDIR\t2\t\tfour.txt\n"
76 "One\t{783B242E-E185-4A56-AF86-C09815EC053C}\tMSITESTDIR\t2\tNOT REINSTALL\tone.txt\n"
77 "Three\t{010B6ADD-B27D-4EDD-9B3D-34C4F7D61684}\tCHANGEDDIR\t2\t\tthree.txt\n"
78 "Two\t{BF03D1A6-20DA-4A65-82F3-6CAC995915CE}\tFIRSTDIR\t2\t\ttwo.txt\n"
79 "dangler\t{6091DF25-EF96-45F1-B8E9-A9B1420C7A3C}\tTARGETDIR\t4\t\tregdata\n"
80 "component\t\tMSITESTDIR\t0\t1\tfile\n"
81 "service_comp\t{935A0A91-22A3-4F87-BCA8-928FFDFE2353}\tMSITESTDIR\t0\t\tservice_file\n"
82 "service_comp2\t{3F7B04A4-9521-4649-BDC9-0C8722740A49}\tMSITESTDIR\t0\t\tservice_file2\n"
83 "service_comp3\t{DBCD1502-20E3-423F-B53E-F37E263CDC7E}\tMSITESTDIR\t0\t\t\n";
86 "Directory\tDirectory_Parent\tDefaultDir\n"
88 "Directory\tDirectory\n"
89 "CABOUTDIR\tMSITESTDIR\tcabout\n"
90 "CHANGEDDIR\tMSITESTDIR\tchanged:second\n"
91 "FIRSTDIR\tMSITESTDIR\tfirst\n"
92 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
93 "NEWDIR\tCABOUTDIR\tnew\n"
94 "ProgramFilesFolder\tTARGETDIR\t.\n"
95 "TARGETDIR\t\tSourceDir";
98 "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"
107 "service_feature\t\t\t\t2\t1\tTARGETDIR\t0";
110 "Feature_\tComponent_\n"
112 "FeatureComponents\tFeature_\tComponent_\n"
118 "feature\tcomponent\n"
119 "service_feature\tservice_comp\n"
120 "service_feature\tservice_comp2\n"
121 "service_feature\tservice_comp3";
124 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
125 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
127 "five.txt\tFive\tfive.txt\t1000\t\t\t16384\t5\n"
128 "four.txt\tFour\tfour.txt\t1000\t\t\t16384\t4\n"
129 "one.txt\tOne\tone.txt\t1000\t\t\t0\t1\n"
130 "three.txt\tThree\tthree.txt\t1000\t\t\t0\t3\n"
131 "two.txt\tTwo\ttwo.txt\t1000\t\t\t0\t2\n"
132 "file\tcomponent\tfilename\t100\t\t\t8192\t1\n"
133 "service_file\tservice_comp\tservice.exe\t100\t\t\t8192\t6\n"
134 "service_file2\tservice_comp2\tservice2.exe\t100\t\t\t8192\t7";
137 "Action\tCondition\tSequence\n"
139 "InstallExecuteSequence\tAction\n"
140 "AllocateRegistrySpace\tNOT Installed\t1550\n"
141 "CostFinalize\t\t1000\n"
142 "CostInitialize\t\t800\n"
144 "ResolveSource\t\t950\n"
145 "MoveFiles\t\t1700\n"
146 "InstallFiles\t\t4000\n"
147 "DuplicateFiles\t\t4500\n"
148 "CreateShortcuts\t\t4600\n"
149 "InstallServices\t\t5000\n"
150 "InstallFinalize\t\t6600\n"
151 "InstallInitialize\t\t1500\n"
152 "InstallValidate\t\t1400\n"
153 "LaunchConditions\t\t100\n"
154 "WriteRegistryValues\tSourceDir And SOURCEDIR\t5000";
157 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
158 "i2\ti4\tL64\tS255\tS32\tS72\n"
160 "1\t3\t\t\tDISK1\t\n"
161 "2\t7\t\tmsitest.cab\tDISK2\t\n";
166 "Property\tProperty\n"
167 "DefaultUIFont\tDlgFont8\n"
170 "InstallMode\tTypical\n"
171 "Manufacturer\tWine\n"
172 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
173 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
175 "ProductLanguage\t1033\n"
176 "ProductName\tMSITEST\n"
177 "ProductVersion\t1.1.1\n"
178 "PROMPTROLLBACKCOST\tP\n"
180 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
181 "AdminProperties\tPOSTADMIN\n"
183 "SERVNAME\tTestService\n"
184 "SERVNAME2\tTestService2\n"
185 "SERVDISP\tTestServiceDisp\n"
186 "SERVDISP2\tTestServiceDisp2\n"
187 "MSIFASTINSTALL\t1\n"
192 "Action\tCondition\tSequence\n"
194 "InstallExecuteSequence\tAction\n"
195 "CostInitialize\t\t100\n"
197 "CostFinalize\t\t300\n"
198 "InstallValidate\t\t400\n"
199 "InstallInitialize\t\t500\n"
200 "ProcessComponents\t\t600\n"
201 "WriteEnvironmentStrings\t\t700\n"
202 "wes_immediate\tNOT REMOVE\t701\n"
203 "wes_deferred\tNOT REMOVE\t702\n"
204 "RemoveEnvironmentStrings\t\t800\n"
205 "res_immediate\tREMOVE\t801\n"
206 "res_deferred\tREMOVE\t802\n"
207 "RegisterProduct\t\t900\n"
208 "PublishFeatures\t\t1000\n"
209 "PublishProduct\t\t1100\n"
210 "UnpublishFeatures\t\t1150\n"
211 "InstallFinalize\t\t1200\n";
214 "Action\tType\tSource\tTarget\n"
216 "CustomAction\tAction\n"
217 "wes_immediate\t1\tcustom.dll\tenv_absent\n"
218 "wes_deferred\t1025\tcustom.dll\tenv_present\n"
219 "res_immediate\t1\tcustom.dll\tenv_present\n"
220 "res_deferred\t1025\tcustom.dll\tenv_absent\n";
223 "Environment\tName\tValue\tComponent_\n"
224 "s72\tl255\tL255\ts72\n"
225 "Environment\tEnvironment\n"
226 "Var1\t=-MSITESTVAR1\t1\tOne\n"
227 "Var2\tMSITESTVAR2\t1\tOne\n"
228 "Var3\t=-MSITESTVAR3\t1\tOne\n"
229 "Var4\tMSITESTVAR4\t1\tOne\n"
230 "Var5\t-MSITESTVAR5\t\tOne\n"
231 "Var6\tMSITESTVAR6\t\tOne\n"
232 "Var7\t!-MSITESTVAR7\t\tOne\n"
233 "Var8\t!-*MSITESTVAR8\t\tOne\n"
234 "Var9\t=-MSITESTVAR9\t\tOne\n"
235 "Var10\t=MSITESTVAR10\t\tOne\n"
236 "Var11\t+-MSITESTVAR11\t[~];1\tOne\n"
237 "Var12\t+-MSITESTVAR11\t[~];2\tOne\n"
238 "Var13\t+-MSITESTVAR12\t[~];1\tOne\n"
239 "Var14\t=MSITESTVAR13\t[~];1\tOne\n"
240 "Var15\t=MSITESTVAR13\t[~];2\tOne\n"
241 "Var16\t=MSITESTVAR14\t;1;\tOne\n"
242 "Var17\t=MSITESTVAR15\t;;1;;\tOne\n"
243 "Var18\t=MSITESTVAR16\t 1 \tOne\n"
244 "Var19\t+-MSITESTVAR17\t1\tOne\n"
245 "Var20\t+-MSITESTVAR17\t;;2;;[~]\tOne\n"
246 "Var21\t+-MSITESTVAR18\t1\tOne\n"
247 "Var22\t+-MSITESTVAR18\t[~];;2;;\tOne\n"
248 "Var23\t+-MSITESTVAR19\t1\tOne\n"
249 "Var24\t+-MSITESTVAR19\t[~]2\tOne\n"
250 "Var25\t+-MSITESTVAR20\t1\tOne\n"
251 "Var26\t+-MSITESTVAR20\t2[~]\tOne\n"
252 "Var27\t+-MSITESTVAR21\t[~];1\tOne\n"
253 "Var28\t-MSITESTVAR22\t1\tOne\n"
254 "Var29\t-MSITESTVAR23\t2\tOne\n"
255 "Var30\t*MSITESTVAR100\t1\tOne\n"
256 "Var31\t-=MSITESTVAR24\t[SERVNAME]\tOne\n"
257 "Var32\t-=MSITESTVAR25\t[bogus_prop]\tOne\n";
260 "ServiceInstall\tName\tDisplayName\tServiceType\tStartType\tErrorControl\t"
261 "LoadOrderGroup\tDependencies\tStartName\tPassword\tArguments\tComponent_\tDescription\n"
262 "s72\ts255\tL255\ti4\ti4\ti4\tS255\tS255\tS255\tS255\tS255\ts72\tL255\n"
263 "ServiceInstall\tServiceInstall\n"
264 "TestService\t[SERVNAME]\t[SERVDISP]\t2\t3\t0\t\tservice1[~]+group1[~]service2[~]+group2[~][~]\tTestService\t\t-a arg\tservice_comp\tdescription\n"
265 "TestService2\t[SERVNAME2]\t[SERVDISP2]\t2\t3\t0\t\tservice1[~]+group1[~]service2[~]+group2[~][~]\tTestService2\t\t-a arg\tservice_comp2\tdescription\n";
268 "ServiceInstall\tName\tDisplayName\tServiceType\tStartType\tErrorControl\t"
269 "LoadOrderGroup\tDependencies\tStartName\tPassword\tArguments\tComponent_\tDescription\n"
270 "s72\ts255\tL255\ti4\ti4\ti4\tS255\tS255\tS255\tS255\tS255\ts72\tL255\n"
271 "ServiceInstall\tServiceInstall\n"
272 "TestService\tTestService\tTestService\t2\t3\t32768\t\t\tTestService\t\t\tservice_comp\t\n"
273 "TestService4\tTestService4\tTestService4\t2\t3\t0\t\t\tTestService4\t\t\tservice_comp3\t\n";
276 "ServiceControl\tName\tEvent\tArguments\tWait\tComponent_\n"
277 "s72\tl255\ti2\tL255\tI2\ts72\n"
278 "ServiceControl\tServiceControl\n"
279 "ServiceControl\tTestService3\t8\t\t0\tservice_comp\n"
280 "ServiceControl2\tTestService3\t128\t\t0\tservice_comp2";
283 "ServiceControl\tName\tEvent\tArguments\tWait\tComponent_\n"
284 "s72\tl255\ti2\tL255\tI2\ts72\n"
285 "ServiceControl\tServiceControl\n"
286 "ServiceControl\tSpooler\t1\t\t1\tservice_comp\n"
287 "ServiceControl2\tSpooler\t2\t\t1\tservice_comp\n"
288 "ServiceControl3\tSpooler\t16\t\t1\tservice_comp\n"
289 "ServiceControl4\tSpooler\t32\t\t1\tservice_comp\n";
292 "Action\tCondition\tSequence\n"
294 "InstallExecuteSequence\tAction\n"
295 "LaunchConditions\t\t100\n"
296 "CostInitialize\t\t800\n"
298 "ResolveSource\t\t950\n"
299 "CostFinalize\t\t1000\n"
300 "InstallValidate\t\t1400\n"
301 "InstallInitialize\t\t1500\n"
302 "StopServices\t\t4000\n"
303 "stop_immediate\tNOT REMOVE\t4001\n"
304 "stop_deferred\tNOT REMOVE\t4002\n"
305 "DeleteServices\t\t5000\n"
306 "MoveFiles\t\t5100\n"
307 "InstallFiles\t\t5200\n"
308 "DuplicateFiles\t\t5300\n"
309 "StartServices\t\t5400\n"
310 "start_deferred\tNOT REMOVE\t5401\n"
311 "RegisterProduct\t\t5500\n"
312 "PublishFeatures\t\t5600\n"
313 "PublishProduct\t\t5700\n"
314 "UnpublishFeatures\t\t5800\n"
315 "InstallFinalize\t\t6000\n";
318 "Action\tType\tSource\tTarget\n"
320 "CustomAction\tAction\n"
321 "stop_immediate\t1\tcustom.dll\tsss_started\n"
322 "stop_deferred\t1025\tcustom.dll\tsss_stopped\n"
323 "start_deferred\t1025\tcustom.dll\tsss_started\n";
326 "Action\tCondition\tSequence\n"
328 "InstallExecuteSequence\tAction\n"
329 "LaunchConditions\t\t100\n"
330 "CostInitialize\t\t800\n"
332 "ResolveSource\t\t950\n"
333 "CostFinalize\t\t1000\n"
334 "InstallValidate\t\t1400\n"
335 "InstallInitialize\t\t1500\n"
336 "StopServices\t\t5000\n"
337 "DeleteServices\t\t5050\n"
338 "sds_immediate\tNOT REMOVE\t5051\n"
339 "sds_deferred\tNOT REMOVE\t5052\n"
340 "MoveFiles\t\t5100\n"
341 "InstallFiles\t\t5200\n"
342 "DuplicateFiles\t\t5300\n"
343 "InstallServices\t\t5400\n"
344 "StartServices\t\t5450\n"
345 "RegisterProduct\t\t5500\n"
346 "PublishFeatures\t\t5600\n"
347 "PublishProduct\t\t5700\n"
348 "UnpublishFeatures\t\t5800\n"
349 "InstallFinalize\t\t6000\n";
352 "Action\tType\tSource\tTarget\n"
354 "CustomAction\tAction\n"
355 "sds_immediate\t1\tcustom.dll\tsds_present\n"
356 "sds_deferred\t1025\tcustom.dll\tsds_absent\n";
359 "Action\tCondition\tSequence\n"
361 "InstallExecuteSequence\tAction\n"
362 "CostInitialize\t\t800\n"
364 "CostFinalize\t\t1000\n"
365 "InstallValidate\t\t1400\n"
366 "InstallInitialize\t\t1500\n"
367 "StopServices\t\t5000\n"
368 "DeleteServices\t\t5050\n"
369 "InstallFiles\t\t5200\n"
370 "InstallServices\t\t5400\n"
371 "sis_immediate\tNOT REMOVE\t5401\n"
372 "sis_deferred\tNOT REMOVE\t5402\n"
373 "StartServices\t\t5450\n"
374 "RegisterProduct\t\t5500\n"
375 "PublishFeatures\t\t5600\n"
376 "PublishProduct\t\t5700\n"
377 "UnpublishFeatures\t\t5800\n"
378 "InstallFinalize\t\t6000\n";
381 "Action\tType\tSource\tTarget\n"
383 "CustomAction\tAction\n"
384 "sis_immediate\t1\tcustom.dll\tsis_absent\n"
385 "sis_deferred\t1025\tcustom.dll\tsis_present\n";
388 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
389 "s72\tS38\ts72\ti2\tS255\tS72\n"
390 "Component\tComponent\n"
391 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n";
394 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
395 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
397 "feature\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0\n"
398 "montecristo\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0";
401 "Feature_\tComponent_\n"
403 "FeatureComponents\tFeature_\tComponent_\n"
405 "montecristo\tmaximus";
408 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
409 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
411 "maximus\tmaximus\tmaximus\t500\t\t\t8192\t1";
414 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
415 "i2\ti4\tL64\tS255\tS32\tS72\n"
417 "1\t1\t\t\tDISK1\t\n";
420 "Feature_\tComponent_\n"
422 "FeatureComponents\tFeature_\tComponent_\n"
426 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
427 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
429 "augustus\taugustus\taugustus\t500\t\t\t8192\t1";
432 "Action\tCondition\tSequence\n"
434 "InstallExecuteSequence\tAction\n"
435 "ValidateProductID\t\t700\n"
436 "CostInitialize\t\t800\n"
438 "CostFinalize\t\t1000\n"
439 "InstallValidate\t\t1400\n"
440 "InstallInitialize\t\t1500\n"
441 "ProcessComponents\tPROCESS_COMPONENTS=1 Or FULL=1\t1600\n"
442 "ppc_immediate\tPROCESS_COMPONENTS AND ALLUSERS\t1601\n"
443 "ppc_deferred\tPROCESS_COMPONENTS AND ALLUSERS\t1602\n"
444 "UnpublishFeatures\tUNPUBLISH_FEATURES=1 Or FULL=1\t1800\n"
445 "uf_immediate\tUNPUBLISH_FEATURES AND ALLUSERS\t1801\n"
446 "uf_deferred\tUNPUBLISH_FEATURES AND ALLUSERS\t1802\n"
447 "RemoveFiles\t\t3500\n"
448 "InstallFiles\t\t4000\n"
449 "RegisterUser\tREGISTER_USER=1 Or FULL=1\t6000\n"
450 "ru_immediate\tREGISTER_USER AND ALLUSERS\t6001\n"
451 "ru_deferred\tREGISTER_USER AND ALLUSERS\t6002\n"
452 "RegisterProduct\tREGISTER_PRODUCT=1 Or FULL=1\t6100\n"
453 "rp_immediate\tREGISTER_PRODUCT AND ALLUSERS AND NOT RP_TEST64\t6101\n"
454 "rp_deferred\tREGISTER_PRODUCT AND ALLUSERS AND NOT RP_TEST64\t6102\n"
455 "PublishFeatures\tPUBLISH_FEATURES=1 Or FULL=1\t6300\n"
456 "pf_immediate\tPUBLISH_FEATURES AND ALLUSERS\t6301\n"
457 "pf_deferred\tPUBLISH_FEATURES AND ALLUSERS\t6302\n"
458 "PublishProduct\tPUBLISH_PRODUCT=1 Or FULL=1\t6400\n"
459 "pp_immediate\tPUBLISH_PRODUCT AND ALLUSERS\t6401\n"
460 "pp_deferred\tPUBLISH_PRODUCT AND ALLUSERS\t6402\n"
461 "InstallFinalize\t\t6600";
464 "Action\tType\tSource\tTarget\n"
466 "CustomAction\tAction\n"
467 "pf_immediate\t1\tcustom.dll\tpf_absent\n"
468 "pf_deferred\t1025\tcustom.dll\tpf_present\n"
469 "uf_immediate\t1\tcustom.dll\tpf_present\n"
470 "uf_deferred\t1025\tcustom.dll\tpf_absent\n"
471 "pp_immediate\t1\tcustom.dll\tpp_absent\n"
472 "pp_deferred\t1025\tcustom.dll\tpp_present\n"
473 "rp_immediate\t1\tcustom.dll\trp_absent\n"
474 "rp_deferred\t1025\tcustom.dll\trp_present\n"
475 "ru_immediate\t1\tcustom.dll\tru_absent\n"
476 "ru_deferred\t1025\tcustom.dll\tru_present\n"
477 "ppc_immediate\t1\tcustom.dll\tppc_absent\n"
478 "ppc_deferred\t1025\tcustom.dll\tppc_present\n";
481 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
482 "s72\tS38\ts72\ti2\tS255\tS72\n"
483 "Component\tComponent\n"
484 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\t\tmaximus\n";
487 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
488 "s72\tS38\ts72\ti2\tS255\tS72\n"
489 "Component\tComponent\n"
490 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\t\tmaximus\n"
491 "augustus\t{5AD3C142-CEF8-490D-B569-784D80670685}\tMSITESTDIR\t1\t\taugustus\n";
494 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
495 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
497 "maximus\tmaximus\tmaximus\t500\t\t\t8192\t1\n"
498 "augustus\taugustus\taugustus\t500\t\t\t8192\t2";
501 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
502 "i2\ti4\tL64\tS255\tS32\tS72\n"
504 "1\t2\t\t\tDISK1\t\n";
507 "Feature_\tComponent_\n"
509 "FeatureComponents\tFeature_\tComponent_\n"
511 "feature\taugustus\n"
512 "montecristo\tmaximus";
515 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
516 "s72\tS38\ts72\ti2\tS255\tS72\n"
517 "Component\tComponent\n"
518 "augustus\t\tMSITESTDIR\t0\t\taugustus\n";
521 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
522 "s72\tS38\ts72\ti2\tS255\tS72\n"
523 "Component\tComponent\n"
524 "hydrogen\t{C844BD1E-1907-4C00-8BC9-150BD70DF0A1}\tMSITESTDIR\t0\t\thydrogen\n"
525 "helium\t{5AD3C142-CEF8-490D-B569-784D80670685}\tMSITESTDIR\t1\t\thelium\n"
526 "lithium\t\tMSITESTDIR\t2\t\tlithium\n";
529 "Feature_\tComponent_\n"
531 "FeatureComponents\tFeature_\tComponent_\n"
532 "feature\thydrogen\n"
537 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
538 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
540 "hydrogen\thydrogen\thydrogen\t0\t\t\t8192\t1\n"
541 "helium\thelium\thelium\t0\t\t\t8192\t1\n"
542 "lithium\tlithium\tlithium\t0\t\t\t8192\t1";
545 "Action\tCondition\tSequence\n"
547 "InstallExecuteSequence\tAction\n"
548 "ValidateProductID\t\t700\n"
549 "CostInitialize\t\t800\n"
551 "CostFinalize\t\t1000\n"
552 "InstallValidate\t\t1400\n"
553 "InstallInitialize\t\t1500\n"
554 "ProcessComponents\t\t1600\n"
555 "RemoveFiles\t\t3500\n"
556 "InstallFiles\t\t4000\n"
557 "RegisterProduct\t\t6100\n"
558 "PublishFeatures\t\t6300\n"
559 "PublishProduct\t\t6400\n"
560 "UnpublishFeatures\t\t6500\n"
561 "InstallFinalize\t\t6600";
564 "FileKey\tComponent_\tFileName\tDirProperty\tInstallMode\n"
565 "s72\ts72\tS255\ts72\tI2\n"
566 "RemoveFile\tFileKey\n"
567 "furlong\thydrogen\tfurlong\tMSITESTDIR\t1\n"
568 "firkin\thelium\tfirkin\tMSITESTDIR\t1\n"
569 "fortnight\tlithium\tfortnight\tMSITESTDIR\t1\n"
570 "becquerel\thydrogen\tbecquerel\tMSITESTDIR\t2\n"
571 "dioptre\thelium\tdioptre\tMSITESTDIR\t2\n"
572 "attoparsec\tlithium\tattoparsec\tMSITESTDIR\t2\n"
573 "storeys\thydrogen\tstoreys\tMSITESTDIR\t3\n"
574 "block\thelium\tblock\tMSITESTDIR\t3\n"
575 "siriometer\tlithium\tsiriometer\tMSITESTDIR\t3\n"
576 "nanoacre\thydrogen\t\tCABOUTDIR\t3\n";
579 "FileKey\tComponent_\tSourceName\tDestName\tSourceFolder\tDestFolder\tOptions\n"
580 "s72\ts72\tS255\tS255\tS72\ts72\ti2\n"
581 "MoveFile\tFileKey\n"
582 "abkhazia\taugustus\tnonexistent\tdest\tSourceDir\tMSITESTDIR\t0\n"
583 "bahamas\taugustus\tnonexistent\tdest\tSourceDir\tMSITESTDIR\t1\n"
584 "cambodia\taugustus\tcameroon\tcanada\tSourceDir\tMSITESTDIR\t0\n"
585 "denmark\taugustus\tdjibouti\tdominica\tSourceDir\tMSITESTDIR\t1\n"
586 "ecuador\taugustus\tegypt\telsalvador\tNotAProp\tMSITESTDIR\t1\n"
587 "fiji\taugustus\tfinland\tfrance\tSourceDir\tNotAProp\t1\n"
588 "gabon\taugustus\tgambia\tgeorgia\tSOURCEFULL\tMSITESTDIR\t1\n"
589 "haiti\taugustus\thonduras\thungary\tSourceDir\tDESTFULL\t1\n"
590 "iceland\taugustus\tindia\tindonesia\tMSITESTDIR\tMSITESTDIR\t1\n"
591 "jamaica\taugustus\tjapan\tjordan\tFILEPATHBAD\tMSITESTDIR\t1\n"
592 "kazakhstan\taugustus\t\tkiribati\tFILEPATHGOOD\tMSITESTDIR\t1\n"
593 "laos\taugustus\tlatvia\tlebanon\tSourceDir\tMSITESTDIR\t1\n"
594 "namibia\taugustus\tnauru\tkiribati\tSourceDir\tMSITESTDIR\t1\n"
595 "pakistan\taugustus\tperu\tsfn|poland\tSourceDir\tMSITESTDIR\t1\n"
596 "wildcard\taugustus\tapp*\twildcard\tSourceDir\tMSITESTDIR\t1\n"
597 "single\taugustus\tf?o\tsingle\tSourceDir\tMSITESTDIR\t1\n"
598 "wildcardnodest\taugustus\tbudd*\t\tSourceDir\tMSITESTDIR\t1\n"
599 "singlenodest\taugustus\tb?r\t\tSourceDir\tMSITESTDIR\t1\n";
602 "Action\tCondition\tSequence\n"
604 "InstallExecuteSequence\tAction\n"
605 "CostInitialize\t\t100\n"
607 "ResolveSource\t\t300\n"
608 "CostFinalize\t\t400\n"
609 "InstallValidate\t\t500\n"
610 "InstallInitialize\t\t600\n"
612 "mov_immediate\t\t701\n"
613 "mov_deferred\t\t702\n"
614 "InstallFiles\t\t800\n"
615 "InstallFinalize\t\t900\n";
618 "Action\tType\tSource\tTarget\n"
620 "CustomAction\tAction\n"
621 "mov_immediate\t1\tcustom.dll\tmov_absent\n"
622 "mov_deferred\t1025\tcustom.dll\tmov_present\n";
625 "Directory\tDirectory_Parent\tDefaultDir\n"
627 "Directory\tDirectory\n"
628 "THIS\tMSITESTDIR\tthis\n"
629 "DOESNOT\tTHIS\tdoesnot\n"
630 "NONEXISTENT\tDOESNOT\texist\n"
631 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
632 "ProgramFilesFolder\tTARGETDIR\t.\n"
633 "TARGETDIR\t\tSourceDir";
636 "FileKey\tComponent_\tFile_\tDestName\tDestFolder\n"
637 "s72\ts72\ts72\tS255\tS72\n"
638 "DuplicateFile\tFileKey\n"
639 "maximus\tmaximus\tmaximus\taugustus\t\n"
640 "caesar\tmaximus\tmaximus\t\tNONEXISTENT\n"
641 "augustus\tnosuchcomponent\tmaximus\t\tMSITESTDIR\n";
644 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
645 "s72\tS38\ts72\ti2\tS255\tS72\n"
646 "Component\tComponent\n"
647 "augustus\t{bafe0297-cbcc-4e08-8a78-7e9b83456eef}\tMSITESTDIR\t0\t\t\n"
648 "caesar\t{bafe0298-cbcc-4e08-8a78-7e9b83456eef}\tMSITESTDIR\t1\t\t\n";
651 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
652 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
654 "feature\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0\n"
655 "feature2\t\tFeature2\tFeature2\t2\t1\tTARGETDIR\t1";
658 "Feature_\tComponent_\n"
660 "FeatureComponents\tFeature_\tComponent_\n"
661 "feature\taugustus\n"
665 "Registry\tRoot\tKey\tName\tValue\tComponent_\n"
666 "s72\ti2\tl255\tL255\tL0\ts72\n"
667 "Registry\tRegistry\n"
668 "regdata0\t1\tmsitest\tsz\tstring\taugustus\n"
669 "regdata1\t1\tmsitest\tmultisz\tone[~]two[~]three\taugustus\n"
670 "regdata2\t1\tmsitest\texpandsz\t#%string\taugustus\n"
671 "regdata3\t1\tmsitest\tdword\t#123\taugustus\n"
672 "regdata4\t1\tmsitest\tbinary\t#x01234567\taugustus\n"
673 "regdata5\t1\tmsitest\t\tdefault\taugustus\n"
674 "regdata6\t1\tmsitest\\subkey\t*\t\taugustus\n"
675 "regdata7\t1\tmsitest\\subkey\t*\t#%\taugustus\n"
676 "regdata8\t1\tmsitest\\subkey\t*\t#x\taugustus\n"
677 "regdata9\t1\tmsitest\\VisualStudio\\10.0\\AD7Metrics\\Exception\\{049EC4CC-30D2-4032-9256-EE18EB41B62B}\\Common Language Runtime Exceptions\\System.Workflow.ComponentModel.Serialization\\System.Workflow.ComponentModel.Serialization.WorkflowMarkupSerializationException\tlong\tkey\taugustus\n"
678 "regdata10\t1\tmsitest\tValue1\t[~]one[~]\taugustus\n"
679 "regdata11\t1\tmsitest\tValue2\t[~]two\taugustus\n"
680 "regdata12\t1\tmsitest\tValue3\tone[~]\taugustus\n"
681 "regdata13\t1\tmsitest\tValue4\tone[~]two\taugustus\n"
682 "regdata14\t1\tmsitest\tValue5\t[~]one[~]two[~]three\taugustus\n"
683 "regdata15\t1\tmsitest\tValue6\t[~]\taugustus\n"
684 "regdata16\t1\tmsitest\tValue7\t[~]two\taugustus\n"
685 "regdata17\t1\tmsitest\tformat\t[regdata17]\taugustus\n"
686 "regdata18\t1\tmsitest\tsource\t#1\tcaesar\n"
687 "regdata19\t1\tmsitest\\create\t+\t\taugustus\n"
688 "regdata20\t1\tmsitest\\delete\t-\t\taugustus\n";
691 "RemoveRegistry\tRoot\tKey\tName\tComponent_\n"
692 "s72\ti2\tl255\tL255\ts72\n"
693 "RemoveRegistry\tRemoveRegistry\n"
694 "regdata0\t1\tmsitest\tinstremove\taugustus\n"
695 "regdata1\t1\tmsitest\\instremove\t-\taugustus\n";
698 "Action\tCondition\tSequence\n"
700 "InstallExecuteSequence\tAction\n"
701 "CostInitialize\t\t800\n"
703 "CostFinalize\t\t1000\n"
704 "InstallValidate\t\t1400\n"
705 "InstallInitialize\t\t1500\n"
706 "ProcessComponents\t\t1600\n"
707 "RemoveRegistryValues\t\t4900\n"
708 "rrv_immediate\tREMOVE\t4901\n"
709 "rrv_deferred\tREMOVE\t4902\n"
710 "WriteRegistryValues\t\t5000\n"
711 "wrv_immediate\tNOT REMOVE\t5001\n"
712 "wrv_deferred\tNOT REMOVE\t5002\n"
713 "RegisterProduct\t\t6100\n"
714 "PublishFeatures\t\t6200\n"
715 "PublishProduct\t\t6300\n"
716 "UnpublishFeatures\t\t6400\n"
717 "InstallFinalize\t\t6600\n";
720 "Action\tType\tSource\tTarget\n"
722 "CustomAction\tAction\n"
723 "wrv_immediate\t1\tcustom.dll\twrv_absent\n"
724 "wrv_deferred\t1025\tcustom.dll\twrv_present\n"
725 "rrv_immediate\t1\tcustom.dll\twrv_present\n"
726 "rrv_deferred\t1025\tcustom.dll\twrv_absent\n";
729 "Directory\tDirectory_Parent\tDefaultDir\n"
731 "Directory\tDirectory\n"
732 "FIRSTDIR\tMSITESTDIR\tfirst\n"
733 "SECONDDIR\tMSITESTDIR\tsecond\n"
734 "THIRDDIR\tMSITESTDIR\tthird\n"
735 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
736 "ProgramFilesFolder\tTARGETDIR\t.\n"
737 "TARGETDIR\t\tSourceDir";
740 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
741 "s72\tS38\ts72\ti2\tS255\tS72\n"
742 "Component\tComponent\n"
743 "One\t{F8CD42AC-9C38-48FE-8664-B35FD121012A}\tFIRSTDIR\t0\t\tone.txt\n"
744 "Two\t{DE2DB02E-2DDF-4E34-8CF6-DCA13E29DF52}\tSECONDDIR\t0\t\ttwo.txt\n";
747 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
748 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
750 "One\t\tOne\tThe One Feature\t1\t3\tFIRSTDIR\t0\n"
751 "Two\t\tTwo\tThe Two Feature\t1\t3\tSECONDDIR\t0\n";
754 "Feature_\tComponent_\n"
756 "FeatureComponents\tFeature_\tComponent_\n"
761 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
762 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
764 "one.txt\tOne\tone.txt\t0\t\t\t0\t1\n"
765 "two.txt\tTwo\ttwo.txt\t0\t\t\t0\t2\n";
768 "Directory_\tComponent_\n"
770 "CreateFolder\tDirectory_\tComponent_\n"
776 "Action\tCondition\tSequence\n"
778 "InstallExecuteSequence\tAction\n"
779 "CostFinalize\t\t1000\n"
780 "ValidateProductID\t\t700\n"
781 "CostInitialize\t\t800\n"
783 "RemoveFiles\t\t3500\n"
784 "rfi_immediate\tREMOVE\t3501\n"
785 "rfi_deferred\tREMOVE\t3502\n"
786 "CreateFolders\t\t3700\n"
787 "cf_immediate\tNOT REMOVE\t3701\n"
788 "cf_deferred\tNOT REMOVE\t3702\n"
789 "RemoveFolders\t\t3800\n"
790 "rf_immediate\tREMOVE\t3801\n"
791 "rf_deferred\tREMOVE\t3802\n"
792 "InstallFiles\t\t4000\n"
793 "ifi_immediate\tNOT REMOVE\t4001\n"
794 "ifi_deferred\tNOT REMOVE\t4002\n"
795 "RegisterUser\t\t6000\n"
796 "RegisterProduct\t\t6100\n"
797 "PublishFeatures\t\t6300\n"
798 "PublishProduct\t\t6400\n"
799 "InstallFinalize\t\t6600\n"
800 "InstallInitialize\t\t1500\n"
801 "ProcessComponents\t\t1600\n"
802 "UnpublishFeatures\t\t1800\n"
803 "InstallValidate\t\t1400\n"
804 "LaunchConditions\t\t100\n";
807 "Action\tType\tSource\tTarget\n"
809 "CustomAction\tAction\n"
810 "ifi_immediate\t1\tcustom.dll\tfile_absent\n"
811 "ifi_deferred\t1025\tcustom.dll\tfile_present\n"
812 "rfi_immediate\t1\tcustom.dll\tfile_present\n"
813 "rfi_deferred\t1025\tcustom.dll\tfile_absent\n"
814 "cf_immediate\t1\tcustom.dll\tcf_absent\n"
815 "cf_deferred\t1025\tcustom.dll\tcf_present\n"
816 "rf_immediate\t1\tcustom.dll\tcf_present\n"
817 "rf_deferred\t1025\tcustom.dll\tcf_absent\n";
820 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
821 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
823 "selfreg.dll\tselfreg\tselfreg.dll\t1000\t\t\t8192\t1\n";
826 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
827 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
829 "selfreg\t\t\tselfreg feature\t1\t2\tMSITESTDIR\t0\n";
832 "Feature_\tComponent_\n"
834 "FeatureComponents\tFeature_\tComponent_\n"
835 "selfreg\tselfreg\n";
838 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
839 "s72\tS38\ts72\ti2\tS255\tS72\n"
840 "Component\tComponent\n"
841 "selfreg\t{BB4C26FD-89D8-4E49-AF1C-DB4DCB5BF1B0}\tMSITESTDIR\t0\t\tselfreg.dll\n";
850 "Action\tCondition\tSequence\n"
852 "InstallExecuteSequence\tAction\n"
853 "CostInitialize\t\t800\n"
855 "CostFinalize\t\t1000\n"
856 "InstallValidate\t\t1400\n"
857 "InstallInitialize\t\t1500\n"
858 "ProcessComponents\t\t1600\n"
859 "SelfUnregModules\t\t3800\n"
860 "su_immediate\tREMOVE\t3801\n"
861 "su_deferred\tREMOVE\t3802\n"
862 "RemoveFiles\t\t3900\n"
863 "InstallFiles\t\t4000\n"
864 "SelfRegModules\t\t4100\n"
865 "sr_immediate\tNOT REMOVE\t4101\n"
866 "sr_deferred\tNOT REMOVE\t4102\n"
867 "CreateShortcuts\t\t4600\n"
868 "RegisterProduct\t\t5100\n"
869 "PublishFeatures\t\t5200\n"
870 "PublishProduct\t\t5300\n"
871 "UnpublishFeatures\t\t5400\n"
872 "InstallFinalize\t\t6600\n";
875 "Action\tType\tSource\tTarget\n"
877 "CustomAction\tAction\n"
878 "sr_immediate\t1\tcustom.dll\tsr_absent\n"
879 "sr_deferred\t1025\tcustom.dll\tsr_present\n"
880 "su_immediate\t1\tcustom.dll\tsr_present\n"
881 "su_deferred\t1025\tcustom.dll\tsr_absent\n";
884 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
885 "i2\ti4\tL64\tS255\tS32\tS72\n"
887 "1\t3\t\t\tDISK1\t\n";
890 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
891 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
893 "font.ttf\tfonts\tfont.ttf\t1000\t\t\t8192\t1\n";
896 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
897 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
899 "fonts\t\t\tfont feature\t1\t2\tMSITESTDIR\t0\n";
902 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
903 "s72\tS38\ts72\ti2\tS255\tS72\n"
904 "Component\tComponent\n"
905 "fonts\t{F5920ED0-1183-4B8F-9330-86CE56557C05}\tMSITESTDIR\t0\t\tfont.ttf\n";
908 "Feature_\tComponent_\n"
910 "FeatureComponents\tFeature_\tComponent_\n"
917 "font.ttf\tmsi test font\n";
920 "Action\tCondition\tSequence\n"
922 "InstallExecuteSequence\tAction\n"
923 "ValidateProductID\t\t700\n"
924 "CostInitialize\t\t800\n"
926 "CostFinalize\t\t1000\n"
927 "InstallValidate\t\t1400\n"
928 "InstallInitialize\t\t1500\n"
929 "ProcessComponents\t\t1600\n"
930 "RemoveFiles\t\t3500\n"
931 "InstallFiles\t\t4000\n"
932 "RegisterFonts\t\t4100\n"
933 "rf_immediate\tNOT REMOVE\t4101\n"
934 "rf_deferred\tNOT REMOVE\t4102\n"
935 "UnregisterFonts\t\t4200\n"
936 "uf_immediate\tREMOVE\t4201\n"
937 "uf_deferred\tREMOVE\t4202\n"
938 "RegisterUser\t\t6000\n"
939 "RegisterProduct\t\t6100\n"
940 "PublishFeatures\t\t6300\n"
941 "PublishProduct\t\t6400\n"
942 "UnpublishFeatures\t\t6500\n"
943 "InstallFinalize\t\t6600";
946 "Action\tType\tSource\tTarget\n"
948 "CustomAction\tAction\n"
949 "rf_immediate\t1\tcustom.dll\tfont_absent\n"
950 "rf_deferred\t1025\tcustom.dll\tfont_present\n"
951 "uf_immediate\t1\tcustom.dll\tfont_present\n"
952 "uf_deferred\t1025\tcustom.dll\tfont_absent\n";
957 "Property\tProperty\n"
960 "InstallMode\tTypical\n"
961 "Manufacturer\tWine\n"
962 "PIDTemplate\t###-#######\n"
963 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
964 "ProductLanguage\t1033\n"
965 "ProductName\tMSITEST\n"
966 "ProductVersion\t1.1.1\n"
967 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
968 "MSIFASTINSTALL\t1\n";
971 "Action\tType\tSource\tTarget\tISComments\n"
972 "s72\ti2\tS64\tS0\tS255\n"
973 "CustomAction\tAction\n"
974 "SetProductID1\t51\tProductID\t1\t\n"
975 "SetProductID2\t51\tProductID\t2\t\n"
976 "TestProductID1\t19\t\t\tHalts installation\n"
977 "TestProductID2\t19\t\t\tHalts installation\n";
980 "Action\tCondition\tSequence\n"
982 "InstallExecuteSequence\tAction\n"
983 "LaunchConditions\t\t100\n"
984 "CostInitialize\t\t800\n"
986 "CostFinalize\t\t1000\n"
987 "InstallValidate\t\t1400\n"
988 "InstallInitialize\t\t1500\n"
989 "SetProductID1\tSET_PRODUCT_ID=1\t3000\n"
990 "SetProductID2\tSET_PRODUCT_ID=2\t3100\n"
991 "ValidateProductID\t\t3200\n"
992 "InstallExecute\t\t3300\n"
993 "TestProductID1\tProductID=1\t3400\n"
994 "TestProductID2\tProductID=\"123-1234567\"\t3500\n"
995 "InstallFiles\t\t4000\n"
996 "InstallFinalize\t\t6000\n";
999 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1000 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1002 "ODBCdriver.dll\todbc\tODBCdriver.dll\t1000\t\t\t8192\t1\n"
1003 "ODBCdriver2.dll\todbc\tODBCdriver2.dll\t1000\t\t\t8192\t2\n"
1004 "ODBCtranslator.dll\todbc\tODBCtranslator.dll\t1000\t\t\t8192\t3\n"
1005 "ODBCtranslator2.dll\todbc\tODBCtranslator2.dll\t1000\t\t\t8192\t4\n"
1006 "ODBCsetup.dll\todbc\tODBCsetup.dll\t1000\t\t\t8192\t5\n";
1009 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1010 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1011 "Feature\tFeature\n"
1012 "odbc\t\t\todbc feature\t1\t2\tMSITESTDIR\t0\n";
1015 "Feature_\tComponent_\n"
1017 "FeatureComponents\tFeature_\tComponent_\n"
1022 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1023 "s72\tS38\ts72\ti2\tS255\tS72\n"
1024 "Component\tComponent\n"
1025 "odbc64\t{B6F3E4AF-35D1-4B72-9044-989F03E20A43}\tMSITESTDIR\t256\tMsix64\tODBCdriver.dll\n"
1026 "odbc\t{B6F3E4AE-35D1-4B72-9044-989F03E20A43}\tMSITESTDIR\t0\t\tODBCdriver.dll\n";
1029 "Driver\tComponent_\tDescription\tFile_\tFile_Setup\n"
1030 "s72\ts72\ts255\ts72\tS72\n"
1031 "ODBCDriver\tDriver\n"
1032 "64-bit driver\todbc64\tODBC test driver\tODBCdriver.dll\t\n"
1033 "64-bit driver2\todbc64\tODBC test driver2\tODBCdriver2.dll\tODBCsetup.dll\n"
1034 "ODBC test driver\todbc\tODBC test driver\tODBCdriver.dll\t\n"
1035 "ODBC test driver2\todbc\tODBC test driver2\tODBCdriver2.dll\tODBCsetup.dll\n";
1038 "Translator\tComponent_\tDescription\tFile_\tFile_Setup\n"
1039 "s72\ts72\ts255\ts72\tS72\n"
1040 "ODBCTranslator\tTranslator\n"
1041 "ODBC test translator\todbc\tODBC test translator\tODBCtranslator.dll\t\n"
1042 "ODBC test translator2\todbc\tODBC test translator2\tODBCtranslator2.dll\tODBCsetup.dll\n";
1045 "DataSource\tComponent_\tDescription\tDriverDescription\tRegistration\n"
1046 "s72\ts72\ts255\ts255\ti2\n"
1047 "ODBCDataSource\tDataSource\n"
1048 "ODBC data source\todbc\tODBC data source\tODBC driver\t0\n";
1051 "Action\tCondition\tSequence\n"
1053 "InstallExecuteSequence\tAction\n"
1054 "LaunchConditions\t\t100\n"
1055 "CostInitialize\t\t800\n"
1057 "CostFinalize\t\t1000\n"
1058 "InstallValidate\t\t1400\n"
1059 "InstallInitialize\t\t1500\n"
1060 "ProcessComponents\t\t1600\n"
1061 "InstallODBC\t\t3000\n"
1062 "io_immediate\tNOT REMOVE\t3001\n"
1063 "io_deferred\tNOT REMOVE\t3002\n"
1064 "RemoveODBC\t\t3100\n"
1065 "ro_immediate\tREMOVE\t3101\n"
1066 "ro_deferred\tREMOVE\t3102\n"
1067 "RemoveFiles\t\t3900\n"
1068 "InstallFiles\t\t4000\n"
1069 "RegisterProduct\t\t5000\n"
1070 "PublishFeatures\t\t5100\n"
1071 "PublishProduct\t\t5200\n"
1072 "UnpublishFeatures\t\t5300\n"
1073 "InstallFinalize\t\t6000\n";
1076 "Action\tType\tSource\tTarget\n"
1077 "s72\ti2\tS64\tS0\n"
1078 "CustomAction\tAction\n"
1079 "io_immediate\t1\tcustom.dll\todbc_absent\n"
1080 "io_deferred\t1025\tcustom.dll\todbc_present\n"
1081 "ro_immediate\t1\tcustom.dll\todbc_present\n"
1082 "ro_deferred\t1025\tcustom.dll\todbc_absent\n";
1085 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
1086 "i2\ti4\tL64\tS255\tS32\tS72\n"
1088 "1\t5\t\t\tDISK1\t\n";
1091 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1092 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1094 "typelib.dll\ttypelib\ttypelib.dll\t1000\t\t\t8192\t1\n";
1097 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1098 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1099 "Feature\tFeature\n"
1100 "typelib\t\t\ttypelib feature\t1\t2\tMSITESTDIR\t0\n";
1103 "Feature_\tComponent_\n"
1105 "FeatureComponents\tFeature_\tComponent_\n"
1106 "typelib\ttypelib\n";
1109 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1110 "s72\tS38\ts72\ti2\tS255\tS72\n"
1111 "Component\tComponent\n"
1112 "typelib\t{BB4C26FD-89D8-4E49-AF1C-DB4DCB5BF1B0}\tMSITESTDIR\t0\t\ttypelib.dll\n";
1115 "LibID\tLanguage\tComponent_\tVersion\tDescription\tDirectory_\tFeature_\tCost\n"
1116 "s38\ti2\ts72\tI4\tL128\tS72\ts38\tI4\n"
1117 "TypeLib\tLibID\tLanguage\tComponent_\n"
1118 "{EAC5166A-9734-4D91-878F-1DD02304C66C}\t0\ttypelib\t1793\t\tMSITESTDIR\ttypelib\t\n";
1121 "Action\tCondition\tSequence\n"
1123 "InstallExecuteSequence\tAction\n"
1124 "LaunchConditions\t\t100\n"
1125 "CostInitialize\t\t800\n"
1127 "CostFinalize\t\t1000\n"
1128 "InstallValidate\t\t1400\n"
1129 "InstallInitialize\t\t1500\n"
1130 "ProcessComponents\t\t1600\n"
1131 "UnregisterTypeLibraries\t\t3100\n"
1132 "ut_immediate\tREMOVE\t3101\n"
1133 "ut_deferred\tREMOVE\t3102\n"
1134 "RemoveFiles\t\t3200\n"
1135 "InstallFiles\t\t3300\n"
1136 "RegisterTypeLibraries\t\t3400\n"
1137 "rt_immediate\tNOT REMOVE\t3401\n"
1138 "rt_deferred\tNOT REMOVE\t3402\n"
1139 "RegisterProduct\t\t5100\n"
1140 "PublishFeatures\t\t5200\n"
1141 "PublishProduct\t\t5300\n"
1142 "UnpublishFeatures\t\t5400\n"
1143 "InstallFinalize\t\t6000\n";
1146 "Action\tType\tSource\tTarget\n"
1147 "s72\ti2\tS64\tS0\n"
1148 "CustomAction\tAction\n"
1149 "rt_immediate\t1\tcustom.dll\ttl_absent\n"
1150 "rt_deferred\t1025\tcustom.dll\ttl_present\n"
1151 "ut_immediate\t1\tcustom.dll\ttl_present\n"
1152 "ut_deferred\t1025\tcustom.dll\ttl_absent\n";
1155 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1156 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1158 "target.txt\tshortcut\ttarget.txt\t1000\t\t\t8192\t1\n";
1161 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1162 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1163 "Feature\tFeature\n"
1164 "shortcut\t\t\tshortcut feature\t1\t2\tMSITESTDIR\t0\n";
1167 "Feature_\tComponent_\n"
1169 "FeatureComponents\tFeature_\tComponent_\n"
1170 "shortcut\tshortcut\n";
1173 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1174 "s72\tS38\ts72\ti2\tS255\tS72\n"
1175 "Component\tComponent\n"
1176 "shortcut\t{5D20E3C6-7206-498F-AC28-87AF2F9AD4CC}\tMSITESTDIR\t0\t\ttarget.txt\n";
1179 "Shortcut\tDirectory_\tName\tComponent_\tTarget\tArguments\tDescription\tHotkey\tIcon_\tIconIndex\tShowCmd\tWkDir\n"
1180 "s72\ts72\tl128\ts72\ts72\tL255\tL255\tI2\tS72\tI2\tI2\tS72\n"
1181 "Shortcut\tShortcut\n"
1182 "shortcut\tMSITESTDIR\tshortcut\tshortcut\t[MSITESTDIR]target.txt\t\t\t\t\t\t\t\n";
1185 "Action\tCondition\tSequence\n"
1187 "InstallExecuteSequence\tAction\n"
1188 "LaunchConditions\t\t100\n"
1189 "CostInitialize\t\t800\n"
1191 "CostFinalize\t\t1000\n"
1192 "InstallValidate\t\t1400\n"
1193 "InstallInitialize\t\t1500\n"
1194 "ProcessComponents\t\t1600\n"
1195 "RemoveFiles\t\t1700\n"
1196 "InstallFiles\t\t2000\n"
1197 "RemoveShortcuts\t\t3000\n"
1198 "rs_immediate\tREMOVE\t3001\n"
1199 "rs_deferred\tREMOVE\t3002\n"
1200 "CreateShortcuts\t\t3100\n"
1201 "cs_immediate\tNOT REMOVE\t3101\n"
1202 "cs_deferred\tNOT REMOVE\t3102\n"
1203 "RegisterProduct\t\t5000\n"
1204 "PublishFeatures\t\t5100\n"
1205 "PublishProduct\t\t5200\n"
1206 "UnpublishFeatures\t\t5300\n"
1207 "InstallFinalize\t\t6000\n";
1210 "Action\tType\tSource\tTarget\n"
1211 "s72\ti2\tS64\tS0\n"
1212 "CustomAction\tAction\n"
1213 "cs_immediate\t1\tcustom.dll\tcrs_absent\n"
1214 "cs_deferred\t1025\tcustom.dll\tcrs_present\n"
1215 "rs_immediate\t1\tcustom.dll\tcrs_present\n"
1216 "rs_deferred\t1025\tcustom.dll\tcrs_absent\n";
1219 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1220 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1222 "english.txt\tpublish\tenglish.txt\t1000\t\t\t8192\t1\n";
1225 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1226 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1227 "Feature\tFeature\n"
1228 "publish\t\t\tpublish feature\t1\t2\tMSITESTDIR\t0\n";
1231 "Feature_\tComponent_\n"
1233 "FeatureComponents\tFeature_\tComponent_\n"
1234 "publish\tpublish\n";
1237 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1238 "s72\tS38\ts72\ti2\tS255\tS72\n"
1239 "Component\tComponent\n"
1240 "publish\t{B4EA0ACF-6238-426E-9C6D-7869F0F9C768}\tMSITESTDIR\t0\t\tenglish.txt\n";
1243 "ComponentId\tQualifier\tComponent_\tAppData\tFeature_\n"
1244 "s38\ts255\ts72\tL255\ts38\n"
1245 "PublishComponent\tComponentId\tQualifier\tComponent_\n"
1246 "{92AFCBC0-9CA6-4270-8454-47C5EE2B8FAA}\tenglish.txt\tpublish\t\tpublish\n";
1249 "Action\tCondition\tSequence\n"
1251 "InstallExecuteSequence\tAction\n"
1252 "LaunchConditions\t\t100\n"
1253 "CostInitialize\t\t800\n"
1255 "CostFinalize\t\t1000\n"
1256 "InstallValidate\t\t1400\n"
1257 "InstallInitialize\t\t1500\n"
1258 "ProcessComponents\t\t1600\n"
1259 "RemoveFiles\t\t1700\n"
1260 "InstallFiles\t\t2000\n"
1261 "PublishComponents\t\t3000\n"
1262 "pub_immediate\tNOT REMOVE\t3001\n"
1263 "pub_deferred\tNOT REMOVE\t3002\n"
1264 "UnpublishComponents\t\t3100\n"
1265 "unp_immediate\tREMOVE\t3101\n"
1266 "unp_deferred\tREMOVE\t3102\n"
1267 "RegisterProduct\t\t5000\n"
1268 "PublishFeatures\t\t5100\n"
1269 "PublishProduct\t\t5200\n"
1270 "UnpublishFeatures\t\t5300\n"
1271 "InstallFinalize\t\t6000\n";
1274 "Action\tType\tSource\tTarget\n"
1275 "s72\ti2\tS64\tS0\n"
1276 "CustomAction\tAction\n"
1277 "pub_immediate\t1\tcustom.dll\tpub_absent\n"
1278 "pub_deferred\t1025\tcustom.dll\tpub_present\n"
1279 "unp_immediate\t1\tcustom.dll\tpub_present\n"
1280 "unp_deferred\t1025\tcustom.dll\tpub_absent\n";
1283 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1284 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1286 "original.txt\tduplicate\toriginal.txt\t1000\t\t\t8192\t1\n"
1287 "original2.txt\tduplicate\toriginal2.txt\t1000\t\t\t8192\t2\n"
1288 "original3.txt\tduplicate2\toriginal3.txt\t1000\t\t\t8192\t3\n";
1291 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1292 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1293 "Feature\tFeature\n"
1294 "duplicate\t\t\tduplicate feature\t1\t2\tMSITESTDIR\t0\n";
1297 "Feature_\tComponent_\n"
1299 "FeatureComponents\tFeature_\tComponent_\n"
1300 "duplicate\tduplicate\n";
1303 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1304 "s72\tS38\ts72\ti2\tS255\tS72\n"
1305 "Component\tComponent\n"
1306 "duplicate\t{EB45D06A-ADFE-44E3-8D41-B7DE150E41AD}\tMSITESTDIR\t0\t\toriginal.txt\n"
1307 "duplicate2\t{B8BA60E0-B2E9-488E-9D0E-E60F25F04F97}\tMSITESTDIR\t0\tDUPLICATE2=1\toriginal3.txt\n";
1310 "FileKey\tComponent_\tFile_\tDestName\tDestFolder\n"
1311 "s72\ts72\ts72\tS255\tS72\n"
1312 "DuplicateFile\tFileKey\n"
1313 "duplicate\tduplicate\toriginal.txt\tduplicate.txt\t\n"
1314 "duplicate2\tduplicate\toriginal2.txt\t\tMSITESTDIR\n"
1315 "duplicate3\tduplicate2\toriginal3.txt\tduplicate2.txt\t\n";
1318 "Action\tCondition\tSequence\n"
1320 "InstallExecuteSequence\tAction\n"
1321 "LaunchConditions\t\t100\n"
1322 "CostInitialize\t\t800\n"
1324 "CostFinalize\t\t1000\n"
1325 "InstallValidate\t\t1400\n"
1326 "InstallInitialize\t\t1500\n"
1327 "ProcessComponents\t\t1600\n"
1328 "RemoveDuplicateFiles\t\t1900\n"
1329 "rd_immediate\tREMOVE\t1901\n"
1330 "rd_deferred\tREMOVE\t1902\n"
1331 "InstallFiles\t\t2000\n"
1332 "DuplicateFiles\t\t2100\n"
1333 "df_immediate\tNOT REMOVE\t2101\n"
1334 "df_deferred\tNOT REMOVE\t2102\n"
1335 "RegisterProduct\t\t5000\n"
1336 "PublishFeatures\t\t5100\n"
1337 "PublishProduct\t\t5200\n"
1338 "UnpublishFeatures\t\t5300\n"
1339 "InstallFinalize\t\t6000\n";
1342 "Action\tType\tSource\tTarget\n"
1343 "s72\ti2\tS64\tS0\n"
1344 "CustomAction\tAction\n"
1345 "df_immediate\t1\tcustom.dll\trd_absent\n"
1346 "df_deferred\t1025\tcustom.dll\trd_present\n"
1347 "rd_immediate\t1\tcustom.dll\trd_present\n"
1348 "rd_deferred\t1025\tcustom.dll\trd_absent\n";
1351 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1352 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1354 "product.txt\tproduct\tproduct.txt\t1000\t\t\t8192\t1\n";
1357 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1358 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1359 "Feature\tFeature\n"
1360 "product\t\t\tproduct feature\t1\t2\tMSITESTDIR\t0\n";
1363 "Feature_\tComponent_\n"
1365 "FeatureComponents\tFeature_\tComponent_\n"
1366 "product\tproduct\n";
1369 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1370 "s72\tS38\ts72\ti2\tS255\tS72\n"
1371 "Component\tComponent\n"
1372 "product\t{44725EE0-EEA8-40BD-8162-A48224A2FEA1}\tMSITESTDIR\t0\t\tproduct.txt\n";
1375 "Action\tType\tSource\tTarget\tISComments\n"
1376 "s72\ti2\tS64\tS0\tS255\n"
1377 "CustomAction\tAction\n"
1378 "TestProp\t19\t\t\tPROP set\n";
1381 "UpgradeCode\tVersionMin\tVersionMax\tLanguage\tAttributes\tRemove\tActionProperty\n"
1382 "s38\tS20\tS20\tS255\ti4\tS255\ts72\n"
1383 "Upgrade\tUpgradeCode\tVersionMin\tVersionMax\tLanguage\tAttributes\n"
1384 "{4C0EAA15-0264-4E5A-8758-609EF142B92D}\t1.1.1\t2.2.2\t\t768\t\tPROP\n";
1387 "Action\tCondition\tSequence\n"
1389 "InstallExecuteSequence\tAction\n"
1390 "FindRelatedProducts\t\t50\n"
1391 "TestProp\tPROP AND NOT REMOVE\t51\n"
1392 "LaunchConditions\t\t100\n"
1393 "CostInitialize\t\t800\n"
1395 "CostFinalize\t\t1000\n"
1396 "InstallValidate\t\t1400\n"
1397 "InstallInitialize\t\t1500\n"
1398 "ProcessComponents\t\t1600\n"
1399 "RemoveFiles\t\t1700\n"
1400 "InstallFiles\t\t2000\n"
1401 "RegisterProduct\t\t5000\n"
1402 "PublishFeatures\t\t5100\n"
1403 "PublishProduct\t\t5200\n"
1404 "UnpublishFeatures\t\t5300\n"
1405 "InstallFinalize\t\t6000\n";
1408 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1409 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1411 "inifile.txt\tinifile\tinifile.txt\t1000\t\t\t8192\t1\n";
1414 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1415 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1416 "Feature\tFeature\n"
1417 "inifile\t\t\tinifile feature\t1\t2\tMSITESTDIR\t0\n";
1420 "Feature_\tComponent_\n"
1422 "FeatureComponents\tFeature_\tComponent_\n"
1423 "inifile\tinifile\n";
1426 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1427 "s72\tS38\ts72\ti2\tS255\tS72\n"
1428 "Component\tComponent\n"
1429 "inifile\t{A0F15705-4F57-4437-88C4-6C8B37ACC6DE}\tMSITESTDIR\t0\t\tinifile.txt\n";
1432 "IniFile\tFileName\tDirProperty\tSection\tKey\tValue\tAction\tComponent_\n"
1433 "s72\tl255\tS72\tl96\tl128\tl255\ti2\ts72\n"
1434 "IniFile\tIniFile\n"
1435 "inifile1\ttest.ini\tMSITESTDIR\tsection1\tkey1\tvalue1\t0\tinifile\n";
1438 "RemoveIniFile\tFileName\tDirProperty\tSection\tKey\tValue\tAction\tComponent_\n"
1439 "s72\tl255\tS72\tl96\tl128\tL255\ti2\ts72\n"
1440 "RemoveIniFile\tRemoveIniFile\n"
1441 "inifile1\ttest.ini\tMSITESTDIR\tsectionA\tkeyA\tvalueA\t2\tinifile\n";
1444 "Action\tCondition\tSequence\n"
1446 "InstallExecuteSequence\tAction\n"
1447 "LaunchConditions\t\t100\n"
1448 "CostInitialize\t\t800\n"
1450 "CostFinalize\t\t1000\n"
1451 "InstallValidate\t\t1400\n"
1452 "InstallInitialize\t\t1500\n"
1453 "ProcessComponents\t\t1600\n"
1454 "RemoveFiles\t\t1700\n"
1455 "InstallFiles\t\t2000\n"
1456 "RemoveIniValues\t\t3000\n"
1457 "riv_immediate\tREMOVE\t3001\n"
1458 "riv_deferred\tREMOVE\t3002\n"
1459 "WriteIniValues\t\t3100\n"
1460 "wiv_immediate\tNOT REMOVE\t3101\n"
1461 "wiv_deferred\tNOT REMOVE\t3102\n"
1462 "RegisterProduct\t\t5000\n"
1463 "PublishFeatures\t\t5100\n"
1464 "PublishProduct\t\t5200\n"
1465 "UnpublishFeatures\t\t5300\n"
1466 "InstallFinalize\t\t6000\n";
1469 "Action\tType\tSource\tTarget\n"
1470 "s72\ti2\tS64\tS0\n"
1471 "CustomAction\tAction\n"
1472 "wiv_immediate\t1\tcustom.dll\tini_absent\n"
1473 "wiv_deferred\t1025\tcustom.dll\tini_present\n"
1474 "riv_immediate\t1\tcustom.dll\tini_present\n"
1475 "riv_deferred\t1025\tcustom.dll\tini_absent\n";
1478 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1479 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1481 "class.txt\tclass\tclass.txt\t1000\t\t\t8192\t1\n";
1484 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1485 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1486 "Feature\tFeature\n"
1487 "class\t\t\tclass feature\t1\t2\tMSITESTDIR\t0\n";
1490 "Feature_\tComponent_\n"
1492 "FeatureComponents\tFeature_\tComponent_\n"
1496 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1497 "s72\tS38\ts72\ti2\tS255\tS72\n"
1498 "Component\tComponent\n"
1499 "class\t{89A98345-F8A1-422E-A48B-0250B5809F2D}\tMSITESTDIR\t0\t\tclass.txt\n";
1502 "AppId\tRemoteServerName\tLocalService\tServiceParameters\tDllSurrogate\tActivateAtStorage\tRunAsInteractiveUser\n"
1503 "s38\tS255\tS255\tS255\tS255\tI2\tI2\n"
1505 "{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}\t\t\t\t\t\t\n";
1508 "CLSID\tContext\tComponent_\tProgId_Default\tDescription\tAppId_\tFileTypeMask\tIcon_\tIconIndex\tDefInprocHandler\tArgument\tFeature_\tAttributes\n"
1509 "s38\ts32\ts72\tS255\tL255\tS38\tS255\tS72\tI2\tS32\tS255\ts38\tI2\n"
1510 "Class\tCLSID\tContext\tComponent_\n"
1511 "{110913E7-86D1-4BF3-9922-BA103FCDDDFA}\tLocalServer\tclass\t\tdescription\t{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}\tmask1;mask2\t\t\t2\t\tclass\t\n";
1514 "Action\tCondition\tSequence\n"
1516 "InstallExecuteSequence\tAction\n"
1517 "LaunchConditions\t\t100\n"
1518 "CostInitialize\t\t800\n"
1520 "CostFinalize\t\t1000\n"
1521 "InstallValidate\t\t1400\n"
1522 "InstallInitialize\t\t1500\n"
1523 "ProcessComponents\t\t1600\n"
1524 "RemoveFiles\t\t1700\n"
1525 "InstallFiles\t\t2000\n"
1526 "UnregisterClassInfo\t\t3000\n"
1527 "uci_immediate\tREMOVE\t3001\n"
1528 "uci_deferred\tREMOVE\t3002\n"
1529 "RegisterClassInfo\t\t4000\n"
1530 "rci_immediate\tNOT REMOVE\t4001\n"
1531 "rci_deferred\tNOT REMOVE\t4002\n"
1532 "RegisterProduct\t\t5000\n"
1533 "PublishFeatures\t\t5100\n"
1534 "PublishProduct\t\t5200\n"
1535 "UnpublishFeatures\t\t5300\n"
1536 "InstallFinalize\t\t6000\n";
1539 "Action\tType\tSource\tTarget\n"
1540 "s72\ti2\tS64\tS0\n"
1541 "CustomAction\tAction\n"
1542 "rci_immediate\t1\tcustom.dll\trci_absent\n"
1543 "rci_deferred\t1025\tcustom.dll\trci_present\n"
1544 "uci_immediate\t1\tcustom.dll\trci_present\n"
1545 "uci_deferred\t1025\tcustom.dll\trci_absent\n";
1548 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1549 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1551 "extension.txt\textension\textension.txt\t1000\t\t\t8192\t1\n";
1554 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1555 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1556 "Feature\tFeature\n"
1557 "extension\t\t\textension feature\t1\t2\tMSITESTDIR\t0\n";
1560 "Feature_\tComponent_\n"
1562 "FeatureComponents\tFeature_\tComponent_\n"
1563 "extension\textension\n";
1566 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1567 "s72\tS38\ts72\ti2\tS255\tS72\n"
1568 "Component\tComponent\n"
1569 "extension\t{9A3060D4-60BA-4A82-AB55-9FB148AD013C}\tMSITESTDIR\t0\t\textension.txt\n";
1572 "Extension\tComponent_\tProgId_\tMIME_\tFeature_\n"
1573 "s255\ts72\tS255\tS64\ts38\n"
1574 "Extension\tExtension\tComponent_\n"
1575 "extension\textension\tProg.Id.1\t\textension\n";
1578 "Extension_\tVerb\tSequence\tCommand\tArgument\n"
1579 "s255\ts32\tI2\tL255\tL255\n"
1580 "Verb\tExtension_\tVerb\n"
1581 "extension\tOpen\t1\t&Open\t/argument\n";
1584 "ProgId\tProgId_Parent\tClass_\tDescription\tIcon_\tIconIndex\n"
1585 "s255\tS255\tS38\tL255\tS72\tI2\n"
1587 "Prog.Id.1\t\t\tdescription\t\t\n";
1590 "Action\tCondition\tSequence\n"
1592 "InstallExecuteSequence\tAction\n"
1593 "LaunchConditions\t\t100\n"
1594 "CostInitialize\t\t800\n"
1596 "CostFinalize\t\t1000\n"
1597 "InstallValidate\t\t1400\n"
1598 "InstallInitialize\t\t1500\n"
1599 "ProcessComponents\t\t1600\n"
1600 "RemoveFiles\t\t1700\n"
1601 "InstallFiles\t\t2000\n"
1602 "UnregisterExtensionInfo\t\t3000\n"
1603 "uei_immediate\tREMOVE\t3001\n"
1604 "uei_deferred\tREMOVE\t3002\n"
1605 "RegisterExtensionInfo\t\t4000\n"
1606 "rei_immediate\tNOT REMOVE\t4001\n"
1607 "rei_deferred\tNOT REMOVE\t4002\n"
1608 "RegisterProduct\t\t5000\n"
1609 "PublishFeatures\t\t5100\n"
1610 "PublishProduct\t\t5200\n"
1611 "UnpublishFeatures\t\t5300\n"
1612 "InstallFinalize\t\t6000\n";
1615 "Action\tType\tSource\tTarget\n"
1616 "s72\ti2\tS64\tS0\n"
1617 "CustomAction\tAction\n"
1618 "rei_immediate\t1\tcustom.dll\trei_absent\n"
1619 "rei_deferred\t1025\tcustom.dll\trei_present\n"
1620 "uei_immediate\t1\tcustom.dll\trei_present\n"
1621 "uei_deferred\t1025\tcustom.dll\trei_absent\n";
1624 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1625 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1627 "progid.txt\tprogid\tprogid.txt\t1000\t\t\t8192\t1\n";
1630 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1631 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1632 "Feature\tFeature\n"
1633 "progid\t\t\tprogid feature\t1\t2\tMSITESTDIR\t0\n";
1636 "Feature_\tComponent_\n"
1638 "FeatureComponents\tFeature_\tComponent_\n"
1642 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1643 "s72\tS38\ts72\ti2\tS255\tS72\n"
1644 "Component\tComponent\n"
1645 "progid\t{89A98345-F8A1-422E-A48B-0250B5809F2D}\tMSITESTDIR\t0\t\tprogid.txt\n";
1648 "AppId\tRemoteServerName\tLocalService\tServiceParameters\tDllSurrogate\tActivateAtStorage\tRunAsInteractiveUser\n"
1649 "s38\tS255\tS255\tS255\tS255\tI2\tI2\n"
1651 "{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}\t\t\t\t\t\t\n";
1654 "CLSID\tContext\tComponent_\tProgId_Default\tDescription\tAppId_\tFileTypeMask\tIcon_\tIconIndex\tDefInprocHandler\tArgument\tFeature_\tAttributes\n"
1655 "s38\ts32\ts72\tS255\tL255\tS38\tS255\tS72\tI2\tS32\tS255\ts38\tI2\n"
1656 "Class\tCLSID\tContext\tComponent_\n"
1657 "{110913E7-86D1-4BF3-9922-BA103FCDDDFA}\tLocalServer\tprogid\tWinetest.Class.1\tdescription\t{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}\tmask1;mask2\t\t\t2\t\tprogid\t\n"
1658 "{904E6BC9-F57F-4412-B460-D40DE2F256E2}\tLocalServer\tprogid\tWinetest.VerClass\tdescription\t{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}\tmask1;mask2\t\t\t2\t\tprogid\t\n"
1659 "{57C413FB-CA02-498A-81F6-7E769BDB7C97}\tLocalServer\tprogid\t\tdescription\t{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}\tmask1;mask2\t\t\t2\t\tprogid\t\n";
1662 "Extension\tComponent_\tProgId_\tMIME_\tFeature_\n"
1663 "s255\ts72\tS255\tS64\ts38\n"
1664 "Extension\tExtension\tComponent_\n"
1665 "winetest\tprogid\tWinetest.Extension\t\tprogid\n";
1668 "Extension_\tVerb\tSequence\tCommand\tArgument\n"
1669 "s255\ts32\tI2\tL255\tL255\n"
1670 "Verb\tExtension_\tVerb\n"
1671 "winetest\tOpen\t1\t&Open\t/argument\n";
1674 "ProgId\tProgId_Parent\tClass_\tDescription\tIcon_\tIconIndex\n"
1675 "s255\tS255\tS38\tL255\tS72\tI2\n"
1677 "Winetest.Class.1\t\t{110913E7-86D1-4BF3-9922-BA103FCDDDFA}\tdescription\t\t\n"
1678 "Winetest.Class\tWinetest.Class.1\t\tdescription\t\t\n"
1679 "Winetest.Class.2\t\t{110913E7-86D1-4BF3-9922-BA103FCDDDFA}\tdescription\t\t\n"
1680 "Winetest.VerClass.1\t\t{904E6BC9-F57F-4412-B460-D40DE2F256E2}\tdescription\t\t\n"
1681 "Winetest.VerClass\tWinetest.VerClass.1\t\tdescription\t\t\n"
1682 "Winetest.NoProgIdClass.1\t\t{57C413FB-CA02-498A-81F6-7E769BDB7C97}\tdescription\t\t\n"
1683 "Winetest.NoProgIdClass\tWinetest.NoProgIdClass.1\t\tdescription\t\t\n"
1684 "Winetest.Orphaned\t\t\tdescription\t\t\n"
1685 "Winetest.Orphaned2\t\t\tdescription\t\t\n"
1686 "Winetest.Extension\t\t\tdescription\t\t\n";
1689 "Action\tCondition\tSequence\n"
1691 "InstallExecuteSequence\tAction\n"
1692 "LaunchConditions\t\t100\n"
1693 "CostInitialize\t\t800\n"
1695 "CostFinalize\t\t1000\n"
1696 "InstallValidate\t\t1400\n"
1697 "InstallInitialize\t\t1500\n"
1698 "ProcessComponents\t\t1600\n"
1699 "RemoveFiles\t\t1700\n"
1700 "UnregisterClassInfo\t\t3000\n"
1701 "UnregisterExtensionInfo\t\t3200\n"
1702 "UnregisterProgIdInfo\t\t3400\n"
1703 "upi_immediate\tREMOVE\t3401\n"
1704 "upi_deferred\tREMOVE\t3402\n"
1705 "InstallFiles\t\t3600\n"
1706 "RegisterClassInfo\t\t4000\n"
1707 "RegisterExtensionInfo\t\t4200\n"
1708 "RegisterProgIdInfo\t\t4400\n"
1709 "rpi_immediate\tNOT REMOVE\t4401\n"
1710 "rpi_deferred\tNOT REMOVE\t4402\n"
1711 "RegisterProduct\t\t5000\n"
1712 "PublishFeatures\t\t5100\n"
1713 "PublishProduct\t\t5200\n"
1714 "UnpublishFeatures\t\t5300\n"
1715 "InstallFinalize\t\t6000\n";
1718 "Action\tType\tSource\tTarget\n"
1719 "s72\ti2\tS64\tS0\n"
1720 "CustomAction\tAction\n"
1721 "rpi_immediate\t1\tcustom.dll\trpi_absent\n"
1722 "rpi_deferred\t1025\tcustom.dll\trpi_present\n"
1723 "upi_immediate\t1\tcustom.dll\trpi_present\n"
1724 "upi_deferred\t1025\tcustom.dll\trpi_absent\n";
1727 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1728 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1730 "mime.txt\tmime\tmime.txt\t1000\t\t\t8192\t1\n";
1733 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1734 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1735 "Feature\tFeature\n"
1736 "mime\t\t\tmime feature\t1\t2\tMSITESTDIR\t0\n";
1739 "Feature_\tComponent_\n"
1741 "FeatureComponents\tFeature_\tComponent_\n"
1745 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1746 "s72\tS38\ts72\ti2\tS255\tS72\n"
1747 "Component\tComponent\n"
1748 "mime\t{A1D630CE-13A7-4882-AFDD-148E2BBAFC6D}\tMSITESTDIR\t0\t\tmime.txt\n";
1751 "Extension\tComponent_\tProgId_\tMIME_\tFeature_\n"
1752 "s255\ts72\tS255\tS64\ts38\n"
1753 "Extension\tExtension\tComponent_\n"
1754 "mime\tmime\t\tmime/type\tmime\n";
1757 "Extension_\tVerb\tSequence\tCommand\tArgument\n"
1758 "s255\ts32\tI2\tL255\tL255\n"
1759 "Verb\tExtension_\tVerb\n"
1760 "mime\tOpen\t1\t&Open\t/argument\n";
1763 "ContentType\tExtension_\tCLSID\n"
1765 "MIME\tContentType\n"
1766 "mime/type\tmime\t\n";
1769 "Action\tCondition\tSequence\n"
1771 "InstallExecuteSequence\tAction\n"
1772 "LaunchConditions\t\t100\n"
1773 "CostInitialize\t\t800\n"
1775 "CostFinalize\t\t1000\n"
1776 "InstallValidate\t\t1400\n"
1777 "InstallInitialize\t\t1500\n"
1778 "ProcessComponents\t\t1600\n"
1779 "RemoveFiles\t\t1700\n"
1780 "InstallFiles\t\t2000\n"
1781 "UnregisterExtensionInfo\t\t3000\n"
1782 "UnregisterMIMEInfo\t\t3500\n"
1783 "umi_immediate\tREMOVE\t3501\n"
1784 "umi_deferred\tREMOVE\t3502\n"
1785 "RegisterExtensionInfo\t\t4000\n"
1786 "RegisterMIMEInfo\t\t4500\n"
1787 "rmi_immediate\tNOT REMOVE\t4501\n"
1788 "rmi_deferred\tNOT REMOVE\t4502\n"
1789 "RegisterProduct\t\t5000\n"
1790 "PublishFeatures\t\t5100\n"
1791 "PublishProduct\t\t5200\n"
1792 "UnpublishFeatures\t\t5300\n"
1793 "InstallFinalize\t\t6000\n";
1796 "Action\tType\tSource\tTarget\n"
1797 "s72\ti2\tS64\tS0\n"
1798 "CustomAction\tAction\n"
1799 "rmi_immediate\t1\tcustom.dll\trmi_absent\n"
1800 "rmi_deferred\t1025\tcustom.dll\trmi_present\n"
1801 "umi_immediate\t1\tcustom.dll\trmi_present\n"
1802 "umi_deferred\t1025\tcustom.dll\trmi_absent\n";
1805 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1806 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1808 "fake_local.txt\tfake_local\tfake_local.txt\t1000\t\t\t8192\t1\n"
1809 "win32.txt\twin32\twin32.txt\t1000\t\t\t8192\t1\n"
1810 "manifest.txt\twin32\tmanifest.txt\t1000\t\t\t8192\t1\n"
1811 "win32_local.txt\twin32_local\twin32_local.txt\t1000\t\t\t8192\t1\n"
1812 "manifest_local.txt\twin32_local\tmanifest_local.txt\t1000\t\t\t8192\t1\n"
1813 "dotnet.txt\tdotnet\tdotnet.txt\t1000\t\t\t8192\t1\n"
1814 "dotnet_local.txt\tdotnet_local\tdotnet_local.txt\t1000\t\t\t8192\t1\n"
1815 "application_win32.txt\twin32_local\tapplication_win32.txt\t1000\t\t\t8192\t1\n"
1816 "application_dotnet.txt\tdotnet_local\tapplication_dotnet.txt\t1000\t\t\t8192\t1\n";
1819 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1820 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1821 "Feature\tFeature\n"
1822 "assembly\t\t\tassembly feature\t1\t2\tMSITESTDIR\t0\n";
1825 "Feature_\tComponent_\n"
1827 "FeatureComponents\tFeature_\tComponent_\n"
1828 "assembly\tfake_local\n"
1830 "assembly\twin32_local\n"
1831 "assembly\tdotnet\n"
1832 "assembly\tdotnet_local\n";
1835 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1836 "s72\tS38\ts72\ti2\tS255\tS72\n"
1837 "Component\tComponent\n"
1838 "fake_local\t{F515549D-7E61-425D-AAC1-9BEF2E066D06}\tMSITESTDIR\t0\t\tfake_local.txt\n"
1839 "win32\t{F515549E-7E61-425D-AAC1-9BEF2E066D06}\tMSITESTDIR\t0\t\twin32.txt\n"
1840 "win32_local\t{D34D3FBA-6789-4E57-AD1A-1281297DC201}\tMSITESTDIR\t0\t\twin32_local.txt\n"
1841 "dotnet\t{8943164F-2B31-4C09-A894-493A8CBDE0A4}\tMSITESTDIR\t0\t\tdotnet.txt\n"
1842 "dotnet_local\t{4E8567E8-8EAE-4E36-90F1-B99D33C663F8}\tMSITESTDIR\t0\t\tdotnet_local.txt\n";
1845 "Component_\tFeature_\tFile_Manifest\tFile_Application\tAttributes\n"
1846 "s72\ts38\tS72\tS72\tI2\n"
1847 "MsiAssembly\tComponent_\n"
1848 "fake_local\tassembly\t\tnonexistent.txt\t0\n"
1849 "win32\tassembly\tmanifest.txt\t\t1\n"
1850 "win32_local\tassembly\tmanifest_local.txt\tapplication_win32.txt\t1\n"
1851 "dotnet\tassembly\t\t\t0\n"
1852 "dotnet_local\tassembly\t\tapplication_dotnet.txt\t0\n";
1855 "Component_\tName\tValue\n"
1857 "MsiAssemblyName\tComponent_\tName\n"
1858 "fake_local\tName\tWine.Fake.Application.Assembly\n"
1859 "fake_local\tprocessorArchitecture\tx86\n"
1860 "fake_local\tpublicKeyToken\tabcdef0123456789\n"
1861 "fake_local\ttype\twin32\n"
1862 "fake_local\tversion\t1.0.0.0\n"
1863 "win32\tName\tWine.Win32.Assembly\n"
1864 "win32\tprocessorArchitecture\tx86\n"
1865 "win32\tpublicKeyToken\tabcdef0123456789\n"
1866 "win32\ttype\twin32\n"
1867 "win32\tversion\t1.0.0.0\n"
1868 "win32_local\tName\tWine.Win32.Local.Assembly\n"
1869 "win32_local\tprocessorArchitecture\tx86\n"
1870 "win32_local\tpublicKeyToken\tabcdef0123456789\n"
1871 "win32_local\ttype\twin32\n"
1872 "win32_local\tversion\t1.0.0.0\n"
1873 "dotnet\tName\tWine.Dotnet.Assembly\n"
1874 "dotnet\tprocessorArchitecture\tMSIL\n"
1875 "dotnet\tpublicKeyToken\tabcdef0123456789\n"
1876 "dotnet\tculture\tneutral\n"
1877 "dotnet\tversion\t1.0.0.0\n"
1878 "dotnet_local\tName\tWine.Dotnet.Local.Assembly\n"
1879 "dotnet_local\tprocessorArchitecture\tMSIL\n"
1880 "dotnet_local\tpublicKeyToken\tabcdef0123456789\n"
1881 "dotnet_local\tculture\tneutral\n"
1882 "dotnet_local\tversion\t1.0.0.0\n";
1885 "Action\tCondition\tSequence\n"
1887 "InstallExecuteSequence\tAction\n"
1888 "LaunchConditions\t\t100\n"
1889 "CostInitialize\t\t800\n"
1891 "CostFinalize\t\t1000\n"
1892 "InstallValidate\t\t1400\n"
1893 "InstallInitialize\t\t1500\n"
1894 "ProcessComponents\t\t1600\n"
1895 "MsiPublishAssemblies\t\t3000\n"
1896 "pa_immediate\tNOT REMOVE AND NOT ALLUSERS\t3001\n"
1897 "pa_deferred\tNOT REMOVE AND NOT ALLUSERS\t3002\n"
1898 "MsiUnpublishAssemblies\t\t4000\n"
1899 "ua_immediate\tREMOVE AND NOT ALLUSERS\t4001\n"
1900 "ua_deferred\tREMOVE AND NOT ALLUSERS\t4002\n"
1901 "RegisterProduct\t\t5000\n"
1902 "PublishFeatures\t\t5100\n"
1903 "PublishProduct\t\t5200\n"
1904 "UnpublishFeatures\t\t5300\n"
1905 "InstallFinalize\t\t6000\n";
1908 "Action\tType\tSource\tTarget\n"
1909 "s72\ti2\tS64\tS0\n"
1910 "CustomAction\tAction\n"
1911 "pa_immediate\t1\tcustom.dll\tpa_absent\n"
1912 "pa_deferred\t1025\tcustom.dll\tpa_present\n"
1913 "ua_immediate\t1\tcustom.dll\tpa_present\n"
1914 "ua_deferred\t1025\tcustom.dll\tpa_absent\n";
1917 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1918 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1920 "rep.txt\trep\trep.txt\t1000\t\t\t8192\t1\n";
1923 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1924 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1925 "Feature\tFeature\n"
1926 "rep\t\t\trep feature\t1\t2\tMSITESTDIR\t0\n";
1929 "Feature_\tComponent_\n"
1931 "FeatureComponents\tFeature_\tComponent_\n"
1935 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1936 "s72\tS38\ts72\ti2\tS255\tS72\n"
1937 "Component\tComponent\n"
1938 "rep\t{A24FAF2A-3B2E-41EF-AA78-331542E1A29D}\tMSITESTDIR\t0\t\trep.txt\n";
1941 "UpgradeCode\tVersionMin\tVersionMax\tLanguage\tAttributes\tRemove\tActionProperty\n"
1942 "s38\tS20\tS20\tS255\ti4\tS255\ts72\n"
1943 "Upgrade\tUpgradeCode\tVersionMin\tVersionMax\tLanguage\tAttributes\n"
1944 "{2967C1CC-34D4-42EE-8D96-CD6836F192BF}\t\t\t\t256\t\tPRODUCT\n";
1949 "Property\tProperty\n"
1952 "InstallMode\tTypical\n"
1953 "Manufacturer\tWine\n"
1954 "PIDTemplate\t###-#######\n"
1955 "ProductCode\t{1699F0BB-0B61-4A89-AFE4-CFD60DFD76F3}\n"
1956 "ProductLanguage\t1033\n"
1957 "ProductName\tMSITEST\n"
1958 "ProductVersion\t1.1.1\n"
1959 "UpgradeCode\t{2967C1CC-34D4-42EE-8D96-CD6836F192BF}\n"
1960 "PRODUCT\t2F41860D-7B4C-4DA7-BED9-B64F26594C56\n"
1961 "MSIFASTINSTALL\t1\n";
1964 "Action\tCondition\tSequence\n"
1966 "InstallExecuteSequence\tAction\n"
1967 "FindRelatedProducts\t\t100\n"
1968 "CostInitialize\t\t800\n"
1970 "CostFinalize\t\t1000\n"
1971 "InstallValidate\t\t1400\n"
1972 "RemoveExistingProducts\t\t1499\n"
1973 "InstallInitialize\t\t1500\n"
1974 "ProcessComponents\t\t1600\n"
1975 "RemoveFiles\t\t1700\n"
1976 "InstallFiles\t\t2000\n"
1977 "UnregisterExtensionInfo\t\t3000\n"
1978 "UnregisterMIMEInfo\t\t3500\n"
1979 "RegisterExtensionInfo\t\t4000\n"
1980 "RegisterMIMEInfo\t\t4500\n"
1981 "RegisterProduct\t\t5000\n"
1982 "PublishFeatures\t\t5100\n"
1983 "PublishProduct\t\t5200\n"
1984 "UnpublishFeatures\t\t5300\n"
1985 "InstallFinalize\t\t6000\n";
2376#define MEDIA_SIZE 0x7FFFFFFF
2385#define GET_PROC(mod, func) \
2386 p ## func = (void*)GetProcAddress(mod, #func); \
2388 trace("GetProcAddress(%s) failed\n", #func);
2410 char *usersid =
NULL;
2469 return pSRSetRestorePointA(&spec,
status);
2476 res = pSRRemoveRestorePoint(seq_number);
2478 trace(
"Failed to remove the restore point : %#lx\n",
res);
2483 if (pRegDeleteKeyExA)
2484 return pRegDeleteKeyExA(
key, subkey,
access, 0 );
2519 ok_(__FILE__,
line)(!
res,
"Failed to query value, error %ld\n",
res);
2539 expect_size = (
p + 1) -
expect;
2544 ok_(__FILE__,
line)(!
res,
"Failed to query value, error %ld\n",
res);
2546 ok_(__FILE__,
line)(
size == expect_size,
"expected size %lu, got %lu\n", expect_size,
size);
2557 ok_(__FILE__,
line)(!
res,
"Failed to query value, error %ld\n",
res);
2563#define CHECK_REG_STR(prodkey, name, expected) \
2564 check_reg_str(prodkey, name, expected, TRUE, FALSE, __LINE__);
2566#define CHECK_DEL_REG_STR(prodkey, name, expected) \
2568 check_reg_str(prodkey, name, expected, TRUE, FALSE, __LINE__); \
2569 RegDeleteValueA(prodkey, name); \
2572#define CHECK_DEL_REG_STR_TODO(prodkey, name, expected) \
2574 check_reg_str(prodkey, name, expected, TRUE, TRUE, __LINE__); \
2575 RegDeleteValueA(prodkey, name); \
2578#define CHECK_REG_ISTR(prodkey, name, expected) \
2579 check_reg_str(prodkey, name, expected, FALSE, FALSE, __LINE__);
2581#define CHECK_DEL_REG_ISTR(prodkey, name, expected) \
2583 check_reg_str(prodkey, name, expected, FALSE, FALSE, __LINE__); \
2584 RegDeleteValueA(prodkey, name); \
2587#define CHECK_REG_MULTI(key, name, expect) \
2588 check_reg_multi(key, name, expect, __LINE__);
2590#define CHECK_DEL_REG_MULTI(key, name, expect) \
2592 check_reg_multi(key, name, expect, __LINE__); \
2593 RegDeleteValueA(key, name); \
2596#define CHECK_REG_DWORD(prodkey, name, expected) \
2597 check_reg_dword(prodkey, name, expected, FALSE, __LINE__);
2599#define CHECK_REG_DWORD_TODO(prodkey, name, expected) \
2600 check_reg_dword(prodkey, name, expected, TRUE, __LINE__);
2602#define CHECK_DEL_REG_DWORD(prodkey, name, expected) \
2604 check_reg_dword(prodkey, name, expected, FALSE, __LINE__); \
2605 RegDeleteValueA(prodkey, name); \
2608#define CHECK_DEL_REG_DWORD_TODO(prodkey, name, expected) \
2610 check_reg_dword(prodkey, name, expected, TRUE, __LINE__); \
2611 RegDeleteValueA(prodkey, name); \
2618 static const char date_fmt[] =
"%d%02d%02d";
2650 ok(
res != 0,
"couldn't find resource\n" );
2666 static const CHAR uninstall[] =
"Software\\Microsoft\\Windows\\CurrentVersion"
2667 "\\Uninstall\\{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}";
2668 static const CHAR userdata[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer"
2669 "\\UserData\\%s\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB";
2670 static const CHAR ugkey[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer"
2671 "\\UpgradeCodes\\51AAE0C44620A5E4788506E91F249BD2";
2672 static const CHAR userugkey[] =
"Software\\Microsoft\\Installer\\UpgradeCodes"
2673 "\\51AAE0C44620A5E4788506E91F249BD2";
2677 skip(
"process is limited\n");
2698 skip(
"Not enough rights to perform tests\n");
2715 CHECK_DEL_REG_ISTR(hkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2717 CHECK_DEL_REG_STR(hkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2740 sprintf(keypath, userdata, usersid);
2820 CHECK_DEL_REG_ISTR(hkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2822 CHECK_DEL_REG_STR(hkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2845 sprintf(keypath, userdata,
"S-1-5-18");
2932 CHECK_DEL_REG_ISTR(hkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2934 CHECK_DEL_REG_STR(hkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2957 sprintf(keypath, userdata,
"S-1-5-18");
3022 skip(
"64-bit RegisterProduct tests\n");
3033 static const char prodpath[] =
3034 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\%s\\Products"
3035 "\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3036 static const char cuprodpath[] =
3037 "Software\\Microsoft\\Installer\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3038 static const char cuupgrades[] =
3039 "Software\\Microsoft\\Installer\\UpgradeCodes\\51AAE0C44620A5E4788506E91F249BD2";
3040 static const char badprod[] =
3041 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Products"
3042 "\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3043 static const char machprod[] =
3044 "Software\\Classes\\Installer\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3045 static const char machup[] =
3046 "Software\\Classes\\Installer\\UpgradeCodes\\51AAE0C44620A5E4788506E91F249BD2";
3060 skip(
"process is limited\n");
3083 skip(
"Not enough rights to perform tests\n");
3093 sprintf(keypath, prodpath, usersid);
3100 win_skip(
"Windows Installer < 3.0 detected\n");
3102 old_installer =
TRUE;
3107 win_skip(
"Install failed, no need to continue\n");
3188 sprintf(keypath, prodpath,
"S-1-5-18");
3270 static const char cupath[] =
3271 "Software\\Microsoft\\Installer\\Features\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3272 static const char udfeatpath[] =
3273 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\%s\\Products"
3274 "\\84A88FD7F6998CE40A22FB59F6B9C2BB\\Features";
3275 static const char udpridpath[] =
3276 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\%s\\Products"
3277 "\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3278 static const char featkey[] =
3279 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Features";
3280 static const char classfeat[] =
3281 "Software\\Classes\\Installer\\Features\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3291 skip(
"process is limited\n");
3312 skip(
"Not enough rights to perform tests\n");
3336 sprintf(keypath, udfeatpath, usersid);
3347 sprintf(keypath, udpridpath, usersid);
3372 sprintf(keypath, udfeatpath,
"S-1-5-18");
3383 sprintf(keypath, udpridpath,
"S-1-5-18");
3417 *owner = *company =
NULL;
3423 "Software\\Microsoft\\MS Setup (ACME)\\User Info", &hkey);
3431 if (!*owner || !*company)
3434 "Software\\Microsoft\\Windows NT\\CurrentVersion", 0,
access, &hkey);
3443 if (!*owner || !*company)
3446 "Software\\Microsoft\\Windows\\CurrentVersion", 0,
access, &hkey);
3462 LPSTR owner, company;
3466 static const CHAR keypropsfmt[] =
3467 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\"
3468 "UserData\\%s\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB\\InstallProperties";
3469 static const CHAR keypridfmt[] =
3470 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\"
3471 "UserData\\%s\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3475 skip(
"process is limited\n");
3498 skip(
"Not enough rights to perform tests\n");
3505 sprintf(keypath, keypropsfmt, usersid);
3518 sprintf(keypath, keypridfmt, usersid);
3527 sprintf(keypath, keypropsfmt,
"S-1-5-18");
3540 sprintf(keypath, keypridfmt,
"S-1-5-18");
3555 static const char keyfmt[] =
3556 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\%s\\Components\\%s";
3557 static const char compkey[] =
3558 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Components";
3571 skip(
"process is limited\n");
3592 skip(
"Not enough rights to perform tests\n");
3599 sprintf(keypath, keyfmt, usersid,
"CBABC2FDCCB35E749A8944D8C1C098B5");
3609 lstrcatA(program_files_maximus,
"\\msitest\\maximus");
3612 "Expected \"%s\", got \"%s\"\n", program_files_maximus,
val);
3621 sprintf(keypath, keyfmt, usersid,
"241C3DA58FECD0945B9687D408766058");
3630 "Expected \"01\\msitest\\augustus\", got \"%s\"\n",
val);
3645 sprintf(keypath, keyfmt,
"S-1-5-18",
"CBABC2FDCCB35E749A8944D8C1C098B5");
3654 "Expected \"%s\", got \"%s\"\n", program_files_maximus,
val);
3663 sprintf(keypath, keyfmt,
"S-1-5-18",
"241C3DA58FECD0945B9687D408766058");
3672 "Expected \"01\\msitest\\augustus\", got \"%s\"\n",
val);
3690 static const char subkey[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
3691 static const char subkey_32node[] =
"Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
3694 HKEY uninstall, prodkey, uninstall_32node =
NULL;
3700 if (!pMsiQueryFeatureStateExA)
3702 win_skip(
"MsiQueryFeatureStateExA is not available\n");
3707 skip(
"process is limited\n");
3770 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3781 skip(
"Not enough rights to perform tests\n");
3785 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
3798 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3808 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
3821 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3842 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
3844 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
3867 ok(
pf_exists(
"msitest\\maximus"),
"File deleted\n");
3880 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3890 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
3927 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3946 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
3948 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
3972 ok(!
pf_exists(
"msitest\\maximus"),
"File not deleted\n");
3973 ok(!
pf_exists(
"msitest"),
"Directory not deleted\n");
3985 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3995 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4008 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
4027 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4029 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4053 ok(
pf_exists(
"msitest\\maximus"),
"File deleted\n");
4066 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
4085 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4087 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4111 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4124 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
4143 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4145 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4169 ok(!
pf_exists(
"msitest\\maximus"),
"File not deleted\n");
4170 ok(!
pf_exists(
"msitest"),
"Directory not deleted\n");
4182 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
4192 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4205 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
4224 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4226 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4250 ok(!
pf_exists(
"msitest\\maximus"),
"File not deleted\n");
4251 ok(!
pf_exists(
"msitest"),
"Directory not deleted\n");
4263 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
4287 CHAR prodcode[] =
"{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}";
4289 if (!pMsiSourceListEnumSourcesA || !pMsiSourceListGetInfoA)
4291 win_skip(
"MsiSourceListEnumSourcesA and/or MsiSourceListGetInfoA are not available\n");
4296 skip(
"process is limited\n");
4310 skip(
"Not enough rights to perform tests\n");
4314 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4336 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4358 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4380 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4402 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4412 ok(
size == 11,
"Expected 11, got %lu\n",
size);
4420 ok(
size == 0,
"Expected 0, got %lu\n",
size);
4428 ok(
size == 0,
"Expected 0, got %lu\n",
size);
4447 ok(
size == 1,
"Expected 1, got %lu\n",
size);
4476 ok(!
pf_exists(
"msitest\\maximus"),
"File not deleted\n");
4477 ok(!
pf_exists(
"msitest"),
"Directory not deleted\n");
4494 skip(
"process is limited\n");
4510 skip(
"Not enough rights to perform tests\n");
4514 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
4515 ok(!
pf_exists(
"msitest\\helium"),
"File installed\n");
4516 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
4521 ok(!
pf_exists(
"msitest\\hydrogen"),
"File not deleted\n");
4522 ok(!
pf_exists(
"msitest\\helium"),
"File not deleted\n");
4533 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
4534 ok(
pf_exists(
"msitest\\helium"),
"File not installed\n");
4535 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
4540 ok(!
pf_exists(
"msitest\\hydrogen"),
"File not deleted\n");
4560 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
4561 ok(!
pf_exists(
"msitest\\helium"),
"File installed\n");
4562 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
4563 ok(!
pf_exists(
"msitest\\furlong"),
"File not deleted\n");
4564 ok(!
pf_exists(
"msitest\\firkin"),
"File not deleted\n");
4565 ok(!
pf_exists(
"msitest\\fortnight"),
"File not deleted\n");
4566 ok(
pf_exists(
"msitest\\becquerel"),
"File not installed\n");
4567 ok(
pf_exists(
"msitest\\dioptre"),
"File not installed\n");
4568 ok(
pf_exists(
"msitest\\attoparsec"),
"File not installed\n");
4569 ok(!
pf_exists(
"msitest\\storeys"),
"File not deleted\n");
4570 ok(!
pf_exists(
"msitest\\block"),
"File not deleted\n");
4571 ok(!
pf_exists(
"msitest\\siriometer"),
"File not deleted\n");
4572 ok(
pf_exists(
"msitest\\cabout"),
"Directory removed\n");
4596 ok(
pf_exists(
"msitest\\cabout"),
"Directory deleted\n");
4604 ok(
pf_exists(
"msitest\\cabout"),
"Directory deleted\n");
4629 skip(
"process is limited\n");
4668 sprintf(
props,
"SOURCEFULL=\"%s\\\" DESTFULL=\"%s\\msitest\" "
4669 "FILEPATHBAD=\"%s\\japan\" FILEPATHGOOD=\"%s\\kenya\"",
4675 skip(
"Not enough rights to perform tests\n");
4697 ok(!
delete_pf(
"msitest\\application",
TRUE),
"File should not exist\n");
4775 skip(
"process is limited\n");
4790 skip(
"Not enough rights to perform tests\n");
4796 ok(
delete_pf(
"msitest\\this\\doesnot\\exist\\maximus",
TRUE),
"File not duplicated\n");
4797 ok(
delete_pf(
"msitest\\this\\doesnot\\exist",
FALSE),
"Directory not created\n");
4818 skip(
"process is limited\n");
4856 skip(
"Not enough rights to perform tests\n");
4876 ok(!
memcmp(
buf,
"\x01\x23\x45\x67", 4),
"wrong data\n");
4917 ok(!
r,
"got %u\n",
r);
4986 skip(
"process is limited\n");
5013 skip(
"Not enough rights to perform tests\n");
5065 ok(!
r,
"got %u\n",
r);
5075 for (
i = 1;
i <= 23;
i++)
5101 skip(
"process is limited\n");
5117 skip(
"Not enough rights to perform tests\n");
5122 ok(
pf_exists(
"msitest\\first\\one.txt"),
"file not installed\n");
5123 ok(
pf_exists(
"msitest\\first"),
"directory not created\n");
5124 ok(
pf_exists(
"msitest\\second\\two.txt"),
"file not installed\n");
5125 ok(
pf_exists(
"msitest\\second"),
"directory not created\n");
5126 ok(
pf_exists(
"msitest\\third"),
"directory not created\n");
5127 ok(
pf_exists(
"msitest"),
"directory not created\n");
5132 ok(!
pf_exists(
"msitest\\first\\one.txt"),
"file not removed\n");
5133 ok(!
pf_exists(
"msitest\\first"),
"directory not removed\n");
5134 ok(!
pf_exists(
"msitest\\second\\two.txt"),
"file not removed\n");
5135 ok(!
pf_exists(
"msitest\\second"),
"directory not removed\n");
5136 ok(!
pf_exists(
"msitest\\third"),
"directory not removed\n");
5151 SC_HANDLE scm, service;
5158 skip(
"Not enough rights to perform tests\n");
5161 ok(scm !=
NULL,
"Failed to open the SC Manager\n");
5167 win_skip(
"The 'Spooler' service does not exist\n");
5180 skip(
"Spooler service not available, skipping test\n");
5214 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
5216 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
5218 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
5220 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
5249 SC_HANDLE manager, service;
5252 ok(manager !=
NULL,
"can't open service manager\n");
5253 if (!manager)
return;
5268 SC_HANDLE manager, service;
5273 skip(
"process is limited\n");
5279 if (!manager)
return;
5281 service =
CreateServiceA(manager,
"TestService3",
"TestService3",
5287 if (!service)
return;
5297 skip(
"Not enough rights to perform tests\n");
5303 ok(manager !=
NULL,
"can't open service manager\n");
5304 if (!manager)
goto error;
5308 ok(service ==
NULL,
"TestService3 not deleted\n");
5315 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
5317 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
5319 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
5321 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
5340 SC_HANDLE manager, service;
5343 DWORD err_control, err_controlsize, err_controltype;
5347 skip(
"process is limited\n");
5359 skip(
"Not enough rights to perform tests\n");
5365 ok(manager !=
NULL,
"can't open service manager\n");
5366 if (!manager)
goto error;
5369 ok(service !=
NULL,
"TestService not installed\n");
5373 ok(service ==
NULL,
"TestService4 installed\n");
5380 err_control = 0xBEEF;
5382 err_controlsize =
sizeof(err_control);
5384 ok(err_control == 0,
"TestService.ErrorControl wrong, expected 0, got %lu\n", err_control);
5392 ok(service !=
NULL,
"TestService deleted\n");
5396 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
5398 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
5400 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
5402 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
5423 skip(
"process is limited\n");
5436 skip(
"Not enough rights to perform tests\n");
5442 ok(!
r,
"got %u\n",
r);
5446 ok(!
r,
"got %u\n",
r);
5462 static const char regfont1[] =
"Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts";
5463 static const char regfont2[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\Fonts";
5471 skip(
"process is limited\n");
5487 skip(
"Not enough rights to perform tests\n");
5522 skip(
"process is limited\n");
5534 skip(
"Not enough rights to perform tests\n");
5548 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
5550 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
5552 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
5554 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
5569 int gotdriver = 0, gotdriver2 = 0;
5576 skip(
"process is limited\n");
5584 create_file(
"msitest\\ODBCtranslator2.dll", 1000);
5593 skip(
"Not enough rights to perform tests\n");
5598 ok(
pf_exists(
"msitest\\ODBCdriver.dll"),
"file not created\n");
5599 ok(
pf_exists(
"msitest\\ODBCdriver2.dll"),
"file not created\n");
5600 ok(
pf_exists(
"msitest\\ODBCtranslator.dll"),
"file not created\n");
5601 ok(
pf_exists(
"msitest\\ODBCtranslator2.dll"),
"file not created\n");
5602 ok(
pf_exists(
"msitest\\ODBCsetup.dll"),
"file not created\n");
5606 ok(
r,
"SQLGetInstalledDrivers failed\n");
5609 if (!
strcmp(
p,
"ODBC test driver"))
5611 if (!
strcmp(
p,
"ODBC test driver2"))
5614 ok(gotdriver,
"driver not installed\n");
5615 ok(gotdriver2,
"driver 2 not installed\n");
5620 ok(!
delete_pf(
"msitest\\ODBCdriver.dll",
TRUE),
"file not removed\n");
5621 ok(!
delete_pf(
"msitest\\ODBCdriver2.dll",
TRUE),
"file not removed\n");
5622 ok(!
delete_pf(
"msitest\\ODBCtranslator.dll",
TRUE),
"file not removed\n");
5623 ok(!
delete_pf(
"msitest\\ODBCtranslator2.dll",
TRUE),
"file not removed\n");
5627 gotdriver = gotdriver2 = 0;
5630 ok(
r,
"SQLGetInstalledDrivers failed\n");
5633 if (!
strcmp(
p,
"ODBC test driver"))
5635 if (!
strcmp(
p,
"ODBC test driver2"))
5638 ok(!gotdriver,
"driver not installed\n");
5639 ok(!gotdriver2,
"driver 2 not installed\n");
5659 skip(
"process is limited\n");
5666 win_skip(
"broken on 64-bit Windows\n");
5679 skip(
"Not enough rights to perform tests\n");
5686 ITypeLib_Release(tlb);
5709 skip(
"process is limited\n");
5722 skip(
"Not enough rights to perform tests\n");
5727 ok(
pf_exists(
"msitest\\target.txt"),
"file not created\n");
5728 ok(
pf_exists(
"msitest\\shortcut.lnk"),
"file not created\n");
5745 static const char keypath[] =
5746 "Software\\Microsoft\\Installer\\Components\\0CBCFA296AC907244845745CEEB2F8AA";
5747 static const char keypath2[] =
5748 "Software\\Classes\\Installer\\Components\\0CBCFA296AC907244845745CEEB2F8AA";
5758 skip(
"process is limited\n");
5771 skip(
"Not enough rights to perform tests\n");
5807 if (pRegDeleteKeyExA)
5842 skip(
"process is limited\n");
5857 skip(
"Not enough rights to perform tests\n");
5862 ok(
pf_exists(
"msitest\\original.txt"),
"file not created\n");
5863 ok(
pf_exists(
"msitest\\original2.txt"),
"file not created\n");
5864 ok(!
pf_exists(
"msitest\\original3.txt"),
"file created\n");
5865 ok(
pf_exists(
"msitest\\duplicate.txt"),
"file not created\n");
5866 ok(!
pf_exists(
"msitest\\duplicate2.txt"),
"file created\n");
5875 ok(!
delete_pf(
"msitest\\duplicate2.txt",
TRUE),
"file not removed\n");
5892 skip(
"process is limited\n");
5905 skip(
"Not enough rights to perform tests\n");
5936 skip(
"process is limited\n");
5949 skip(
"Not enough rights to perform tests\n");
5965 ok(
len == 6,
"got %lu expected 6\n",
len);
5968 ok(!
len,
"got %lu expected 0\n",
len);
5974 ok(!
len,
"got %lu expected 0\n",
len);
5977 ok(!
len,
"got %lu expected 0\n",
len);
5997 skip(
"process is limited\n");
6010 skip(
"Not enough rights to perform tests\n");
6062 skip(
"process is limited\n");
6075 skip(
"Not enough rights to perform tests\n");
6114 skip(
"process is limited\n");
6132 skip(
"Not enough rights to perform tests\n");
6240 skip(
"process is limited\n");
6253 skip(
"Not enough rights to perform tests\n");
6280 "<assemblyIdentity type=\"win32\" name=\"Wine.Win32.Assembly\" "
6281 "version=\"1.0.0.0\" publicKeyToken=\"abcdef0123456789\" "
6282 "processorArchitecture=\"x86\"/>";
6283 static const char manifest_local[] =
6284 "<assemblyIdentity type=\"win32\" name=\"Wine.Win32.Local.Assembly\" "
6285 "version=\"1.0.0.0\" publicKeyToken=\"abcdef0123456789\" "
6286 "processorArchitecture=\"x86\"/>";
6287 static const char classes_path_dotnet[] =
6288 "Installer\\Assemblies\\Global";
6289 static const char classes_path_dotnet_local[] =
6290 "Installer\\Assemblies\\C:|Program Files|msitest|application_dotnet.txt";
6291 static const char classes_path_dotnet_local_wow64[] =
6292 "Installer\\Assemblies\\C:|Program Files (x86)|msitest|application_dotnet.txt";
6293 static const char classes_path_fake_local[] =
6294 "Installer\\Assemblies\\C:|Program Files|msitest|nonexistent.txt";
6295 static const char classes_path_fake_local_wow64[] =
6296 "Installer\\Assemblies\\C:|Program Files (x86)|msitest|nonexistent.txt";
6297 static const char classes_path_win32[] =
6298 "Installer\\Win32Assemblies\\Global";
6299 static const char classes_path_win32_local[] =
6300 "Installer\\Win32Assemblies\\C:|Program Files|msitest|application_win32.txt";
6301 static const char classes_path_win32_local_wow64[] =
6302 "Installer\\Win32Assemblies\\C:|Program Files (x86)|msitest|application_win32.txt";
6304 "Software\\Microsoft\\Installer\\Assemblies\\Global";
6305 static const char path_dotnet_local[] =
6306 "Software\\Microsoft\\Installer\\Assemblies\\C:|Program Files|msitest|application_dotnet.txt";
6307 static const char path_dotnet_local_wow64[] =
6308 "Software\\Microsoft\\Installer\\Assemblies\\C:|Program Files (x86)|msitest|application_dotnet.txt";
6309 static const char path_fake_local[] =
6310 "Software\\Microsoft\\Installer\\Assemblies\\C:|Program Files|msitest|nonexistent.txt";
6311 static const char path_fake_local_wow64[] =
6312 "Software\\Microsoft\\Installer\\Assemblies\\C:|Program Files (x86)|msitest|nonexistent.txt";
6313 static const char path_win32[] =
6314 "Software\\Microsoft\\Installer\\Win32Assemblies\\Global";
6315 static const char path_win32_local[] =
6316 "Software\\Microsoft\\Installer\\Win32Assemblies\\C:|Program Files|msitest|application_win32.txt";
6317 static const char path_win32_local_wow64[] =
6318 "Software\\Microsoft\\Installer\\Win32Assemblies\\C:|Program Files (x86)|msitest|application_win32.txt";
6320 "Wine.Dotnet.Assembly,processorArchitecture=\"MSIL\",publicKeyToken=\"abcdef0123456789\","
6321 "version=\"1.0.0.0\",culture=\"neutral\"";
6322 static const char name_dotnet_local[] =
6323 "Wine.Dotnet.Local.Assembly,processorArchitecture=\"MSIL\",publicKeyToken=\"abcdef0123456789\","
6324 "version=\"1.0.0.0\",culture=\"neutral\"";
6325 static const char name_win32[] =
6326 "Wine.Win32.Assembly,processorArchitecture=\"x86\",publicKeyToken=\"abcdef0123456789\","
6327 "type=\"win32\",version=\"1.0.0.0\"";
6328 static const char name_win32_local[] =
6329 "Wine.Win32.Local.Assembly,processorArchitecture=\"x86\",publicKeyToken=\"abcdef0123456789\","
6330 "type=\"win32\",version=\"1.0.0.0\"";
6339 skip(
"process is limited\n");
6350 create_file(
"msitest\\application_win32.txt", 1000);
6351 create_file(
"msitest\\application_dotnet.txt", 1000);
6360 skip(
"Not enough rights to perform tests\n");
6373 CHECK_REG_MULTI(hkey, name_dotnet_local,
"rcHQPHq?CA@Uv-XqMI1e>LF,8A?0d.AW@vcZ$Cgox\0");
6378 CHECK_REG_MULTI(hkey, name_win32,
"rcHQPHq?CA@Uv-XqMI1e>}NJjwR'%D9v1p!v{WV(%\0");
6384 CHECK_REG_MULTI(hkey, name_win32_local,
"rcHQPHq?CA@Uv-XqMI1e>C)Uvlj*53A)u(QQ9=)X!\0");
6426 trace(
"Using 64-bit registry view for HKCR\\Installer\n");
6437 CHECK_REG_MULTI(hkey, name_dotnet_local,
"rcHQPHq?CA@Uv-XqMI1e>LF,8A?0d.AW@vcZ$Cgox\0");
6442 CHECK_REG_MULTI(hkey, name_win32,
"rcHQPHq?CA@Uv-XqMI1e>}NJjwR'%D9v1p!v{WV(%\0");
6448 CHECK_REG_MULTI(hkey, name_win32_local,
"rcHQPHq?CA@Uv-XqMI1e>C)Uvlj*53A)u(QQ9=)X!\0");
6503 skip(
"process is limited\n");
6516 skip(
"Not enough rights to perform tests\n");
6543 if (pIsWow64Process)
6565 if (pSRSetRestorePointA && !pMsiGetComponentPathExA)
6615 if (pSRSetRestorePointA && !pMsiGetComponentPathExA &&
ret)
static char CURR_DIR[MAX_PATH]
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
void user(int argc, const char *argv[])
#define RegCloseKey(hKey)
static LPCWSTR LPCWSTR LPCWSTR env
LONG WINAPI RegCreateKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
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 RegCreateKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD Reserved, _In_ LPSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_ LPDWORD lpdwDisposition)
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
BOOL WINAPI ConvertSidToStringSidA(PSID Sid, LPSTR *StringSid)
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
static __inline const char * debugstr_an(const char *s, int n)
#define GetCurrentProcess()
#define ERROR_NO_MORE_ITEMS
#define ERROR_ACCESS_DENIED
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI RemoveDirectoryA(IN LPCSTR lpPathName)
BOOL WINAPI CreateDirectoryA(IN LPCSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
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)
BOOL WINAPI SetCurrentDirectoryA(IN LPCSTR lpPathName)
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
VOID WINAPI GetSystemInfo(IN LPSYSTEM_INFO lpSystemInfo)
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
INT WINAPI GetPrivateProfileStringA(LPCSTR section, LPCSTR entry, LPCSTR def_val, LPSTR buffer, UINT len, LPCSTR filename)
BOOL WINAPI DECLSPEC_HOTPATCH WritePrivateProfileStringA(LPCSTR section, LPCSTR entry, LPCSTR string, LPCSTR filename)
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)
INSTALLSTATE WINAPI MsiQueryProductStateA(LPCSTR szProduct)
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)
UINT WINAPI MsiQueryFeatureStateExA(LPCSTR product, LPCSTR usersid, MSIINSTALLCONTEXT ctx, LPCSTR feature, INSTALLSTATE *state)
INSTALLUILEVEL WINAPI MsiSetInternalUI(INSTALLUILEVEL dwUILevel, HWND *phWnd)
UINT WINAPI MsiProvideQualifiedComponentA(LPCSTR szComponent, LPCSTR szQualifier, DWORD dwInstallMode, LPSTR lpPathBuf, LPDWORD pcchPathBuf)
INSTALLSTATE WINAPI MsiQueryFeatureStateA(LPCSTR szProduct, LPCSTR szFeature)
UINT WINAPI MsiSourceListEnumSourcesA(const char *szProductCodeOrPatch, const char *szUserSid, MSIINSTALLCONTEXT dwContext, DWORD dwOptions, DWORD dwIndex, char *szSource, DWORD *pcchSource)
UINT WINAPI MsiSourceListGetInfoA(LPCSTR szProduct, LPCSTR szUserSid, MSIINSTALLCONTEXT dwContext, DWORD dwOptions, LPCSTR szProperty, LPSTR szValue, LPDWORD pcchValue)
HRESULT WINAPI LoadRegTypeLib(REFGUID rguid, WORD wVerMajor, WORD wVerMinor, LCID lcid, ITypeLib **ppTLib)
GLuint GLuint GLsizei GLenum type
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
GLsizeiptr const GLvoid GLenum usage
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
HLOCAL NTAPI LocalFree(HLOCAL hMem)
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define ERROR_FILE_NOT_FOUND
#define sprintf(buf, format,...)
static void create_cab_file(void)
static BOOL is_process_limited(void)
static void create_file_data(LPCSTR name, LPCSTR data, DWORD size)
#define create_file(name, size)
static HINSTANCE hkernel32
#define CHECK_REG_DWORD_TODO(prodkey, name, expected)
static const msi_table rd_tables[]
static const char rem_feature_comp_dat[]
static const char mov_install_exec_seq_dat[]
static const char odbc_feature_dat[]
static const msi_table rci_tables[]
static void remove_restore_point(DWORD seq_number)
static const char file_dat[]
static void test_remove_duplicate_files(void)
static const char pa_install_exec_seq_dat[]
static const char sis_install_exec_seq_dat[]
static const char rof_media_dat[]
static const char env_environment_dat[]
static void test_register_product(void)
static const char frp_custom_action_dat[]
static const char rof_feature_dat[]
static const char rci_custom_action_dat[]
static const char pa_feature_comp_dat[]
static const char rmi_mime_dat[]
static const char rep_install_exec_seq_dat[]
static BOOL notify_system_change(DWORD event_type, STATEMGRSTATUS *status)
static const char sss_service_control_dat[]
static const char frp_install_exec_seq_dat[]
static void test_register_font(void)
static const char pub_install_exec_seq_dat[]
static const char service_install2_dat[]
static const char ini_feature_comp_dat[]
static INSTALLSTATE *static LPSTR
static void test_delete_services(void)
static const char cf_file_dat[]
static void delete_test_service(const char *name)
static const char cwd_component_dat[]
static void test_publish_features(void)
static void delete_test_files(void)
static const char rem_install_exec_seq_dat[]
static const msi_table sds_tables[]
static char * get_user_sid(void)
static const char ppc_component_dat[]
static const char sr_feature_comp_dat[]
static const char pp_install_exec_seq_dat[]
static const char rei_progid_dat[]
static void test_publish_product(void)
static const char odbc_driver_dat[]
static const char wrv_feature_comp_dat[]
static const msi_table rem_tables[]
static const char rmi_extension_dat[]
static const char rpi_custom_action_dat[]
static const msi_table sis_tables[]
static const char sr_file_dat[]
static void check_reg_multi(HKEY prodkey, const char *name, const char *expect, DWORD line)
static const char media_dat[]
static const char df_directory_dat[]
static void test_envvar(void)
static const char ini_file_dat[]
static const char ci2_file_dat[]
static const char font_feature_dat[]
static const char ini_remove_ini_file_dat[]
static const msi_table rmi_tables[]
static INSTALLSTATE *static REGSAM
static void test_remove_existing_products(void)
static const char crs_component_dat[]
static const char rei_feature_dat[]
static const char rd_file_dat[]
static const char rem_remove_files_dat[]
static const char ini_feature_dat[]
#define CHECK_REG_ISTR(prodkey, name, expected)
static const char sr_selfreg_dat[]
static const msi_table sr_tables[]
static const char odbc_component_dat[]
static const char rof_component_dat[]
static const msi_table cf_tables[]
static const msi_table tl_tables[]
static const char font_component_dat[]
static const char sr_feature_dat[]
static const msi_table pub_tables[]
static const char font_media_dat[]
static const char font_feature_comp_dat[]
static const char rep_file_dat[]
static const char sis_custom_action_dat[]
static const char pub_feature_dat[]
static const char odbc_translator_dat[]
static const char ppc_feature_comp_dat[]
static const char ppc_file_dat[]
static const char cf_component_dat[]
static const char pa_custom_action_dat[]
static const char ci2_feature_comp_dat[]
static const char odbc_file_dat[]
static const char cf_create_folders_dat[]
#define CHECK_REG_MULTI(key, name, expect)
static const char property_dat[]
static const char rd_component_dat[]
static const char rci_feature_dat[]
static const char ini_component_dat[]
static const char rpi_extension_dat[]
static void test_ini_values(void)
static const char rei_feature_comp_dat[]
static void test_publish_assemblies(void)
#define CHECK_REG_STR(prodkey, name, expected)
static const char sss_custom_action_dat[]
static const char pub_publish_component_dat[]
#define CHECK_DEL_REG_DWORD_TODO(prodkey, name, expected)
#define CHECK_DEL_REG_ISTR(prodkey, name, expected)
static const char rpi_feature_comp_dat[]
static const msi_table mov_tables[]
static const msi_table vp_tables[]
static const char vp_property_dat[]
static void test_find_related_products(void)
static void test_register_mime_info(void)
static const char rci_install_exec_seq_dat[]
static const char rep_feature_dat[]
static const char pub_component_dat[]
static const msi_table frp_tables[]
static const char cf_install_exec_seq_dat[]
static const char rci_file_dat[]
static const msi_table rpi_tables[]
static const char rep_component_dat[]
static const char rci_class_dat[]
static const char cf_feature_dat[]
static const char crs_feature_comp_dat[]
static void create_test_files(void)
static void test_install_remove_odbc(void)
static const char rci_appid_dat[]
static const char pub_file_dat[]
static void check_reg_dword(HKEY prodkey, LPCSTR name, DWORD expected, BOOL todo, DWORD line)
static void init_functionpointers(void)
static void test_create_remove_folder(void)
static const char crs_custom_action_dat[]
static const msi_table font_tables[]
static void test_start_stop_services(void)
static const char mov_move_file_dat[]
static const char rep_property_dat[]
static const msi_table env_tables[]
static const char pa_file_dat[]
static const char rem_component_dat[]
static const char rei_custom_action_dat[]
static const char rmi_verb_dat[]
static const char rci_component_dat[]
static const char rmi_component_dat[]
static const char sds_install_exec_seq_dat[]
static const char frp_feature_dat[]
static const char pa_component_dat[]
static const msi_table wrv_tables[]
static const char wrv_component_dat[]
static const char env_custom_action_dat[]
#define CHECK_REG_DWORD(prodkey, name, expected)
static const char odbc_media_dat[]
static LPSTR reg_get_val_str(HKEY hkey, LPCSTR name)
static const char tl_install_exec_seq_dat[]
static void test_publish(void)
static const char odbc_custom_action_dat[]
static const char ini_install_exec_seq_dat[]
static const char * msifile
static const char rpi_class_dat[]
static const msi_table df_tables[]
static const char pub_feature_comp_dat[]
static const msi_table sss_tables[]
static void test_duplicate_files(void)
static const char feature_dat[]
static const char vp_custom_action_dat[]
static const char rei_install_exec_seq_dat[]
static const char wrv_registry_dat[]
static const char odbc_feature_comp_dat[]
static const char rmi_feature_dat[]
static void extract_resource(const char *name, const char *type, const char *path)
static const char font_install_exec_seq_dat[]
static const char rei_file_dat[]
static const msi_table pa_tables[]
static const char rd_duplicate_file_dat[]
static const char frp_component_dat[]
static const char sr_install_exec_seq_dat[]
static const char rd_install_exec_seq_dat[]
static void test_register_user(void)
static void test_write_registry_values(void)
static const char crs_shortcut_dat[]
static const char pa_msi_assembly_name_dat[]
static const char cf_feature_comp_dat[]
static const char rpi_progid_dat[]
static void test_remove_files(void)
static const char rpi_appid_dat[]
static const char ini_ini_file_dat[]
static const char rd_feature_comp_dat[]
static const msi_table odbc_tables[]
static const char tl_file_dat[]
static const msi_table rei_tables[]
static const char frp_upgrade_dat[]
static const char pp_custom_action_dat[]
static const char rem_file_dat[]
static const char cf_custom_action_dat[]
static const char wrv_install_exec_seq_dat[]
static const char tl_component_dat[]
static const char pub_custom_action_dat[]
static const char rmi_feature_comp_dat[]
static const char cf_directory_dat[]
static const msi_table pp_tables[]
static void get_owner_company(LPSTR *owner, LPSTR *company)
static const char rep_feature_comp_dat[]
static const char crs_install_exec_seq_dat[]
static const char rd_feature_dat[]
static const char crs_feature_dat[]
static const char install_exec_seq_dat[]
static const char frp_feature_comp_dat[]
static const msi_table crs_tables[]
static void test_create_remove_shortcut(void)
static const char rpi_install_exec_seq_dat[]
static const char sr_component_dat[]
static INSTALLSTATE *static LPDWORD
static const char directory_dat[]
static DWORD get_estimated_size(void)
static const char sds_custom_action_dat[]
static const char ppc_media_dat[]
static const char tl_typelib_dat[]
static const char mov_custom_action_dat[]
static void test_publish_components(void)
static const char rei_verb_dat[]
static const char pa_msi_assembly_dat[]
static const char service_install_dat[]
static const char df_duplicate_file_dat[]
static const char font_dat[]
static const char sss_install_exec_seq_dat[]
static const char odbc_install_exec_seq_dat[]
static const char pa_feature_dat[]
static const char font_custom_action_dat[]
static const char rei_component_dat[]
static void test_process_components(void)
static const char env_install_exec_seq_dat[]
static const char service_control_dat[]
static void check_reg_str(HKEY prodkey, LPCSTR name, LPCSTR expected, BOOL bcase, BOOL todo, DWORD line)
static const char rpi_component_dat[]
static const msi_table ini_tables[]
static const char rmi_install_exec_seq_dat[]
#define CHECK_DEL_REG_STR_TODO(prodkey, name, expected)
static void test_install_services(void)
static const char rof_feature_comp_dat[]
static const char wrv_remove_registry_dat[]
static const char rep_upgrade_dat[]
static const char font_file_dat[]
static const char rpi_feature_dat[]
static const char crs_file_dat[]
static const char component_dat[]
static void test_register_class_info(void)
static const char rmi_custom_action_dat[]
static void test_move_files(void)
static const char vp_install_exec_seq_dat[]
static const char sr_custom_action_dat[]
static const msi_table ppc_tables[]
static const char wrv_custom_action_dat[]
static void test_validate_product_id(void)
static const char rpi_verb_dat[]
static const char tl_custom_action_dat[]
#define GET_PROC(mod, func)
static const char feature_comp_dat[]
static void test_publish_sourcelist(void)
static const char tl_feature_dat[]
static void test_self_registration(void)
static const char rpi_file_dat[]
#define CHECK_DEL_REG_STR(prodkey, name, expected)
static const char rd_custom_action_dat[]
static const char wrv_feature_dat[]
#define CHECK_DEL_REG_MULTI(key, name, expect)
static const char rmi_file_dat[]
static const char odbc_datasource_dat[]
static void test_register_extension_info(void)
static const char pp_component_dat[]
static const msi_table rep_tables[]
static const char tl_feature_comp_dat[]
static void test_register_typelib(void)
static const char frp_file_dat[]
static void delete_pfmsitest_files(void)
static void get_date_str(LPSTR date)
static void test_register_progid_info(void)
static const char ini_custom_action_dat[]
static const char rei_extension_dat[]
static const char rof_file_dat[]
static const char rci_feature_comp_dat[]
#define CHECK_DEL_REG_DWORD(prodkey, name, expected)
static char PROG_FILES_DIR[MAX_PATH]
static BOOL delete_pf(const CHAR *rel_path, BOOL is_file)
static const GUID LIBID_register_test
static BOOL pf_exists(const char *file)
#define todo_wine_if(is_todo)
static const char name_dotnet[]
static const char path_dotnet[]
#define create_pf(file, is_file)
BOOL get_system_dirs(void)
#define create_database(name, tables, num_tables)
#define create_database_template(name, tables, num_tables, version, template)
INTERNETFEATURELIST feature
#define INSTALLPROPERTY_LASTUSEDTYPEA
#define INSTALLPROPERTY_MEDIAPACKAGEPATHA
#define INSTALLPROPERTY_LASTUSEDSOURCEA
@ INSTALLLOGMODE_FATALEXIT
#define INSTALLPROPERTY_DISKPROMPTA
@ MSIINSTALLCONTEXT_MACHINE
@ MSIINSTALLCONTEXT_USERUNMANAGED
@ MSIINSTALLCONTEXT_USERMANAGED
#define INSTALLPROPERTY_PACKAGENAMEA
static const BOOL is_64bit
#define REG_OPTION_NON_VOLATILE
#define delete_key(r, p, s)
BOOL WINAPI DeleteService(SC_HANDLE hService)
BOOL WINAPI StartServiceA(SC_HANDLE hService, DWORD dwNumServiceArgs, LPCSTR *lpServiceArgVectors)
BOOL WINAPI ControlService(SC_HANDLE hService, DWORD dwControl, LPSERVICE_STATUS lpServiceStatus)
SC_HANDLE WINAPI OpenServiceA(SC_HANDLE hSCManager, LPCSTR lpServiceName, DWORD dwDesiredAccess)
SC_HANDLE WINAPI CreateServiceA(SC_HANDLE hSCManager, LPCSTR lpServiceName, LPCSTR lpDisplayName, DWORD dwDesiredAccess, DWORD dwServiceType, DWORD dwStartType, DWORD dwErrorControl, LPCSTR lpBinaryPathName, LPCSTR lpLoadOrderGroup, LPDWORD lpdwTagId, LPCSTR lpDependencies, LPCSTR lpServiceStartName, LPCSTR lpPassword)
SC_HANDLE WINAPI OpenSCManagerA(LPCSTR lpMachineName, LPCSTR lpDatabaseName, DWORD dwDesiredAccess)
BOOL WINAPI CloseServiceHandle(SC_HANDLE hSCObject)
const char * winetest_platform
BOOL WINAPI SRSetRestorePointA(PRESTOREPOINTINFOA pRestorePtSpec, PSTATEMGRSTATUS pSMgrStatus)
#define FOF_NOCONFIRMATION
int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp)
DWORD WINAPI SRRemoveRestorePoint(DWORD dwNumber)
#define APPLICATION_INSTALL
#define BEGIN_NESTED_SYSTEM_CHANGE
#define END_NESTED_SYSTEM_CHANGE
CHAR szDescription[MAX_DESC]
static const CHAR manifest[]
static const WCHAR props[]
BOOL WINAPI SQLGetInstalledDrivers(char *buf, WORD size, WORD *sizeout)
DWORD WINAPI GetLastError(void)
#define ERROR_UNKNOWN_PRODUCT
#define ERROR_INSTALL_FAILURE
#define ERROR_SERVICE_ALREADY_RUNNING
#define ERROR_INSTALL_PACKAGE_REJECTED
#define ERROR_UNKNOWN_COMPONENT
#define ERROR_SERVICE_DOES_NOT_EXIST
#define TYPE_E_LIBNOTREGISTERED
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
#define HKEY_CLASSES_ROOT
#define SERVICE_ALL_ACCESS
#define SERVICE_CONTROL_STOP
#define SC_MANAGER_ALL_ACCESS
#define MAKEINTRESOURCEA(i)
#define SERVICE_DEMAND_START
#define SERVICE_WIN32_OWN_PROCESS
#define SERVICE_ERROR_NORMAL