38#define SQUASHED_GUID_SIZE (33)
41static const char msifile[] =
"winetest.msi";
47#define MEDIA_SIZE 0x7FFFFFFF
48#define FOLDER_THRESHOLD 900000
67 IStorage_Release(stg);
82 IStorage_Release(stg);
90 "Directory\tDirectory_Parent\tDefaultDir\n"
92 "Directory\tDirectory\n"
93 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
94 "ProgramFilesFolder\tTARGETDIR\t.\n"
95 "TARGETDIR\t\tSourceDir";
98 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
99 "s72\tS38\ts72\ti2\tS255\tS72\n"
100 "Component\tComponent\n"
101 "One\t{8F5BAEEF-DD92-40AC-9397-BE3CF9F97C81}\tMSITESTDIR\t2\tNOT REINSTALL\tone.txt\n";
104 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
105 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
107 "One\t\tOne\tOne\t1\t3\tMSITESTDIR\t0\n"
108 "Two\t\t\t\t2\t1\tTARGETDIR\t0\n";
111 "Feature_\tComponent_\n"
113 "FeatureComponents\tFeature_\tComponent_\n"
117 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
118 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
120 "one.txt\tOne\tone.txt\t1000\t\t\t0\t1\n";
123 "Action\tCondition\tSequence\n"
125 "InstallExecuteSequence\tAction\n"
126 "ValidateProductID\t\t700\n"
127 "CostInitialize\t\t800\n"
129 "CostFinalize\t\t1000\n"
130 "InstallValidate\t\t1400\n"
131 "InstallInitialize\t\t1500\n"
132 "ProcessComponents\t\t1600\n"
133 "UnpublishFeatures\t\t1800\n"
134 "RemoveFiles\t\t3500\n"
135 "InstallFiles\t\t4000\n"
136 "RegisterProduct\t\t6100\n"
137 "PublishFeatures\t\t6300\n"
138 "PublishProduct\t\t6400\n"
139 "InstallFinalize\t\t6600";
142 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
143 "i2\ti4\tL64\tS255\tS32\tS72\n"
145 "1\t1\t\t\tDISK1\t\n";
150 "Property\tProperty\n"
152 "Manufacturer\tWine\n"
153 "ProductCode\t{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}\n"
154 "ProductName\tMSITEST\n"
155 "ProductVersion\t1.1.1\n"
156 "UpgradeCode\t{9574448F-9B86-4E07-B6F6-8D199DA12127}\n"
157 "MSIFASTINSTALL\t1\n";
162 "Property\tProperty\n"
164 "Manufacturer\tWine\n"
165 "ProductCode\t{FF4AFE9C-6AC2-44F9-A060-9EA6BD16C75E}\n"
166 "ProductName\tMSITEST2\n"
167 "ProductVersion\t1.1.1\n"
168 "UpgradeCode\t{6B60C3CA-B8CA-4FB7-A395-092D98FF5D2A}\n"
169 "MSIFASTINSTALL\t1\n";
172 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
173 "s72\tS38\ts72\ti2\tS255\tS72\n"
174 "Component\tComponent\n"
175 "hydrogen\t{C844BD1E-1907-4C00-8BC9-150BD70DF0A1}\tMSITESTDIR\t2\t\thydrogen\n"
176 "helium\t{5AD3C142-CEF8-490D-B569-784D80670685}\tMSITESTDIR\t2\t\thelium\n"
177 "lithium\t{4AF28FFC-71C7-4307-BDE4-B77C5338F56F}\tMSITESTDIR\t2\tPROPVAR=42\tlithium\n";
180 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
181 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
183 "hydroxyl\t\thydroxyl\thydroxyl\t2\t1\tTARGETDIR\t0\n"
184 "heliox\t\theliox\theliox\t2\t5\tTARGETDIR\t0\n"
185 "lithia\t\tlithia\tlithia\t2\t10\tTARGETDIR\t0";
188 "Feature_\tComponent_\n"
190 "FeatureComponents\tFeature_\tComponent_\n"
191 "hydroxyl\thydrogen\n"
196 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
197 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
199 "hydrogen\thydrogen\thydrogen\t0\t\t\t8192\t1\n"
200 "helium\thelium\thelium\t0\t\t\t8192\t1\n"
201 "lithium\tlithium\tlithium\t0\t\t\t8192\t1";
204 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
205 "s72\tS38\ts72\ti2\tS255\tS72\n"
206 "Component\tComponent\n"
207 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\tUILevel=5\tmaximus\n";
210 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
211 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
213 "feature\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0\n"
214 "montecristo\t\tFeature\tFeature\t2\t1\tTARGETDIR\t0";
217 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
218 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
220 "maximus\tmaximus\tmaximus\t500\t\t\t8192\t1";
223 "Feature_\tComponent_\n"
225 "FeatureComponents\tFeature_\tComponent_\n"
227 "montecristo\tmaximus";
230 "Action\tCondition\tSequence\n"
232 "InstallExecuteSequence\tAction\n"
233 "ValidateProductID\t\t700\n"
234 "CostInitialize\t\t800\n"
236 "CostFinalize\t\t1000\n"
237 "InstallValidate\t\t1400\n"
238 "InstallInitialize\t\t1500\n"
239 "ProcessComponents\tPROCESS_COMPONENTS=1 Or FULL=1\t1600\n"
240 "UnpublishFeatures\tUNPUBLISH_FEATURES=1 Or FULL=1\t1800\n"
241 "RemoveFiles\t\t3500\n"
242 "InstallFiles\t\t4000\n"
243 "RegisterUser\tREGISTER_USER=1 Or FULL=1\t6000\n"
244 "RegisterProduct\tREGISTER_PRODUCT=1 Or FULL=1\t6100\n"
245 "PublishFeatures\tPUBLISH_FEATURES=1 Or FULL=1\t6300\n"
246 "PublishProduct\tPUBLISH_PRODUCT=1 Or FULL=1\t6400\n"
247 "InstallFinalize\t\t6600";
250 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
251 "i2\ti4\tL64\tS255\tS32\tS72\n"
253 "1\t1\t\t\tDISK1\t\n";
256 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
257 "i2\ti4\tL64\tS255\tS32\tS72\n"
259 "1\t1\t\ttest1.cab\tDISK1\t\n";
262 "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"
263 "i2\ti4\tL64\tS255\tS32\tS72\n"
265 "1\t1\t\t#test1.cab\tDISK1\t\n";
268 "Action\tType\tSource\tTarget\tISComments\n"
269 "s72\ti2\tS64\tS0\tS255\n"
270 "CustomAction\tAction\n"
271 "SetFolderProp\t51\tMSITESTDIR\t[ProgramFilesFolder]\\msitest\\added\t\n"
272 "SetFolderProp2\t51\tMSITESTDIR\t[ProgramFilesFolder]\\msitest\\added\\added2\t\n";
275 "Action\tCondition\tSequence\n"
277 "InstallExecuteSequence\tAction\n"
278 "CostInitialize\t\t800\n"
280 "SetFolderProp\t\t950\n"
281 "SetFolderProp2\t\t960\n"
282 "CostFinalize\t\t1000\n"
283 "InstallValidate\t\t1400\n"
284 "InstallInitialize\t\t1500\n"
285 "InstallFiles\t\t4000\n"
286 "InstallServices\t\t5000\n"
287 "InstallFinalize\t\t6600\n";
290 "Action\tCondition\tSequence\n"
292 "InstallUISequence\tAction\n"
293 "CostInitialize\t\t800\n"
295 "CostFinalize\t\t1000\n"
296 "ExecuteAction\t\t1100\n";
299 "Directory\tDirectory_Parent\tDefaultDir\n"
301 "Directory\tDirectory\n"
302 "PARENTDIR\tTARGETDIR\tparent\n"
303 "CHILDDIR\tPARENTDIR\tchild\n"
304 "MSITESTDIR\tProgramFilesFolder\tmsitest\n"
305 "ProgramFilesFolder\tTARGETDIR\t.\n"
306 "TARGETDIR\t\tSourceDir";
309 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
310 "s72\tS38\ts72\ti2\tS255\tS72\n"
311 "Component\tComponent\n"
312 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\tUILevel=5\tmaximus\n";
315 "Action\tCondition\tSequence\n"
317 "InstallExecuteSequence\tAction\n"
318 "CostInitialize\t\t800\n"
320 "FormatParentFolderCheck\t\t910\n"
321 "FormatChildFolderCheck\t\t920\n"
322 "CheckParentFolder\tNOT PARENTDIR=PARENTDIRCHECK\t930\n"
323 "CheckChildFolder\tNOT CHILDDIR=CHILDDIRCHECK\t940\n"
324 "FormatParentFolderCheck2\t\t945\n"
325 "SetParentFolder\t\t950\n"
326 "CheckParentFolder2\tNOT PARENTDIR=PARENTDIRCHECK\t960\n"
327 "CheckChildFolder2\tNOT CHILDDIR=CHILDDIRCHECK\t970\n"
328 "CostFinalize\t\t1000\n"
329 "FormatParentFolderCheck3\t\t1005\n"
330 "CheckParentFolder3\tNOT PARENTDIR=PARENTDIRCHECK\t1010\n"
331 "CheckChildFolder3\tNOT CHILDDIR=CHILDDIRCHECK\t1020\n"
332 "InstallValidate\t\t1400\n"
333 "InstallInitialize\t\t1500\n"
334 "InstallFiles\t\t4000\n"
335 "CreateShortcuts\t\t4100\n"
336 "InstallFinalize\t\t6600\n";
339 "Action\tType\tSource\tTarget\tISComments\n"
340 "s72\ti2\tS64\tS0\tS255\n"
341 "CustomAction\tAction\n"
342 "FormatParentFolderCheck\t51\tPARENTDIRCHECK\t[TARGETDIR]parent\\\t\n"
343 "FormatChildFolderCheck\t51\tCHILDDIRCHECK\t[TARGETDIR]parent\\child\\\t\n"
344 "CheckParentFolder\t19\tPARENTDIR\tparent prop wrong before set: [PARENTDIR]\t\n"
345 "CheckChildFolder\t19\tCHILDDIR\tchild prop wrong before set: [CHILDDIR]\t\n"
346 "FormatParentFolderCheck2\t51\tPARENTDIRCHECK\t[ProgramFilesFolder]msitest\\parent\t\n"
347 "SetParentFolder\t51\tPARENTDIR\t[PARENTDIRCHECK]\t\n"
348 "CheckParentFolder2\t19\tPARENTDIR\tparent prop wrong after set: [PARENTDIR]\t\n"
349 "CheckChildFolder2\t19\tCHILDDIR\tchild prop wrong after set: [CHILDDIR]\t\n"
350 "FormatParentFolderCheck3\t51\tPARENTDIRCHECK\t[ProgramFilesFolder]msitest\\parent\\\t\n"
351 "CheckParentFolder3\t19\tPARENTDIR\tparent prop wrong after CostFinalize: [PARENTDIR]\t\n"
352 "CheckChildFolder3\t19\tCHILDDIR\tchild prop wrong after CostFinalize: [CHILDDIR]\t\n";
355 "Shortcut\tDirectory_\tName\tComponent_\tTarget\tArguments\tDescription\tHotkey\tIcon_\tIconIndex\tShowCmd\tWkDir\n"
356 "s72\ts72\tl128\ts72\ts72\tS255\tL255\tI2\tS72\tI2\tI2\tS72\n"
357 "Shortcut\tShortcut\n"
358 "Shortcut\tCHILDDIR\tShortcut\tmaximus\t[#maximus]\t\tShortcut\t\t\t\t\tMSITESTDIR\n";
361 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
362 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
364 "sourcedir.txt\tsourcedir\tsourcedir.txt\t1000\t\t\t8192\t1\n";
367 "Feature\tFeature_Parent\tTitle\tDescription\tDisplay\tLevel\tDirectory_\tAttributes\n"
368 "s38\tS38\tL64\tL255\tI2\ti2\tS72\ti2\n"
370 "sourcedir\t\t\tsourcedir feature\t1\t2\tMSITESTDIR\t0\n";
373 "Feature_\tComponent_\n"
375 "FeatureComponents\tFeature_\tComponent_\n"
376 "sourcedir\tsourcedir\n";
379 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
380 "s72\tS38\ts72\ti2\tS255\tS72\n"
381 "Component\tComponent\n"
382 "sourcedir\t{DD422F92-3ED8-49B5-A0B7-F266F98357DF}\tMSITESTDIR\t0\t\tsourcedir.txt\n";
385 "Action\tCondition\tSequence\n"
387 "InstallUISequence\tAction\n"
388 "TestSourceDirProp1\tnot SourceDir and not SOURCEDIR and not Installed\t99\n"
390 "TestSourceDirProp2\tnot SourceDir and not SOURCEDIR and not Installed\t101\n"
391 "LaunchConditions\tnot Installed \t110\n"
392 "TestSourceDirProp3\tnot SourceDir and not SOURCEDIR and not Installed\t111\n"
393 "FindRelatedProducts\t\t120\n"
394 "TestSourceDirProp4\tnot SourceDir and not SOURCEDIR and not Installed\t121\n"
396 "TestSourceDirProp5\tnot SourceDir and not SOURCEDIR and not Installed\t131\n"
397 "RMCCPSearch\t\t140\n"
398 "TestSourceDirProp6\tnot SourceDir and not SOURCEDIR and not Installed\t141\n"
399 "ValidateProductID\t\t150\n"
400 "TestSourceDirProp7\tnot SourceDir and not SOURCEDIR and not Installed\t151\n"
401 "CostInitialize\t\t800\n"
402 "TestSourceDirProp8\tnot SourceDir and not SOURCEDIR and not Installed\t801\n"
404 "TestSourceDirProp9\tnot SourceDir and not SOURCEDIR and not Installed\t901\n"
405 "IsolateComponents\t\t1000\n"
406 "TestSourceDirProp10\tnot SourceDir and not SOURCEDIR and not Installed\t1001\n"
407 "CostFinalize\t\t1100\n"
408 "TestSourceDirProp11\tnot SourceDir and not SOURCEDIR and not Installed\t1101\n"
409 "MigrateFeatureStates\t\t1200\n"
410 "TestSourceDirProp12\tnot SourceDir and not SOURCEDIR and not Installed\t1201\n"
411 "ExecuteAction\t\t1300\n"
412 "TestSourceDirProp13\tnot SourceDir and not SOURCEDIR and not Installed\t1301\n";
415 "Action\tCondition\tSequence\n"
417 "InstallExecuteSequence\tAction\n"
418 "TestSourceDirProp14\tSourceDir and SOURCEDIR and not Installed\t99\n"
419 "LaunchConditions\t\t100\n"
420 "TestSourceDirProp15\tSourceDir and SOURCEDIR and not Installed\t101\n"
421 "ValidateProductID\t\t700\n"
422 "TestSourceDirProp16\tSourceDir and SOURCEDIR and not Installed\t701\n"
423 "CostInitialize\t\t800\n"
424 "TestSourceDirProp17\tSourceDir and SOURCEDIR and not Installed\t801\n"
425 "ResolveSource\tResolveSource and not Installed\t850\n"
426 "TestSourceDirProp18\tResolveSource and not SourceDir and not SOURCEDIR and not Installed\t851\n"
427 "TestSourceDirProp19\tnot ResolveSource and SourceDir and SOURCEDIR and not Installed\t852\n"
429 "TestSourceDirProp20\tSourceDir and SOURCEDIR and not Installed\t901\n"
430 "IsolateComponents\t\t1000\n"
431 "TestSourceDirProp21\tSourceDir and SOURCEDIR and not Installed\t1001\n"
432 "CostFinalize\t\t1100\n"
433 "TestSourceDirProp22\tSourceDir and SOURCEDIR and not Installed\t1101\n"
434 "MigrateFeatureStates\t\t1200\n"
435 "TestSourceDirProp23\tSourceDir and SOURCEDIR and not Installed\t1201\n"
436 "InstallValidate\t\t1400\n"
437 "TestSourceDirProp24\tSourceDir and SOURCEDIR and not Installed\t1401\n"
438 "InstallInitialize\t\t1500\n"
439 "TestSourceDirProp25\tSourceDir and SOURCEDIR and not Installed\t1501\n"
440 "ProcessComponents\t\t1600\n"
441 "TestSourceDirProp26\tnot SourceDir and not SOURCEDIR and not Installed\t1601\n"
442 "UnpublishFeatures\t\t1800\n"
443 "TestSourceDirProp27\tnot SourceDir and not SOURCEDIR and not Installed\t1801\n"
444 "RemoveFiles\t\t3500\n"
445 "TestSourceDirProp28\tnot SourceDir and not SOURCEDIR and not Installed\t3501\n"
446 "InstallFiles\t\t4000\n"
447 "TestSourceDirProp29\tnot SourceDir and not SOURCEDIR and not Installed\t4001\n"
448 "RegisterUser\t\t6000\n"
449 "TestSourceDirProp30\tnot SourceDir and not SOURCEDIR and not Installed\t6001\n"
450 "RegisterProduct\t\t6100\n"
451 "TestSourceDirProp31\tnot SourceDir and not SOURCEDIR and not Installed\t6101\n"
452 "PublishFeatures\t\t6300\n"
453 "TestSourceDirProp32\tnot SourceDir and not SOURCEDIR and not Installed\t6301\n"
454 "PublishProduct\t\t6400\n"
455 "TestSourceDirProp33\tnot SourceDir and not SOURCEDIR and not Installed\t6401\n"
456 "InstallExecute\t\t6500\n"
457 "TestSourceDirProp34\tnot SourceDir and not SOURCEDIR and not Installed\t6501\n"
458 "InstallFinalize\t\t6600\n"
459 "TestSourceDirProp35\tnot SourceDir and not SOURCEDIR and not Installed\t6601\n";
462 "Action\tType\tSource\tTarget\tISComments\n"
463 "s72\ti2\tS64\tS0\tS255\n"
464 "CustomAction\tAction\n"
465 "TestSourceDirProp1\t19\t\tTest 1 failed\t\n"
466 "TestSourceDirProp2\t19\t\tTest 2 failed\t\n"
467 "TestSourceDirProp3\t19\t\tTest 3 failed\t\n"
468 "TestSourceDirProp4\t19\t\tTest 4 failed\t\n"
469 "TestSourceDirProp5\t19\t\tTest 5 failed\t\n"
470 "TestSourceDirProp6\t19\t\tTest 6 failed\t\n"
471 "TestSourceDirProp7\t19\t\tTest 7 failed\t\n"
472 "TestSourceDirProp8\t19\t\tTest 8 failed\t\n"
473 "TestSourceDirProp9\t19\t\tTest 9 failed\t\n"
474 "TestSourceDirProp10\t19\t\tTest 10 failed\t\n"
475 "TestSourceDirProp11\t19\t\tTest 11 failed\t\n"
476 "TestSourceDirProp12\t19\t\tTest 12 failed\t\n"
477 "TestSourceDirProp13\t19\t\tTest 13 failed\t\n"
478 "TestSourceDirProp14\t19\t\tTest 14 failed\t\n"
479 "TestSourceDirProp15\t19\t\tTest 15 failed\t\n"
480 "TestSourceDirProp16\t19\t\tTest 16 failed\t\n"
481 "TestSourceDirProp17\t19\t\tTest 17 failed\t\n"
482 "TestSourceDirProp18\t19\t\tTest 18 failed\t\n"
483 "TestSourceDirProp19\t19\t\tTest 19 failed\t\n"
484 "TestSourceDirProp20\t19\t\tTest 20 failed\t\n"
485 "TestSourceDirProp21\t19\t\tTest 21 failed\t\n"
486 "TestSourceDirProp22\t19\t\tTest 22 failed\t\n"
487 "TestSourceDirProp23\t19\t\tTest 23 failed\t\n"
488 "TestSourceDirProp24\t19\t\tTest 24 failed\t\n"
489 "TestSourceDirProp25\t19\t\tTest 25 failed\t\n"
490 "TestSourceDirProp26\t19\t\tTest 26 failed\t\n"
491 "TestSourceDirProp27\t19\t\tTest 27 failed\t\n"
492 "TestSourceDirProp28\t19\t\tTest 28 failed\t\n"
493 "TestSourceDirProp29\t19\t\tTest 29 failed\t\n"
494 "TestSourceDirProp30\t19\t\tTest 30 failed\t\n"
495 "TestSourceDirProp31\t19\t\tTest 31 failed\t\n"
496 "TestSourceDirProp32\t19\t\tTest 32 failed\t\n"
497 "TestSourceDirProp33\t19\t\tTest 33 failed\t\n"
498 "TestSourceDirProp34\t19\t\tTest 34 failed\t\n"
499 "TestSourceDirProp35\t19\t\tTest 35 failed\t\n";
502 "Action\tCondition\tSequence\n"
504 "InstallExecuteSequence\tAction\n"
505 "CostInitialize\t\t800\n"
507 "CostFinalize\t\t1000\n"
508 "InstallValidate\t\t1400\n"
509 "InstallInitialize\t\t1500\n"
510 "RunInstall\tnot Installed\t1550\n"
511 "ProcessComponents\t\t1600\n"
512 "UnpublishFeatures\t\t1800\n"
513 "RemoveFiles\t\t3500\n"
514 "InstallFiles\t\t4000\n"
515 "RegisterProduct\t\t6100\n"
516 "PublishFeatures\t\t6300\n"
517 "PublishProduct\t\t6400\n"
518 "InstallFinalize\t\t6600\n";
521 "Action\tType\tSource\tTarget\tISComments\n"
522 "s72\ti2\tS64\tS0\tS255\n"
523 "CustomAction\tAction\n"
524 "RunInstall\t23\tmsitest\\concurrent.msi\tMYPROP=[UILevel]\t\n";
527 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
528 "s72\tS38\ts72\ti2\tS255\tS72\n"
529 "Component\tComponent\n"
530 "maximus\t{DF2CBABC-3BCC-47E5-A998-448D1C0C895B}\tMSITESTDIR\t0\tUILevel=5\tmaximus\n";
533 "Component\tComponentId\tDirectory_\tAttributes\tCondition\tKeyPath\n"
534 "s72\tS38\ts72\ti2\tS255\tS72\n"
535 "Component\tComponent\n"
536 "augustus\t\tMSITESTDIR\t0\tUILevel=3 AND MYPROP=5\taugustus\n";
539 "Feature_\tComponent_\n"
541 "FeatureComponents\tFeature_\tComponent_\n"
545 "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
546 "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
548 "augustus\taugustus\taugustus\t500\t\t\t8192\t1";
551 "Action\tType\tSource\tTarget\tISComments\n"
552 "s72\ti2\tS64\tS0\tS255\n"
553 "CustomAction\tAction\n"
554 "TestCommandlineProp\t19\t\tTest1\t\n";
557 "Action\tCondition\tSequence\n"
559 "InstallExecuteSequence\tAction\n"
560 "LaunchConditions\t\t100\n"
561 "ValidateProductID\t\t700\n"
562 "CostInitialize\t\t800\n"
564 "CostFinalize\t\t1000\n"
565 "TestCommandlineProp\tP=\"one\"\t1100\n"
566 "InstallInitialize\t\t1500\n"
567 "ProcessComponents\t\t1600\n"
568 "InstallValidate\t\t1400\n"
569 "InstallFinalize\t\t5000\n";
722 "Installation Database");
726 "Installation Database");
738 "{A2078D65-94D6-4205-8DEE-F68D6FD622AA}");
776 "CREATE TABLE `Directory` ( "
777 "`Directory` CHAR(255) NOT NULL, "
778 "`Directory_Parent` CHAR(255), "
779 "`DefaultDir` CHAR(255) NOT NULL "
780 "PRIMARY KEY `Directory`)");
784 "CREATE TABLE `Property` ( "
785 "`Property` CHAR(72) NOT NULL, "
787 "PRIMARY KEY `Property`)");
791 "(`Property`, `Value`) "
792 "VALUES( 'ProductCode', '%s' )", prodcode);
823 "WORDVIEWFiles", -2, 0 );
827 "WORDVIEWFiles", -2, 0 );
831 "WORDVIEWFiles", -2, 1 );
840 DWORD dwType, cbData;
876 skip(
"Not enough rights to perform tests\n");
885 if (!(lpData =
malloc(cbData)))
skip(
"Out of memory\n");
896 skip(
"Not enough rights to perform tests\n");
961 "{00000000-0000-0000-0000-000000000000}",
buffer, &sz );
965 "{00000000-0000-0000-0000-00000000}",
buffer, &sz );
969 "{029E403D-A86A-1D11-5B5B0006799C897E}",
buffer, &sz );
973 "{00000000-A68A-11d1-5B5B-0006799C897E}",
buffer, &sz );
1011#define HASHSIZE sizeof(MSIFILEHASHINFO)
1028 { 0x98500190, 0xb04fd23c, 0x7d3f96d6, 0x727fe128 },
1032 {
"C:\\Program Files\\msitest\\caesar\n", 0,
1034 { 0x2b566794, 0xfd42181b, 0x2514d6e4, 0x5768b4e2 },
1038 {
"C:\\Program Files\\msitest\\caesar\n", 500,
1040 { 0x58095058, 0x805efeff, 0x10f3483e, 0x0147d653 },
1047 const char name[] =
"msitest.bin";
1061 "Expected ERROR_PATH_NOT_FOUND or ERROR_BAD_PATHNAME, got %d\n",
r);
1072 hash.dwFileHashInfoSize = 0;
1093 ok(!
ret,
"Hash incorrect\n");
1141 ok(
hr ==
S_OK,
"Expected S_OK, got %#lx\n",
hr);
1159 char *usersid =
NULL;
1197 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1204 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1211 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1218 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1232 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1242 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
1255 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\");
1261 skip(
"Not enough rights to perform tests\n");
1290 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1298 skip(
"Not enough rights to perform tests\n");
1364 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
1366 lstrcatA(keypath,
"\\Installer\\Products\\");
1374 "Expected INSTALLSTATE_ADVERTISED, got %d\n",
state);
1376 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1386 "Expected INSTALLSTATE_ADVERTISED, got %d\n",
state);
1393 "Expected INSTALLSTATE_ADVERTISED, got %d\n",
state);
1413 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
1419 skip(
"insufficient rights\n" );
1428 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1429 lstrcatA(keypath,
"S-1-5-18\\Products\\");
1437 "Expected INSTALLSTATE_ADVERTISED, got %d\n",
state);
1444 "Expected INSTALLSTATE_ADVERTISED, got %d\n",
state);
1466"!$%&'()*+,-.0123456789=?@ABCDEFGHIJKLMNO"
1467"PQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwx"
1476 unsigned int x, *
p,
i;
1478 p = (
unsigned int*)
guid;
1479 for(
i=0;
i<4;
i++ )
1505 ok(
hr ==
S_OK,
"Expected S_OK, got %#lx\n",
hr);
1508 ok(
size == 39,
"Expected 39, got %d\n",
size);
1519 HKEY userkey, localkey, compkey, compkey2;
1545 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1552 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1559 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1566 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1580 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1587 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
1605 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Features\\");
1628 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1637 skip(
"Not enough rights to perform tests\n");
1688 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1690 lstrcatA(keypath,
"\\Components\\");
1696 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1698 lstrcatA(keypath,
"\\Components\\");
1792 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
1794 lstrcatA(keypath,
"\\Installer\\Features\\");
1811 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1848 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1850 lstrcatA(keypath,
"\\Components\\");
1856 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1858 lstrcatA(keypath,
"\\Components\\");
1899 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Features\\");
1905 skip(
"insufficient rights\n" );
1922 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1923 lstrcatA(keypath,
"S-1-5-18\\Products\\");
1958 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1959 lstrcatA(keypath,
"S-1-5-18\\Components\\");
1965 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
1966 lstrcatA(keypath,
"S-1-5-18\\Components\\");
2009 HKEY compkey, prodkey;
2033 state = MAGIC_ERROR;
2038 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2039 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2042 state = MAGIC_ERROR;
2047 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2048 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2051 state = MAGIC_ERROR;
2056 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2057 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2060 state = MAGIC_ERROR;
2065 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2066 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2069 state = MAGIC_ERROR;
2074 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2075 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2078 state = MAGIC_ERROR;
2083 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2084 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2086 state = MAGIC_ERROR;
2091 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2092 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2094 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
2100 skip(
"Not enough rights to perform tests\n");
2106 state = MAGIC_ERROR;
2112 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2118 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Products\\");
2120 lstrcatA(keypath,
"\\InstallProperties");
2125 skip(
"Not enough rights to perform tests\n");
2132 state = MAGIC_ERROR;
2136 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2137 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2143 state = MAGIC_ERROR;
2149 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2151 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Components\\");
2158 state = MAGIC_ERROR;
2164 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2170 state = MAGIC_ERROR;
2176 "Expected INSTALLSTATE_NOTUSED or INSTALLSTATE_LOCAL, got %d\n",
state);
2177 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2180 state = MAGIC_ERROR;
2185 ok(
state == MAGIC_ERROR,
"Expected state not changed, got %d\n",
state);
2186 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2192 state = MAGIC_ERROR;
2198 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2204 state = MAGIC_ERROR;
2210 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2216 state = MAGIC_ERROR;
2222 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2228 state = MAGIC_ERROR;
2234 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2240 state = MAGIC_ERROR;
2246 ok(
error == 0xdeadbeef,
"expected 0xdeadbeef, got %lu\n",
error);
2257 state = MAGIC_ERROR;
2260 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2262 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
2268 state = MAGIC_ERROR;
2276 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
2280 lstrcatA(keypath,
"\\InstallProperties");
2290 state = MAGIC_ERROR;
2295 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
2297 lstrcatA(keypath,
"\\Components\\");
2304 state = MAGIC_ERROR;
2313 state = MAGIC_ERROR;
2317 "Expected INSTALLSTATE_NOTUSED or INSTALLSTATE_LOCAL, got %d\n",
state);
2322 state = MAGIC_ERROR;
2329 state = MAGIC_ERROR;
2332 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2334 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
2340 state = MAGIC_ERROR;
2343 ok(
state == MAGIC_ERROR,
"Expected 0xdeadbeef, got %d\n",
state);
2348 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
2350 lstrcatA(keypath,
"\\Installer\\Products\\");
2356 state = MAGIC_ERROR;
2364 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
2368 lstrcatA(keypath,
"\\InstallProperties");
2376 state = MAGIC_ERROR;
2393 HKEY compkey, prodkey, installprop;
2464 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2465 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Components\\");
2471 skip(
"Not enough rights to perform tests\n");
2497 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2504 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2506 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2507 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Products\\");
2509 lstrcatA(keypath,
"\\InstallProperties");
2524 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2531 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2541 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2548 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2555 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2562 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2572 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2573 lstrcatA(keypath,
"Installer\\UserData\\");
2575 lstrcatA(keypath,
"\\Components\\");
2601 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2608 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2610 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2611 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Products\\");
2613 lstrcatA(keypath,
"\\InstallProperties");
2628 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2635 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2645 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2652 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2662 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2663 lstrcatA(keypath,
"Installer\\Managed\\");
2665 lstrcatA(keypath,
"\\Installer\\Products\\");
2682 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2683 lstrcatA(keypath,
"Installer\\UserData\\");
2685 lstrcatA(keypath,
"\\Components\\");
2711 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2718 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2720 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2721 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Products\\");
2723 lstrcatA(keypath,
"\\InstallProperties");
2738 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2745 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2755 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2762 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2774 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
2791 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2792 lstrcatA(keypath,
"Installer\\UserData\\");
2794 lstrcatA(keypath,
"\\Components\\");
2820 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2827 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2837 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2844 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2853 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
2859 skip(
"insufficient rights\n" );
2876 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
2877 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Components\\");
2903 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2910 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2920 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2927 ok(
size == 10,
"Expected 10, got %lu\n",
size);
2940 HKEY key_comp, key_installprop, key_prod;
2991 lstrcpyA( path_key,
"Software\\Microsoft\\Windows\\CurrentVersion\\" );
2992 lstrcatA( path_key,
"Installer\\UserData\\S-1-5-18\\Components\\" );
2993 lstrcatA( path_key, comp_squashed );
2998 skip(
"insufficient rights\n" );
3020 lstrcpyA( path_key,
"Software\\Microsoft\\Windows\\CurrentVersion\\" );
3021 lstrcatA( path_key,
"Installer\\UserData\\S-1-5-18\\Products\\" );
3022 lstrcatA( path_key, prod_squashed );
3023 lstrcatA( path_key,
"\\InstallProperties" );
3065 lstrcpyA( path_key,
"Software\\Microsoft\\Installer\\Products\\" );
3066 lstrcatA( path_key, prod_squashed );
3077 lstrcpyA( path_key,
"Software\\Microsoft\\Windows\\CurrentVersion\\" );
3078 lstrcatA( path_key,
"Installer\\UserData\\" );
3080 lstrcatA( path_key,
"\\Components\\" );
3081 lstrcatA( path_key, comp_squashed );
3120 lstrcpyA( path_key,
"Software\\Microsoft\\Windows\\CurrentVersion\\" );
3121 lstrcatA( path_key,
"Installer\\Managed\\" );
3123 lstrcatA( path_key,
"\\Installer\\Products\\" );
3124 lstrcatA( path_key, prod_squashed );
3134 lstrcpyA( path_key,
"Software\\Microsoft\\Windows\\CurrentVersion\\" );
3135 lstrcatA( path_key,
"Installer\\UserData\\" );
3137 lstrcatA( path_key,
"\\Components\\" );
3138 lstrcatA( path_key, comp_squashed );
3159 lstrcpyA( path_key,
"Software\\Microsoft\\Windows\\CurrentVersion\\" );
3160 lstrcatA( path_key,
"Installer\\UserData\\S-1-5-18\\Products\\" );
3161 lstrcatA( path_key, prod_squashed );
3162 lstrcatA( path_key,
"\\InstallProperties" );
3198 lstrcpyA( path_key,
"Software\\Classes\\Installer\\Products\\" );
3199 lstrcatA( path_key, prod_squashed );
3204 skip(
"insufficient rights\n" );
3216 lstrcpyA( path_key,
"Software\\Microsoft\\Windows\\CurrentVersion\\" );
3217 lstrcatA( path_key,
"Installer\\UserData\\S-1-5-18\\Components\\" );
3218 lstrcatA( path_key, comp_squashed );
3269 skip(
"process is limited\n");
3282 "{17961602-C4E2-482E-800A-DF6E627549CF}",
3295 "{DD422F92-3ED8-49B5-A0B7-F266F98357DF}",
3298 ok(
buf[0],
"empty path\n");
3303 "{DD422F92-3ED8-49B5-A0B7-F266F98357DF}",
3306 ok(len2 ==
len,
"got %lu\n", len2);
3310 "{DD422F92-3ED8-49B5-A0B7-F266F98357DF}",
3313 ok(len2 ==
len,
"got %lu\n", len2);
3322 ok(bufW[0],
"empty path\n");
3329 ok(len2 ==
len,
"got %lu\n", len2);
3335 ok(len2 ==
len,
"got %lu\n", len2);
3349 char comp[39], comp_squashed[33], comp2[39], comp2_base85[21], comp2_squashed[33];
3350 char prod[39], prod_base85[21], prod_squashed[33];
3354 HKEY hkey, hkey2, hkey3, hkey4, hkey5;
3359 skip(
"process is limited\n" );
3370 lstrcpyA( keypath,
"Software\\Classes\\Installer\\Components\\" );
3371 lstrcatA( keypath, comp_squashed );
3380 lstrlenA(prod_base85) +
sizeof(
"feature<\0") );
3392 lstrcpyA( keypath,
"Software\\Classes\\Installer\\Products\\" );
3393 lstrcatA( keypath, prod_squashed );
3404 lstrcpyA( keypath,
"Software\\Classes\\Installer\\Features\\" );
3405 lstrcatA( keypath, prod_squashed );
3426 lstrcpyA( keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Products\\" );
3427 lstrcatA( keypath, prod_squashed );
3439 lstrcpyA( keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Components\\" );
3440 lstrcatA( keypath, comp2_squashed );
3487 HKEY compkey, prodkey;
3514 ok(!
lstrcmpA(product,
"prod"),
"Expected product to be unchanged, got %s\n", product);
3520 ok(!
lstrcmpA(product,
"prod"),
"Expected product to be unchanged, got %s\n", product);
3526 ok(!
lstrcmpA(product,
"prod"),
"Expected product to be unchanged, got %s\n", product);
3532 ok(!
lstrcmpA(product,
"prod"),
"Expected product to be unchanged, got %s\n", product);
3538 ok(!
lstrcmpA(product,
"prod"),
"Expected product to be unchanged, got %s\n", product);
3544 ok(!
lstrcmpA(product,
"prod"),
"Expected product to be unchanged, got %s\n", product);
3550 ok(!
lstrcmpA(product,
"prod"),
"Expected product to be unchanged, got %s\n", product);
3552 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
3553 lstrcatA(keypath,
"Installer\\UserData\\");
3555 lstrcatA(keypath,
"\\Components\\");
3561 skip(
"Not enough rights to perform tests\n");
3571 ok(!
lstrcmpA(product,
"prod"),
"Expected product to be unchanged, got %s\n", product);
3580 ok(!
lstrcmpA(product, prodcode),
"Expected %s, got %s\n", prodcode, product);
3585 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
3586 lstrcatA(keypath,
"Installer\\Managed\\");
3588 lstrcatA(keypath,
"\\Installer\\Products\\");
3598 ok(!
lstrcmpA(product, prodcode),
"Expected %s, got %s\n", prodcode, product);
3603 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
3613 ok(!
lstrcmpA(product, prodcode),
"Expected %s, got %s\n", prodcode, product);
3618 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
3624 skip(
"insufficient rights\n" );
3634 ok(!
lstrcmpA(product, prodcode),
"Expected %s, got %s\n", prodcode, product);
3639 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
3640 lstrcatA(keypath,
"Installer\\Managed\\");
3642 lstrcatA(keypath,
"\\Installer\\Products\\");
3652 ok(!
lstrcmpA(product, prodcode2),
"Expected %s, got %s\n", prodcode2, product);
3661 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
3662 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Components\\");
3672 ok(!
lstrcmpA(product,
"prod"),
"Expected product to be unchanged, got %s\n", product);
3681 ok(!
lstrcmpA(product, prodcode),
"Expected %s, got %s\n", prodcode, product);
3686 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
3687 lstrcatA(keypath,
"Installer\\Managed\\");
3689 lstrcatA(keypath,
"\\Installer\\Products\\");
3699 ok(!
lstrcmpA(product, prodcode),
"Expected %s, got %s\n", prodcode, product);
3704 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
3714 ok(!
lstrcmpA(product, prodcode),
"Expected %s, got %s\n", prodcode, product);
3719 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
3725 skip(
"insufficient rights\n" );
3735 ok(!
lstrcmpA(product, prodcode),
"Expected %s, got %s\n", prodcode, product);
3740 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
3741 lstrcatA(keypath,
"Installer\\Managed\\");
3743 lstrcatA(keypath,
"\\Installer\\Products\\");
3753 ok(!
lstrcmpA(product, prodcode2),
"Expected %s, got %s\n", prodcode2, product);
3793 ok(!
lstrcmpA(product,
""),
"Expected product to be unchanged, got %s\n", product);
3799 ok(!
lstrcmpA(product,
""),
"Expected product to be unchanged, got %s\n", product);
3809 ok(!
lstrcmpA(product,
""),
"Expected product to be unchanged, got %s\n", product);
3811 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
3812 lstrcatA(keypath,
"Installer\\UserData\\");
3814 lstrcatA(keypath,
"\\Components\\");
3820 skip(
"Not enough rights to perform tests\n");
3830 ok(!
lstrcmpA(product,
""),
"Expected product to be unchanged, got %s\n", product);
3836 ok(!
lstrcmpA(product,
""),
"Expected product to be unchanged, got %s\n", product);
3844 ok(!
lstrcmpA(product, prodcode),
"Expected %s, got %s\n", prodcode, product);
3850 ok(!
lstrcmpA(product, prodcode),
"Expected %s, got %s\n", prodcode, product);
3856 ok(!
lstrcmpA(product,
""),
"Expected product to be unchanged, got %s\n", product);
3867 ok(!
lstrcmpA(product,
""),
"Expected product to be unchanged, got %s\n", product);
3875 "Expected %s or %s, got %s\n", prodcode, prodcode2, product);
3882 "Expected %s or %s, got %s\n", prodcode, prodcode2, product);
3889 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
3890 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Components\\");
3896 skip(
"Not enough rights to perform tests\n");
3906 ok(!
lstrcmpA(product,
""),
"Expected product to be unchanged, got %s\n", product);
3912 ok(!
lstrcmpA(product,
""),
"Expected product to be unchanged, got %s\n", product);
3921 ok(!
lstrcmpA(product, prodcode),
"Expected %s, got %s\n", prodcode, product);
3932 ok(!
lstrcmpA(product,
""),
"Expected product to be unchanged, got %s\n", product);
3943 ok(!
lstrcmpA(product,
""),
"Expected product to be unchanged, got %s\n", product);
3951 "Expected %s or %s, got %s\n", prodcode, prodcode2, product);
3958 "Expected %s or %s, got %s\n", prodcode, prodcode2, product);
3989 *langchecksz =
lstrlenA(*langcheck);
3997 DWORD versz, langsz;
4001 LPSTR vercheck, langcheck;
4002 DWORD verchecksz, langchecksz;
4014 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
4016 "Expected version to be unchanged, got %s\n",
version);
4019 "Expected lang to be unchanged, got %s\n",
lang);
4032 "Expected ERROR_FILE_NOT_FOUND, got %d\n",
r);
4034 "Expected version to be unchanged, got %s\n",
version);
4037 "Expected lang to be unchanged, got %s\n",
lang);
4047 "Expected ERROR_FILE_NOT_FOUND, got %d\n",
r);
4049 "Expected version to be unchanged, got %s\n",
version);
4052 "Expected lang to be unchanged, got %s\n",
lang);
4062 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
4064 "Expected version to be unchanged, got %s\n",
version);
4067 "Expected lang to be unchanged, got %s\n",
lang);
4077 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
4079 "Expected version to be unchanged, got %s\n",
version);
4082 "Expected lang to be unchanged, got %s\n",
lang);
4092 "Expected ERROR_FILE_NOT_FOUND, got %d\n",
r);
4094 "Expected version to be unchanged, got %s\n",
version);
4095 ok(versz == 0,
"Expected 0, got %lu\n", versz);
4097 "Expected lang to be unchanged, got %s\n",
lang);
4107 "Expected ERROR_FILE_NOT_FOUND, got %d\n",
r);
4109 "Expected version to be unchanged, got %s\n",
version);
4112 "Expected lang to be unchanged, got %s\n",
lang);
4113 ok(langsz == 0,
"Expected 0, got %lu\n", langsz);
4118 "Expected ERROR_FILE_NOT_FOUND, got %d\n",
r);
4133 "Expected version to be unchanged, got %s\n",
version);
4136 "Expected lang to be unchanged, got %s\n",
lang);
4138 "Expected ERROR_FILE_INVALID, got %d\n",
r);
4151 "Expected ERROR_FILE_NOT_FOUND, got %d\n",
r);
4153 "Expected version to be unchanged, got %s\n",
version);
4156 "Expected lang to be unchanged, got %s\n",
lang);
4172 ok(versz == verchecksz,
"Expected %lu, got %lu\n", verchecksz, versz);
4175 "Expected %s, got %s\n", vercheck,
version);
4182 ok(versz == verchecksz,
"Expected %lu, got %lu\n", verchecksz, versz);
4200 ok(versz == verchecksz,
"Expected %lu, got %lu\n", verchecksz, versz);
4206 ok(langsz >= langchecksz,
"Expected %lu >= %lu\n", langsz, langchecksz);
4214 "Expected first 4 characters of \"%s\", got \"%s\"\n", vercheck,
version);
4215 ok(versz == verchecksz,
"Expected %lu, got %lu\n", verchecksz, versz);
4223 ok(langsz >= langchecksz,
"Expected %lu >= %lu\n", langsz, langchecksz);
4231 ok(versz == verchecksz,
"Expected %lu, got %lu\n", verchecksz, versz);
4233 ok(langsz >= langchecksz && langsz < MAX_PATH, "Expected %lu >= %lu\
n", langsz, langchecksz);
4235 /* pcchVersionBuf not big enough, pcchLangBuf big enough */
4238 lstrcpyA(lang, "lang");
4239 r = MsiGetFileVersionA(path, NULL, &versz, lang, &langsz);
4241 ok(versz == verchecksz, "Expected %lu, got %lu\
n", verchecksz, versz);
4242 ok(langsz >= langchecksz && langsz < MAX_PATH, "Expected %lu >= %lu\
n", langsz, langchecksz);
4243 ok(strstr(lang, langcheck) != NULL, "expected %
s in %
s\
n", langcheck, lang);
4245 /* NULL pcchVersionBuf and pcchLangBuf */
4246 r = MsiGetFileVersionA(path, version, NULL, lang, NULL);
4249 /* All NULL except szFilePath */
4250 r = MsiGetFileVersionA(path, NULL, NULL, NULL, NULL);
4257static void test_MsiGetProductInfo(void)
4261 HKEY propkey, source;
4262 HKEY prodkey, localkey;
4263 CHAR prodcode[MAX_PATH];
4264 CHAR prod_squashed[MAX_PATH];
4265 CHAR packcode[MAX_PATH];
4266 CHAR pack_squashed[MAX_PATH];
4268 CHAR keypath[MAX_PATH];
4271 REGSAM access = KEY_ALL_ACCESS;
4273 create_test_guid(prodcode, prod_squashed);
4274 create_test_guid(packcode, pack_squashed);
4275 usersid = get_user_sid();
4278 access |= KEY_WOW64_64KEY;
4280 /* NULL szProduct */
4282 lstrcpyA(buf, "apple
");
4283 r = MsiGetProductInfoA(NULL, INSTALLPROPERTY_HELPLINKA, buf, &sz);
4284 ok(r == ERROR_INVALID_PARAMETER,
4286 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %
s\
n", buf);
4287 ok(sz == MAX_PATH, "got %lu\
n", sz);
4289 /* empty szProduct */
4291 lstrcpyA(buf, "apple
");
4292 r = MsiGetProductInfoA("", INSTALLPROPERTY_HELPLINKA, buf, &sz);
4293 ok(r == ERROR_INVALID_PARAMETER,
4295 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %
s\
n", buf);
4296 ok(sz == MAX_PATH, "got %lu\
n", sz);
4298 /* garbage szProduct */
4300 lstrcpyA(buf, "apple
");
4301 r = MsiGetProductInfoA("garbage
", INSTALLPROPERTY_HELPLINKA, buf, &sz);
4302 ok(r == ERROR_INVALID_PARAMETER,
4304 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %
s\
n", buf);
4305 ok(sz == MAX_PATH, "got %lu\
n", sz);
4307 /* guid without brackets */
4309 lstrcpyA(buf, "apple
");
4310 r = MsiGetProductInfoA("6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D
",
4311 INSTALLPROPERTY_HELPLINKA, buf, &sz);
4312 ok(r == ERROR_INVALID_PARAMETER,
4314 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %
s\
n", buf);
4315 ok(sz == MAX_PATH, "got %lu\
n", sz);
4317 /* guid with brackets */
4319 lstrcpyA(buf, "apple
");
4320 r = MsiGetProductInfoA("{6700E8CF-95AB-4D9C-BC2C-15840DEA7A5D}
",
4321 INSTALLPROPERTY_HELPLINKA, buf, &sz);
4322 ok(r == ERROR_UNKNOWN_PRODUCT,
4324 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %s\n
", buf);
4325 ok(sz == MAX_PATH, "got %lu\n
", sz);
4327 /* same length as guid, but random */
4329 lstrcpyA(buf, "apple
");
4330 r = MsiGetProductInfoA("A938G02JF-2NF3N93-VN3-2NNF-3KGKALDNF93
",
4331 INSTALLPROPERTY_HELPLINKA, buf, &sz);
4332 ok(r == ERROR_INVALID_PARAMETER,
4334 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %s\n
", buf);
4335 ok(sz == MAX_PATH, "got %lu\n
", sz);
4337 /* not installed, NULL szAttribute */
4339 lstrcpyA(buf, "apple
");
4340 r = MsiGetProductInfoA(prodcode, NULL, buf, &sz);
4341 ok(r == ERROR_INVALID_PARAMETER,
4343 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %s\n
", buf);
4344 ok(sz == MAX_PATH, "got %lu\n
", sz);
4346 /* not installed, NULL lpValueBuf */
4348 lstrcpyA(buf, "apple
");
4349 r = MsiGetProductInfoA(prodcode, INSTALLPROPERTY_HELPLINKA, NULL, &sz);
4350 ok(r == ERROR_UNKNOWN_PRODUCT,
4352 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %s\n
", buf);
4353 ok(sz == MAX_PATH, "got %lu\n
", sz);
4355 /* not installed, NULL pcchValueBuf */
4357 lstrcpyA(buf, "apple
");
4358 r = MsiGetProductInfoA(prodcode, INSTALLPROPERTY_HELPLINKA, buf, NULL);
4359 ok(r == ERROR_INVALID_PARAMETER,
4361 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %s\n
", buf);
4362 ok(sz == MAX_PATH, "got %lu\n
", sz);
4364 /* created guid cannot possibly be an installed product code */
4366 lstrcpyA(buf, "apple
");
4367 r = MsiGetProductInfoA(prodcode, INSTALLPROPERTY_HELPLINKA, buf, &sz);
4368 ok(r == ERROR_UNKNOWN_PRODUCT,
4370 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %s\n
", buf);
4371 ok(sz == MAX_PATH, "got %lu\n
", sz);
4373 lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\
");
4374 lstrcatA(keypath, usersid);
4375 lstrcatA(keypath, "\\Installer\\Products\\
");
4376 lstrcatA(keypath, prod_squashed);
4378 res = RegCreateKeyExA(HKEY_LOCAL_MACHINE, keypath, 0, NULL, 0, access, NULL, &prodkey, NULL);
4379 if (res == ERROR_ACCESS_DENIED)
4381 skip("Not enough rights to perform tests\n
");
4387 /* managed product code exists */
4389 lstrcpyA(buf, "apple
");
4390 r = MsiGetProductInfoA(prodcode, INSTALLPROPERTY_HELPLINKA, buf, &sz);
4391 ok(r == ERROR_UNKNOWN_PROPERTY,
4393 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %s\n
", buf);
4394 ok(sz == MAX_PATH, "got %lu\n
", sz);
4396 RegDeleteKeyExA(prodkey, "", access & KEY_WOW64_64KEY, 0);
4397 RegCloseKey(prodkey);
4399 lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\
UserData\\
");
4400 lstrcatA(keypath, usersid);
4401 lstrcatA(keypath, "\\Products\\
");
4402 lstrcatA(keypath, prod_squashed);
4404 res = RegCreateKeyExA(HKEY_LOCAL_MACHINE, keypath, 0, NULL, 0, access, NULL, &localkey, NULL);
4405 if (res == ERROR_ACCESS_DENIED)
4407 skip("Not enough rights to perform tests\n
");
4413 /* local user product code exists */
4415 lstrcpyA(buf, "apple
");
4416 r = MsiGetProductInfoA(prodcode, INSTALLPROPERTY_HELPLINKA, buf, &sz);
4417 ok(r == ERROR_UNKNOWN_PRODUCT,
4419 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %s\n
", buf);
4420 ok(sz == MAX_PATH, "got %lu\n
", sz);
4422 lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\
");
4423 lstrcatA(keypath, usersid);
4424 lstrcatA(keypath, "\\Installer\\Products\\
");
4425 lstrcatA(keypath, prod_squashed);
4427 res = RegCreateKeyExA(HKEY_LOCAL_MACHINE, keypath, 0, NULL, 0, access, NULL, &prodkey, NULL);
4430 /* both local and managed product code exist */
4432 lstrcpyA(buf, "apple
");
4433 r = MsiGetProductInfoA(prodcode, INSTALLPROPERTY_HELPLINKA, buf, &sz);
4434 ok(r == ERROR_UNKNOWN_PROPERTY,
4436 ok(!lstrcmpA(buf, "apple
"), "Expected buf to be unchanged, got %s\n
", buf);
4437 ok(sz == MAX_PATH, "%lu\n
", sz);
4439 res = RegCreateKeyExA(localkey, "InstallProperties
", 0, NULL, 0, access, NULL, &propkey, NULL);
4442 /* InstallProperties key exists */
4444 lstrcpyA(buf, "apple
");
4445 r = MsiGetProductInfoA(prodcode, INSTALLPROPERTY_HELPLINKA, buf, &sz);
4447 ok(!lstrcmpA(buf, ""), "Expected \
"\", got \"%s\"\n",
buf);
4448 ok(sz == 0,
"Expected 0, got %lu\n", sz);
4459 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4469 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4475 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4481 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to remain unchanged, got \"%s\"\n",
buf);
4483 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4491 "Expected buf to remain unchanged, got \"%s\"\n",
buf);
4492 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4502 "Expected ERROR_UNKNOWN_PROPERTY, got %d\n",
r);
4504 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
4515 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
4526 "Expected ERROR_UNKNOWN_PROPERTY, got %d\n",
r);
4528 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
4530 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
4543 "Expected ERROR_UNKNOWN_PROPERTY, got %d\n",
r);
4556 ok(sz == 0,
"Expected 0, got %lu\n", sz);
4567 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4577 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
4583 skip(
"insufficient rights\n" );
4594 "Expected ERROR_UNKNOWN_PROPERTY, got %d\n",
r);
4596 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
4598 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
4611 "Expected ERROR_UNKNOWN_PROPERTY, got %d\n",
r);
4613 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
4623 "Expected ERROR_UNKNOWN_PROPERTY, got %d\n",
r);
4625 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
4632 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
4633 lstrcatA(keypath,
"S-1-5-18\\\\Products\\");
4644 "Expected ERROR_UNKNOWN_PROPERTY, got %d\n",
r);
4646 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
4657 ok(sz == 0,
"Expected 0, got %lu\n", sz);
4668 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4680 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4691 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4702 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4713 ok(sz == 5,
"Expected 5, got %lu\n", sz);
4725 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4736 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4748 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4759 ok(sz == 3,
"Expected 3, got %lu\n", sz);
4771 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4782 ok(sz == 6,
"Expected 6, got %lu\n", sz);
4794 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4805 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4817 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4828 ok(sz == 3,
"Expected 3, got %lu\n", sz);
4840 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4851 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4863 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4874 ok(sz == 5,
"Expected 5, got %lu\n", sz);
4886 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4897 ok(sz == 4,
"Expected 4, got %lu\n", sz);
4909 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4920 ok(sz == 1,
"Expected 1, got %lu\n", sz);
4932 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4943 ok(sz == 1,
"Expected 1, got %lu\n", sz);
4955 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4966 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4978 ok(sz == 2,
"Expected 2, got %lu\n", sz);
4989 ok(sz == 4,
"Expected 4, got %lu\n", sz);
5001 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5012 ok(sz == 3,
"Expected 3, got %lu\n", sz);
5024 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5035 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5047 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5058 ok(sz == 4,
"Expected 4, got %lu\n", sz);
5070 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5081 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5093 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5104 ok(sz == 6,
"Expected 6, got %lu\n", sz);
5116 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5127 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5139 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5150 ok(sz == 4,
"Expected 4, got %lu\n", sz);
5162 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5173 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5185 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5196 ok(sz == 4,
"Expected 4, got %lu\n", sz);
5208 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5219 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5231 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5242 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5254 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5265 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5277 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5287 "Expected ERROR_BAD_CONFIGURATION, got %d\n",
r);
5289 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5301 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5311 ok(!
lstrcmpA(
buf, packcode),
"Expected \"%s\", got \"%s\"\n", packcode,
buf);
5312 ok(sz == 38,
"Expected 38, got %lu\n", sz);
5323 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5335 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5346 ok(sz == 3,
"Expected 3, got %lu\n", sz);
5358 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5369 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5381 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5392 ok(sz == 3,
"Expected 3, got %lu\n", sz);
5404 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5411 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
5413 "Expected buf to be unchanged, got \"%s\"\n",
buf);
5414 ok(sz ==
MAX_PATH,
"Expected sz to be unchanged, got %lu\n", sz);
5425 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5435 ok(!
lstrcmpA(
buf,
"packname"),
"Expected \"packname\", got \"%s\"\n",
buf);
5436 ok(sz == 8,
"Expected 8, got %lu\n", sz);
5448 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5461 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5476 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5490 ok(sz == 4,
"Expected 4, got %lu\n", sz);
5505 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5558 HKEY propkey, userkey;
5559 HKEY prodkey, localkey;
5583 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5584 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5592 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5593 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5601 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5602 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5611 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5612 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5621 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5622 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5629 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5636 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5637 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5644 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5645 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5652 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5653 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5660 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5661 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5669 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5670 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5674 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
5682 skip(
"Not enough rights to perform tests\n");
5694 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5695 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5706 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5707 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5719 ok(sz == 1,
"Expected 1, got %lu\n", sz);
5728 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5729 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5740 ok(sz == 0,
"Expected 0, got %lu\n", sz);
5751 ok(sz == 4,
"Expected 4, got %lu\n", sz);
5763 ok(sz == 5,
"Expected 5, got %lu\n", sz);
5776 ok(sz == 10,
"Expected 10, got %lu\n", sz);
5783 ok(sz == 10,
"Expected 10, got %lu\n", sz);
5790 ok(sz == 10,
"Expected 10, got %lu\n", sz);
5799 ok(sz == 10,
"Expected 10, got %lu\n", sz);
5809 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5810 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
5822 ok(sz == 4,
"Expected 4, got %lu\n", sz);
5834 ok(sz == 4,
"Expected 4, got %lu\n", sz);
5846 ok(sz == 3,
"Expected 3, got %lu\n", sz);
5858 ok(sz == 6,
"Expected 6, got %lu\n", sz);
5870 ok(sz == 5,
"Expected 5, got %lu\n", sz);
5882 ok(sz == 3,
"Expected 3, got %lu\n", sz);
5894 ok(sz == 5,
"Expected 5, got %lu\n", sz);
5906 ok(sz == 6,
"Expected 6, got %lu\n", sz);
5918 ok(sz == 1,
"Expected 1, got %lu\n", sz);
5930 ok(sz == 1,
"Expected 1, got %lu\n", sz);
5942 ok(sz == 5,
"Expected 5, got %lu\n", sz);
5954 ok(sz == 2,
"Expected 2, got %lu\n", sz);
5966 ok(sz == 4,
"Expected 4, got %lu\n", sz);
5978 ok(sz == 5,
"Expected 5, got %lu\n", sz);
5989 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
5990 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6001 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6002 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6013 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6014 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6027 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6028 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6039 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6040 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6051 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6052 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6063 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6064 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6075 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6076 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6087 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6088 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6121 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
6123 lstrcatA(keypath,
"\\Installer\\Products\\");
6135 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6136 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6141 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
6153 ok(sz == 1,
"Expected 1, got %lu\n", sz);
6164 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6165 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6176 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6177 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6188 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6189 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6200 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6201 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6212 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6213 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6224 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6225 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6236 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6237 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6248 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6249 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6260 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6261 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6272 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6273 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6284 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6285 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6296 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6297 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6308 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6309 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6320 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6321 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6332 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6333 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6344 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6345 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6357 ok(sz == 5,
"Expected 5, got %lu\n", sz);
6369 ok(sz == 4,
"Expected 4, got %lu\n", sz);
6381 ok(sz == 4,
"Expected 4, got %lu\n", sz);
6395 ok(sz == 0,
"Expected 0, got %lu\n", sz);
6410 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6411 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6424 ok(sz == 3,
"Expected 3, got %lu\n", sz);
6436 ok(sz == 4,
"Expected 4, got %lu\n", sz);
6449 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6450 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6463 ok(sz == 4,
"Expected 4, got %lu\n", sz);
6496 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
6510 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6511 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6522 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6523 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6535 ok(sz == 1,
"Expected 1, got %lu\n", sz);
6547 ok(sz == 4,
"Expected 4, got %lu\n", sz);
6559 ok(sz == 5,
"Expected 5, got %lu\n", sz);
6571 ok(sz == 4,
"Expected 4, got %lu\n", sz);
6583 ok(sz == 4,
"Expected 4, got %lu\n", sz);
6595 ok(sz == 3,
"Expected 3, got %lu\n", sz);
6607 ok(sz == 6,
"Expected 6, got %lu\n", sz);
6619 ok(sz == 5,
"Expected 5, got %lu\n", sz);
6631 ok(sz == 3,
"Expected 3, got %lu\n", sz);
6643 ok(sz == 5,
"Expected 5, got %lu\n", sz);
6655 ok(sz == 6,
"Expected 6, got %lu\n", sz);
6667 ok(sz == 1,
"Expected 1, got %lu\n", sz);
6679 ok(sz == 1,
"Expected 1, got %lu\n", sz);
6691 ok(sz == 5,
"Expected 5, got %lu\n", sz);
6703 ok(sz == 2,
"Expected 2, got %lu\n", sz);
6715 ok(sz == 4,
"Expected 4, got %lu\n", sz);
6727 ok(sz == 5,
"Expected 5, got %lu\n", sz);
6738 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6739 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6750 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6751 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6762 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6763 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6776 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6777 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6788 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6789 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6800 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6801 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6812 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6813 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6824 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6825 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6836 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6837 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6870 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
6872 lstrcatA(keypath,
"\\Installer\\Products\\");
6885 ok(sz == 1,
"Expected 1, got %lu\n", sz);
6890 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
6902 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6903 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6914 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6915 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6917 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
6919 lstrcatA(keypath,
"\\Installer\\Products\\");
6934 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6935 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6946 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6947 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6958 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6959 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6970 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6971 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6982 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6983 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
6994 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
6995 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7006 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7007 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7018 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7019 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7030 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7031 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7042 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7043 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7054 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7055 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7066 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7067 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7078 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7079 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7090 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7091 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7102 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7103 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7114 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7115 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7127 ok(sz == 5,
"Expected 5, got %lu\n", sz);
7139 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7151 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7165 ok(sz == 0,
"Expected 0, got %lu\n", sz);
7180 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7181 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7194 ok(sz == 3,
"Expected 3, got %lu\n", sz);
7206 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7219 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7220 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7233 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7272 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7273 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7275 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Products\\");
7286 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7287 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7297 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7298 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7309 ok(sz == 1,
"Expected 1, got %lu\n", sz);
7320 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7331 ok(sz == 5,
"Expected 5, got %lu\n", sz);
7342 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7354 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7365 ok(sz == 3,
"Expected 3, got %lu\n", sz);
7376 ok(sz == 6,
"Expected 6, got %lu\n", sz);
7387 ok(sz == 5,
"Expected 5, got %lu\n", sz);
7398 ok(sz == 3,
"Expected 3, got %lu\n", sz);
7409 ok(sz == 5,
"Expected 5, got %lu\n", sz);
7420 ok(sz == 6,
"Expected 6, got %lu\n", sz);
7431 ok(sz == 1,
"Expected 1, got %lu\n", sz);
7442 ok(sz == 1,
"Expected 1, got %lu\n", sz);
7453 ok(sz == 5,
"Expected 5, got %lu\n", sz);
7464 ok(sz == 2,
"Expected 2, got %lu\n", sz);
7475 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7486 ok(sz == 5,
"Expected 5, got %lu\n", sz);
7496 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7497 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7507 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7508 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7518 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7519 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7531 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7532 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7542 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7543 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7553 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7554 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7564 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7565 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7575 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7576 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7586 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7587 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7620 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
7626 skip(
"insufficient rights\n" );
7638 ok(sz == 1,
"Expected 1, got %lu\n", sz);
7648 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7649 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7659 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7660 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7670 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7671 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7682 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7683 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7693 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7694 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7704 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7705 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7715 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7716 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7726 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7727 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7737 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7738 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7748 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7749 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7759 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7760 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7770 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7771 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7781 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7782 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7792 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7793 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7803 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7804 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7814 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7815 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7826 ok(sz == 5,
"Expected 5, got %lu\n", sz);
7837 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7848 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7861 ok(sz == 0,
"Expected 0, got %lu\n", sz);
7875 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7876 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7888 ok(sz == 3,
"Expected 3, got %lu\n", sz);
7899 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7911 ok(!
lstrcmpA(
buf,
"apple"),
"Expected buf to be unchanged, got %s\n",
buf);
7912 ok(sz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", sz);
7925 ok(sz == 4,
"Expected 4, got %lu\n", sz);
7957#define INIT_USERINFO() \
7958 lstrcpyA(user, "apple"); \
7959 lstrcpyA(org, "orange"); \
7960 lstrcpyA(serial, "banana"); \
7961 usersz = orgsz = serialsz = MAX_PATH;
7969 DWORD usersz, orgsz, serialsz;
7988 "Expected USERINFOSTATE_INVALIDARG, got %d\n",
state);
7990 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
7992 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
7993 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
7994 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8000 "Expected USERINFOSTATE_INVALIDARG, got %d\n",
state);
8002 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8004 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8005 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8006 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8012 "Expected USERINFOSTATE_INVALIDARG, got %d\n",
state);
8014 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8016 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8017 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8018 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8025 "Expected USERINFOSTATE_INVALIDARG, got %d\n",
state);
8027 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8029 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8030 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8031 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8038 "Expected USERINFOSTATE_UNKNOWN, got %d\n",
state);
8040 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8042 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8043 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8044 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8050 "Expected USERINFOSTATE_UNKNOWN, got %d\n",
state);
8051 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8053 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8054 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8055 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8061 "Expected USERINFOSTATE_INVALIDARG, got %d\n",
state);
8063 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8065 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8066 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8072 "Expected USERINFOSTATE_UNKNOWN, got %d\n",
state);
8073 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8075 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8076 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8082 "Expected USERINFOSTATE_UNKNOWN, got %d\n",
state);
8085 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8086 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8087 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8093 "Expected USERINFOSTATE_INVALIDARG, got %d\n",
state);
8095 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8097 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8098 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8104 "Expected USERINFOSTATE_UNKNOWN, got %d\n",
state);
8107 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8108 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8114 "Expected USERINFOSTATE_UNKNOWN, got %d\n",
state);
8116 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8117 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8118 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8119 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8125 "Expected USERINFOSTATE_INVALIDARG, got %d\n",
state);
8127 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8129 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8130 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8136 "Expected USERINFOSTATE_UNKNOWN, got %d\n",
state);
8138 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8139 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8140 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8145 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
8147 lstrcatA(keypath,
"\\Installer\\Products\\");
8153 skip(
"Not enough rights to perform tests\n");
8163 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8165 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8167 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8168 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8169 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8171 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
8172 lstrcatA(keypath,
"Installer\\UserData\\");
8180 skip(
"Not enough rights to perform tests\n");
8193 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8195 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8197 ok(usersz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", usersz);
8198 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8199 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8205 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8208 ok(orgsz == 0,
"Expected 0, got %lu\n", orgsz);
8209 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8215 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8217 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8226 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8230 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8231 ok(orgsz == 0,
"Expected 0, got %lu\n", orgsz);
8232 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8241 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8245 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8246 ok(orgsz == 7,
"Expected 7, got %lu\n", orgsz);
8247 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8256 "Expected USERINFOSTATE_PRESENT, got %d\n",
state);
8260 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8261 ok(orgsz == 7,
"Expected 7, got %lu\n", orgsz);
8262 ok(serialsz == 2,
"Expected 2, got %lu\n", serialsz);
8269 "Expected USERINFOSTATE_MOREDATA, got %d\n",
state);
8271 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8273 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8274 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8275 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8282 "Expected USERINFOSTATE_MOREDATA, got %d\n",
state);
8287 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8289 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8290 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8291 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8298 "Expected USERINFOSTATE_PRESENT, got %d\n",
state);
8302 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8303 ok(orgsz == 7,
"Expected 7, got %lu\n", orgsz);
8304 ok(serialsz == 2,
"Expected 2, got %lu\n", serialsz);
8319 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
8329 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8331 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8333 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8334 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8335 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8337 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
8338 lstrcatA(keypath,
"Installer\\UserData\\");
8353 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8355 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8357 ok(usersz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", usersz);
8358 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8359 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8365 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8368 ok(orgsz == 0,
"Expected 0, got %lu\n", orgsz);
8369 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8375 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8377 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8386 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8390 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8391 ok(orgsz == 0,
"Expected 0, got %lu\n", orgsz);
8392 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8401 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8405 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8406 ok(orgsz == 7,
"Expected 7, got %lu\n", orgsz);
8407 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8416 "Expected USERINFOSTATE_PRESENT, got %d\n",
state);
8420 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8421 ok(orgsz == 7,
"Expected 7, got %lu\n", orgsz);
8422 ok(serialsz == 2,
"Expected 2, got %lu\n", serialsz);
8437 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
8443 skip(
"insufficient rights\n" );
8453 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8455 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8457 ok(usersz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", usersz);
8458 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8459 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8461 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
8462 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18");
8476 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8478 ok(!
lstrcmpA(
org,
"orange"),
"Expected org to be unchanged, got \"%s\"\n",
org);
8480 ok(usersz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", usersz);
8481 ok(orgsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", orgsz);
8482 ok(serialsz ==
MAX_PATH,
"Expected MAX_PATH, got %lu\n", serialsz);
8488 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8491 ok(orgsz == 0,
"Expected 0, got %lu\n", orgsz);
8492 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8498 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8500 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8509 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8513 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8514 ok(orgsz == 0,
"Expected 0, got %lu\n", orgsz);
8515 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8524 "Expected USERINFOSTATE_ABSENT, got %d\n",
state);
8528 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8529 ok(orgsz == 7,
"Expected 7, got %lu\n", orgsz);
8530 ok(serialsz ==
MAX_PATH - 1,
"Expected MAX_PATH - 1, got %lu\n", serialsz);
8539 "Expected USERINFOSTATE_PRESENT, got %d\n",
state);
8543 ok(usersz == 5,
"Expected 5, got %lu\n", usersz);
8544 ok(orgsz == 7,
"Expected 7, got %lu\n", orgsz);
8545 ok(serialsz == 2,
"Expected 2, got %lu\n", serialsz);
8592 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
8593 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8599 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
8600 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8606 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
8607 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8613 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
8614 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8620 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
8621 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8627 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
8628 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8634 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
8635 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8639 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
8640 lstrcatA(keypath,
"Installer\\Managed\\");
8642 lstrcatA(keypath,
"\\Installer\\Products\\");
8648 skip(
"Not enough rights to perform tests\n");
8658 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
8659 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8661 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
8662 lstrcatA(keypath,
"Installer\\UserData\\");
8670 skip(
"Not enough rights to perform tests\n");
8680 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
8681 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8690 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
8691 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8703 ok(hprod != 0 && hprod != 0xdeadbeef,
"Expected a valid product handle\n");
8708 ok(!
lstrcmpA(
val, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode,
val);
8723 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
8733 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
8734 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8736 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
8737 lstrcatA(keypath,
"Installer\\UserData\\");
8749 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
8750 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8759 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
8760 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8772 ok(hprod != 0 && hprod != 0xdeadbeef,
"Expected a valid product handle\n");
8777 ok(!
lstrcmpA(
val, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode,
val);
8792 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
8798 skip(
"insufficient rights\n" );
8808 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
8809 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8811 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
8812 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Products\\");
8822 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
8823 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8832 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
8833 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8845 ok(hprod != 0 && hprod != 0xdeadbeef,
"Expected a valid product handle\n");
8850 ok(!
lstrcmpA(
val, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode,
val);
8856 (
const BYTE *)
"winetest.msi", 13);
8871 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
8872 ok(hprod == 0xdeadbeef,
"Expected hprod to be unchanged\n");
8893 HKEY prodkey, patches, udprod, udpatch, hpatch;
8917 skip(
"Not enough rights to perform tests\n");
8921 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
8922 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
8923 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
8924 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
8927 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
8929 lstrcatA(keypath,
"\\Installer\\Products\\");
8935 skip(
"Not enough rights to perform tests\n");
8947 0, patchcode, targetprod, &
context, targetsid, &
size);
8949 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
8950 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
8951 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
8952 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
8965 0, patchcode, targetprod, &
context, targetsid, &
size);
8967 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
8968 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
8969 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
8970 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
8974 (
const BYTE *)patch_squashed,
8985 0, patchcode, targetprod, &
context, targetsid, &
size);
8987 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
8988 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
8989 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
8990 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
8994 (
const BYTE *)
"a\0b\0c\0\0", 7);
9004 0, patchcode, targetprod, &
context, targetsid, &
size);
9006 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9007 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9008 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9009 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9012 patch_squashed[
lstrlenA(patch_squashed) + 1] =
'\0';
9014 (
const BYTE *)patch_squashed,
9025 0, patchcode, targetprod, &
context, targetsid, &
size);
9027 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9028 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9029 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9030 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9034 (
const BYTE *)
"whatever", 9);
9044 0, patchcode, targetprod, &
context, targetsid, &
size);
9046 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9047 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9049 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9059 1, patchcode, targetprod, &
context, targetsid, &
size);
9061 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9062 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9063 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9064 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9074 2, patchcode, targetprod, &
context, targetsid, &
size);
9076 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9077 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9078 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9079 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9090 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9092 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9103 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9105 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9114 0, patchcode, targetprod,
NULL, targetsid, &
size);
9116 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9117 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9118 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9129 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9130 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9141 0, patchcode, targetprod, &
context, targetsid, &
size);
9143 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9144 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9146 ok(!
strncmp(targetsid, expectedsid,
lstrlenA(expectedsid) - 1),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9156 0, patchcode, targetprod, &
context, targetsid, &
size);
9158 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9159 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9161 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9171 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9172 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9183 0, patchcode, targetprod, &
context, targetsid, &
size);
9185 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9186 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9187 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9188 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9191 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
9199 skip(
"Not enough rights to perform tests\n");
9211 0, patchcode, targetprod, &
context, targetsid, &
size);
9213 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9214 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9215 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9216 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9229 0, patchcode, targetprod, &
context, targetsid, &
size);
9231 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9232 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9233 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9234 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9247 0, patchcode, targetprod, &
context, targetsid, &
size);
9249 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9250 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9251 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9252 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9267 0, patchcode, targetprod, &
context, targetsid, &
size);
9269 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9270 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9272 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9283 0, patchcode, targetprod, &
context, targetsid, &
size);
9285 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9286 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9287 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9288 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9303 0, patchcode, targetprod, &
context, targetsid, &
size);
9305 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9306 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9308 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9323 0, patchcode, targetprod, &
context, targetsid, &
size);
9325 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9326 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9328 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9338 1, patchcode, targetprod, &
context, targetsid, &
size);
9340 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9341 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9342 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9343 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9367 HKEY prodkey, patches, udprod, udpatch;
9368 HKEY userkey, hpatch;
9388 0, patchcode, targetprod, &
context, targetsid, &
size);
9390 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9391 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9392 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9393 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9396 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
9409 0, patchcode, targetprod, &
context, targetsid, &
size);
9411 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9412 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9413 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9414 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9427 0, patchcode, targetprod, &
context, targetsid, &
size);
9429 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9430 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9431 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9432 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9436 (
const BYTE *)patch_squashed,
9447 0, patchcode, targetprod, &
context, targetsid, &
size);
9449 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9450 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9451 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9452 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9456 (
const BYTE *)
"a\0b\0c\0\0", 7);
9466 0, patchcode, targetprod, &
context, targetsid, &
size);
9468 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9469 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9470 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9471 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9474 patch_squashed[
lstrlenA(patch_squashed) + 1] = 0;
9476 (
const BYTE *)patch_squashed,
9487 0, patchcode, targetprod, &
context, targetsid, &
size);
9489 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9490 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9491 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9492 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9496 (
const BYTE *)
"whatever", 9);
9506 0, patchcode, targetprod, &
context, targetsid, &
size);
9508 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9509 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9510 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9511 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9514 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
9522 skip(
"Not enough rights to perform tests\n");
9534 0, patchcode, targetprod, &
context, targetsid, &
size);
9536 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9537 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9539 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9550 0, patchcode, targetprod, &
context, targetsid, &
size);
9552 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9553 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9554 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9555 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9558 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
9566 skip(
"Not enough rights to perform tests\n");
9578 0, patchcode, targetprod, &
context, targetsid, &
size);
9580 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9581 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9582 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9583 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9596 0, patchcode, targetprod, &
context, targetsid, &
size);
9598 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9599 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9600 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9601 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9614 0, patchcode, targetprod, &
context, targetsid, &
size);
9616 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9617 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9618 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9619 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9634 0, patchcode, targetprod, &
context, targetsid, &
size);
9636 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9637 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9639 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9650 0, patchcode, targetprod, &
context, targetsid, &
size);
9652 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9653 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9654 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9655 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9670 0, patchcode, targetprod, &
context, targetsid, &
size);
9672 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9673 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9675 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9690 0, patchcode, targetprod, &
context, targetsid, &
size);
9692 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9693 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9695 ok(!
lstrcmpA(targetsid, expectedsid),
"Expected \"%s\", got \"%s\"\n", expectedsid, targetsid);
9705 1, patchcode, targetprod, &
context, targetsid, &
size);
9707 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9708 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9709 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9710 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9738 HKEY prodkey, patches, udprod, udpatch;
9760 0, patchcode, targetprod, &
context, targetsid, &
size);
9762 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9763 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9764 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9765 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9768 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
9774 skip(
"Not enough rights to perform tests\n");
9786 0, patchcode, targetprod, &
context, targetsid, &
size);
9788 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9789 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9790 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9791 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9804 0, patchcode, targetprod, &
context, targetsid, &
size);
9806 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9807 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9808 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9809 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9813 (
const BYTE *)patch_squashed,
9824 0, patchcode, targetprod, &
context, targetsid, &
size);
9826 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9827 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9828 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9829 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9833 (
const BYTE *)
"a\0b\0c\0\0", 7);
9843 0, patchcode, targetprod, &
context, targetsid, &
size);
9845 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9846 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9847 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9848 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9851 patch_squashed[
lstrlenA(patch_squashed) + 1] =
'\0';
9853 (
const BYTE *)patch_squashed,
9864 0, patchcode, targetprod, &
context, targetsid, &
size);
9866 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9867 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9868 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9869 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9873 (
const BYTE *)
"whatever", 9);
9883 0, patchcode, targetprod, &
context, targetsid, &
size);
9885 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9886 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9888 ok(!
lstrcmpA(targetsid,
""),
"Expected \"\", got \"%s\"\n", targetsid);
9889 ok(
size == 0,
"Expected 0, got %lu\n",
size);
9891 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
9892 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Products\\");
9898 skip(
"Not enough rights to perform tests\n");
9910 0, patchcode, targetprod, &
context, targetsid, &
size);
9912 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9913 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9915 ok(!
lstrcmpA(targetsid,
""),
"Expected \"\", got \"%s\"\n", targetsid);
9916 ok(
size == 0,
"Expected 0, got %lu\n",
size);
9928 0, patchcode, targetprod, &
context, targetsid, &
size);
9930 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9931 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9933 ok(!
lstrcmpA(targetsid,
""),
"Expected \"\", got \"%s\"\n", targetsid);
9934 ok(
size == 0,
"Expected 0, got %lu\n",
size);
9946 0, patchcode, targetprod, &
context, targetsid, &
size);
9948 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9949 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9950 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9951 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
9966 0, patchcode, targetprod, &
context, targetsid, &
size);
9968 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
9969 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
9971 ok(!
lstrcmpA(targetsid,
""),
"Expected \"\", got \"%s\"\n", targetsid);
9972 ok(
size == 0,
"Expected 0, got %lu\n",
size);
9982 0, patchcode, targetprod, &
context, targetsid, &
size);
9984 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
9985 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
9986 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
9987 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10002 0, patchcode, targetprod, &
context, targetsid, &
size);
10004 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
10005 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
10007 ok(!
lstrcmpA(targetsid,
""),
"Expected \"\", got \"%s\"\n", targetsid);
10008 ok(
size == 0,
"Expected 0, got %lu\n",
size);
10018 0, patchcode, targetprod, &
context, targetsid, &
size);
10020 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10021 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10022 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10023 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10038 0, patchcode, targetprod, &
context, targetsid, &
size);
10040 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
10041 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
10043 ok(!
lstrcmpA(targetsid,
""),
"Expected \"\", got \"%s\"\n", targetsid);
10044 ok(
size == 0,
"Expected 0, got %lu\n",
size);
10058 0, patchcode, targetprod, &
context, targetsid, &
size);
10060 ok(!
lstrcmpA(patchcode, patch),
"Expected \"%s\", got \"%s\"\n", patch, patchcode);
10061 ok(!
lstrcmpA(targetprod, prodcode),
"Expected \"%s\", got \"%s\"\n", prodcode, targetprod);
10063 ok(!
lstrcmpA(targetsid,
""),
"Expected \"\", got \"%s\"\n", targetsid);
10064 ok(
size == 0,
"Expected 0, got %lu\n",
size);
10073 1, patchcode, targetprod, &
context, targetsid, &
size);
10075 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10076 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10077 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10078 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10118 0, patchcode, targetprod, &
context, targetsid, &
size);
10120 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10121 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10122 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10123 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10133 0, patchcode, targetprod, &
context, targetsid, &
size);
10135 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10136 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10137 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10138 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10150 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10151 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10152 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10153 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10165 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10166 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10167 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10168 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10178 0, patchcode, targetprod, &
context, targetsid, &
size);
10180 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10181 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10182 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10183 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10193 0, patchcode, targetprod, &
context, targetsid, &
size);
10195 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10196 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10197 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10198 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10210 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10211 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10212 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10213 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10225 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10226 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10227 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10228 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10238 0, patchcode, targetprod, &
context, targetsid, &
size);
10240 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10241 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10242 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10243 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10253 0, patchcode, targetprod, &
context, targetsid, &
size);
10255 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10256 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10257 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10258 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10267 0, patchcode, targetprod, &
context, targetsid,
NULL);
10269 ok(!
lstrcmpA(patchcode,
"apple"),
"Expected patchcode to be unchanged, got %s\n", patchcode);
10270 ok(!
lstrcmpA(targetprod,
"banana"),
"Expected targetprod to be unchanged, got %s\n", targetprod);
10271 ok(
context == 0xdeadbeef,
"Expected context to be unchanged, got %d\n",
context);
10272 ok(!
lstrcmpA(targetsid,
"kiwi"),
"Expected targetsid to be unchanged, got %s\n", targetsid);
10291 HKEY prodkey, patches, udprod;
10292 HKEY userkey, hpatch, udpatch;
10312 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
10314 "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10316 "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10325 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
10327 "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10329 "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10338 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
10340 "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10342 "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10350 transforms, &
size);
10352 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
10354 "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10356 "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10364 transforms, &
size);
10366 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
10368 "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10370 "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10378 transforms, &
size);
10380 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
10382 "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10384 "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10394 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
10396 "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10398 "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10401 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
10403 lstrcatA(keypath,
"\\Installer\\Products\\");
10409 skip(
"Not enough rights to perform tests\n");
10422 "Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10424 "Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10436 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10437 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10449 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10450 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10462 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10463 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10466 patch_squashed[
lstrlenA(patch_squashed) + 1] =
'\0';
10476 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10477 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10489 ok(!
lstrcmpA(patch, patchcode),
"Expected \"%s\", got \"%s\"\n", patchcode, patch);
10490 ok(!
lstrcmpA(transforms,
"whatever"),
"Expected \"whatever\", got \"%s\"\n", transforms);
10498 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10506 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10514 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10515 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10523 ok(!
lstrcmpA(patch, patchcode),
"Expected \"%s\", got \"%s\"\n", patchcode, patch);
10524 ok(!
lstrcmpA(transforms,
"whate"),
"Expected \"whate\", got \"%s\"\n", transforms);
10525 ok(
size == 8 ||
size == 16,
"Expected 8 or 16, got %lu\n",
size);
10533 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10534 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10543 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10544 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10560 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10561 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10564 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
10576 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10577 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10589 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10590 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10602 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10603 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10615 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10616 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10619 patch_squashed[
lstrlenA(patch_squashed) + 1] =
'\0';
10629 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10630 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10642 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10643 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10646 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
10649 lstrcatA(keypath, patch_squashed);
10654 skip(
"Not enough rights to perform tests\n");
10666 ok(!
lstrcmpA(patch, patchcode),
"Expected \"%s\", got \"%s\"\n", patchcode, patch);
10667 ok(!
lstrcmpA(transforms,
"whatever"),
"Expected \"whatever\", got \"%s\"\n", transforms);
10686 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10687 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10690 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
10696 skip(
"Not enough rights to perform tests\n");
10708 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10709 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10721 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10722 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10734 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10735 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10747 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10748 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10751 patch_squashed[
lstrlenA(patch_squashed) + 1] =
'\0';
10761 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10762 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10774 ok(!
lstrcmpA(patch, patchcode),
"Expected \"%s\", got \"%s\"\n", patchcode, patch);
10775 ok(!
lstrcmpA(transforms,
"whatever"),
"Expected \"whatever\", got \"%s\"\n", transforms);
10778 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\");
10779 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Products\\");
10791 ok(!
lstrcmpA(patch, patchcode),
"Expected \"%s\", got \"%s\"\n", patchcode, patch);
10792 ok(!
lstrcmpA(transforms,
"whatever"),
"Expected \"whatever\", got \"%s\"\n", transforms);
10804 ok(!
lstrcmpA(patch, patchcode),
"Expected \"%s\", got \"%s\"\n", patchcode, patch);
10805 ok(!
lstrcmpA(transforms,
"whatever"),
"Expected \"whatever\", got \"%s\"\n", transforms);
10817 ok(!
lstrcmpA(patch,
"apple"),
"Expected lpPatchBuf to be unchanged, got \"%s\"\n", patch);
10818 ok(!
lstrcmpA(transforms,
"banana"),
"Expected lpTransformsBuf to be unchanged, got \"%s\"\n", transforms);
10831 ok(!
lstrcmpA(patch, patchcode),
"Expected \"%s\", got \"%s\"\n", patchcode, patch);
10832 ok(!
lstrcmpA(transforms,
"whatever"),
"Expected \"whatever\", got \"%s\"\n", transforms);
10846 ok(!
lstrcmpA(patch, patchcode),
"Expected \"%s\", got \"%s\"\n", patchcode, patch);
10847 ok(!
lstrcmpA(transforms,
"whate"),
"Expected \"whate\", got \"%s\"\n", transforms);
10848 ok(
size == 8,
"Expected 8, got %lu\n",
size);
10858 ok(!
lstrcmpA(patch, patchcode),
"Expected \"%s\", got \"%s\"\n", patchcode, patch);
10859 ok(!
lstrcmpA(transforms,
"whatever"),
"Expected \"whatever\", got \"%s\"\n", transforms);
10884 HKEY hpatch, udpatch, prodpatches;
10904 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
10913 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
10922 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
10931 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
10940 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
10949 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
10958 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
10967 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
10976 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
10985 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
10994 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11003 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11012 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11021 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11030 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11039 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11048 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11057 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11065 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11075 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11078 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
11080 lstrcatA(keypath,
"\\Products\\");
11086 skip(
"Not enough rights to perform tests\n");
11098 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11110 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11122 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11134 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11137 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
11139 lstrcatA(keypath,
"\\Installer\\Products\\");
11151 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11163 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11175 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11178 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
11181 lstrcatA(keypath, patch_squashed);
11193 ok(
size == 0,
"Expected 0, got %lu\n",
size);
11205 ok(
size == 4,
"Expected 4, got %lu\n",
size);
11212 ok(!
lstrcmpA(
val,
"transforms"),
"Expected \"transforms\", got \"%s\"\n",
val);
11213 ok(
size == 10,
"Expected 10, got %lu\n",
size);
11225 ok(
size == 6,
"Expected 6, got %lu\n",
size);
11237 ok(
size == 3,
"Expected 3, got %lu\n",
size);
11249 ok(
size == 4,
"Expected 4, got %lu\n",
size);
11262 ok(
size == 1,
"Expected 1, got %lu\n",
size);
11275 ok(
size == 1,
"Expected 1, got %lu\n",
size);
11287 ok(
size == 7,
"Expected 7, got %lu\n",
size);
11298 ok(!
lstrcmpA(
val,
"moreinfo"),
"Expected \"moreinfo\", got \"%s\"\n",
val);
11299 ok(
size == 8,
"Expected 8, got %lu\n",
size);
11314 ok(
size == 16,
"Expected 16, got %lu\n",
size);
11335 ok(
size == 16,
"Expected 16, got %lu\n",
size);
11343 ok(!
lstrcmpA(
val,
"moreinfo"),
"Expected \"moreinfo\", got \"%s\"\n",
val);
11344 ok(
size == 8,
"Expected 8, got %lu\n",
size);
11351 ok(
size == 16,
"Expected 16, got %lu\n",
size);
11368 ok(
size == 4,
"Expected 4, got %lu\n",
size);
11405 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11408 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
11410 lstrcatA(keypath,
"\\Products\\");
11422 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11434 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11446 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11458 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11461 lstrcpyA(keypath,
"Software\\Microsoft\\Installer\\Products\\");
11473 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11485 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11489 (
const BYTE *)
"transforms", 11);
11498 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11501 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
11504 lstrcatA(keypath, patch_squashed);
11516 ok(
size == 0,
"Expected 0, got %lu\n",
size);
11519 (
const BYTE *)
"pack", 5);
11529 ok(
size == 4,
"Expected 4, got %lu\n",
size);
11536 ok(!
lstrcmpA(
val,
"transforms"),
"Expected \"transforms\", got \"%s\"\n",
val);
11537 ok(
size == 10,
"Expected 10, got %lu\n",
size);
11554 ok(
size == 4,
"Expected 4, got %lu\n",
size);
11586 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11589 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer");
11590 lstrcatA(keypath,
"\\UserData\\S-1-5-18\\Products\\");
11602 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11614 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11626 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11638 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11641 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
11647 skip(
"insufficient rights\n" );
11659 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11671 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11675 (
const BYTE *)
"transforms", 11);
11684 ok(!
lstrcmpA(
val,
"apple"),
"Expected val to be unchanged, got \"%s\"\n",
val);
11687 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer");
11688 lstrcatA(keypath,
"\\UserData\\S-1-5-18\\Patches\\");
11689 lstrcatA(keypath, patch_squashed);
11701 ok(
size == 0,
"Expected 0, got %lu\n",
size);
11713 ok(
size == 4,
"Expected 4, got %lu\n",
size);
11720 ok(!
lstrcmpA(
val,
"transforms"),
"Expected \"transforms\", got \"%s\"\n",
val);
11721 ok(
size == 10,
"Expected 10, got %lu\n",
size);
11738 ok(
size == 4,
"Expected 4, got %lu\n",
size);
11771 HKEY hkey_product, hkey_patch, hkey_patches, hkey_udprops, hkey_udproduct;
11772 HKEY hkey_udpatch, hkey_udpatches, hkey_udproductpatches, hkey_udproductpatch;
11800 lstrcpyA(keypath,
"Software\\Classes\\Installer\\Products\\");
11806 skip(
"Not enough rights to perform tests\n");
11816 ok(!
lstrcmpA(
val,
"apple"),
"expected val to be unchanged, got \"%s\"\n",
val);
11827 ok(!
lstrcmpA(
val,
"apple"),
"expected val to be unchanged got \"%s\"\n",
val);
11838 ok(!
lstrcmpA(
val,
"apple"),
"expected val to be unchanged got \"%s\"\n",
val);
11841 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer");
11842 lstrcatA(keypath,
"\\UserData\\S-1-5-18\\Products\\");
11848 skip(
"Not enough rights to perform tests\n");
11858 ok(!
lstrcmpA(
val,
"apple"),
"expected val to be unchanged got \"%s\"\n",
val);
11869 ok(!
lstrcmpA(
val,
"apple"),
"expected val to be unchanged, got \"%s\"\n",
val);
11880 ok(!
lstrcmpA(
val,
"apple"),
"expected val to be unchanged got \"%s\"\n",
val);
11894 ok(!
lstrcmpA(
val,
"apple"),
"expected val to be unchanged got \"%s\"\n",
val);
11897 lstrcpyA(keypath,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer");
11898 lstrcatA(keypath,
"\\UserData\\S-1-5-18\\Patches\\");
11899 lstrcatA(keypath, patch_squashed);
11913 ok(
size == 11,
"expected 11 got %lu\n",
size);
11919 ok(!
lstrcmpA(
val,
"c:\\test.msp"),
"expected \"c:\\test.msp\", got \"%s\"\n",
val);
11920 ok(
size == 11,
"expected 11 got %lu\n",
size);
11926 ok(!valW[0],
"expected 0 got %u\n", valW[0]);
11927 ok(
size == 11,
"expected 11 got %lu\n",
size);
11933 ok(valW[0],
"expected > 0 got %u\n", valW[0]);
11934 ok(
size == 11,
"expected 11 got %lu\n",
size);
11961 BOOL found1, found2, found3;
11963 char product1[39], product2[39], product3[39],
guid[39];
11964 char product_squashed1[33], product_squashed2[33], product_squashed3[33];
11972 skip(
"process is limited\n" );
11984 strcpy(keypath2,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\");
11985 strcat(keypath2, usersid);
11986 strcat(keypath2,
"\\Installer\\Products\\");
11987 strcat(keypath2, product_squashed2);
11992 skip(
"Not enough rights to perform tests\n");
11998 strcpy(keypath1,
"Software\\Classes\\Installer\\Products\\");
11999 strcat(keypath1, product_squashed1);
12004 skip(
"insufficient rights\n" );
12010 strcpy(keypath3,
"Software\\Microsoft\\Installer\\Products\\");
12011 strcat(keypath3, product_squashed3);
12031 found1 = found2 = found3 =
FALSE;
12037 if (found1 && found2 && found3)
break;
12040 ok(found1,
"product1 not found\n");
12041 ok(found2,
"product2 not found\n");
12043 ok(found3,
"product3 not found\n");
12102 char product0[39], product1[39], product2[39], product3[39],
guid[39],
sid[128];
12103 char product_squashed1[33], product_squashed2[33], product_squashed3[33];
12108 BOOL found1, found2, found3;
12117 strcpy( keypath2,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\Managed\\" );
12118 strcat( keypath2, usersid );
12119 strcat( keypath2,
"\\Installer\\Products\\" );
12120 strcat( keypath2, product_squashed2 );
12125 skip(
"insufficient rights\n" );
12130 strcpy( keypath1,
"Software\\Classes\\Installer\\Products\\" );
12131 strcat( keypath1, product_squashed1 );
12136 skip(
"insufficient rights\n" );
12141 strcpy( keypath3, usersid );
12142 strcat( keypath3,
"\\Software\\Microsoft\\Installer\\Products\\" );
12143 strcat( keypath3, product_squashed3 );
12177 ok(
len,
"length unchanged\n" );
12186 ok(
guid[0],
"empty guid\n" );
12187 ok(
context != 0xdeadbeef,
"context unchanged\n" );
12197 ok(
guid[0],
"empty guid\n" );
12198 ok(
context != 0xdeadbeef,
"context unchanged\n" );
12209 skip(
"insufficient rights\n" );
12213 ok(
guid[0],
"empty guid\n" );
12214 ok(
context != 0xdeadbeef,
"context unchanged\n" );
12223 found1 = found2 = found3 =
FALSE;
12229 ok( !
sid[0],
"got \"%s\"\n",
sid );
12230 ok( !
len,
"unexpected length %lu\n",
len );
12236 ok(
sid[0],
"empty sid\n" );
12243 ok(
sid[0],
"empty sid\n" );
12247 if (found1 && found2 && found3)
break;
12254 ok(found1,
"product1 not found\n");
12255 ok(found2,
"product2 not found\n");
12256 ok(found3,
"product3 not found\n");
12271 BOOL found1, found2;
12273 char comp1[39], comp2[39],
guid[39];
12274 char comp_squashed1[33], comp_squashed2[33];
12282 skip(
"process is limited\n");
12291 strcpy( keypath1,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\" );
12292 strcat( keypath1,
"S-1-5-18\\Components\\" );
12293 strcat( keypath1, comp_squashed1 );
12298 skip(
"insufficient rights\n" );
12303 strcpy( keypath2,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\" );
12304 strcat( keypath2, usersid );
12305 strcat( keypath2,
"\\Components\\" );
12306 strcat( keypath2, comp_squashed2 );
12311 skip(
"insufficient rights\n" );
12320 found1 = found2 =
FALSE;
12325 ok(
guid[0],
"empty guid\n" );
12326 if (found1 && found2)
break;
12330 ok( found1,
"comp1 not found\n" );
12331 ok( found2,
"comp2 not found\n" );
12344 BOOL found1, found2;
12347 char comp1[39], comp2[39],
guid[39],
sid[128];
12348 char comp_squashed1[33], comp_squashed2[33];
12356 skip(
"process is limited\n");
12365 strcpy( keypath1,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\" );
12366 strcat( keypath1,
"S-1-5-18\\Components\\" );
12367 strcat( keypath1, comp_squashed1 );
12372 skip(
"insufficient rights\n" );
12377 strcpy( keypath2,
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\" );
12378 strcat( keypath2, usersid );
12379 strcat( keypath2,
"\\Components\\" );
12380 strcat( keypath2, comp_squashed2 );
12385 skip(
"insufficient rights\n" );
12390 sizeof(
"c:\\doesnotexist"));
12398 found1 = found2 =
FALSE;
12404 ok( !
sid[0],
"got \"%s\"\n",
sid );
12405 ok( !
len,
"unexpected length %lu\n",
len );
12412 ok(
sid[0],
"empty sid\n" );
12423 ok( found1,
"comp1 not found\n" );
12424 ok( found2,
"comp2 not found\n" );
12452 skip(
"process is limited\n");
12472 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
12478 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
12484 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
12491 "Expected ERROR_INVALID_PARAMETER, got %d\n",
r);
12498 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
12505 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
12512 "Expected ERROR_UNKNOWN_PRODUCT, got %d\n",
r);
12518 skip(
"Not enough rights to perform tests\n");
12522 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
12523 ok(
pf_exists(
"msitest\\helium"),
"File not installed\n");
12524 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
12525 ok(
pf_exists(
"msitest"),
"File not installed\n");
12542 "Expected ERROR_UNKNOWN_PRODUCT, got %u\n",
r);
12547 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
12548 ok(
pf_exists(
"msitest\\helium"),
"File not installed\n");
12549 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
12550 ok(
pf_exists(
"msitest"),
"File not installed\n");
12567 "Expected ERROR_UNKNOWN_PRODUCT, got %u\n",
r);
12572 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
12573 ok(
pf_exists(
"msitest\\helium"),
"File not installed\n");
12574 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
12575 ok(
pf_exists(
"msitest"),
"File not installed\n");
12594 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
12595 ok(
pf_exists(
"msitest\\helium"),
"File not installed\n");
12596 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
12597 ok(
pf_exists(
"msitest"),
"File not installed\n");
12601 lstrcpyA(keypath,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\");
12602 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Products\\");
12603 lstrcatA(keypath,
"83374883CBB1401418CAF2AA7CCEDDDC\\InstallProperties");
12615 (
const BYTE *)
"C:\\idontexist.msi", 18);
12623 "Expected ERROR_INSTALL_SOURCE_ABSENT, got %d\n",
r);
12624 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
12625 ok(
pf_exists(
"msitest\\helium"),
"File not installed\n");
12626 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
12627 ok(
pf_exists(
"msitest"),
"File not installed\n");
12646 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
12647 ok(
pf_exists(
"msitest\\helium"),
"File not installed\n");
12648 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
12649 ok(
pf_exists(
"msitest"),
"File not installed\n");
12651 lstrcpyA(keypath,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\");
12652 lstrcatA(keypath,
"Installer\\UserData\\S-1-5-18\\Products\\");
12653 lstrcatA(keypath,
"83374883CBB1401418CAF2AA7CCEDDDC\\InstallProperties");
12665 (
const BYTE *)
"C:\\idontexist.msi", 18);
12668 lstrcpyA(keypath,
"SOFTWARE\\Classes\\Installer\\Products\\");
12669 lstrcatA(keypath,
"83374883CBB1401418CAF2AA7CCEDDDC\\SourceList");
12681 (
const BYTE *)
"idontexist.msi", 15);
12689 "Expected ERROR_INSTALL_SOURCE_ABSENT, got %d\n",
r);
12690 ok(
pf_exists(
"msitest\\hydrogen"),
"File not installed\n");
12691 ok(
pf_exists(
"msitest\\helium"),
"File not installed\n");
12692 ok(
pf_exists(
"msitest\\lithium"),
"File not installed\n");
12693 ok(
pf_exists(
"msitest"),
"File not installed\n");
12697 (
const BYTE *)packagename,
lstrlenA(packagename) + 1);
12702 (
const BYTE *)localpackage,
lstrlenA(localpackage) + 1);
12735 skip(
"process is limited\n");
12747 skip(
"Not enough rights to perform tests\n");
12771 attrs = 0xdeadbeef;
12775 "expected INSTALLFEATUREATTRIBUTE_FAVORLOCAL, got %#lx\n", attrs);
12784 "expected INSTALLFEATUREATTRIBUTE_FAVORLOCAL, got %#lx\n", attrs);
12796 "expected INSTALLFEATUREATTRIBUTE_FAVORSOURCE, got %#lx\n", attrs);
12813 DWORD attrs, title_len, help_len;
12817 skip(
"process is limited\n");
12829 skip(
"Not enough rights to perform tests\n");
12850 title_len = help_len = 0;
12853 ok(title_len == 3,
"expected 3, got %lu\n", title_len);
12854 ok(help_len == 3,
"expected 3, got %lu\n", help_len);
12857 title_len = help_len = 0;
12860 ok(title_len == 3,
"expected 3, got %lu\n", title_len);
12861 ok(help_len == 3,
"expected 3, got %lu\n", help_len);
12865 title_len =
sizeof(
title);
12866 help_len =
sizeof(
help);
12870 ok(title_len == 3,
"expected 3, got %lu\n", title_len);
12871 ok(help_len == 3,
"expected 3, got %lu\n", help_len);
12877 title_len =
sizeof(
title);
12878 help_len =
sizeof(
help);
12882 ok(!title_len,
"expected 0, got %lu\n", title_len);
12883 ok(!help_len,
"expected 0, got %lu\n", help_len);
12885 ok(!
help[0],
"expected \"\", got \"%s\"\n",
help);
12931 ok(ret_a ==
NULL,
"expected NULL, got %p\n", ret_a);
12937 ok(!
error,
"MsiSetExternalUIRecord failed %u\n",
error);
12938 ok(prev ==
NULL,
"expected NULL, got %p\n", prev);
12942 ok(!
error,
"MsiSetExternalUIRecord failed %u\n",
error);
12946 ok(ret_w ==
NULL,
"expected NULL, got %p\n", ret_w);
12952 ok(ret_a ==
NULL,
"expected NULL, got %p\n", ret_a);
12955 ok(ret_w ==
NULL,
"expected NULL, got %p\n", ret_w);
12959 ok(!
error,
"MsiSetExternalUIRecord failed %u\n",
error);
12960 ok(prev ==
NULL,
"expected NULL, got %p\n", prev);
12963 ok(ret_a ==
NULL,
"expected NULL, got %p\n", ret_a);
12966 ok(ret_w ==
NULL,
"expected NULL, got %p\n", ret_w);
12970 ok(!
error,
"MsiSetExternalUIRecord failed %u\n",
error);
12974 ok(!
error,
"MsiSetExternalUIRecord failed %u\n",
error);
12977 ok(!
error,
"MsiSetExternalUIRecord failed %u\n",
error);
12982 static const char prodcode[] =
"{38847338-1BBC-4104-81AC-2FAAC7ECDDCD}";
13010 skip(
"Not enough rights to perform tests\n");
13102 skip(
"process is limited\n");
13116 skip(
"Not enough rights to perform tests\n");
13120 ok(
delete_pf(
"msitest\\added\\added2\\maximus",
TRUE),
"File not installed\n");
13121 ok(
delete_pf(
"msitest\\added\\added2",
FALSE),
"Directory not created\n");
13137 ok(
DeleteFileA(
"c:\\parent\\child\\Shortcut.lnk"),
"file not installed\n");
13157 skip(
"process is limited\n");
13174 ok(!
delete_pf(
"msitest\\sourcedir.txt",
TRUE),
"file not removed\n");
13184 ok(!
delete_pf(
"msitest\\sourcedir.txt",
TRUE),
"file not removed\n");
13196 ok(!
delete_pf(
"msitest\\sourcedir.txt",
TRUE),
"file not removed\n");
13206 ok(!
delete_pf(
"msitest\\sourcedir.txt",
TRUE),
"file not removed\n");
13221 skip(
"process is limited\n");
13241 skip(
"Not enough rights to perform tests\n");
13273 skip(
"process is limited\n");
13326 cmd =
"P=\"\"\"\"";
13366 cmd =
"P= \"one\" ";
13370 cmd =
"P=\"one\"\"";
13374 cmd =
"P=\"\"one\"";
13378 cmd =
"P=\"\"one\"\"";
13382 cmd =
"P=\"one two\"";
13386 cmd =
"P=\"\"\"one\"\" two\"";
13390 cmd =
"P=\"\"\"one\"\" two\" Q=three";
13394 cmd =
"P=\"\" Q=\"two\"";
13398 cmd =
"P=\"one\" Q=\"two\"";
13402 cmd =
"P=\"one=two\"";
13406 cmd =
"Q=\"\" P=\"one\"";
13410 cmd =
"P=\"\"\"one\"\"\" Q=\"two\"";
13414 cmd =
"P=\"one \"\"two\"\"\" Q=\"three\"";
13418 cmd =
"P=\"\"\"one\"\" two\" Q=\"three\"";
13435 skip(
"ROSTESTS-180: Skipping msi_winetest:msi because it hangs on WHS-Testbot. Set winetest_interactive to run it anyway.\n");
static char CURR_DIR[MAX_PATH]
char * strcat(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
char * strstr(char *String1, char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
char * strcpy(char *DstString, const char *SrcString)
static int run_query(HKEY root, WCHAR *path, WCHAR *key_name, WCHAR *value_name, BOOL value_empty, BOOL recurse)
void user(int argc, const char *argv[])
#define RegCloseKey(hKey)
static const CHAR suminfo[]
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 RegDeleteValueA(HKEY hKey, LPCSTR lpValueName)
LONG WINAPI RegSetValueA(HKEY hKeyOriginal, LPCSTR lpSubKey, DWORD dwType, LPCSTR lpData, DWORD cbData)
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 ERROR_INVALID_PARAMETER
#define ReadFile(a, b, c, d, e)
#define INVALID_HANDLE_VALUE
#define GetCurrentProcess()
#define ERROR_NO_MORE_ITEMS
#define ERROR_INVALID_HANDLE
#define WideCharToMultiByte
#define MultiByteToWideChar
#define ERROR_ACCESS_DENIED
static const WCHAR version[]
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI RemoveDirectoryA(IN LPCSTR lpPathName)
BOOL WINAPI CreateDirectoryA(IN LPCSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
DWORD WINAPI GetCurrentDirectoryA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
BOOL WINAPI SetCurrentDirectoryA(IN LPCSTR lpPathName)
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
UINT WINAPI GetSystemDirectoryA(OUT LPSTR lpBuffer, IN UINT uSize)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
UINT WINAPI MsiOpenDatabaseW(LPCWSTR szDBPath, LPCWSTR szPersist, MSIHANDLE *phDB)
UINT WINAPI MsiCloseHandle(MSIHANDLE handle)
UINT WINAPI MsiSetFeatureAttributesA(MSIHANDLE handle, LPCSTR feature, DWORD attrs)
UINT WINAPI MsiDoActionA(MSIHANDLE hInstall, LPCSTR szAction)
UINT WINAPI MsiGetFeatureInfoA(MSIHANDLE handle, const char *feature, DWORD *attrs, char *title, DWORD *title_len, char *help, DWORD *help_len)
UINT WINAPI MsiOpenProductA(LPCSTR szProduct, MSIHANDLE *phProduct)
UINT WINAPI MsiGetFileVersionA(LPCSTR szFilePath, LPSTR lpVersionBuf, LPDWORD pcchVersionBuf, LPSTR lpLangBuf, LPDWORD pcchLangBuf)
UINT WINAPI MsiProvideQualifiedComponentExA(const char *szComponent, const char *szQualifier, DWORD dwInstallMode, const char *szProduct, DWORD Unused1, DWORD Unused2, char *lpPathBuf, DWORD *pcchPathBuf)
UINT WINAPI MsiGetPatchInfoA(LPCSTR patch, LPCSTR attr, LPSTR buffer, LPDWORD buflen)
UINT WINAPI MsiConfigureFeatureW(LPCWSTR szProduct, LPCWSTR szFeature, INSTALLSTATE eInstallState)
UINT WINAPI MsiConfigureProductExA(LPCSTR szProduct, int iInstallLevel, INSTALLSTATE eInstallState, LPCSTR szCommandLine)
UINT WINAPI MsiSetExternalUIRecord(INSTALLUI_HANDLER_RECORD handler, DWORD filter, void *context, INSTALLUI_HANDLER_RECORD *prev)
INSTALLSTATE WINAPI MsiQueryProductStateA(LPCSTR szProduct)
UINT WINAPI MsiGetPatchInfoExA(LPCSTR szPatchCode, LPCSTR szProductCode, LPCSTR szUserSid, MSIINSTALLCONTEXT dwContext, LPCSTR szProperty, LPSTR lpValue, DWORD *pcchValue)
UINT WINAPI MsiInstallProductA(LPCSTR szPackagePath, LPCSTR szCommandLine)
UINT WINAPI MsiGetFileHashA(const char *szFilePath, DWORD dwOptions, MSIFILEHASHINFO *pHash)
INSTALLUI_HANDLERA WINAPI MsiSetExternalUIA(INSTALLUI_HANDLERA puiHandler, DWORD dwMessageFilter, void *pvContext)
INSTALLUI_HANDLERW WINAPI MsiSetExternalUIW(INSTALLUI_HANDLERW puiHandler, DWORD dwMessageFilter, void *pvContext)
INSTALLSTATE WINAPI MsiGetComponentPathExA(LPCSTR product, LPCSTR comp, LPCSTR usersid, MSIINSTALLCONTEXT ctx, LPSTR buf, LPDWORD buflen)
UINT WINAPI MsiGetPatchInfoW(LPCWSTR patch, LPCWSTR attr, LPWSTR buffer, LPDWORD buflen)
UINT WINAPI MsiGetProductInfoA(LPCSTR szProduct, LPCSTR szAttribute, LPSTR szBuffer, LPDWORD pcchValueBuf)
UINT WINAPI MsiConfigureFeatureA(LPCSTR szProduct, LPCSTR szFeature, INSTALLSTATE eInstallState)
UINT WINAPI MsiGetProductCodeA(LPCSTR szComponent, LPSTR szBuffer)
UINT WINAPI MsiQueryComponentStateA(LPCSTR szProductCode, LPCSTR szUserSid, MSIINSTALLCONTEXT dwContext, LPCSTR szComponent, INSTALLSTATE *pdwState)
INSTALLUILEVEL WINAPI MsiSetInternalUI(INSTALLUILEVEL dwUILevel, HWND *phWnd)
UINT WINAPI MsiProvideComponentA(const char *product, const char *feature, const char *component, DWORD mode, char *buf, DWORD *buflen)
INSTALLSTATE WINAPI MsiGetComponentPathA(LPCSTR product, LPCSTR comp, LPSTR buf, LPDWORD buflen)
HRESULT WINAPI MsiGetFileSignatureInformationA(const char *path, DWORD flags, PCCERT_CONTEXT *cert, BYTE *hash, DWORD *hashlen)
INSTALLSTATE WINAPI MsiQueryFeatureStateA(LPCSTR szProduct, LPCSTR szFeature)
INSTALLSTATE WINAPI MsiLocateComponentA(LPCSTR szComponent, LPSTR lpPathBuf, LPDWORD pcchBuf)
UINT WINAPI MsiConfigureProductA(LPCSTR szProduct, int iInstallLevel, INSTALLSTATE eInstallState)
UINT WINAPI MsiProvideComponentW(const WCHAR *product, const WCHAR *feature, const WCHAR *component, DWORD mode, WCHAR *buf, DWORD *buflen)
INSTALLSTATE WINAPI MsiQueryProductStateW(LPCWSTR szProduct)
INSTALLSTATE WINAPI MsiUseFeatureExA(const char *szProduct, const char *szFeature, DWORD dwInstallMode, DWORD dwReserved)
UINT WINAPI MsiGetProductInfoExA(LPCSTR szProductCode, LPCSTR szUserSid, MSIINSTALLCONTEXT dwContext, LPCSTR szProperty, LPSTR szValue, LPDWORD pcchValue)
USERINFOSTATE WINAPI MsiGetUserInfoA(LPCSTR szProduct, LPSTR lpUserNameBuf, LPDWORD pcchUserNameBuf, LPSTR lpOrgNameBuf, LPDWORD pcchOrgNameBuf, LPSTR lpSerialBuf, LPDWORD pcchSerialBuf)
UINT WINAPI MsiOpenPackageA(LPCSTR szPackage, MSIHANDLE *phPackage)
UINT WINAPI MsiOpenPackageExW(const WCHAR *szPackage, DWORD dwOptions, MSIHANDLE *phPackage)
UINT WINAPI MsiGetPropertyA(MSIHANDLE hinst, const char *name, char *buf, DWORD *sz)
UINT WINAPI MsiEnumComponentsA(DWORD index, char *lpguid)
UINT WINAPI MsiEnumFeaturesW(const WCHAR *szProduct, DWORD index, WCHAR *szFeature, WCHAR *szParent)
UINT WINAPI MsiEnumPatchesW(const WCHAR *szProduct, DWORD iPatchIndex, WCHAR *lpPatchBuf, WCHAR *lpTransformsBuf, DWORD *pcchTransformsBuf)
UINT WINAPI MsiEnumProductsA(DWORD index, char *lpguid)
UINT WINAPI MsiEnumClientsA(const char *szComponent, DWORD index, char *szProduct)
UINT WINAPI MsiEnumProductsExA(const char *product, const char *usersid, DWORD ctx, DWORD index, char installed_product[GUID_SIZE], MSIINSTALLCONTEXT *installed_ctx, char *sid, DWORD *sid_len)
UINT WINAPI MsiEnumPatchesExA(const char *szProductCode, const char *szUserSid, DWORD dwContext, DWORD dwFilter, DWORD dwIndex, char *szPatchCode, char *szTargetProductCode, MSIINSTALLCONTEXT *pdwTargetProductContext, char *szTargetUserSid, DWORD *pcchTargetUserSid)
UINT WINAPI MsiEnumComponentsExA(const char *user_sid, DWORD ctx, DWORD index, CHAR guid[39], MSIINSTALLCONTEXT *installed_ctx, char *sid, DWORD *sid_len)
UINT WINAPI MsiEnumPatchesA(const char *szProduct, DWORD iPatchIndex, char *lpPatchBuf, char *lpTransformsBuf, DWORD *pcchTransformsBuf)
UINT WINAPI MsiSourceListGetInfoA(LPCSTR szProduct, LPCSTR szUserSid, MSIINSTALLCONTEXT dwContext, DWORD dwOptions, LPCSTR szProperty, LPSTR szValue, LPDWORD pcchValue)
UINT WINAPI MsiSummaryInfoSetPropertyA(MSIHANDLE handle, UINT uiProperty, UINT uiDataType, INT iValue, FILETIME *pftValue, const char *szValue)
UINT WINAPI MsiGetSummaryInformationA(MSIHANDLE hDatabase, const char *szDatabase, UINT uiUpdateCount, MSIHANDLE *pHandle)
UINT WINAPI MsiSummaryInfoPersist(MSIHANDLE handle)
HRESULT WINAPI CoCreateGuid(GUID *pguid)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
HRESULT WINAPI StgOpenStorage(const OLECHAR *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen)
DWORD WINAPI GetFileVersionInfoSizeA(LPCSTR filename, LPDWORD handle)
BOOL WINAPI VerQueryValueA(LPCVOID pBlock, LPCSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
BOOL WINAPI GetFileVersionInfoA(LPCSTR filename, DWORD handle, DWORD datasize, LPVOID data)
static BOOL is_process_elevated(void)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLint GLboolean GLint GLenum access
GLuint64EXT GLuint GLuint GLenum GLenum GLuint GLuint GLenum GLuint GLuint key1
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 memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
#define sprintf(buf, format,...)
static void create_cab_file(void)
static const WCHAR desc[]
static void create_file_data(LPCSTR name, LPCSTR data, DWORD size)
#define create_file(name, size)
void restart_as_admin_elevated(void)
static BOOL pf_exists(const char *file)
BOOL delete_pf(const CHAR *rel_path, BOOL is_file)
BOOL get_system_dirs(void)
void delete_cab_files(void)
static const char file_dat[]
static const char lus_install_exec_seq_dat[]
static void test_MsiGetComponentPathEx(void)
static void compose_base85_guid(LPSTR component, LPSTR comp_base85, LPSTR squashed)
static void test_MsiGetComponentPath(void)
static void test_MsiGetFileSignatureInformation(void)
static void test_MsiEnumComponents(void)
static const char spf2_custom_action_dat[]
static const WCHAR msifileW[]
static void test_MsiGetFeatureInfo(void)
static const char lus_file_dat[]
static void test_MsiGetProductInfo(void)
static void delete_test_files(void)
static const char mcp_component_dat[]
static const char cl_install_exec_seq_dat[]
static char * get_user_sid(void)
static BOOL add_cabinet_storage(LPCSTR db, LPCSTR cabinet)
static const char spf_install_exec_seq_dat[]
static const char spf2_install_exec_seq_dat[]
static const char mcp_feature_dat[]
static const char table_enc85[]
static const char media_dat[]
static const char ci2_file_dat[]
static void test_MsiEnumPatches(void)
static const msi_table spf_tables[]
static void test_MsiEnumClients(void)
static const char msifile[]
static const char ci2_property_dat[]
static void test_MsiEnumPatchesEx_usermanaged(LPCSTR usersid, LPCSTR expectedsid)
static void test_usefeature(void)
static void test_MsiGetPatchInfo(void)
static void test_MsiEnumPatchesEx_machine(void)
static const char ci2_feature_comp_dat[]
static const char property_dat[]
static const char sd_install_ui_seq_dat[]
static const msi_table mcp_tables[]
static void test_MsiEnumProductsEx(void)
static UINT set_summary_info(MSIHANDLE hdb, LPSTR prodcode)
static const char lus_feature_comp_dat[]
static void test_MsiSetFeatureAttributes(void)
static const msi_table spf2_tables[]
static void test_MsiQueryFeatureState(void)
static void test_MsiSetExternalUI(void)
static void test_MsiGetFileVersion(void)
static const char shortcut_dat[]
static void test_MsiGetFileHash(void)
static INT CALLBACK handler_w(LPVOID context, UINT type, LPCWSTR msg)
static void create_test_files(void)
static const char sd_install_exec_seq_dat[]
static void test_MsiGetUserInfo(void)
static const char sd_component_dat[]
static const char spf_directory_dat[]
static const char ci2_component_dat[]
static const char spf_install_ui_seq_dat[]
static const char sd_file_dat[]
static void test_MsiEnumPatchesEx(void)
static const char spf_component_dat[]
static const char sd_feature_dat[]
static void test_MsiOpenProduct(void)
static const msi_table lus0_tables[]
static void test_MsiQueryComponentState(void)
static const char sd_custom_action_dat[]
static const msi_table tables[]
static void test_null(void)
static void test_MsiGetProductCode(void)
static const char lus0_media_dat[]
static const char feature_dat[]
static void test_MsiProvideComponent(void)
static const char sd_feature_comp_dat[]
static INT CALLBACK handler_record(LPVOID context, UINT type, MSIHANDLE record)
static void test_MsiQueryProductState(void)
static void test_MsiConfigureProductEx(void)
static const char ci_component_dat[]
static const char lus_component_dat[]
static void test_MsiGetPatchInfoEx(void)
static const msi_table ci2_tables[]
static void test_MsiGetProductInfoEx(void)
static void test_MsiEnumPatchesEx_userunmanaged(LPCSTR usersid, LPCSTR expectedsid)
static void test_setpropertyfolder(void)
static const char install_exec_seq_dat[]
static const msi_table sd_tables[]
static void test_MsiSetInternalUI(void)
static const char mcp_feature_comp_dat[]
static void test_MsiEnumProducts(void)
static const char directory_dat[]
static const char lus_feature_dat[]
static const msi_table lus2_tables[]
static const char ci_install_exec_seq_dat[]
static const msi_table ci_tables[]
static void get_version_info(LPSTR path, LPSTR *vercheck, LPDWORD verchecksz, LPSTR *langcheck, LPDWORD langchecksz)
static void test_getcomponentpath(void)
static const msi_table lus1_tables[]
static const struct @1681 hash_data[]
static void test_command_line_parsing(void)
static void test_MsiEnumComponentsEx(void)
static const char component_dat[]
static void test_concurrentinstall(void)
static const char mcp_file_dat[]
static const char lus1_media_dat[]
static void test_sourcedir_props(void)
static const char feature_comp_dat[]
static void test_MsiProvideQualifiedComponentEx(void)
static const msi_table cl_tables[]
static void create_test_guid(LPSTR prodcode, LPSTR squashed)
static const char ci_custom_action_dat[]
static const char lus2_media_dat[]
static INT CALLBACK handler_a(LPVOID context, UINT type, LPCSTR msg)
static void test_lastusedsource(void)
static void encode_base85_guid(GUID *guid, LPWSTR str)
static const char spf_custom_action_dat[]
static const char cl_custom_action_dat[]
static MSIHANDLE create_package_db(void)
#define create_database(name, tables, num_tables)
INTERNETFEATURELIST feature
#define INSTALLPROPERTY_HELPLINKA
@ MSIPATCHSTATE_SUPERSEDED
@ MSIPATCHSTATE_OBSOLETED
#define INSTALLPROPERTY_PATCHSTATEA
#define INSTALLPROPERTY_LOCALPACKAGEA
#define INSTALLPROPERTY_ASSIGNMENTTYPEA
#define INSTALLPROPERTY_INSTALLSOURCEA
#define INSTALLPROPERTY_HELPTELEPHONEA
#define INSTALLPROPERTY_PRODUCTICONA
#define INSTALLPROPERTY_REGCOMPANYA
enum tagMSIINSTALLCONTEXT MSIINSTALLCONTEXT
#define INSTALLPROPERTY_VERSIONSTRINGA
#define INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA
#define INSTALLPROPERTY_VERSIONMAJORA
#define INSTALLPROPERTY_REGOWNERA
#define INSTALLPROPERTY_URLUPDATEINFOA
struct _MSIFILEHASHINFO MSIFILEHASHINFO
enum tagUSERINFOSTATE USERINFOSTATE
INT(CALLBACK * INSTALLUI_HANDLERW)(LPVOID, UINT, LPCWSTR)
#define INSTALLPROPERTY_TRANSFORMSA
#define INSTALLPROPERTY_VERSIONA
#define INSTALLPROPERTY_INSTALLLOCATIONA
#define INSTALLPROPERTY_LASTUSEDSOURCEA
#define INSTALLPROPERTY_INSTANCETYPEA
#define INSTALLPROPERTY_PRODUCTNAMEA
#define INSTALLPROPERTY_AUTHORIZED_LUA_APPA
#define INSTALLPROPERTY_MOREINFOURLA
@ INSTALLFEATUREATTRIBUTE_FAVORSOURCE
@ INSTALLFEATUREATTRIBUTE_FAVORLOCAL
#define INSTALLPROPERTY_URLINFOABOUTA
#define INSTALLPROPERTY_PRODUCTSTATEA
INT(CALLBACK * INSTALLUI_HANDLERA)(LPVOID, UINT, LPCSTR)
#define INSTALLPROPERTY_PRODUCTIDA
@ INSTALLMODE_NODETECTION
static const WCHAR INSTALLPROPERTY_LOCALPACKAGEW[]
#define INSTALLPROPERTY_UNINSTALLABLEA
@ INSTALLSTATE_INVALIDARG
@ INSTALLSTATE_ADVERTISED
@ MSIINSTALLCONTEXT_MACHINE
@ MSIINSTALLCONTEXT_USERUNMANAGED
@ MSIINSTALLCONTEXT_USERMANAGED
@ USERINFOSTATE_INVALIDARG
#define INSTALLPROPERTY_INSTALLDATEA
#define INSTALLPROPERTY_PUBLISHERA
INT(CALLBACK * INSTALLUI_HANDLER_RECORD)(LPVOID, UINT, MSIHANDLE)
enum tagINSTALLUILEVEL INSTALLUILEVEL
#define INSTALLPROPERTY_VERSIONMINORA
#define INSTALLPROPERTY_PACKAGECODEA
#define INSTALLPROPERTY_PACKAGENAMEA
@ INSTALLUILEVEL_NOCHANGE
#define INSTALLPROPERTY_LANGUAGEA
#define INSTALLPROPERTY_DISPLAYNAMEA
BOOL squash_guid(LPCWSTR in, LPWSTR out)
#define SQUASHED_GUID_SIZE
UINT WINAPI MsiDatabaseCommit(MSIHANDLE hdb)
#define STGM_SHARE_EXCLUSIVE
const char * winetest_platform
static const WCHAR lang[]
static const WCHAR props[]
DWORD WINAPI GetLastError(void)
#define ERROR_INVALID_COMMAND_LINE
#define ERROR_UNKNOWN_PRODUCT
#define ERROR_INSTALL_FAILURE
#define CRYPT_E_FILE_ERROR
#define ERROR_PATH_NOT_FOUND
#define ERROR_UNKNOWN_PATCH
#define ERROR_INSTALL_PACKAGE_REJECTED
#define ERROR_BAD_PATHNAME
#define ERROR_UNKNOWN_COMPONENT
#define ERROR_UNKNOWN_FEATURE
#define ERROR_INSTALL_SOURCE_ABSENT
#define ERROR_FILE_INVALID
#define HRESULT_FROM_WIN32(x)
#define ERROR_FUNCTION_FAILED
#define ERROR_UNKNOWN_PROPERTY
#define ERROR_BAD_CONFIGURATION
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER