Icon Overlays via shell extensions for Access Database files having .accdb or .mdb extensions

    General discussion

  • I have an Icon Overlay handler in a shell extension.  I use it add overlays to icons of files depending on some metadata in the file.

    It works great except for one thing - Access Database files.  When an .accdb or .mdb file is visible on the screen, the shell sensd a request for the icon info to me via IShellIcon::GetIconInfo.  I have my extension look at the metadata for the file the request is interested in, then make the icon, add it to the image list, set and return the icon index to the shell, and the icon overlay renders.  Great.

    However, unlike any other file type that my extension works with, the shell proceeds to ask for the icon info again.  Then again.  And again, and again, and again.  It never stops - Windows just goes bananas, asking for the icon of the file over and over.  Each time it asks, it has forgotten the index I gave it the previous time.  To make matters worse, multiple thread are making the request at the same time!

    Is this normal?  I feel like it is not, because Windows doesn't spam any other file types like this.

    It seems to happen on any version of Windows, too, from 7 to 10.  I thought maybe some recent windows updates or changes in stuff (related to Windows 10 I assume) could be responsible but I really have no way (or haven't figured one out) of knowing which components of Windows Shell are actually responsible for sending the GetIconInfo request to my extension.

    Has any one else experienced this?
    Does anybody know what might be so special, or weird, about .accdb and .mdb files that causes Window Shell to go bananas only on this specific file type?
    Does anyone know if this is a bug?

    Friday, December 29, 2017 7:36 PM