48static const char *
msifile =
"msitest.msi";
53 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
54 "s72\tS38\ts72\ti2\tS255\tS72\n"
55 "Component\tComponent\n"
56 "Five\t{8CC92E9D-14B2-4CA4-B2AA-B11D02078087}\tNEWDIR\t2\t\tfive.txt\n"
57 "Four\t{FD37B4EA-7209-45C0-8917-535F35A2F080}\tCABOUTDIR\t2\t\tfour.txt\n"
58 "One\t{783B242E-E185-4A56-AF86-C09815EC053C}\tMSITESTDIR\t2\tNOT REINSTALL\tone.txt\n"
59 "Three\t{010B6ADD-B27D-4EDD-9B3D-34C4F7D61684}\tCHANGEDDIR\t2\t\tthree.txt\n"
60 "Two\t{BF03D1A6-20DA-4A65-82F3-6CAC995915CE}\tFIRSTDIR\t2\t\ttwo.txt\n"
61 "dangler\t{6091DF25-EF96-45F1-B8E9-A9B1420C7A3C}\tTARGETDIR\t4\t\tregdata\n"
62 "component\t\tMSITESTDIR\t0\t1\tfile\n"
63 "service_comp\t{935A0A91-22A3-4F87-BCA8-928FFDFE2353}\tMSITESTDIR\t0\t\tservice_file\n"
64 "service_comp2\t{3F7B04A4-9521-4649-BDC9-0C8722740A49}\tMSITESTDIR\t0\t\tservice_file2\n"
65 "service_comp3\t{DBCD1502-20E3-423F-B53E-F37E263CDC7E}\tMSITESTDIR\t0\t\t\n";
68 "Directory\tDirectory_Parent\tDefaultDir\n"
70 "Directory\tDirectory\n"
71 "CABOUTDIR\tMSITESTDIR\tcabout\n"
72 "CHANGEDDIR\tMSITESTDIR\tchanged:second\n"
73 "FIRSTDIR\tMSITESTDIR\tfirst\n"
74 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
75 "NEWDIR\tCABOUTDIR\tnew\n"
76 "ProgramFilesFolder\tTARGETDIR\t.\n"
77 "TARGETDIR\t\tSourceDir";
80 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
81 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
83 "Five\t\tFive\tThe Five Feature\t5\t3\tNEWDIR\t0\n"
84 "Four\t\tFour\tThe Four Feature\t4\t3\tCABOUTDIR\t0\n"
85 "One\t\tOne\tThe One Feature\t1\t3\tMSITESTDIR\t0\n"
86 "Three\t\tThree\tThe Three Feature\t3\t3\tCHANGEDDIR\t0\n"
87 "Two\t\tTwo\tThe Two Feature\t2\t3\tFIRSTDIR\t0\n"
88 "feature\t\t\t\t2\t1\tTARGETDIR\t0\n"
89 "service_feature\t\t\t\t2\t1\tTARGETDIR\t0";
92 "Feature_\tComponent_\n"
94 "FeatureComponents\tFeature_\tComponent_\n"
100 "feature\tcomponent\n"
101 "service_feature\tservice_comp\n"
102 "service_feature\tservice_comp2\n"
103 "service_feature\tservice_comp3";
106 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
107 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
109 "five.txt\tFive\tfive.txt\t1000\t\t\t16384\t5\n"
110 "four.txt\tFour\tfour.txt\t1000\t\t\t16384\t4\n"
111 "one.txt\tOne\tone.txt\t1000\t\t\t0\t1\n"
112 "three.txt\tThree\tthree.txt\t1000\t\t\t0\t3\n"
113 "two.txt\tTwo\ttwo.txt\t1000\t\t\t0\t2\n"
114 "file\tcomponent\tfilename\t100\t\t\t8192\t1\n"
115 "service_file\tservice_comp\tservice.exe\t100\t\t\t8192\t6\n"
116 "service_file2\tservice_comp2\tservice2.exe\t100\t\t\t8192\t7";
119 "Action\tCondition\tSequence\n"
121 "InstallExecuteSequence\tAction\n"
122 "AllocateRegistrySpace\tNOT Installed\t1550\n"
123 "CostFinalize\t\t1000\n"
124 "CostInitialize\t\t800\n"
126 "ResolveSource\t\t950\n"
127 "MoveFiles\t\t1700\n"
128 "InstallFiles\t\t4000\n"
129 "DuplicateFiles\t\t4500\n"
130 "CreateShortcuts\t\t4600\n"
131 "InstallServices\t\t5000\n"
132 "InstallFinalize\t\t6600\n"
133 "InstallInitialize\t\t1500\n"
134 "InstallValidate\t\t1400\n"
135 "LaunchConditions\t\t100\n"
136 "WriteRegistryValues\tSourceDir And SOURCEDIR\t5000";
139 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
140 "i2\ti4\tL64\tS255\tS32\tS72\n"
142 "1\t3\t\t\tDISK1\t\n"
143 "2\t7\t\tmsitest.cab\tDISK2\t\n";
148 "Property\tProperty\n"
149 "DefaultUIFont\tDlgFont8\n"
152 "InstallMode\tTypical\n"
153 "Manufacturer\tWine\n"
154 "PIDTemplate\t12345<###-%%%%%%%>@@@@@\n"
155 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
157 "ProductLanguage\t1033\n"
158 "ProductName\tMSITEST\n"
159 "ProductVersion\t1.1.1\n"
160 "PROMPTROLLBACKCOST\tP\n"
162 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
163 "AdminProperties\tPOSTADMIN\n"
165 "SERVNAME\tTestService\n"
166 "SERVNAME2\tTestService2\n"
167 "SERVDISP\tTestServiceDisp\n"
168 "SERVDISP2\tTestServiceDisp2\n"
169 "MSIFASTINSTALL\t1\n"
174 "Action\tCondition\tSequence\n"
176 "InstallExecuteSequence\tAction\n"
177 "CostInitialize\t\t100\n"
179 "CostFinalize\t\t300\n"
180 "InstallValidate\t\t400\n"
181 "InstallInitialize\t\t500\n"
182 "ProcessComponents\t\t600\n"
183 "WriteEnvironmentStrings\t\t700\n"
184 "wes_immediate\tNOT REMOVE\t701\n"
185 "wes_deferred\tNOT REMOVE\t702\n"
186 "RemoveEnvironmentStrings\t\t800\n"
187 "res_immediate\tREMOVE\t801\n"
188 "res_deferred\tREMOVE\t802\n"
189 "RegisterProduct\t\t900\n"
190 "PublishFeatures\t\t1000\n"
191 "PublishProduct\t\t1100\n"
192 "UnpublishFeatures\t\t1150\n"
193 "InstallFinalize\t\t1200\n";
196 "Action\tType\tSource\tTarget\n"
198 "CustomAction\tAction\n"
199 "wes_immediate\t1\tcustom.dll\tenv_absent\n"
200 "wes_deferred\t1025\tcustom.dll\tenv_present\n"
201 "res_immediate\t1\tcustom.dll\tenv_present\n"
202 "res_deferred\t1025\tcustom.dll\tenv_absent\n";
205 "Environment\tName\tValue\tComponent_\n"
206 "s72\tl255\tL255\ts72\n"
207 "Environment\tEnvironment\n"
208 "Var1\t=-MSITESTVAR1\t1\tOne\n"
209 "Var2\tMSITESTVAR2\t1\tOne\n"
210 "Var3\t=-MSITESTVAR3\t1\tOne\n"
211 "Var4\tMSITESTVAR4\t1\tOne\n"
212 "Var5\t-MSITESTVAR5\t\tOne\n"
213 "Var6\tMSITESTVAR6\t\tOne\n"
214 "Var7\t!-MSITESTVAR7\t\tOne\n"
215 "Var8\t!-*MSITESTVAR8\t\tOne\n"
216 "Var9\t=-MSITESTVAR9\t\tOne\n"
217 "Var10\t=MSITESTVAR10\t\tOne\n"
218 "Var11\t+-MSITESTVAR11\t[~];1\tOne\n"
219 "Var12\t+-MSITESTVAR11\t[~];2\tOne\n"
220 "Var13\t+-MSITESTVAR12\t[~];1\tOne\n"
221 "Var14\t=MSITESTVAR13\t[~];1\tOne\n"
222 "Var15\t=MSITESTVAR13\t[~];2\tOne\n"
223 "Var16\t=MSITESTVAR14\t;1;\tOne\n"
224 "Var17\t=MSITESTVAR15\t;;1;;\tOne\n"
225 "Var18\t=MSITESTVAR16\t 1 \tOne\n"
226 "Var19\t+-MSITESTVAR17\t1\tOne\n"
227 "Var20\t+-MSITESTVAR17\t;;2;;[~]\tOne\n"
228 "Var21\t+-MSITESTVAR18\t1\tOne\n"
229 "Var22\t+-MSITESTVAR18\t[~];;2;;\tOne\n"
230 "Var23\t+-MSITESTVAR19\t1\tOne\n"
231 "Var24\t+-MSITESTVAR19\t[~]2\tOne\n"
232 "Var25\t+-MSITESTVAR20\t1\tOne\n"
233 "Var26\t+-MSITESTVAR20\t2[~]\tOne\n"
234 "Var27\t+-MSITESTVAR21\t[~];1\tOne\n"
235 "Var28\t-MSITESTVAR22\t1\tOne\n"
236 "Var29\t-MSITESTVAR23\t2\tOne\n"
237 "Var30\t*MSITESTVAR100\t1\tOne\n"
238 "Var31\t-=MSITESTVAR24\t[SERVNAME]\tOne\n"
239 "Var32\t-=MSITESTVAR25\t[bogus_prop]\tOne\n";
242 "ServiceInstall\tName\tDisplayName\tServiceType\tStartType\tErrorControl\t"
243 "LoadOrderGroup\tDependencies\tStartName\tPassword\tArguments\tComponent_\tDescription\n"
244 "s72\ts255\tL255\ti4\ti4\ti4\tS255\tS255\tS255\tS255\tS255\ts72\tL255\n"
245 "ServiceInstall\tServiceInstall\n"
246 "TestService\t[SERVNAME]\t[SERVDISP]\t2\t3\t0\t\tservice1[~]+group1[~]service2[~]+group2[~][~]\tTestService\t\t-a arg\tservice_comp\tdescription\n"
247 "TestService2\t[SERVNAME2]\t[SERVDISP2]\t2\t3\t0\t\tservice1[~]+group1[~]service2[~]+group2[~][~]\tTestService2\t\t-a arg\tservice_comp2\tdescription\n";
250 "ServiceInstall\tName\tDisplayName\tServiceType\tStartType\tErrorControl\t"
251 "LoadOrderGroup\tDependencies\tStartName\tPassword\tArguments\tComponent_\tDescription\n"
252 "s72\ts255\tL255\ti4\ti4\ti4\tS255\tS255\tS255\tS255\tS255\ts72\tL255\n"
253 "ServiceInstall\tServiceInstall\n"
254 "TestService\tTestService\tTestService\t2\t3\t32768\t\t\tTestService\t\t\tservice_comp\t\n"
255 "TestService4\tTestService4\tTestService4\t2\t3\t0\t\t\tTestService4\t\t\tservice_comp3\t\n";
258 "ServiceControl\tName\tEvent\tArguments\tWait\tComponent_\n"
259 "s72\tl255\ti2\tL255\tI2\ts72\n"
260 "ServiceControl\tServiceControl\n"
261 "ServiceControl\tTestService3\t8\t\t0\tservice_comp\n"
262 "ServiceControl2\tTestService3\t128\t\t0\tservice_comp2";
265 "ServiceControl\tName\tEvent\tArguments\tWait\tComponent_\n"
266 "s72\tl255\ti2\tL255\tI2\ts72\n"
267 "ServiceControl\tServiceControl\n"
268 "ServiceControl\tSpooler\t1\t\t1\tservice_comp\n"
269 "ServiceControl2\tSpooler\t2\t\t1\tservice_comp\n"
270 "ServiceControl3\tSpooler\t16\t\t1\tservice_comp\n"
271 "ServiceControl4\tSpooler\t32\t\t1\tservice_comp\n";
274 "Action\tCondition\tSequence\n"
276 "InstallExecuteSequence\tAction\n"
277 "LaunchConditions\t\t100\n"
278 "CostInitialize\t\t800\n"
280 "ResolveSource\t\t950\n"
281 "CostFinalize\t\t1000\n"
282 "InstallValidate\t\t1400\n"
283 "InstallInitialize\t\t1500\n"
284 "StopServices\t\t4000\n"
285 "stop_immediate\tNOT REMOVE\t4001\n"
286 "stop_deferred\tNOT REMOVE\t4002\n"
287 "DeleteServices\t\t5000\n"
288 "MoveFiles\t\t5100\n"
289 "InstallFiles\t\t5200\n"
290 "DuplicateFiles\t\t5300\n"
291 "StartServices\t\t5400\n"
292 "start_deferred\tNOT REMOVE\t5401\n"
293 "RegisterProduct\t\t5500\n"
294 "PublishFeatures\t\t5600\n"
295 "PublishProduct\t\t5700\n"
296 "UnpublishFeatures\t\t5800\n"
297 "InstallFinalize\t\t6000\n";
300 "Action\tType\tSource\tTarget\n"
302 "CustomAction\tAction\n"
303 "stop_immediate\t1\tcustom.dll\tsss_started\n"
304 "stop_deferred\t1025\tcustom.dll\tsss_stopped\n"
305 "start_deferred\t1025\tcustom.dll\tsss_started\n";
308 "Action\tCondition\tSequence\n"
310 "InstallExecuteSequence\tAction\n"
311 "LaunchConditions\t\t100\n"
312 "CostInitialize\t\t800\n"
314 "ResolveSource\t\t950\n"
315 "CostFinalize\t\t1000\n"
316 "InstallValidate\t\t1400\n"
317 "InstallInitialize\t\t1500\n"
318 "StopServices\t\t5000\n"
319 "DeleteServices\t\t5050\n"
320 "sds_immediate\tNOT REMOVE\t5051\n"
321 "sds_deferred\tNOT REMOVE\t5052\n"
322 "MoveFiles\t\t5100\n"
323 "InstallFiles\t\t5200\n"
324 "DuplicateFiles\t\t5300\n"
325 "InstallServices\t\t5400\n"
326 "StartServices\t\t5450\n"
327 "RegisterProduct\t\t5500\n"
328 "PublishFeatures\t\t5600\n"
329 "PublishProduct\t\t5700\n"
330 "UnpublishFeatures\t\t5800\n"
331 "InstallFinalize\t\t6000\n";
334 "Action\tType\tSource\tTarget\n"
336 "CustomAction\tAction\n"
337 "sds_immediate\t1\tcustom.dll\tsds_present\n"
338 "sds_deferred\t1025\tcustom.dll\tsds_absent\n";
341 "Action\tCondition\tSequence\n"
343 "InstallExecuteSequence\tAction\n"
344 "CostInitialize\t\t800\n"
346 "CostFinalize\t\t1000\n"
347 "InstallValidate\t\t1400\n"
348 "InstallInitialize\t\t1500\n"
349 "StopServices\t\t5000\n"
350 "DeleteServices\t\t5050\n"
351 "InstallFiles\t\t5200\n"
352 "InstallServices\t\t5400\n"
353 "sis_immediate\tNOT REMOVE\t5401\n"
354 "sis_deferred\tNOT REMOVE\t5402\n"
355 "StartServices\t\t5450\n"
356 "RegisterProduct\t\t5500\n"
357 "PublishFeatures\t\t5600\n"
358 "PublishProduct\t\t5700\n"
359 "UnpublishFeatures\t\t5800\n"
360 "InstallFinalize\t\t6000\n";
363 "Action\tType\tSource\tTarget\n"
365 "CustomAction\tAction\n"
366 "sis_immediate\t1\tcustom.dll\tsis_absent\n"
367 "sis_deferred\t1025\tcustom.dll\tsis_present\n";
370 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
371 "s72\tS38\ts72\ti2\tS255\tS72\n"
372 "Component\tComponent\n"
373 "maximus\t\tMSITESTDIR\t0\t1\tmaximus\n";
376 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
377 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
379 "feature\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0\n"
380 "montecristo\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0";
383 "Feature_\tComponent_\n"
385 "FeatureComponents\tFeature_\tComponent_\n"
387 "montecristo\tmaximus";
390 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
391 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
393 "maximus\tmaximus\tmaximus\t500\t\t\t8192\t1";
396 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
397 "i2\ti4\tL64\tS255\tS32\tS72\n"
399 "1\t1\t\t\tDISK1\t\n";
402 "Feature_\tComponent_\n"
404 "FeatureComponents\tFeature_\tComponent_\n"
408 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
409 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
411 "augustus\taugustus\taugustus\t500\t\t\t8192\t1";
414 "Action\tCondition\tSequence\n"
416 "InstallExecuteSequence\tAction\n"
417 "ValidateProductID\t\t700\n"
418 "CostInitialize\t\t800\n"
420 "CostFinalize\t\t1000\n"
421 "InstallValidate\t\t1400\n"
422 "InstallInitialize\t\t1500\n"
423 "ProcessComponents\tPROCESS_COMPONENTS=1 Or FULL=1\t1600\n"
424 "ppc_immediate\tPROCESS_COMPONENTS AND ALLUSERS\t1601\n"
425 "ppc_deferred\tPROCESS_COMPONENTS AND ALLUSERS\t1602\n"
426 "UnpublishFeatures\tUNPUBLISH_FEATURES=1 Or FULL=1\t1800\n"
427 "uf_immediate\tUNPUBLISH_FEATURES AND ALLUSERS\t1801\n"
428 "uf_deferred\tUNPUBLISH_FEATURES AND ALLUSERS\t1802\n"
429 "RemoveFiles\t\t3500\n"
430 "InstallFiles\t\t4000\n"
431 "RegisterUser\tREGISTER_USER=1 Or FULL=1\t6000\n"
432 "ru_immediate\tREGISTER_USER AND ALLUSERS\t6001\n"
433 "ru_deferred\tREGISTER_USER AND ALLUSERS\t6002\n"
434 "RegisterProduct\tREGISTER_PRODUCT=1 Or FULL=1\t6100\n"
435 "rp_immediate\tREGISTER_PRODUCT AND ALLUSERS AND NOT RP_TEST64\t6101\n"
436 "rp_deferred\tREGISTER_PRODUCT AND ALLUSERS AND NOT RP_TEST64\t6102\n"
437 "PublishFeatures\tPUBLISH_FEATURES=1 Or FULL=1\t6300\n"
438 "pf_immediate\tPUBLISH_FEATURES AND ALLUSERS\t6301\n"
439 "pf_deferred\tPUBLISH_FEATURES AND ALLUSERS\t6302\n"
440 "PublishProduct\tPUBLISH_PRODUCT=1 Or FULL=1\t6400\n"
441 "pp_immediate\tPUBLISH_PRODUCT AND ALLUSERS\t6401\n"
442 "pp_deferred\tPUBLISH_PRODUCT AND ALLUSERS\t6402\n"
443 "InstallFinalize\t\t6600";
446 "Action\tType\tSource\tTarget\n"
448 "CustomAction\tAction\n"
449 "pf_immediate\t1\tcustom.dll\tpf_absent\n"
450 "pf_deferred\t1025\tcustom.dll\tpf_present\n"
451 "uf_immediate\t1\tcustom.dll\tpf_present\n"
452 "uf_deferred\t1025\tcustom.dll\tpf_absent\n"
453 "pp_immediate\t1\tcustom.dll\tpp_absent\n"
454 "pp_deferred\t1025\tcustom.dll\tpp_present\n"
455 "rp_immediate\t1\tcustom.dll\trp_absent\n"
456 "rp_deferred\t1025\tcustom.dll\trp_present\n"
457 "ru_immediate\t1\tcustom.dll\tru_absent\n"
458 "ru_deferred\t1025\tcustom.dll\tru_present\n"
459 "ppc_immediate\t1\tcustom.dll\tppc_absent\n"
460 "ppc_deferred\t1025\tcustom.dll\tppc_present\n";
463 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
464 "s72\tS38\ts72\ti2\tS255\tS72\n"
465 "Component\tComponent\n"
466 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\t\tmaximus\n";
469 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
470 "s72\tS38\ts72\ti2\tS255\tS72\n"
471 "Component\tComponent\n"
472 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\t\tmaximus\n"
473 "augustus\t{5AD3C142-CEF8-490D-B569-784D80670685}\tMSITESTDIR\t1\t\taugustus\n";
476 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
477 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
479 "maximus\tmaximus\tmaximus\t500\t\t\t8192\t1\n"
480 "augustus\taugustus\taugustus\t500\t\t\t8192\t2";
483 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
484 "i2\ti4\tL64\tS255\tS32\tS72\n"
486 "1\t2\t\t\tDISK1\t\n";
489 "Feature_\tComponent_\n"
491 "FeatureComponents\tFeature_\tComponent_\n"
493 "feature\taugustus\n"
494 "montecristo\tmaximus";
497 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
498 "s72\tS38\ts72\ti2\tS255\tS72\n"
499 "Component\tComponent\n"
500 "augustus\t\tMSITESTDIR\t0\t\taugustus\n";
503 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
504 "s72\tS38\ts72\ti2\tS255\tS72\n"
505 "Component\tComponent\n"
506 "hydrogen\t{C844BD1E-1907-4C00-8BC9-150BD70DF0A1}\tMSITESTDIR\t0\t\thydrogen\n"
507 "helium\t{5AD3C142-CEF8-490D-B569-784D80670685}\tMSITESTDIR\t1\t\thelium\n"
508 "lithium\t\tMSITESTDIR\t2\t\tlithium\n";
511 "Feature_\tComponent_\n"
513 "FeatureComponents\tFeature_\tComponent_\n"
514 "feature\thydrogen\n"
519 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
520 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
522 "hydrogen\thydrogen\thydrogen\t0\t\t\t8192\t1\n"
523 "helium\thelium\thelium\t0\t\t\t8192\t1\n"
524 "lithium\tlithium\tlithium\t0\t\t\t8192\t1";
527 "Action\tCondition\tSequence\n"
529 "InstallExecuteSequence\tAction\n"
530 "ValidateProductID\t\t700\n"
531 "CostInitialize\t\t800\n"
533 "CostFinalize\t\t1000\n"
534 "InstallValidate\t\t1400\n"
535 "InstallInitialize\t\t1500\n"
536 "ProcessComponents\t\t1600\n"
537 "RemoveFiles\t\t3500\n"
538 "InstallFiles\t\t4000\n"
539 "RegisterProduct\t\t6100\n"
540 "PublishFeatures\t\t6300\n"
541 "PublishProduct\t\t6400\n"
542 "UnpublishFeatures\t\t6500\n"
543 "InstallFinalize\t\t6600";
546 "FileKey\tComponent_\tFileName\tDirProperty\tInstallMode\n"
547 "s72\ts72\tS255\ts72\tI2\n"
548 "RemoveFile\tFileKey\n"
549 "furlong\thydrogen\tfurlong\tMSITESTDIR\t1\n"
550 "firkin\thelium\tfirkin\tMSITESTDIR\t1\n"
551 "fortnight\tlithium\tfortnight\tMSITESTDIR\t1\n"
552 "becquerel\thydrogen\tbecquerel\tMSITESTDIR\t2\n"
553 "dioptre\thelium\tdioptre\tMSITESTDIR\t2\n"
554 "attoparsec\tlithium\tattoparsec\tMSITESTDIR\t2\n"
555 "storeys\thydrogen\tstoreys\tMSITESTDIR\t3\n"
556 "block\thelium\tblock\tMSITESTDIR\t3\n"
557 "siriometer\tlithium\tsiriometer\tMSITESTDIR\t3\n"
558 "nanoacre\thydrogen\t\tCABOUTDIR\t3\n";
561 "FileKey\tComponent_\tSourceName\tDestName\tSourceFolder\tDestFolder\tOptions\n"
562 "s72\ts72\tS255\tS255\tS72\ts72\ti2\n"
563 "MoveFile\tFileKey\n"
564 "abkhazia\taugustus\tnonexistent\tdest\tSourceDir\tMSITESTDIR\t0\n"
565 "bahamas\taugustus\tnonexistent\tdest\tSourceDir\tMSITESTDIR\t1\n"
566 "cambodia\taugustus\tcameroon\tcanada\tSourceDir\tMSITESTDIR\t0\n"
567 "denmark\taugustus\tdjibouti\tdominica\tSourceDir\tMSITESTDIR\t1\n"
568 "ecuador\taugustus\tegypt\telsalvador\tNotAProp\tMSITESTDIR\t1\n"
569 "fiji\taugustus\tfinland\tfrance\tSourceDir\tNotAProp\t1\n"
570 "gabon\taugustus\tgambia\tgeorgia\tSOURCEFULL\tMSITESTDIR\t1\n"
571 "haiti\taugustus\thonduras\thungary\tSourceDir\tDESTFULL\t1\n"
572 "iceland\taugustus\tindia\tindonesia\tMSITESTDIR\tMSITESTDIR\t1\n"
573 "jamaica\taugustus\tjapan\tjordan\tFILEPATHBAD\tMSITESTDIR\t1\n"
574 "kazakhstan\taugustus\t\tkiribati\tFILEPATHGOOD\tMSITESTDIR\t1\n"
575 "laos\taugustus\tlatvia\tlebanon\tSourceDir\tMSITESTDIR\t1\n"
576 "namibia\taugustus\tnauru\tkiribati\tSourceDir\tMSITESTDIR\t1\n"
577 "pakistan\taugustus\tperu\tsfn|poland\tSourceDir\tMSITESTDIR\t1\n"
578 "wildcard\taugustus\tapp*\twildcard\tSourceDir\tMSITESTDIR\t1\n"
579 "single\taugustus\tf?o\tsingle\tSourceDir\tMSITESTDIR\t1\n"
580 "wildcardnodest\taugustus\tbudd*\t\tSourceDir\tMSITESTDIR\t1\n"
581 "singlenodest\taugustus\tb?r\t\tSourceDir\tMSITESTDIR\t1\n";
584 "Action\tCondition\tSequence\n"
586 "InstallExecuteSequence\tAction\n"
587 "CostInitialize\t\t100\n"
589 "ResolveSource\t\t300\n"
590 "CostFinalize\t\t400\n"
591 "InstallValidate\t\t500\n"
592 "InstallInitialize\t\t600\n"
594 "mov_immediate\t\t701\n"
595 "mov_deferred\t\t702\n"
596 "InstallFiles\t\t800\n"
597 "InstallFinalize\t\t900\n";
600 "Action\tType\tSource\tTarget\n"
602 "CustomAction\tAction\n"
603 "mov_immediate\t1\tcustom.dll\tmov_absent\n"
604 "mov_deferred\t1025\tcustom.dll\tmov_present\n";
607 "Directory\tDirectory_Parent\tDefaultDir\n"
609 "Directory\tDirectory\n"
610 "THIS\tMSITESTDIR\tthis\n"
611 "DOESNOT\tTHIS\tdoesnot\n"
612 "NONEXISTENT\tDOESNOT\texist\n"
613 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
614 "ProgramFilesFolder\tTARGETDIR\t.\n"
615 "TARGETDIR\t\tSourceDir";
618 "FileKey\tComponent_\tFile_\tDestName\tDestFolder\n"
619 "s72\ts72\ts72\tS255\tS72\n"
620 "DuplicateFile\tFileKey\n"
621 "maximus\tmaximus\tmaximus\taugustus\t\n"
622 "caesar\tmaximus\tmaximus\t\tNONEXISTENT\n"
623 "augustus\tnosuchcomponent\tmaximus\t\tMSITESTDIR\n";
626 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
627 "s72\tS38\ts72\ti2\tS255\tS72\n"
628 "Component\tComponent\n"
629 "augustus\t{bafe0297-cbcc-4e08-8a78-7e9b83456eef}\tMSITESTDIR\t0\t\t\n"
630 "caesar\t{bafe0298-cbcc-4e08-8a78-7e9b83456eef}\tMSITESTDIR\t1\t\t\n";
633 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
634 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
636 "feature\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0\n"
637 "feature2\t\tFeature2\tFeature2\t2\t1\tTARGETDIR\t1";
640 "Feature_\tComponent_\n"
642 "FeatureComponents\tFeature_\tComponent_\n"
643 "feature\taugustus\n"
647 "Registry\tRoot\tKey\tName\tValue\tComponent_\n"
648 "s72\ti2\tl255\tL255\tL0\ts72\n"
649 "Registry\tRegistry\n"
650 "regdata0\t1\tmsitest\tsz\tstring\taugustus\n"
651 "regdata1\t1\tmsitest\tmultisz\tone[~]two[~]three\taugustus\n"
652 "regdata2\t1\tmsitest\texpandsz\t#%string\taugustus\n"
653 "regdata3\t1\tmsitest\tdword\t#123\taugustus\n"
654 "regdata4\t1\tmsitest\tbinary\t#x01234567\taugustus\n"
655 "regdata5\t1\tmsitest\t\tdefault\taugustus\n"
656 "regdata6\t1\tmsitest\\subkey\t*\t\taugustus\n"
657 "regdata7\t1\tmsitest\\subkey\t*\t#%\taugustus\n"
658 "regdata8\t1\tmsitest\\subkey\t*\t#x\taugustus\n"
659 "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"
660 "regdata10\t1\tmsitest\tValue1\t[~]one[~]\taugustus\n"
661 "regdata11\t1\tmsitest\tValue2\t[~]two\taugustus\n"
662 "regdata12\t1\tmsitest\tValue3\tone[~]\taugustus\n"
663 "regdata13\t1\tmsitest\tValue4\tone[~]two\taugustus\n"
664 "regdata14\t1\tmsitest\tValue5\t[~]one[~]two[~]three\taugustus\n"
665 "regdata15\t1\tmsitest\tValue6\t[~]\taugustus\n"
666 "regdata16\t1\tmsitest\tValue7\t[~]two\taugustus\n"
667 "regdata17\t1\tmsitest\tformat\t[regdata17]\taugustus\n"
668 "regdata18\t1\tmsitest\tsource\t#1\tcaesar\n"
669 "regdata19\t1\tmsitest\\create\t+\t\taugustus\n"
670 "regdata20\t1\tmsitest\\delete\t-\t\taugustus\n";
673 "RemoveRegistry\tRoot\tKey\tName\tComponent_\n"
674 "s72\ti2\tl255\tL255\ts72\n"
675 "RemoveRegistry\tRemoveRegistry\n"
676 "regdata0\t1\tmsitest\tinstremove\taugustus\n"
677 "regdata1\t1\tmsitest\\instremove\t-\taugustus\n";
680 "Action\tCondition\tSequence\n"
682 "InstallExecuteSequence\tAction\n"
683 "CostInitialize\t\t800\n"
685 "CostFinalize\t\t1000\n"
686 "InstallValidate\t\t1400\n"
687 "InstallInitialize\t\t1500\n"
688 "ProcessComponents\t\t1600\n"
689 "RemoveRegistryValues\t\t4900\n"
690 "rrv_immediate\tREMOVE\t4901\n"
691 "rrv_deferred\tREMOVE\t4902\n"
692 "WriteRegistryValues\t\t5000\n"
693 "wrv_immediate\tNOT REMOVE\t5001\n"
694 "wrv_deferred\tNOT REMOVE\t5002\n"
695 "RegisterProduct\t\t6100\n"
696 "PublishFeatures\t\t6200\n"
697 "PublishProduct\t\t6300\n"
698 "UnpublishFeatures\t\t6400\n"
699 "InstallFinalize\t\t6600\n";
702 "Action\tType\tSource\tTarget\n"
704 "CustomAction\tAction\n"
705 "wrv_immediate\t1\tcustom.dll\twrv_absent\n"
706 "wrv_deferred\t1025\tcustom.dll\twrv_present\n"
707 "rrv_immediate\t1\tcustom.dll\twrv_present\n"
708 "rrv_deferred\t1025\tcustom.dll\twrv_absent\n";
711 "Directory\tDirectory_Parent\tDefaultDir\n"
713 "Directory\tDirectory\n"
714 "FIRSTDIR\tMSITESTDIR\tfirst\n"
715 "SECONDDIR\tMSITESTDIR\tsecond\n"
716 "THIRDDIR\tMSITESTDIR\tthird\n"
717 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
718 "ProgramFilesFolder\tTARGETDIR\t.\n"
719 "TARGETDIR\t\tSourceDir";
722 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
723 "s72\tS38\ts72\ti2\tS255\tS72\n"
724 "Component\tComponent\n"
725 "One\t{F8CD42AC-9C38-48FE-8664-B35FD121012A}\tFIRSTDIR\t0\t\tone.txt\n"
726 "Two\t{DE2DB02E-2DDF-4E34-8CF6-DCA13E29DF52}\tSECONDDIR\t0\t\ttwo.txt\n";
729 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
730 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
732 "One\t\tOne\tThe One Feature\t1\t3\tFIRSTDIR\t0\n"
733 "Two\t\tTwo\tThe Two Feature\t1\t3\tSECONDDIR\t0\n";
736 "Feature_\tComponent_\n"
738 "FeatureComponents\tFeature_\tComponent_\n"
743 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
744 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
746 "one.txt\tOne\tone.txt\t0\t\t\t0\t1\n"
747 "two.txt\tTwo\ttwo.txt\t0\t\t\t0\t2\n";
750 "Directory_\tComponent_\n"
752 "CreateFolder\tDirectory_\tComponent_\n"
758 "Action\tCondition\tSequence\n"
760 "InstallExecuteSequence\tAction\n"
761 "CostFinalize\t\t1000\n"
762 "ValidateProductID\t\t700\n"
763 "CostInitialize\t\t800\n"
765 "RemoveFiles\t\t3500\n"
766 "rfi_immediate\tREMOVE\t3501\n"
767 "rfi_deferred\tREMOVE\t3502\n"
768 "CreateFolders\t\t3700\n"
769 "cf_immediate\tNOT REMOVE\t3701\n"
770 "cf_deferred\tNOT REMOVE\t3702\n"
771 "RemoveFolders\t\t3800\n"
772 "rf_immediate\tREMOVE\t3801\n"
773 "rf_deferred\tREMOVE\t3802\n"
774 "InstallFiles\t\t4000\n"
775 "ifi_immediate\tNOT REMOVE\t4001\n"
776 "ifi_deferred\tNOT REMOVE\t4002\n"
777 "RegisterUser\t\t6000\n"
778 "RegisterProduct\t\t6100\n"
779 "PublishFeatures\t\t6300\n"
780 "PublishProduct\t\t6400\n"
781 "InstallFinalize\t\t6600\n"
782 "InstallInitialize\t\t1500\n"
783 "ProcessComponents\t\t1600\n"
784 "UnpublishFeatures\t\t1800\n"
785 "InstallValidate\t\t1400\n"
786 "LaunchConditions\t\t100\n";
789 "Action\tType\tSource\tTarget\n"
791 "CustomAction\tAction\n"
792 "ifi_immediate\t1\tcustom.dll\tfile_absent\n"
793 "ifi_deferred\t1025\tcustom.dll\tfile_present\n"
794 "rfi_immediate\t1\tcustom.dll\tfile_present\n"
795 "rfi_deferred\t1025\tcustom.dll\tfile_absent\n"
796 "cf_immediate\t1\tcustom.dll\tcf_absent\n"
797 "cf_deferred\t1025\tcustom.dll\tcf_present\n"
798 "rf_immediate\t1\tcustom.dll\tcf_present\n"
799 "rf_deferred\t1025\tcustom.dll\tcf_absent\n";
802 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
803 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
805 "selfreg.dll\tselfreg\tselfreg.dll\t1000\t\t\t8192\t1\n";
808 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
809 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
811 "selfreg\t\t\tselfreg feature\t1\t2\tMSITESTDIR\t0\n";
814 "Feature_\tComponent_\n"
816 "FeatureComponents\tFeature_\tComponent_\n"
817 "selfreg\tselfreg\n";
820 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
821 "s72\tS38\ts72\ti2\tS255\tS72\n"
822 "Component\tComponent\n"
823 "selfreg\t{BB4C26FD-89D8-4E49-AF1C-DB4DCB5BF1B0}\tMSITESTDIR\t0\t\tselfreg.dll\n";
832 "Action\tCondition\tSequence\n"
834 "InstallExecuteSequence\tAction\n"
835 "CostInitialize\t\t800\n"
837 "CostFinalize\t\t1000\n"
838 "InstallValidate\t\t1400\n"
839 "InstallInitialize\t\t1500\n"
840 "ProcessComponents\t\t1600\n"
841 "SelfUnregModules\t\t3800\n"
842 "su_immediate\tREMOVE\t3801\n"
843 "su_deferred\tREMOVE\t3802\n"
844 "RemoveFiles\t\t3900\n"
845 "InstallFiles\t\t4000\n"
846 "SelfRegModules\t\t4100\n"
847 "sr_immediate\tNOT REMOVE\t4101\n"
848 "sr_deferred\tNOT REMOVE\t4102\n"
849 "CreateShortcuts\t\t4600\n"
850 "RegisterProduct\t\t5100\n"
851 "PublishFeatures\t\t5200\n"
852 "PublishProduct\t\t5300\n"
853 "UnpublishFeatures\t\t5400\n"
854 "InstallFinalize\t\t6600\n";
857 "Action\tType\tSource\tTarget\n"
859 "CustomAction\tAction\n"
860 "sr_immediate\t1\tcustom.dll\tsr_absent\n"
861 "sr_deferred\t1025\tcustom.dll\tsr_present\n"
862 "su_immediate\t1\tcustom.dll\tsr_present\n"
863 "su_deferred\t1025\tcustom.dll\tsr_absent\n";
866 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
867 "i2\ti4\tL64\tS255\tS32\tS72\n"
869 "1\t3\t\t\tDISK1\t\n";
872 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
873 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
875 "font.ttf\tfonts\tfont.ttf\t1000\t\t\t8192\t1\n";
878 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
879 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
881 "fonts\t\t\tfont feature\t1\t2\tMSITESTDIR\t0\n";
884 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
885 "s72\tS38\ts72\ti2\tS255\tS72\n"
886 "Component\tComponent\n"
887 "fonts\t{F5920ED0-1183-4B8F-9330-86CE56557C05}\tMSITESTDIR\t0\t\tfont.ttf\n";
890 "Feature_\tComponent_\n"
892 "FeatureComponents\tFeature_\tComponent_\n"
899 "font.ttf\tmsi test font\n";
902 "Action\tCondition\tSequence\n"
904 "InstallExecuteSequence\tAction\n"
905 "ValidateProductID\t\t700\n"
906 "CostInitialize\t\t800\n"
908 "CostFinalize\t\t1000\n"
909 "InstallValidate\t\t1400\n"
910 "InstallInitialize\t\t1500\n"
911 "ProcessComponents\t\t1600\n"
912 "RemoveFiles\t\t3500\n"
913 "InstallFiles\t\t4000\n"
914 "RegisterFonts\t\t4100\n"
915 "rf_immediate\tNOT REMOVE\t4101\n"
916 "rf_deferred\tNOT REMOVE\t4102\n"
917 "UnregisterFonts\t\t4200\n"
918 "uf_immediate\tREMOVE\t4201\n"
919 "uf_deferred\tREMOVE\t4202\n"
920 "RegisterUser\t\t6000\n"
921 "RegisterProduct\t\t6100\n"
922 "PublishFeatures\t\t6300\n"
923 "PublishProduct\t\t6400\n"
924 "UnpublishFeatures\t\t6500\n"
925 "InstallFinalize\t\t6600";
928 "Action\tType\tSource\tTarget\n"
930 "CustomAction\tAction\n"
931 "rf_immediate\t1\tcustom.dll\tfont_absent\n"
932 "rf_deferred\t1025\tcustom.dll\tfont_present\n"
933 "uf_immediate\t1\tcustom.dll\tfont_present\n"
934 "uf_deferred\t1025\tcustom.dll\tfont_absent\n";
939 "Property\tProperty\n"
942 "InstallMode\tTypical\n"
943 "Manufacturer\tWine\n"
944 "PIDTemplate\t###-#######\n"
945 "ProductCode\t{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}\n"
946 "ProductLanguage\t1033\n"
947 "ProductName\tMSITEST\n"
948 "ProductVersion\t1.1.1\n"
949 "UpgradeCode\t{4C0EAA15-0264-4E5A-8758-609EF142B92D}\n"
950 "MSIFASTINSTALL\t1\n";
953 "Action\tType\tSource\tTarget\tISComments\n"
954 "s72\ti2\tS64\tS0\tS255\n"
955 "CustomAction\tAction\n"
956 "SetProductID1\t51\tProductID\t1\t\n"
957 "SetProductID2\t51\tProductID\t2\t\n"
958 "TestProductID1\t19\t\t\tHalts installation\n"
959 "TestProductID2\t19\t\t\tHalts installation\n";
962 "Action\tCondition\tSequence\n"
964 "InstallExecuteSequence\tAction\n"
965 "LaunchConditions\t\t100\n"
966 "CostInitialize\t\t800\n"
968 "CostFinalize\t\t1000\n"
969 "InstallValidate\t\t1400\n"
970 "InstallInitialize\t\t1500\n"
971 "SetProductID1\tSET_PRODUCT_ID=1\t3000\n"
972 "SetProductID2\tSET_PRODUCT_ID=2\t3100\n"
973 "ValidateProductID\t\t3200\n"
974 "InstallExecute\t\t3300\n"
975 "TestProductID1\tProductID=1\t3400\n"
976 "TestProductID2\tProductID=\"123-1234567\"\t3500\n"
977 "InstallFiles\t\t4000\n"
978 "InstallFinalize\t\t6000\n";
981 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
982 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
984 "ODBCdriver.dll\todbc\tODBCdriver.dll\t1000\t\t\t8192\t1\n"
985 "ODBCdriver2.dll\todbc\tODBCdriver2.dll\t1000\t\t\t8192\t2\n"
986 "ODBCtranslator.dll\todbc\tODBCtranslator.dll\t1000\t\t\t8192\t3\n"
987 "ODBCtranslator2.dll\todbc\tODBCtranslator2.dll\t1000\t\t\t8192\t4\n"
988 "ODBCsetup.dll\todbc\tODBCsetup.dll\t1000\t\t\t8192\t5\n";
991 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
992 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
994 "odbc\t\t\todbc feature\t1\t2\tMSITESTDIR\t0\n";
997 "Feature_\tComponent_\n"
999 "FeatureComponents\tFeature_\tComponent_\n"
1004 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1005 "s72\tS38\ts72\ti2\tS255\tS72\n"
1006 "Component\tComponent\n"
1007 "odbc64\t{B6F3E4AF-35D1-4B72-9044-989F03E20A43}\tMSITESTDIR\t256\tMsix64\tODBCdriver.dll\n"
1008 "odbc\t{B6F3E4AE-35D1-4B72-9044-989F03E20A43}\tMSITESTDIR\t0\t\tODBCdriver.dll\n";
1011 "Driver\tComponent_\tDescription\tFile_\tFile_Setup\n"
1012 "s72\ts72\ts255\ts72\tS72\n"
1013 "ODBCDriver\tDriver\n"
1014 "64-bit driver\todbc64\tODBC test driver\tODBCdriver.dll\t\n"
1015 "64-bit driver2\todbc64\tODBC test driver2\tODBCdriver2.dll\tODBCsetup.dll\n"
1016 "ODBC test driver\todbc\tODBC test driver\tODBCdriver.dll\t\n"
1017 "ODBC test driver2\todbc\tODBC test driver2\tODBCdriver2.dll\tODBCsetup.dll\n";
1020 "Translator\tComponent_\tDescription\tFile_\tFile_Setup\n"
1021 "s72\ts72\ts255\ts72\tS72\n"
1022 "ODBCTranslator\tTranslator\n"
1023 "ODBC test translator\todbc\tODBC test translator\tODBCtranslator.dll\t\n"
1024 "ODBC test translator2\todbc\tODBC test translator2\tODBCtranslator2.dll\tODBCsetup.dll\n";
1027 "DataSource\tComponent_\tDescription\tDriverDescription\tRegistration\n"
1028 "s72\ts72\ts255\ts255\ti2\n"
1029 "ODBCDataSource\tDataSource\n"
1030 "ODBC data source\todbc\tODBC data source\tODBC driver\t0\n";
1033 "Action\tCondition\tSequence\n"
1035 "InstallExecuteSequence\tAction\n"
1036 "LaunchConditions\t\t100\n"
1037 "CostInitialize\t\t800\n"
1039 "CostFinalize\t\t1000\n"
1040 "InstallValidate\t\t1400\n"
1041 "InstallInitialize\t\t1500\n"
1042 "ProcessComponents\t\t1600\n"
1043 "InstallODBC\t\t3000\n"
1044 "io_immediate\tNOT REMOVE\t3001\n"
1045 "io_deferred\tNOT REMOVE\t3002\n"
1046 "RemoveODBC\t\t3100\n"
1047 "ro_immediate\tREMOVE\t3101\n"
1048 "ro_deferred\tREMOVE\t3102\n"
1049 "RemoveFiles\t\t3900\n"
1050 "InstallFiles\t\t4000\n"
1051 "RegisterProduct\t\t5000\n"
1052 "PublishFeatures\t\t5100\n"
1053 "PublishProduct\t\t5200\n"
1054 "UnpublishFeatures\t\t5300\n"
1055 "InstallFinalize\t\t6000\n";
1058 "Action\tType\tSource\tTarget\n"
1059 "s72\ti2\tS64\tS0\n"
1060 "CustomAction\tAction\n"
1061 "io_immediate\t1\tcustom.dll\todbc_absent\n"
1062 "io_deferred\t1025\tcustom.dll\todbc_present\n"
1063 "ro_immediate\t1\tcustom.dll\todbc_present\n"
1064 "ro_deferred\t1025\tcustom.dll\todbc_absent\n";
1067 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
1068 "i2\ti4\tL64\tS255\tS32\tS72\n"
1070 "1\t5\t\t\tDISK1\t\n";
1073 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1074 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1076 "typelib.dll\ttypelib\ttypelib.dll\t1000\t\t\t8192\t1\n";
1079 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1080 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1081 "Feature\tFeature\n"
1082 "typelib\t\t\ttypelib feature\t1\t2\tMSITESTDIR\t0\n";
1085 "Feature_\tComponent_\n"
1087 "FeatureComponents\tFeature_\tComponent_\n"
1088 "typelib\ttypelib\n";
1091 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1092 "s72\tS38\ts72\ti2\tS255\tS72\n"
1093 "Component\tComponent\n"
1094 "typelib\t{BB4C26FD-89D8-4E49-AF1C-DB4DCB5BF1B0}\tMSITESTDIR\t0\t\ttypelib.dll\n";
1097 "LibID\tLanguage\tComponent_\tVersion\tDescription\tDirectory_\tFeature_\tCost\n"
1098 "s38\ti2\ts72\tI4\tL128\tS72\ts38\tI4\n"
1099 "TypeLib\tLibID\tLanguage\tComponent_\n"
1100 "{EAC5166A-9734-4D91-878F-1DD02304C66C}\t0\ttypelib\t1793\t\tMSITESTDIR\ttypelib\t\n";
1103 "Action\tCondition\tSequence\n"
1105 "InstallExecuteSequence\tAction\n"
1106 "LaunchConditions\t\t100\n"
1107 "CostInitialize\t\t800\n"
1109 "CostFinalize\t\t1000\n"
1110 "InstallValidate\t\t1400\n"
1111 "InstallInitialize\t\t1500\n"
1112 "ProcessComponents\t\t1600\n"
1113 "UnregisterTypeLibraries\t\t3100\n"
1114 "ut_immediate\tREMOVE\t3101\n"
1115 "ut_deferred\tREMOVE\t3102\n"
1116 "RemoveFiles\t\t3200\n"
1117 "InstallFiles\t\t3300\n"
1118 "RegisterTypeLibraries\t\t3400\n"
1119 "rt_immediate\tNOT REMOVE\t3401\n"
1120 "rt_deferred\tNOT REMOVE\t3402\n"
1121 "RegisterProduct\t\t5100\n"
1122 "PublishFeatures\t\t5200\n"
1123 "PublishProduct\t\t5300\n"
1124 "UnpublishFeatures\t\t5400\n"
1125 "InstallFinalize\t\t6000\n";
1128 "Action\tType\tSource\tTarget\n"
1129 "s72\ti2\tS64\tS0\n"
1130 "CustomAction\tAction\n"
1131 "rt_immediate\t1\tcustom.dll\ttl_absent\n"
1132 "rt_deferred\t1025\tcustom.dll\ttl_present\n"
1133 "ut_immediate\t1\tcustom.dll\ttl_present\n"
1134 "ut_deferred\t1025\tcustom.dll\ttl_absent\n";
1137 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1138 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1140 "target.txt\tshortcut\ttarget.txt\t1000\t\t\t8192\t1\n";
1143 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1144 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1145 "Feature\tFeature\n"
1146 "shortcut\t\t\tshortcut feature\t1\t2\tMSITESTDIR\t0\n";
1149 "Feature_\tComponent_\n"
1151 "FeatureComponents\tFeature_\tComponent_\n"
1152 "shortcut\tshortcut\n";
1155 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1156 "s72\tS38\ts72\ti2\tS255\tS72\n"
1157 "Component\tComponent\n"
1158 "shortcut\t{5D20E3C6-7206-498F-AC28-87AF2F9AD4CC}\tMSITESTDIR\t0\t\ttarget.txt\n";
1161 "Shortcut\tDirectory_\tName\tComponent_\tTarget\tArguments\tDescription\tHotkey\tIcon_\tIconIndex\tShowCmd\tWkDir\n"
1162 "s72\ts72\tl128\ts72\ts72\tL255\tL255\tI2\tS72\tI2\tI2\tS72\n"
1163 "Shortcut\tShortcut\n"
1164 "shortcut\tMSITESTDIR\tshortcut\tshortcut\t[MSITESTDIR]target.txt\t\t\t\t\t\t\t\n";
1167 "Action\tCondition\tSequence\n"
1169 "InstallExecuteSequence\tAction\n"
1170 "LaunchConditions\t\t100\n"
1171 "CostInitialize\t\t800\n"
1173 "CostFinalize\t\t1000\n"
1174 "InstallValidate\t\t1400\n"
1175 "InstallInitialize\t\t1500\n"
1176 "ProcessComponents\t\t1600\n"
1177 "RemoveFiles\t\t1700\n"
1178 "InstallFiles\t\t2000\n"
1179 "RemoveShortcuts\t\t3000\n"
1180 "rs_immediate\tREMOVE\t3001\n"
1181 "rs_deferred\tREMOVE\t3002\n"
1182 "CreateShortcuts\t\t3100\n"
1183 "cs_immediate\tNOT REMOVE\t3101\n"
1184 "cs_deferred\tNOT REMOVE\t3102\n"
1185 "RegisterProduct\t\t5000\n"
1186 "PublishFeatures\t\t5100\n"
1187 "PublishProduct\t\t5200\n"
1188 "UnpublishFeatures\t\t5300\n"
1189 "InstallFinalize\t\t6000\n";
1192 "Action\tType\tSource\tTarget\n"
1193 "s72\ti2\tS64\tS0\n"
1194 "CustomAction\tAction\n"
1195 "cs_immediate\t1\tcustom.dll\tcrs_absent\n"
1196 "cs_deferred\t1025\tcustom.dll\tcrs_present\n"
1197 "rs_immediate\t1\tcustom.dll\tcrs_present\n"
1198 "rs_deferred\t1025\tcustom.dll\tcrs_absent\n";
1201 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1202 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1204 "english.txt\tpublish\tenglish.txt\t1000\t\t\t8192\t1\n";
1207 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1208 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1209 "Feature\tFeature\n"
1210 "publish\t\t\tpublish feature\t1\t2\tMSITESTDIR\t0\n";
1213 "Feature_\tComponent_\n"
1215 "FeatureComponents\tFeature_\tComponent_\n"
1216 "publish\tpublish\n";
1219 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1220 "s72\tS38\ts72\ti2\tS255\tS72\n"
1221 "Component\tComponent\n"
1222 "publish\t{B4EA0ACF-6238-426E-9C6D-7869F0F9C768}\tMSITESTDIR\t0\t\tenglish.txt\n";
1225 "ComponentId\tQualifier\tComponent_\tAppData\tFeature_\n"
1226 "s38\ts255\ts72\tL255\ts38\n"
1227 "PublishComponent\tComponentId\tQualifier\tComponent_\n"
1228 "{92AFCBC0-9CA6-4270-8454-47C5EE2B8FAA}\tenglish.txt\tpublish\t\tpublish\n";
1231 "Action\tCondition\tSequence\n"
1233 "InstallExecuteSequence\tAction\n"
1234 "LaunchConditions\t\t100\n"
1235 "CostInitialize\t\t800\n"
1237 "CostFinalize\t\t1000\n"
1238 "InstallValidate\t\t1400\n"
1239 "InstallInitialize\t\t1500\n"
1240 "ProcessComponents\t\t1600\n"
1241 "RemoveFiles\t\t1700\n"
1242 "InstallFiles\t\t2000\n"
1243 "PublishComponents\t\t3000\n"
1244 "pub_immediate\tNOT REMOVE\t3001\n"
1245 "pub_deferred\tNOT REMOVE\t3002\n"
1246 "UnpublishComponents\t\t3100\n"
1247 "unp_immediate\tREMOVE\t3101\n"
1248 "unp_deferred\tREMOVE\t3102\n"
1249 "RegisterProduct\t\t5000\n"
1250 "PublishFeatures\t\t5100\n"
1251 "PublishProduct\t\t5200\n"
1252 "UnpublishFeatures\t\t5300\n"
1253 "InstallFinalize\t\t6000\n";
1256 "Action\tType\tSource\tTarget\n"
1257 "s72\ti2\tS64\tS0\n"
1258 "CustomAction\tAction\n"
1259 "pub_immediate\t1\tcustom.dll\tpub_absent\n"
1260 "pub_deferred\t1025\tcustom.dll\tpub_present\n"
1261 "unp_immediate\t1\tcustom.dll\tpub_present\n"
1262 "unp_deferred\t1025\tcustom.dll\tpub_absent\n";
1265 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1266 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1268 "original.txt\tduplicate\toriginal.txt\t1000\t\t\t8192\t1\n"
1269 "original2.txt\tduplicate\toriginal2.txt\t1000\t\t\t8192\t2\n"
1270 "original3.txt\tduplicate2\toriginal3.txt\t1000\t\t\t8192\t3\n";
1273 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1274 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1275 "Feature\tFeature\n"
1276 "duplicate\t\t\tduplicate feature\t1\t2\tMSITESTDIR\t0\n";
1279 "Feature_\tComponent_\n"
1281 "FeatureComponents\tFeature_\tComponent_\n"
1282 "duplicate\tduplicate\n";
1285 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1286 "s72\tS38\ts72\ti2\tS255\tS72\n"
1287 "Component\tComponent\n"
1288 "duplicate\t{EB45D06A-ADFE-44E3-8D41-B7DE150E41AD}\tMSITESTDIR\t0\t\toriginal.txt\n"
1289 "duplicate2\t{B8BA60E0-B2E9-488E-9D0E-E60F25F04F97}\tMSITESTDIR\t0\tDUPLICATE2=1\toriginal3.txt\n";
1292 "FileKey\tComponent_\tFile_\tDestName\tDestFolder\n"
1293 "s72\ts72\ts72\tS255\tS72\n"
1294 "DuplicateFile\tFileKey\n"
1295 "duplicate\tduplicate\toriginal.txt\tduplicate.txt\t\n"
1296 "duplicate2\tduplicate\toriginal2.txt\t\tMSITESTDIR\n"
1297 "duplicate3\tduplicate2\toriginal3.txt\tduplicate2.txt\t\n";
1300 "Action\tCondition\tSequence\n"
1302 "InstallExecuteSequence\tAction\n"
1303 "LaunchConditions\t\t100\n"
1304 "CostInitialize\t\t800\n"
1306 "CostFinalize\t\t1000\n"
1307 "InstallValidate\t\t1400\n"
1308 "InstallInitialize\t\t1500\n"
1309 "ProcessComponents\t\t1600\n"
1310 "RemoveDuplicateFiles\t\t1900\n"
1311 "rd_immediate\tREMOVE\t1901\n"
1312 "rd_deferred\tREMOVE\t1902\n"
1313 "InstallFiles\t\t2000\n"
1314 "DuplicateFiles\t\t2100\n"
1315 "df_immediate\tNOT REMOVE\t2101\n"
1316 "df_deferred\tNOT REMOVE\t2102\n"
1317 "RegisterProduct\t\t5000\n"
1318 "PublishFeatures\t\t5100\n"
1319 "PublishProduct\t\t5200\n"
1320 "UnpublishFeatures\t\t5300\n"
1321 "InstallFinalize\t\t6000\n";
1324 "Action\tType\tSource\tTarget\n"
1325 "s72\ti2\tS64\tS0\n"
1326 "CustomAction\tAction\n"
1327 "df_immediate\t1\tcustom.dll\trd_absent\n"
1328 "df_deferred\t1025\tcustom.dll\trd_present\n"
1329 "rd_immediate\t1\tcustom.dll\trd_present\n"
1330 "rd_deferred\t1025\tcustom.dll\trd_absent\n";
1333 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1334 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1336 "product.txt\tproduct\tproduct.txt\t1000\t\t\t8192\t1\n";
1339 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1340 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1341 "Feature\tFeature\n"
1342 "product\t\t\tproduct feature\t1\t2\tMSITESTDIR\t0\n";
1345 "Feature_\tComponent_\n"
1347 "FeatureComponents\tFeature_\tComponent_\n"
1348 "product\tproduct\n";
1351 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1352 "s72\tS38\ts72\ti2\tS255\tS72\n"
1353 "Component\tComponent\n"
1354 "product\t{44725EE0-EEA8-40BD-8162-A48224A2FEA1}\tMSITESTDIR\t0\t\tproduct.txt\n";
1357 "Action\tType\tSource\tTarget\tISComments\n"
1358 "s72\ti2\tS64\tS0\tS255\n"
1359 "CustomAction\tAction\n"
1360 "TestProp\t19\t\t\tPROP set\n";
1363 "UpgradeCode\tVersionMin\tVersionMax\tLanguage\tAttributes\tRemove\tActionProperty\n"
1364 "s38\tS20\tS20\tS255\ti4\tS255\ts72\n"
1365 "Upgrade\tUpgradeCode\tVersionMin\tVersionMax\tLanguage\tAttributes\n"
1366 "{4C0EAA15-0264-4E5A-8758-609EF142B92D}\t1.1.1\t2.2.2\t\t768\t\tPROP\n";
1369 "Action\tCondition\tSequence\n"
1371 "InstallExecuteSequence\tAction\n"
1372 "FindRelatedProducts\t\t50\n"
1373 "TestProp\tPROP AND NOT REMOVE\t51\n"
1374 "LaunchConditions\t\t100\n"
1375 "CostInitialize\t\t800\n"
1377 "CostFinalize\t\t1000\n"
1378 "InstallValidate\t\t1400\n"
1379 "InstallInitialize\t\t1500\n"
1380 "ProcessComponents\t\t1600\n"
1381 "RemoveFiles\t\t1700\n"
1382 "InstallFiles\t\t2000\n"
1383 "RegisterProduct\t\t5000\n"
1384 "PublishFeatures\t\t5100\n"
1385 "PublishProduct\t\t5200\n"
1386 "UnpublishFeatures\t\t5300\n"
1387 "InstallFinalize\t\t6000\n";
1390 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1391 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1393 "inifile.txt\tinifile\tinifile.txt\t1000\t\t\t8192\t1\n";
1396 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1397 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1398 "Feature\tFeature\n"
1399 "inifile\t\t\tinifile feature\t1\t2\tMSITESTDIR\t0\n";
1402 "Feature_\tComponent_\n"
1404 "FeatureComponents\tFeature_\tComponent_\n"
1405 "inifile\tinifile\n";
1408 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1409 "s72\tS38\ts72\ti2\tS255\tS72\n"
1410 "Component\tComponent\n"
1411 "inifile\t{A0F15705-4F57-4437-88C4-6C8B37ACC6DE}\tMSITESTDIR\t0\t\tinifile.txt\n";
1414 "IniFile\tFileName\tDirProperty\tSection\tKey\tValue\tAction\tComponent_\n"
1415 "s72\tl255\tS72\tl96\tl128\tl255\ti2\ts72\n"
1416 "IniFile\tIniFile\n"
1417 "inifile1\ttest.ini\tMSITESTDIR\tsection1\tkey1\tvalue1\t0\tinifile\n";
1420 "RemoveIniFile\tFileName\tDirProperty\tSection\tKey\tValue\tAction\tComponent_\n"
1421 "s72\tl255\tS72\tl96\tl128\tL255\ti2\ts72\n"
1422 "RemoveIniFile\tRemoveIniFile\n"
1423 "inifile1\ttest.ini\tMSITESTDIR\tsectionA\tkeyA\tvalueA\t2\tinifile\n";
1426 "Action\tCondition\tSequence\n"
1428 "InstallExecuteSequence\tAction\n"
1429 "LaunchConditions\t\t100\n"
1430 "CostInitialize\t\t800\n"
1432 "CostFinalize\t\t1000\n"
1433 "InstallValidate\t\t1400\n"
1434 "InstallInitialize\t\t1500\n"
1435 "ProcessComponents\t\t1600\n"
1436 "RemoveFiles\t\t1700\n"
1437 "InstallFiles\t\t2000\n"
1438 "RemoveIniValues\t\t3000\n"
1439 "riv_immediate\tREMOVE\t3001\n"
1440 "riv_deferred\tREMOVE\t3002\n"
1441 "WriteIniValues\t\t3100\n"
1442 "wiv_immediate\tNOT REMOVE\t3101\n"
1443 "wiv_deferred\tNOT REMOVE\t3102\n"
1444 "RegisterProduct\t\t5000\n"
1445 "PublishFeatures\t\t5100\n"
1446 "PublishProduct\t\t5200\n"
1447 "UnpublishFeatures\t\t5300\n"
1448 "InstallFinalize\t\t6000\n";
1451 "Action\tType\tSource\tTarget\n"
1452 "s72\ti2\tS64\tS0\n"
1453 "CustomAction\tAction\n"
1454 "wiv_immediate\t1\tcustom.dll\tini_absent\n"
1455 "wiv_deferred\t1025\tcustom.dll\tini_present\n"
1456 "riv_immediate\t1\tcustom.dll\tini_present\n"
1457 "riv_deferred\t1025\tcustom.dll\tini_absent\n";
1460 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1461 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1463 "class.txt\tclass\tclass.txt\t1000\t\t\t8192\t1\n";
1466 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1467 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1468 "Feature\tFeature\n"
1469 "class\t\t\tclass feature\t1\t2\tMSITESTDIR\t0\n";
1472 "Feature_\tComponent_\n"
1474 "FeatureComponents\tFeature_\tComponent_\n"
1478 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1479 "s72\tS38\ts72\ti2\tS255\tS72\n"
1480 "Component\tComponent\n"
1481 "class\t{89A98345-F8A1-422E-A48B-0250B5809F2D}\tMSITESTDIR\t0\t\tclass.txt\n";
1484 "AppId\tRemoteServerName\tLocalService\tServiceParameters\tDllSurrogate\tActivateAtStorage\tRunAsInteractiveUser\n"
1485 "s38\tS255\tS255\tS255\tS255\tI2\tI2\n"
1487 "{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}\t\t\t\t\t\t\n";
1490 "CLSID\tContext\tComponent_\tProgId_Default\tDescription\tAppId_\tFileTypeMask\tIcon_\tIconIndex\tDefInprocHandler\tArgument\tFeature_\tAttributes\n"
1491 "s38\ts32\ts72\tS255\tL255\tS38\tS255\tS72\tI2\tS32\tS255\ts38\tI2\n"
1492 "Class\tCLSID\tContext\tComponent_\n"
1493 "{110913E7-86D1-4BF3-9922-BA103FCDDDFA}\tLocalServer\tclass\t\tdescription\t{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}\tmask1;mask2\t\t\t2\t\tclass\t\n";
1496 "Action\tCondition\tSequence\n"
1498 "InstallExecuteSequence\tAction\n"
1499 "LaunchConditions\t\t100\n"
1500 "CostInitialize\t\t800\n"
1502 "CostFinalize\t\t1000\n"
1503 "InstallValidate\t\t1400\n"
1504 "InstallInitialize\t\t1500\n"
1505 "ProcessComponents\t\t1600\n"
1506 "RemoveFiles\t\t1700\n"
1507 "InstallFiles\t\t2000\n"
1508 "UnregisterClassInfo\t\t3000\n"
1509 "uci_immediate\tREMOVE\t3001\n"
1510 "uci_deferred\tREMOVE\t3002\n"
1511 "RegisterClassInfo\t\t4000\n"
1512 "rci_immediate\tNOT REMOVE\t4001\n"
1513 "rci_deferred\tNOT REMOVE\t4002\n"
1514 "RegisterProduct\t\t5000\n"
1515 "PublishFeatures\t\t5100\n"
1516 "PublishProduct\t\t5200\n"
1517 "UnpublishFeatures\t\t5300\n"
1518 "InstallFinalize\t\t6000\n";
1521 "Action\tType\tSource\tTarget\n"
1522 "s72\ti2\tS64\tS0\n"
1523 "CustomAction\tAction\n"
1524 "rci_immediate\t1\tcustom.dll\trci_absent\n"
1525 "rci_deferred\t1025\tcustom.dll\trci_present\n"
1526 "uci_immediate\t1\tcustom.dll\trci_present\n"
1527 "uci_deferred\t1025\tcustom.dll\trci_absent\n";
1530 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1531 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1533 "extension.txt\textension\textension.txt\t1000\t\t\t8192\t1\n";
1536 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1537 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1538 "Feature\tFeature\n"
1539 "extension\t\t\textension feature\t1\t2\tMSITESTDIR\t0\n";
1542 "Feature_\tComponent_\n"
1544 "FeatureComponents\tFeature_\tComponent_\n"
1545 "extension\textension\n";
1548 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1549 "s72\tS38\ts72\ti2\tS255\tS72\n"
1550 "Component\tComponent\n"
1551 "extension\t{9A3060D4-60BA-4A82-AB55-9FB148AD013C}\tMSITESTDIR\t0\t\textension.txt\n";
1554 "Extension\tComponent_\tProgId_\tMIME_\tFeature_\n"
1555 "s255\ts72\tS255\tS64\ts38\n"
1556 "Extension\tExtension\tComponent_\n"
1557 "extension\textension\tProg.Id.1\t\textension\n";
1560 "Extension_\tVerb\tSequence\tCommand\tArgument\n"
1561 "s255\ts32\tI2\tL255\tL255\n"
1562 "Verb\tExtension_\tVerb\n"
1563 "extension\tOpen\t1\t&Open\t/argument\n";
1566 "ProgId\tProgId_Parent\tClass_\tDescription\tIcon_\tIconIndex\n"
1567 "s255\tS255\tS38\tL255\tS72\tI2\n"
1569 "Prog.Id.1\t\t\tdescription\t\t\n";
1572 "Action\tCondition\tSequence\n"
1574 "InstallExecuteSequence\tAction\n"
1575 "LaunchConditions\t\t100\n"
1576 "CostInitialize\t\t800\n"
1578 "CostFinalize\t\t1000\n"
1579 "InstallValidate\t\t1400\n"
1580 "InstallInitialize\t\t1500\n"
1581 "ProcessComponents\t\t1600\n"
1582 "RemoveFiles\t\t1700\n"
1583 "InstallFiles\t\t2000\n"
1584 "UnregisterExtensionInfo\t\t3000\n"
1585 "uei_immediate\tREMOVE\t3001\n"
1586 "uei_deferred\tREMOVE\t3002\n"
1587 "RegisterExtensionInfo\t\t4000\n"
1588 "rei_immediate\tNOT REMOVE\t4001\n"
1589 "rei_deferred\tNOT REMOVE\t4002\n"
1590 "RegisterProduct\t\t5000\n"
1591 "PublishFeatures\t\t5100\n"
1592 "PublishProduct\t\t5200\n"
1593 "UnpublishFeatures\t\t5300\n"
1594 "InstallFinalize\t\t6000\n";
1597 "Action\tType\tSource\tTarget\n"
1598 "s72\ti2\tS64\tS0\n"
1599 "CustomAction\tAction\n"
1600 "rei_immediate\t1\tcustom.dll\trei_absent\n"
1601 "rei_deferred\t1025\tcustom.dll\trei_present\n"
1602 "uei_immediate\t1\tcustom.dll\trei_present\n"
1603 "uei_deferred\t1025\tcustom.dll\trei_absent\n";
1606 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1607 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1609 "progid.txt\tprogid\tprogid.txt\t1000\t\t\t8192\t1\n";
1612 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1613 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1614 "Feature\tFeature\n"
1615 "progid\t\t\tprogid feature\t1\t2\tMSITESTDIR\t0\n";
1618 "Feature_\tComponent_\n"
1620 "FeatureComponents\tFeature_\tComponent_\n"
1624 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1625 "s72\tS38\ts72\ti2\tS255\tS72\n"
1626 "Component\tComponent\n"
1627 "progid\t{89A98345-F8A1-422E-A48B-0250B5809F2D}\tMSITESTDIR\t0\t\tprogid.txt\n";
1630 "AppId\tRemoteServerName\tLocalService\tServiceParameters\tDllSurrogate\tActivateAtStorage\tRunAsInteractiveUser\n"
1631 "s38\tS255\tS255\tS255\tS255\tI2\tI2\n"
1633 "{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}\t\t\t\t\t\t\n";
1636 "CLSID\tContext\tComponent_\tProgId_Default\tDescription\tAppId_\tFileTypeMask\tIcon_\tIconIndex\tDefInprocHandler\tArgument\tFeature_\tAttributes\n"
1637 "s38\ts32\ts72\tS255\tL255\tS38\tS255\tS72\tI2\tS32\tS255\ts38\tI2\n"
1638 "Class\tCLSID\tContext\tComponent_\n"
1639 "{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"
1640 "{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"
1641 "{57C413FB-CA02-498A-81F6-7E769BDB7C97}\tLocalServer\tprogid\t\tdescription\t{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}\tmask1;mask2\t\t\t2\t\tprogid\t\n";
1644 "Extension\tComponent_\tProgId_\tMIME_\tFeature_\n"
1645 "s255\ts72\tS255\tS64\ts38\n"
1646 "Extension\tExtension\tComponent_\n"
1647 "winetest\tprogid\tWinetest.Extension\t\tprogid\n";
1650 "Extension_\tVerb\tSequence\tCommand\tArgument\n"
1651 "s255\ts32\tI2\tL255\tL255\n"
1652 "Verb\tExtension_\tVerb\n"
1653 "winetest\tOpen\t1\t&Open\t/argument\n";
1656 "ProgId\tProgId_Parent\tClass_\tDescription\tIcon_\tIconIndex\n"
1657 "s255\tS255\tS38\tL255\tS72\tI2\n"
1659 "Winetest.Class.1\t\t{110913E7-86D1-4BF3-9922-BA103FCDDDFA}\tdescription\t\t\n"
1660 "Winetest.Class\tWinetest.Class.1\t\tdescription\t\t\n"
1661 "Winetest.Class.2\t\t{110913E7-86D1-4BF3-9922-BA103FCDDDFA}\tdescription\t\t\n"
1662 "Winetest.VerClass.1\t\t{904E6BC9-F57F-4412-B460-D40DE2F256E2}\tdescription\t\t\n"
1663 "Winetest.VerClass\tWinetest.VerClass.1\t\tdescription\t\t\n"
1664 "Winetest.NoProgIdClass.1\t\t{57C413FB-CA02-498A-81F6-7E769BDB7C97}\tdescription\t\t\n"
1665 "Winetest.NoProgIdClass\tWinetest.NoProgIdClass.1\t\tdescription\t\t\n"
1666 "Winetest.Orphaned\t\t\tdescription\t\t\n"
1667 "Winetest.Orphaned2\t\t\tdescription\t\t\n"
1668 "Winetest.Extension\t\t\tdescription\t\t\n";
1671 "Action\tCondition\tSequence\n"
1673 "InstallExecuteSequence\tAction\n"
1674 "LaunchConditions\t\t100\n"
1675 "CostInitialize\t\t800\n"
1677 "CostFinalize\t\t1000\n"
1678 "InstallValidate\t\t1400\n"
1679 "InstallInitialize\t\t1500\n"
1680 "ProcessComponents\t\t1600\n"
1681 "RemoveFiles\t\t1700\n"
1682 "UnregisterClassInfo\t\t3000\n"
1683 "UnregisterExtensionInfo\t\t3200\n"
1684 "UnregisterProgIdInfo\t\t3400\n"
1685 "upi_immediate\tREMOVE\t3401\n"
1686 "upi_deferred\tREMOVE\t3402\n"
1687 "InstallFiles\t\t3600\n"
1688 "RegisterClassInfo\t\t4000\n"
1689 "RegisterExtensionInfo\t\t4200\n"
1690 "RegisterProgIdInfo\t\t4400\n"
1691 "rpi_immediate\tNOT REMOVE\t4401\n"
1692 "rpi_deferred\tNOT REMOVE\t4402\n"
1693 "RegisterProduct\t\t5000\n"
1694 "PublishFeatures\t\t5100\n"
1695 "PublishProduct\t\t5200\n"
1696 "UnpublishFeatures\t\t5300\n"
1697 "InstallFinalize\t\t6000\n";
1700 "Action\tType\tSource\tTarget\n"
1701 "s72\ti2\tS64\tS0\n"
1702 "CustomAction\tAction\n"
1703 "rpi_immediate\t1\tcustom.dll\trpi_absent\n"
1704 "rpi_deferred\t1025\tcustom.dll\trpi_present\n"
1705 "upi_immediate\t1\tcustom.dll\trpi_present\n"
1706 "upi_deferred\t1025\tcustom.dll\trpi_absent\n";
1709 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1710 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1712 "mime.txt\tmime\tmime.txt\t1000\t\t\t8192\t1\n";
1715 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1716 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1717 "Feature\tFeature\n"
1718 "mime\t\t\tmime feature\t1\t2\tMSITESTDIR\t0\n";
1721 "Feature_\tComponent_\n"
1723 "FeatureComponents\tFeature_\tComponent_\n"
1727 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1728 "s72\tS38\ts72\ti2\tS255\tS72\n"
1729 "Component\tComponent\n"
1730 "mime\t{A1D630CE-13A7-4882-AFDD-148E2BBAFC6D}\tMSITESTDIR\t0\t\tmime.txt\n";
1733 "Extension\tComponent_\tProgId_\tMIME_\tFeature_\n"
1734 "s255\ts72\tS255\tS64\ts38\n"
1735 "Extension\tExtension\tComponent_\n"
1736 "mime\tmime\t\tmime/type\tmime\n";
1739 "Extension_\tVerb\tSequence\tCommand\tArgument\n"
1740 "s255\ts32\tI2\tL255\tL255\n"
1741 "Verb\tExtension_\tVerb\n"
1742 "mime\tOpen\t1\t&Open\t/argument\n";
1745 "ContentType\tExtension_\tCLSID\n"
1747 "MIME\tContentType\n"
1748 "mime/type\tmime\t\n";
1751 "Action\tCondition\tSequence\n"
1753 "InstallExecuteSequence\tAction\n"
1754 "LaunchConditions\t\t100\n"
1755 "CostInitialize\t\t800\n"
1757 "CostFinalize\t\t1000\n"
1758 "InstallValidate\t\t1400\n"
1759 "InstallInitialize\t\t1500\n"
1760 "ProcessComponents\t\t1600\n"
1761 "RemoveFiles\t\t1700\n"
1762 "InstallFiles\t\t2000\n"
1763 "UnregisterExtensionInfo\t\t3000\n"
1764 "UnregisterMIMEInfo\t\t3500\n"
1765 "umi_immediate\tREMOVE\t3501\n"
1766 "umi_deferred\tREMOVE\t3502\n"
1767 "RegisterExtensionInfo\t\t4000\n"
1768 "RegisterMIMEInfo\t\t4500\n"
1769 "rmi_immediate\tNOT REMOVE\t4501\n"
1770 "rmi_deferred\tNOT REMOVE\t4502\n"
1771 "RegisterProduct\t\t5000\n"
1772 "PublishFeatures\t\t5100\n"
1773 "PublishProduct\t\t5200\n"
1774 "UnpublishFeatures\t\t5300\n"
1775 "InstallFinalize\t\t6000\n";
1778 "Action\tType\tSource\tTarget\n"
1779 "s72\ti2\tS64\tS0\n"
1780 "CustomAction\tAction\n"
1781 "rmi_immediate\t1\tcustom.dll\trmi_absent\n"
1782 "rmi_deferred\t1025\tcustom.dll\trmi_present\n"
1783 "umi_immediate\t1\tcustom.dll\trmi_present\n"
1784 "umi_deferred\t1025\tcustom.dll\trmi_absent\n";
1787 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1788 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1790 "fake_local.txt\tfake_local\tfake_local.txt\t1000\t\t\t8192\t1\n"
1791 "win32.txt\twin32\twin32.txt\t1000\t\t\t8192\t1\n"
1792 "manifest.txt\twin32\tmanifest.txt\t1000\t\t\t8192\t1\n"
1793 "win32_local.txt\twin32_local\twin32_local.txt\t1000\t\t\t8192\t1\n"
1794 "manifest_local.txt\twin32_local\tmanifest_local.txt\t1000\t\t\t8192\t1\n"
1795 "dotnet.txt\tdotnet\tdotnet.txt\t1000\t\t\t8192\t1\n"
1796 "dotnet_local.txt\tdotnet_local\tdotnet_local.txt\t1000\t\t\t8192\t1\n"
1797 "application_win32.txt\twin32_local\tapplication_win32.txt\t1000\t\t\t8192\t1\n"
1798 "application_dotnet.txt\tdotnet_local\tapplication_dotnet.txt\t1000\t\t\t8192\t1\n";
1801 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1802 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1803 "Feature\tFeature\n"
1804 "assembly\t\t\tassembly feature\t1\t2\tMSITESTDIR\t0\n";
1807 "Feature_\tComponent_\n"
1809 "FeatureComponents\tFeature_\tComponent_\n"
1810 "assembly\tfake_local\n"
1812 "assembly\twin32_local\n"
1813 "assembly\tdotnet\n"
1814 "assembly\tdotnet_local\n";
1817 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1818 "s72\tS38\ts72\ti2\tS255\tS72\n"
1819 "Component\tComponent\n"
1820 "fake_local\t{F515549D-7E61-425D-AAC1-9BEF2E066D06}\tMSITESTDIR\t0\t\tfake_local.txt\n"
1821 "win32\t{F515549E-7E61-425D-AAC1-9BEF2E066D06}\tMSITESTDIR\t0\t\twin32.txt\n"
1822 "win32_local\t{D34D3FBA-6789-4E57-AD1A-1281297DC201}\tMSITESTDIR\t0\t\twin32_local.txt\n"
1823 "dotnet\t{8943164F-2B31-4C09-A894-493A8CBDE0A4}\tMSITESTDIR\t0\t\tdotnet.txt\n"
1824 "dotnet_local\t{4E8567E8-8EAE-4E36-90F1-B99D33C663F8}\tMSITESTDIR\t0\t\tdotnet_local.txt\n";
1827 "Component_\tFeature_\tFile_Manifest\tFile_Application\tAttributes\n"
1828 "s72\ts38\tS72\tS72\tI2\n"
1829 "MsiAssembly\tComponent_\n"
1830 "fake_local\tassembly\t\tnonexistent.txt\t0\n"
1831 "win32\tassembly\tmanifest.txt\t\t1\n"
1832 "win32_local\tassembly\tmanifest_local.txt\tapplication_win32.txt\t1\n"
1833 "dotnet\tassembly\t\t\t0\n"
1834 "dotnet_local\tassembly\t\tapplication_dotnet.txt\t0\n";
1837 "Component_\tName\tValue\n"
1839 "MsiAssemblyName\tComponent_\tName\n"
1840 "fake_local\tName\tWine.Fake.Application.Assembly\n"
1841 "fake_local\tprocessorArchitecture\tx86\n"
1842 "fake_local\tpublicKeyToken\tabcdef0123456789\n"
1843 "fake_local\ttype\twin32\n"
1844 "fake_local\tversion\t1.0.0.0\n"
1845 "win32\tName\tWine.Win32.Assembly\n"
1846 "win32\tprocessorArchitecture\tx86\n"
1847 "win32\tpublicKeyToken\tabcdef0123456789\n"
1848 "win32\ttype\twin32\n"
1849 "win32\tversion\t1.0.0.0\n"
1850 "win32_local\tName\tWine.Win32.Local.Assembly\n"
1851 "win32_local\tprocessorArchitecture\tx86\n"
1852 "win32_local\tpublicKeyToken\tabcdef0123456789\n"
1853 "win32_local\ttype\twin32\n"
1854 "win32_local\tversion\t1.0.0.0\n"
1855 "dotnet\tName\tWine.Dotnet.Assembly\n"
1856 "dotnet\tprocessorArchitecture\tMSIL\n"
1857 "dotnet\tpublicKeyToken\tabcdef0123456789\n"
1858 "dotnet\tculture\tneutral\n"
1859 "dotnet\tversion\t1.0.0.0\n"
1860 "dotnet_local\tName\tWine.Dotnet.Local.Assembly\n"
1861 "dotnet_local\tprocessorArchitecture\tMSIL\n"
1862 "dotnet_local\tpublicKeyToken\tabcdef0123456789\n"
1863 "dotnet_local\tculture\tneutral\n"
1864 "dotnet_local\tversion\t1.0.0.0\n";
1867 "Action\tCondition\tSequence\n"
1869 "InstallExecuteSequence\tAction\n"
1870 "LaunchConditions\t\t100\n"
1871 "CostInitialize\t\t800\n"
1873 "CostFinalize\t\t1000\n"
1874 "InstallValidate\t\t1400\n"
1875 "InstallInitialize\t\t1500\n"
1876 "ProcessComponents\t\t1600\n"
1877 "MsiPublishAssemblies\t\t3000\n"
1878 "pa_immediate\tNOT REMOVE AND NOT ALLUSERS\t3001\n"
1879 "pa_deferred\tNOT REMOVE AND NOT ALLUSERS\t3002\n"
1880 "MsiUnpublishAssemblies\t\t4000\n"
1881 "ua_immediate\tREMOVE AND NOT ALLUSERS\t4001\n"
1882 "ua_deferred\tREMOVE AND NOT ALLUSERS\t4002\n"
1883 "RegisterProduct\t\t5000\n"
1884 "PublishFeatures\t\t5100\n"
1885 "PublishProduct\t\t5200\n"
1886 "UnpublishFeatures\t\t5300\n"
1887 "InstallFinalize\t\t6000\n";
1890 "Action\tType\tSource\tTarget\n"
1891 "s72\ti2\tS64\tS0\n"
1892 "CustomAction\tAction\n"
1893 "pa_immediate\t1\tcustom.dll\tpa_absent\n"
1894 "pa_deferred\t1025\tcustom.dll\tpa_present\n"
1895 "ua_immediate\t1\tcustom.dll\tpa_present\n"
1896 "ua_deferred\t1025\tcustom.dll\tpa_absent\n";
1899 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
1900 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
1902 "rep.txt\trep\trep.txt\t1000\t\t\t8192\t1\n";
1905 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
1906 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
1907 "Feature\tFeature\n"
1908 "rep\t\t\trep feature\t1\t2\tMSITESTDIR\t0\n";
1911 "Feature_\tComponent_\n"
1913 "FeatureComponents\tFeature_\tComponent_\n"
1917 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
1918 "s72\tS38\ts72\ti2\tS255\tS72\n"
1919 "Component\tComponent\n"
1920 "rep\t{A24FAF2A-3B2E-41EF-AA78-331542E1A29D}\tMSITESTDIR\t0\t\trep.txt\n";
1923 "UpgradeCode\tVersionMin\tVersionMax\tLanguage\tAttributes\tRemove\tActionProperty\n"
1924 "s38\tS20\tS20\tS255\ti4\tS255\ts72\n"
1925 "Upgrade\tUpgradeCode\tVersionMin\tVersionMax\tLanguage\tAttributes\n"
1926 "{2967C1CC-34D4-42EE-8D96-CD6836F192BF}\t\t\t\t256\t\tPRODUCT\n";
1931 "Property\tProperty\n"
1934 "InstallMode\tTypical\n"
1935 "Manufacturer\tWine\n"
1936 "PIDTemplate\t###-#######\n"
1937 "ProductCode\t{1699F0BB-0B61-4A89-AFE4-CFD60DFD76F3}\n"
1938 "ProductLanguage\t1033\n"
1939 "ProductName\tMSITEST\n"
1940 "ProductVersion\t1.1.1\n"
1941 "UpgradeCode\t{2967C1CC-34D4-42EE-8D96-CD6836F192BF}\n"
1942 "PRODUCT\t2F41860D-7B4C-4DA7-BED9-B64F26594C56\n"
1943 "MSIFASTINSTALL\t1\n";
1946 "Action\tCondition\tSequence\n"
1948 "InstallExecuteSequence\tAction\n"
1949 "FindRelatedProducts\t\t100\n"
1950 "CostInitialize\t\t800\n"
1952 "CostFinalize\t\t1000\n"
1953 "InstallValidate\t\t1400\n"
1954 "RemoveExistingProducts\t\t1499\n"
1955 "InstallInitialize\t\t1500\n"
1956 "ProcessComponents\t\t1600\n"
1957 "RemoveFiles\t\t1700\n"
1958 "InstallFiles\t\t2000\n"
1959 "UnregisterExtensionInfo\t\t3000\n"
1960 "UnregisterMIMEInfo\t\t3500\n"
1961 "RegisterExtensionInfo\t\t4000\n"
1962 "RegisterMIMEInfo\t\t4500\n"
1963 "RegisterProduct\t\t5000\n"
1964 "PublishFeatures\t\t5100\n"
1965 "PublishProduct\t\t5200\n"
1966 "UnpublishFeatures\t\t5300\n"
1967 "InstallFinalize\t\t6000\n";
2358#define MEDIA_SIZE 0x7FFFFFFF
2365 char *usersid =
NULL;
2446 ok_(__FILE__,
line)(!
res,
"Failed to query value, error %ld\n",
res);
2466 expect_size = (
p + 1) -
expect;
2471 ok_(__FILE__,
line)(!
res,
"Failed to query value, error %ld\n",
res);
2473 ok_(__FILE__,
line)(
size == expect_size,
"expected size %lu, got %lu\n", expect_size,
size);
2484 ok_(__FILE__,
line)(!
res,
"Failed to query value, error %ld\n",
res);
2490#define CHECK_REG_STR(prodkey, name, expected) \
2491 check_reg_str(prodkey, name, expected, TRUE, FALSE, __LINE__);
2493#define CHECK_DEL_REG_STR(prodkey, name, expected) \
2495 check_reg_str(prodkey, name, expected, TRUE, FALSE, __LINE__); \
2496 RegDeleteValueA(prodkey, name); \
2499#define CHECK_DEL_REG_STR_TODO(prodkey, name, expected) \
2501 check_reg_str(prodkey, name, expected, TRUE, TRUE, __LINE__); \
2502 RegDeleteValueA(prodkey, name); \
2505#define CHECK_REG_ISTR(prodkey, name, expected) \
2506 check_reg_str(prodkey, name, expected, FALSE, FALSE, __LINE__);
2508#define CHECK_DEL_REG_ISTR(prodkey, name, expected) \
2510 check_reg_str(prodkey, name, expected, FALSE, FALSE, __LINE__); \
2511 RegDeleteValueA(prodkey, name); \
2514#define CHECK_REG_MULTI(key, name, expect) \
2515 check_reg_multi(key, name, expect, __LINE__);
2517#define CHECK_DEL_REG_MULTI(key, name, expect) \
2519 check_reg_multi(key, name, expect, __LINE__); \
2520 RegDeleteValueA(key, name); \
2523#define CHECK_REG_DWORD(prodkey, name, expected) \
2524 check_reg_dword(prodkey, name, expected, FALSE, __LINE__);
2526#define CHECK_REG_DWORD_TODO(prodkey, name, expected) \
2527 check_reg_dword(prodkey, name, expected, TRUE, __LINE__);
2529#define CHECK_DEL_REG_DWORD(prodkey, name, expected) \
2531 check_reg_dword(prodkey, name, expected, FALSE, __LINE__); \
2532 RegDeleteValueA(prodkey, name); \
2535#define CHECK_DEL_REG_DWORD_TODO(prodkey, name, expected) \
2537 check_reg_dword(prodkey, name, expected, TRUE, __LINE__); \
2538 RegDeleteValueA(prodkey, name); \
2545 static const char date_fmt[] =
"%d%02d%02d";
2577 ok(
res != 0,
"couldn't find resource\n" );
2593 static const CHAR uninstall[] =
"Software\\Microsoft\\Windows\\CurrentVersion"
2594 "\\Uninstall\\{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}";
2595 static const CHAR userdata[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer"
2596 "\\UserData\\%s\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB";
2597 static const CHAR ugkey[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer"
2598 "\\UpgradeCodes\\51AAE0C44620A5E4788506E91F249BD2";
2599 static const CHAR userugkey[] =
"Software\\Microsoft\\Installer\\UpgradeCodes"
2600 "\\51AAE0C44620A5E4788506E91F249BD2";
2604 skip(
"process is limited\n");
2625 skip(
"Not enough rights to perform tests\n");
2642 CHECK_DEL_REG_ISTR(hkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2644 CHECK_DEL_REG_STR(hkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2667 sprintf(keypath, userdata, usersid);
2747 CHECK_DEL_REG_ISTR(hkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2749 CHECK_DEL_REG_STR(hkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2772 sprintf(keypath, userdata,
"S-1-5-18");
2859 CHECK_DEL_REG_ISTR(hkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2861 CHECK_DEL_REG_STR(hkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
2884 sprintf(keypath, userdata,
"S-1-5-18");
2949 skip(
"64-bit RegisterProduct tests\n");
2960 static const char prodpath[] =
2961 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\%s\\Products"
2962 "\\84A88FD7F6998CE40A22FB59F6B9C2BB";
2963 static const char cuprodpath[] =
2964 "Software\\Microsoft\\Installer\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB";
2965 static const char cuupgrades[] =
2966 "Software\\Microsoft\\Installer\\UpgradeCodes\\51AAE0C44620A5E4788506E91F249BD2";
2967 static const char badprod[] =
2968 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Products"
2969 "\\84A88FD7F6998CE40A22FB59F6B9C2BB";
2970 static const char machprod[] =
2971 "Software\\Classes\\Installer\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB";
2972 static const char machup[] =
2973 "Software\\Classes\\Installer\\UpgradeCodes\\51AAE0C44620A5E4788506E91F249BD2";
2987 skip(
"process is limited\n");
3010 skip(
"Not enough rights to perform tests\n");
3020 sprintf(keypath, prodpath, usersid);
3027 win_skip(
"Windows Installer < 3.0 detected\n");
3029 old_installer =
TRUE;
3034 win_skip(
"Install failed, no need to continue\n");
3115 sprintf(keypath, prodpath,
"S-1-5-18");
3197 static const char cupath[] =
3198 "Software\\Microsoft\\Installer\\Features\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3199 static const char udfeatpath[] =
3200 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\%s\\Products"
3201 "\\84A88FD7F6998CE40A22FB59F6B9C2BB\\Features";
3202 static const char udpridpath[] =
3203 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\%s\\Products"
3204 "\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3205 static const char featkey[] =
3206 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Features";
3207 static const char classfeat[] =
3208 "Software\\Classes\\Installer\\Features\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3218 skip(
"process is limited\n");
3239 skip(
"Not enough rights to perform tests\n");
3263 sprintf(keypath, udfeatpath, usersid);
3274 sprintf(keypath, udpridpath, usersid);
3299 sprintf(keypath, udfeatpath,
"S-1-5-18");
3310 sprintf(keypath, udpridpath,
"S-1-5-18");
3344 *owner = *company =
NULL;
3350 "Software\\Microsoft\\MS Setup (ACME)\\User Info", &hkey);
3358 if (!*owner || !*company)
3361 "Software\\Microsoft\\Windows NT\\CurrentVersion", 0,
access, &hkey);
3370 if (!*owner || !*company)
3373 "Software\\Microsoft\\Windows\\CurrentVersion", 0,
access, &hkey);
3389 LPSTR owner, company;
3393 static const CHAR keypropsfmt[] =
3394 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\"
3395 "UserData\\%s\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB\\InstallProperties";
3396 static const CHAR keypridfmt[] =
3397 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\"
3398 "UserData\\%s\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB";
3402 skip(
"process is limited\n");
3425 skip(
"Not enough rights to perform tests\n");
3432 sprintf(keypath, keypropsfmt, usersid);
3445 sprintf(keypath, keypridfmt, usersid);
3454 sprintf(keypath, keypropsfmt,
"S-1-5-18");
3467 sprintf(keypath, keypridfmt,
"S-1-5-18");
3482 static const char keyfmt[] =
3483 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\%s\\Components\\%s";
3484 static const char compkey[] =
3485 "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Components";
3498 skip(
"process is limited\n");
3519 skip(
"Not enough rights to perform tests\n");
3526 sprintf(keypath, keyfmt, usersid,
"CBABC2FDCCB35E749A8944D8C1C098B5");
3536 lstrcatA(program_files_maximus,
"\\msitest\\maximus");
3539 "Expected \"%s\", got \"%s\"\n", program_files_maximus,
val);
3548 sprintf(keypath, keyfmt, usersid,
"241C3DA58FECD0945B9687D408766058");
3557 "Expected \"01\\msitest\\augustus\", got \"%s\"\n",
val);
3572 sprintf(keypath, keyfmt,
"S-1-5-18",
"CBABC2FDCCB35E749A8944D8C1C098B5");
3581 "Expected \"%s\", got \"%s\"\n", program_files_maximus,
val);
3590 sprintf(keypath, keyfmt,
"S-1-5-18",
"241C3DA58FECD0945B9687D408766058");
3599 "Expected \"01\\msitest\\augustus\", got \"%s\"\n",
val);
3617 static const char subkey[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
3618 static const char subkey_32node[] =
"Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
3621 HKEY uninstall, prodkey, uninstall_32node =
NULL;
3624 const char prodcode[] =
"{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}";
3630 skip(
"process is limited\n");
3693 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3704 skip(
"Not enough rights to perform tests\n");
3708 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
3721 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3731 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
3744 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3765 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
3767 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
3790 ok(
pf_exists(
"msitest\\maximus"),
"File deleted\n");
3803 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3813 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
3850 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3869 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
3871 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
3895 ok(!
pf_exists(
"msitest\\maximus"),
"File not deleted\n");
3896 ok(!
pf_exists(
"msitest"),
"Directory not deleted\n");
3908 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3918 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
3931 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
3950 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
3952 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
3976 ok(
pf_exists(
"msitest\\maximus"),
"File deleted\n");
3989 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
4008 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4010 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4034 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4047 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
4066 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4068 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4092 ok(!
pf_exists(
"msitest\\maximus"),
"File not deleted\n");
4093 ok(!
pf_exists(
"msitest"),
"Directory not deleted\n");
4105 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
4115 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4128 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
4150 ok(!
res,
"Failed to query value, error %ld\n",
res);
4155 CHECK_REG_ISTR(prodkey,
"ModifyPath",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4157 CHECK_REG_STR(prodkey,
"UninstallString",
"MsiExec.exe /X{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
4181 ok(!
pf_exists(
"msitest\\maximus"),
"File not deleted\n");
4182 ok(!
pf_exists(
"msitest"),
"Directory not deleted\n");
4194 "{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}", &
state);
4218 CHAR prodcode[] =
"{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}";
4222 skip(
"process is limited\n");
4236 skip(
"Not enough rights to perform tests\n");
4240 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4262 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4284 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4306 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4328 ok(
pf_exists(
"msitest\\maximus"),
"File not installed\n");
4338 ok(
size == 11,
"Expected 11, got %lu\n",
size);
4346 ok(
size == 0,
"Expected 0, got %lu\n",
size);
4354 ok(
size == 0,
"Expected 0, got %lu\n",
size);
4373 ok(
size == 1,
"Expected 1, got %lu\n",
size);
4402 ok(!
pf_exists(
"msitest\\maximus"),
"File not deleted\n");
4403 ok(!
pf_exists(
"msitest"),
"Directory not deleted\n");
4420 skip(
"process is limited\n");
4436 skip(
"Not enough rights to perform tests\n");
4440 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
4441 ok(!
pf_exists(
"msitest\\helium"),
"File installed\n");
4442 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
4447 ok(!
pf_exists(
"msitest\\hydrogen"),
"File not deleted\n");
4448 ok(!
pf_exists(
"msitest\\helium"),
"File not deleted\n");
4459 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
4460 ok(
pf_exists(
"msitest\\helium"),
"File not installed\n");
4461 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
4466 ok(!
pf_exists(
"msitest\\hydrogen"),
"File not deleted\n");
4486 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
4487 ok(!
pf_exists(
"msitest\\helium"),
"File installed\n");
4488 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
4489 ok(!
pf_exists(
"msitest\\furlong"),
"File not deleted\n");
4490 ok(!
pf_exists(
"msitest\\firkin"),
"File not deleted\n");
4491 ok(!
pf_exists(
"msitest\\fortnight"),
"File not deleted\n");
4492 ok(
pf_exists(
"msitest\\becquerel"),
"File not installed\n");
4493 ok(
pf_exists(
"msitest\\dioptre"),
"File not installed\n");
4494 ok(
pf_exists(
"msitest\\attoparsec"),
"File not installed\n");
4495 ok(!
pf_exists(
"msitest\\storeys"),
"File not deleted\n");
4496 ok(!
pf_exists(
"msitest\\block"),
"File not deleted\n");
4497 ok(!
pf_exists(
"msitest\\siriometer"),
"File not deleted\n");
4498 ok(
pf_exists(
"msitest\\cabout"),
"Directory removed\n");
4522 ok(
pf_exists(
"msitest\\cabout"),
"Directory deleted\n");
4530 ok(
pf_exists(
"msitest\\cabout"),
"Directory deleted\n");
4555 skip(
"process is limited\n");
4594 sprintf(
props,
"SOURCEFULL=\"%s\\\" DESTFULL=\"%s\\msitest\" "
4595 "FILEPATHBAD=\"%s\\japan\" FILEPATHGOOD=\"%s\\kenya\"",
4601 skip(
"Not enough rights to perform tests\n");
4623 ok(!
delete_pf(
"msitest\\application",
TRUE),
"File should not exist\n");
4701 skip(
"process is limited\n");
4716 skip(
"Not enough rights to perform tests\n");
4722 ok(
delete_pf(
"msitest\\this\\doesnot\\exist\\maximus",
TRUE),
"File not duplicated\n");
4723 ok(
delete_pf(
"msitest\\this\\doesnot\\exist",
FALSE),
"Directory not created\n");
4744 skip(
"process is limited\n");
4782 skip(
"Not enough rights to perform tests\n");
4802 ok(!
memcmp(
buf,
"\x01\x23\x45\x67", 4),
"wrong data\n");
4843 ok(!
r,
"got %u\n",
r);
4912 skip(
"process is limited\n");
4939 skip(
"Not enough rights to perform tests\n");
4991 ok(!
r,
"got %u\n",
r);
5001 for (
i = 1;
i <= 23;
i++)
5027 skip(
"process is limited\n");
5043 skip(
"Not enough rights to perform tests\n");
5048 ok(
pf_exists(
"msitest\\first\\one.txt"),
"file not installed\n");
5049 ok(
pf_exists(
"msitest\\first"),
"directory not created\n");
5050 ok(
pf_exists(
"msitest\\second\\two.txt"),
"file not installed\n");
5051 ok(
pf_exists(
"msitest\\second"),
"directory not created\n");
5052 ok(
pf_exists(
"msitest\\third"),
"directory not created\n");
5053 ok(
pf_exists(
"msitest"),
"directory not created\n");
5058 ok(!
pf_exists(
"msitest\\first\\one.txt"),
"file not removed\n");
5059 ok(!
pf_exists(
"msitest\\first"),
"directory not removed\n");
5060 ok(!
pf_exists(
"msitest\\second\\two.txt"),
"file not removed\n");
5061 ok(!
pf_exists(
"msitest\\second"),
"directory not removed\n");
5062 ok(!
pf_exists(
"msitest\\third"),
"directory not removed\n");
5077 SC_HANDLE scm, service;
5084 skip(
"Not enough rights to perform tests\n");
5087 ok(scm !=
NULL,
"Failed to open the SC Manager\n");
5093 win_skip(
"The 'Spooler' service does not exist\n");
5106 skip(
"Spooler service not available, skipping test\n");
5140 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
5142 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
5144 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
5146 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
5175 SC_HANDLE manager, service;
5178 ok(manager !=
NULL,
"can't open service manager\n");
5179 if (!manager)
return;
5194 SC_HANDLE manager, service;
5199 skip(
"process is limited\n");
5205 if (!manager)
return;
5207 service =
CreateServiceA(manager,
"TestService3",
"TestService3",
5213 if (!service)
return;
5223 skip(
"Not enough rights to perform tests\n");
5229 ok(manager !=
NULL,
"can't open service manager\n");
5230 if (!manager)
goto error;
5234 ok(service ==
NULL,
"TestService3 not deleted\n");
5241 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
5243 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
5245 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
5247 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
5266 SC_HANDLE manager, service;
5269 DWORD err_control, err_controlsize, err_controltype;
5273 skip(
"process is limited\n");
5285 skip(
"Not enough rights to perform tests\n");
5291 ok(manager !=
NULL,
"can't open service manager\n");
5292 if (!manager)
goto error;
5295 ok(service !=
NULL,
"TestService not installed\n");
5299 ok(service ==
NULL,
"TestService4 installed\n");
5306 err_control = 0xBEEF;
5308 err_controlsize =
sizeof(err_control);
5310 ok(err_control == 0,
"TestService.ErrorControl wrong, expected 0, got %lu\n", err_control);
5318 ok(service !=
NULL,
"TestService deleted\n");
5322 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
5324 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
5326 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
5328 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
5349 skip(
"process is limited\n");
5362 skip(
"Not enough rights to perform tests\n");
5368 ok(!
r,
"got %u\n",
r);
5372 ok(!
r,
"got %u\n",
r);
5388 static const char regfont1[] =
"Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts";
5389 static const char regfont2[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\Fonts";
5397 skip(
"process is limited\n");
5413 skip(
"Not enough rights to perform tests\n");
5448 skip(
"process is limited\n");
5460 skip(
"Not enough rights to perform tests\n");
5474 ok(
delete_pf(
"msitest\\cabout\\new\\five.txt",
TRUE),
"File not installed\n");
5476 ok(
delete_pf(
"msitest\\cabout\\four.txt",
TRUE),
"File not installed\n");
5478 ok(
delete_pf(
"msitest\\changed\\three.txt",
TRUE),
"File not installed\n");
5480 ok(
delete_pf(
"msitest\\first\\two.txt",
TRUE),
"File not installed\n");
5495 int gotdriver = 0, gotdriver2 = 0;
5502 skip(
"process is limited\n");
5510 create_file(
"msitest\\ODBCtranslator2.dll", 1000);
5519 skip(
"Not enough rights to perform tests\n");
5524 ok(
pf_exists(
"msitest\\ODBCdriver.dll"),
"file not created\n");
5525 ok(
pf_exists(
"msitest\\ODBCdriver2.dll"),
"file not created\n");
5526 ok(
pf_exists(
"msitest\\ODBCtranslator.dll"),
"file not created\n");
5527 ok(
pf_exists(
"msitest\\ODBCtranslator2.dll"),
"file not created\n");
5528 ok(
pf_exists(
"msitest\\ODBCsetup.dll"),
"file not created\n");
5532 ok(
r,
"SQLGetInstalledDrivers failed\n");
5535 if (!
strcmp(
p,
"ODBC test driver"))
5537 if (!
strcmp(
p,
"ODBC test driver2"))
5540 ok(gotdriver,
"driver not installed\n");
5541 ok(gotdriver2,
"driver 2 not installed\n");
5546 ok(!
delete_pf(
"msitest\\ODBCdriver.dll",
TRUE),
"file not removed\n");
5547 ok(!
delete_pf(
"msitest\\ODBCdriver2.dll",
TRUE),
"file not removed\n");
5548 ok(!
delete_pf(
"msitest\\ODBCtranslator.dll",
TRUE),
"file not removed\n");
5549 ok(!
delete_pf(
"msitest\\ODBCtranslator2.dll",
TRUE),
"file not removed\n");
5553 gotdriver = gotdriver2 = 0;
5556 ok(
r,
"SQLGetInstalledDrivers failed\n");
5559 if (!
strcmp(
p,
"ODBC test driver"))
5561 if (!
strcmp(
p,
"ODBC test driver2"))
5564 ok(!gotdriver,
"driver not installed\n");
5565 ok(!gotdriver2,
"driver 2 not installed\n");
5585 skip(
"process is limited\n");
5592 win_skip(
"broken on 64-bit Windows\n");
5605 skip(
"Not enough rights to perform tests\n");
5612 ITypeLib_Release(tlb);
5635 skip(
"process is limited\n");
5648 skip(
"Not enough rights to perform tests\n");
5653 ok(
pf_exists(
"msitest\\target.txt"),
"file not created\n");
5654 ok(
pf_exists(
"msitest\\shortcut.lnk"),
"file not created\n");
5671 static const char keypath[] =
5672 "Software\\Microsoft\\Installer\\Components\\0CBCFA296AC907244845745CEEB2F8AA";
5673 static const char keypath2[] =
5674 "Software\\Classes\\Installer\\Components\\0CBCFA296AC907244845745CEEB2F8AA";
5684 skip(
"process is limited\n");
5697 skip(
"Not enough rights to perform tests\n");
5765 skip(
"process is limited\n");
5780 skip(
"Not enough rights to perform tests\n");
5785 ok(
pf_exists(
"msitest\\original.txt"),
"file not created\n");
5786 ok(
pf_exists(
"msitest\\original2.txt"),
"file not created\n");
5787 ok(!
pf_exists(
"msitest\\original3.txt"),
"file created\n");
5788 ok(
pf_exists(
"msitest\\duplicate.txt"),
"file not created\n");
5789 ok(!
pf_exists(
"msitest\\duplicate2.txt"),
"file created\n");
5798 ok(!
delete_pf(
"msitest\\duplicate2.txt",
TRUE),
"file not removed\n");
5815 skip(
"process is limited\n");
5828 skip(
"Not enough rights to perform tests\n");
5859 skip(
"process is limited\n");
5872 skip(
"Not enough rights to perform tests\n");
5888 ok(
len == 6,
"got %lu expected 6\n",
len);
5891 ok(!
len,
"got %lu expected 0\n",
len);
5897 ok(!
len,
"got %lu expected 0\n",
len);
5900 ok(!
len,
"got %lu expected 0\n",
len);
5920 skip(
"process is limited\n");
5933 skip(
"Not enough rights to perform tests\n");
5985 skip(
"process is limited\n");
5998 skip(
"Not enough rights to perform tests\n");
6037 skip(
"process is limited\n");
6055 skip(
"Not enough rights to perform tests\n");
6163 skip(
"process is limited\n");
6176 skip(
"Not enough rights to perform tests\n");
6203 "<assemblyIdentity type=\"win32\" name=\"Wine.Win32.Assembly\" "
6204 "version=\"1.0.0.0\" publicKeyToken=\"abcdef0123456789\" "
6205 "processorArchitecture=\"x86\"/>";
6206 static const char manifest_local[] =
6207 "<assemblyIdentity type=\"win32\" name=\"Wine.Win32.Local.Assembly\" "
6208 "version=\"1.0.0.0\" publicKeyToken=\"abcdef0123456789\" "
6209 "processorArchitecture=\"x86\"/>";
6210 static const char classes_path_dotnet[] =
6211 "Installer\\Assemblies\\Global";
6212 static const char classes_path_dotnet_local[] =
6213 "Installer\\Assemblies\\C:|Program Files|msitest|application_dotnet.txt";
6214 static const char classes_path_dotnet_local_wow64[] =
6215 "Installer\\Assemblies\\C:|Program Files (x86)|msitest|application_dotnet.txt";
6216 static const char classes_path_fake_local[] =
6217 "Installer\\Assemblies\\C:|Program Files|msitest|nonexistent.txt";
6218 static const char classes_path_fake_local_wow64[] =
6219 "Installer\\Assemblies\\C:|Program Files (x86)|msitest|nonexistent.txt";
6220 static const char classes_path_win32[] =
6221 "Installer\\Win32Assemblies\\Global";
6222 static const char classes_path_win32_local[] =
6223 "Installer\\Win32Assemblies\\C:|Program Files|msitest|application_win32.txt";
6224 static const char classes_path_win32_local_wow64[] =
6225 "Installer\\Win32Assemblies\\C:|Program Files (x86)|msitest|application_win32.txt";
6227 "Software\\Microsoft\\Installer\\Assemblies\\Global";
6228 static const char path_dotnet_local[] =
6229 "Software\\Microsoft\\Installer\\Assemblies\\C:|Program Files|msitest|application_dotnet.txt";
6230 static const char path_dotnet_local_wow64[] =
6231 "Software\\Microsoft\\Installer\\Assemblies\\C:|Program Files (x86)|msitest|application_dotnet.txt";
6232 static const char path_fake_local[] =
6233 "Software\\Microsoft\\Installer\\Assemblies\\C:|Program Files|msitest|nonexistent.txt";
6234 static const char path_fake_local_wow64[] =
6235 "Software\\Microsoft\\Installer\\Assemblies\\C:|Program Files (x86)|msitest|nonexistent.txt";
6236 static const char path_win32[] =
6237 "Software\\Microsoft\\Installer\\Win32Assemblies\\Global";
6238 static const char path_win32_local[] =
6239 "Software\\Microsoft\\Installer\\Win32Assemblies\\C:|Program Files|msitest|application_win32.txt";
6240 static const char path_win32_local_wow64[] =
6241 "Software\\Microsoft\\Installer\\Win32Assemblies\\C:|Program Files (x86)|msitest|application_win32.txt";
6243 "Wine.Dotnet.Assembly,processorArchitecture=\"MSIL\",publicKeyToken=\"abcdef0123456789\","
6244 "version=\"1.0.0.0\",culture=\"neutral\"";
6245 static const char name_dotnet_local[] =
6246 "Wine.Dotnet.Local.Assembly,processorArchitecture=\"MSIL\",publicKeyToken=\"abcdef0123456789\","
6247 "version=\"1.0.0.0\",culture=\"neutral\"";
6248 static const char name_win32[] =
6249 "Wine.Win32.Assembly,processorArchitecture=\"x86\",publicKeyToken=\"abcdef0123456789\","
6250 "type=\"win32\",version=\"1.0.0.0\"";
6251 static const char name_win32_local[] =
6252 "Wine.Win32.Local.Assembly,processorArchitecture=\"x86\",publicKeyToken=\"abcdef0123456789\","
6253 "type=\"win32\",version=\"1.0.0.0\"";
6262 skip(
"process is limited\n");
6273 create_file(
"msitest\\application_win32.txt", 1000);
6274 create_file(
"msitest\\application_dotnet.txt", 1000);
6283 skip(
"Not enough rights to perform tests\n");
6296 CHECK_REG_MULTI(hkey, name_dotnet_local,
"rcHQPHq?CA@Uv-XqMI1e>LF,8A?0d.AW@vcZ$Cgox\0");
6301 CHECK_REG_MULTI(hkey, name_win32,
"rcHQPHq?CA@Uv-XqMI1e>}NJjwR'%D9v1p!v{WV(%\0");
6307 CHECK_REG_MULTI(hkey, name_win32_local,
"rcHQPHq?CA@Uv-XqMI1e>C)Uvlj*53A)u(QQ9=)X!\0");
6349 trace(
"Using 64-bit registry view for HKCR\\Installer\n");
6360 CHECK_REG_MULTI(hkey, name_dotnet_local,
"rcHQPHq?CA@Uv-XqMI1e>LF,8A?0d.AW@vcZ$Cgox\0");
6365 CHECK_REG_MULTI(hkey, name_win32,
"rcHQPHq?CA@Uv-XqMI1e>}NJjwR'%D9v1p!v{WV(%\0");
6371 CHECK_REG_MULTI(hkey, name_win32_local,
"rcHQPHq?CA@Uv-XqMI1e>C)Uvlj*53A)u(QQ9=)X!\0");
6426 skip(
"process is limited\n");
6439 skip(
"Not enough rights to perform tests\n");
6463#ifndef GetCurrentThreadEffectiveToken
6464#define GetCurrentProcessToken() ((HANDLE)~(ULONG_PTR)3)
6465#define GetCurrentThreadEffectiveToken() GetCurrentProcessToken()
6486 memset(&si, 0,
sizeof(si));
6488 if (
CreateProcessAsUserW(
token,
NULL,
GetCommandLineW(),
NULL,
NULL,
FALSE, 0,
NULL,
NULL, &si, &
pi))
6492 trace(
"restarting\n");
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
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessAsUserW(_In_opt_ HANDLE hToken, _In_opt_ LPCWSTR lpApplicationName, _Inout_opt_ LPWSTR lpCommandLine, _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ BOOL bInheritHandles, _In_ DWORD dwCreationFlags, _In_opt_ LPVOID lpEnvironment, _In_opt_ LPCWSTR lpCurrentDirectory, _In_ LPSTARTUPINFOW lpStartupInfo, _Out_ LPPROCESS_INFORMATION lpProcessInformation)
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)
DWORD WINAPI GetCurrentDirectoryA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
BOOL WINAPI SetCurrentDirectoryA(IN LPCSTR lpPathName)
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
BOOL WINAPI GetExitCodeProcess(IN HANDLE hProcess, IN LPDWORD lpExitCode)
VOID WINAPI ExitProcess(IN UINT uExitCode)
LPWSTR WINAPI GetCommandLineW(VOID)
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)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
INSTALLSTATE WINAPI MsiQueryProductStateA(LPCSTR szProduct)
UINT WINAPI MsiInstallProductA(LPCSTR szPackagePath, LPCSTR szCommandLine)
UINT WINAPI MsiEnableLogA(DWORD dwLogMode, const char *szLogFile, DWORD attributes)
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)
static BOOL is_process_elevated(void)
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)
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define ERROR_FILE_NOT_FOUND
#define sprintf(buf, format,...)
#define GetCurrentThreadEffectiveToken()
static void create_cab_file(void)
static void create_file_data(LPCSTR name, LPCSTR data, DWORD size)
#define create_file(name, size)
#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 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 HANDLE get_admin_token(void)
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 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 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 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 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 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[]
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[]
void restart_as_admin_elevated(void)
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 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 delete_pf(const CHAR *rel_path, BOOL is_file)
BOOL get_system_dirs(void)
char PROG_FILES_DIR[MAX_PATH]
#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
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
#define FOF_NOCONFIRMATION
int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
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
enum _TOKEN_ELEVATION_TYPE TOKEN_ELEVATION_TYPE
#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