Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. COM
  4. IShellFolder and EnumObjects,CreateView...

IShellFolder and EnumObjects,CreateView...

Scheduled Pinned Locked Moved COM
databasequestionc++cssdesign
1 Posts 1 Posters 2 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    aes
    wrote on last edited by
    #1

    Hi, I'm not sure that this is the right forum but I coldn't find any "Shell" forum. I'm sorry if this is the wrong forum (please correct me if so). I'm currently developing a shell extension that resides on desktop. It uses a database for dynamic subfolders display. Each subfolder could possibly have different types of mount points (e.g. Compound file, a directory or database "fs"...). ShExt | A Folder (DB Retrieved "root" folder) ....| Compound "fs" Next Folder (DB Retrieved "root" folder) ....| Database "fs" etc... Many Thanx in Advance Mario Problems/Questions: P1) Each "root" folder needs a login: When a new "root" folder is about to expand i use SHChangeNotify with SHCNE_MEDIAREMOVED (since i've marked the "root" folders as removable) to compress the possibly old expanded folder is being compressed. The problem is that explorer is wery slow, it always enumerates the new folder before compressing the old one and makes it really messy. Q1) Is it some way of making explorer to compress it first and then use the enumerator? (I don't want to do any "hacking" in the tree pane... P2) Since my implementation internally just uses UNICODE and I don't have a Win95 box: I don't like to have separate distributions of my program at least internally the same, except for the UI stuff... Q2) Does Win95 query for e.g. IExtractIconW or does it just uses IExtractIcon ? P3) Not really a problem, but laziness (or rather less code to maintance)? Q3) Is there any "generic" helper object that I could use for the view pane if no custom is needed (that takes IShellFolder* param and uses the enumerator, IExtractIcon etc... and populates it...)? P3) Well... not a problem, rather a general question? Q4) Why do explorer (on my Win200 machine) seems so "sloppy" in terms of instantiating uneccesary many times? Dump (I've written the component in ATL ;-): FinalConstruct Initialize GetClassID FinalConstruct Initialize EnumObjects FinalConstruct Next, GetDisplayNameOf Next, GetDisplayNameOf Next, GetDisplayNameOf Next FinalRelease FinalRelease FinalRelease // Ok, until here (seems to use threads to do above stuff) // Here the strange stuff begins... It seems, for me anyway, // wase of computational power doing that many // instantiation of the object? // (Lucky me that I don't do that much in the Initialization process (FinalConstruct, // Initialize), merely store the pidl for futher use, // but one might have to do some more processing one day in the Initialization

    1 Reply Last reply
    0
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • World
    • Users
    • Groups