The Windows shell uses a couple of mechanisms to deal with this performance hit:
- It looks up icons in a background thread. Explorer is still perfectly usable whilst this thread is doing its work.
- Explorer caches icons. This means that the icon extraction is performed once only and the result is remembered.
I think if you want your file manager to be as usable as Explorer then you will need to implement similar optimisations. Or perhaps SHGetFileInfo
already takes advantage of the system icon cache.
These articles relating to shell icon performance may be useful to you: