Caching IShellFolders for IShellFolder::BindToObject

Caching IShellFolders for IShellFolder::BindToObject

Post by Andrew War » Sat, 16 Mar 2002 10:33:52

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?



1. Explorer Tree & IShellFolder BindToObject problem

I have written a namespace extension.  For the most part it works fine,
however, I'm having a problem knowing when to refresh my view.  I get a
bindtoobject when the user clicks through subdirectories in the tree,
but I get no call when the user clicks through the same folder level in
the tree.  How can I know that the selected item has changed in the tree
to update my right panel view accordingly?

Jason Southwell
Arcana technologies Incorporated

2. Spy people on the Net

3. IShellFolder::BindToObject IIDs confusing me !!!

4. Please help - source constants may need changing?

5. flushing cached data of an IShellFolder/ItemIDList

6. FS: C= 1080 Monitor

7. IShellFolder caching SFGAO_SHARE state

8. nds design test question

9. IShellFolder::ParseDisplayName unknown

10. XP IShellFolder::EnumObjects bug

11. How to register a object(DLL) implemented the IShellFolder interface?

12. IShellFolder marshaling