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. C / C++ / MFC
  4. Hosting Band objects?

Hosting Band objects?

Scheduled Pinned Locked Moved C / C++ / MFC
hostinghelpquestion
3 Posts 2 Posters 0 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.
  • N Offline
    N Offline
    Nick Hodapp
    wrote on last edited by
    #1

    I am attempting to host of the band objects used by IE and Windows Explorer in my own application. Specifically, I wish to host the "Explorer Band" object, which displays the folder list in Windows Explorer (and is available in IE). Has anyone successfully reused any of the bands that ship with IE or Windows? I would like some clues on what to do next. My hope is to not have to recreate the functinoality of the "Explorer Band" specifically for my app... I am able to create the band object and host it. Presently I am having problems getting it to display properly but I believe I can overcome this (my host does not call IDockingWindow::ResizeBorderDW(), and the band is sizing itself to 0px x 0px). But I am worried that I will not be able to do much with this band once it is displaying. Seemingly, the band accepts commands on IDispatch or IOleCommandTarget, but I have no clue what the actual calls might be. This is where I need help. Any input appreciated! Nick Hodapp

    B 1 Reply Last reply
    0
    • N Nick Hodapp

      I am attempting to host of the band objects used by IE and Windows Explorer in my own application. Specifically, I wish to host the "Explorer Band" object, which displays the folder list in Windows Explorer (and is available in IE). Has anyone successfully reused any of the bands that ship with IE or Windows? I would like some clues on what to do next. My hope is to not have to recreate the functinoality of the "Explorer Band" specifically for my app... I am able to create the band object and host it. Presently I am having problems getting it to display properly but I believe I can overcome this (my host does not call IDockingWindow::ResizeBorderDW(), and the band is sizing itself to 0px x 0px). But I am worried that I will not be able to do much with this band once it is displaying. Seemingly, the band accepts commands on IDispatch or IOleCommandTarget, but I have no clue what the actual calls might be. This is where I need help. Any input appreciated! Nick Hodapp

      B Offline
      B Offline
      Buck
      wrote on last edited by
      #2

      Hi Nick, I hope I don't confuse the issue for you Nick, but a few things I have learnt are, Useful interfaces are, IOleWindow. IObjectWithSite IPersistStream IDeskBand and yes IDockingWindow, I havent tried IDispatch or IOleCommandTarget yet IObjectWithSite 's SetSite method allows access to the containers interfaces eg IOleInPlaceObject, and IInputObjectSite etc Also IUnknown is real useful, to find the above, eg Maybe with your current problem, use IUnknown to get the site of IOleWindow, Then use IOleWindow 's GetWindow method to get the HWND of the parent, Then all you need to do is register and create the window, Also normally the bands width is kept somewhere in the registry with other info. OK, Sounds easy doesn't it :-) I wish it was.

      N 1 Reply Last reply
      0
      • B Buck

        Hi Nick, I hope I don't confuse the issue for you Nick, but a few things I have learnt are, Useful interfaces are, IOleWindow. IObjectWithSite IPersistStream IDeskBand and yes IDockingWindow, I havent tried IDispatch or IOleCommandTarget yet IObjectWithSite 's SetSite method allows access to the containers interfaces eg IOleInPlaceObject, and IInputObjectSite etc Also IUnknown is real useful, to find the above, eg Maybe with your current problem, use IUnknown to get the site of IOleWindow, Then use IOleWindow 's GetWindow method to get the HWND of the parent, Then all you need to do is register and create the window, Also normally the bands width is kept somewhere in the registry with other info. OK, Sounds easy doesn't it :-) I wish it was.

        N Offline
        N Offline
        Nick Hodapp
        wrote on last edited by
        #3

        Hi Colin: Yes, I determined the same list of interfaces supported by the Explorer Band (or "Folders") band object using the OLE/COM Object Viewer. Fact is, I can host the band just fine -- it completely initializes itself and creates its HWND as expected, I just don't know how to make it do stuff. This band object supports IServiceProvider, through which you can obtain interfaces that aren't necessarily implemented by the object itself. Unfortuntately, I do not know what interfaces it can provide. It would be nice if COM allowed one to enumerate the interfaces on an object... Anyone else have input? Thanks! Nick Hodapp

        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