On 6/5/2010 19:09, Andrew Eikum wrote:
Trouble is, I have no idea what it is used for. I tried testing most of the CLSIDs in shlguid.h with different combinations of flags, none of which had any effect. It must just be looking out for a small number of specific CLSIDs. One possible guess is that it tweaks the flags parameter when certain CLSIDs are detected, but none of my tests turned up anything interesting.
Any thoughts? Should I just send as-is?
So it doesn't care about classid returned from IPersist. I think it's enough now to add tests for not-called QI for IShellFolder and a test for a bunch of known CLSIDs for folders. After that (if you dummy CLSID is allowed too) probably it's ok to remove all checks.
I'm not sure I follow. As the tests in the patch show, QI is called up to two times, once for IPersist and once for IPersistFolder if the first fails. I can certainly add tests for returning different CLSIDs, though that seems uninteresting to me since they all behave identically.
I mean, create different types of shellfolders, then test that function accepts them all. And a simple check that QI isn't called for IShellFolder, so argument expected to be IShellFolder pointer.
Removing the code in shlwapi.404 will lead to test failures since Windows _does_ make QI and GetClassID calls, it's just unknown what it does with the data it gets.
What do you think? Remove the tests? Add todo_wine and remove the 'dummy' code in shlwapi.404?
Remove tests and add a note in function code that this GetClassID method is actually called for unknown purpose.
Another way is to make is accept another CLSID, if I got it right it is why you started to patch it.
Thanks for your feedback, Andrew