Anyone have any clever thoughts in how to enumerate through a lot of BHOs? In looking at this list it would be good to know how to do it, but I can't think of a super clever way to hit all of them at any significant speed: http://www.castlecops.com/clsid.php?type=5

This kinda reminds me of this thread but I don't think a browser could handle several thousand of those, and it's lacking the programattic quick-ness that I'm thinking about.

Well - laterally-thinking - maybe you don't have to? What are you trying to do?
Perhaps this might work - assuming it takes classIDs, or assuming you can get the ProgID for the classID you're looking at

FYI - I just ran all my registries and the BHO list through the clientcaps "getComponentVersion", and it detected only the dozen it's supposed to, so you're correct that some other enumeration method is needed.

Does res:// work on class IDs maybe? Where else can these things be used I wonder...

With the right MIME type, a .MHT file happens to display properly in IE6/IE7 (.MHT is like an email format - lots of MIME-Encoded base64 files concatentated into one file). This (or another technique) might be able to trick IE into changing it's security restrictions to a *higher* level, thus blocking the popups that we don't want to see? Anyhow - the .MHT format would allow one file to serve hundreds or even thousands of tiny HTML fragments that each get "rendered" in separate places of the main doc, which could reduce the number of popups ot just 1 ? Worth a try if you've got time to play with this?

Just kidding... anyway, what I wanted to do was enumerate everything on the drive and/or uniquely fingerprint the user. Ten apps is fine - I can do that now. I think I'll have better luck using the res:// trick to be honest. But it's still lacking the quickness because I have to iterate over hundreds or thousands of requests to get a "feel" for what is on the remote computer.