I have implemented a cache for storing IShellFolders that are created by
explorer calling IShellFolder::BindToObject() in my multi level foldering
NSE. Basically I have a hashtable that is keyed on a string representation
of the pidl of the IShellFolder. Each time BingToObject is called I try to
obtain an IShellFolder from the cache by the string representation of the
absolute pidl constructed from the pidl passed into BindToObject. If the
cache does not hold the requested IShellFolder then I create a new one, add
it to the cache and pass it back out of the function. Debugging this things
seem to work fine and IShellFolders are being taken from the cache and given
to explorer however when I try to go into a subfolder in the NSE explorer
does the work to bind to the new IShellFolder but never calls the
IShellFolder::CreateViewObject method, this means the namespace is still
sitting in the same folder view as before.
Anyone got any ideas?