You are testing here whether either MFT_BITMAP or MFT_SEPARATOR is set, which is perfectly valid to specify one of them. If you want to test whether both flags are set simultaneously then use something like this:
if ((lpmii->fType & (MFT_BITMAP | MFT_SEPARATOR)) == (MFT_BITMAP | MFT_SEPARATOR))
Ah, thanks :) I'll get there eventually..... yes, I see why now.
A conformance test to show the real behaviour is urgently required.
If you mean one that tries every combination of flags to see what Windows returns then that's beyond my capabilities and current toolset (no real windows development tools). I ran QuickTime 6 in Logview, and it shows up as "bad parameter" and the calls return false, and as the problem seemed to be having BITMAP and SEPARATOR set at the same time I thought for now it'd be good enough to just check for that, as this makes IE6 and QuickTime work properly.
Should I resubmit the patch with my mistake corrected? thanks -mike