1 / 29

IE 4.0 Shell Architecture

IE 4.0 Shell Architecture. Satoshi Nakajima. IE 4.0. 8 Nov., 1996. IE 4.0 Technology Exchange Meeting. Topic. Scope of this presentation. Covered in this presentation Browser, Shell Explorer, WebBar, Asynchronos Navigation, UI negotiation Not covered

lapis
Télécharger la présentation

IE 4.0 Shell Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IE 4.0 Shell Architecture Satoshi Nakajima IE 4.0 8 Nov., 1996 IE 4.0 Technology Exchange Meeting

  2. Topic Scope of this presentation • Covered in this presentation Browser, Shell Explorer, WebBar, Asynchronos Navigation, UI negotiation • Not covered WebView, Automation Model, Desktop News

  3. Topic Browser Evolution • How Win95 Explorer works Shell Namespace, IShellFolder, pidl, IShellView, IShellBrowser • How IE 3.0 browser works DocObject • How IE 4.0 browser works WebBar

  4. Topic Advanced topics • Layout negotiation • How asynchronous navigation works

  5. WIN95 Shell Name Space • Shell NameSpace Hierarchical name space, which the user can browse with the Shell Explorer • Shell Items Items in the shell name space -- drives, files, directories, servers, shares, MyComputer, ControlPanel, ControlPanel items, Printer Folder, Printers.

  6. WIN95 IShellFolder IShellFolder Explorer Shell Folder IShellFolder allows you to • Enumerate items in it (returns pidls) • Parse display name (name to pidl) • Get display name (pidl to name) • Bind to an item • Get UI objects (menu, drop target, …)

  7. WIN95 What is a “pidl”? An identifier of an item in the shell name space. SHITEMID cb opaque bits PIDL SHITEMID1 SHITEMID2 0 A pidl to “C:\tmp\foo.htm” cb1 MyComputer cb2 C:\ cb3 tmp cb4 Foo.htm 0 Remember that pidls are opaque!

  8. WIN95 Binding to IShellFolder SHGetDesktopFolder IShellFolder Desktop ISF::BindToObject cb1 MyComputer 0 IShellFolder MyComputer ISF::BindToObject cb2 C:\ cb3 tmp 0 IShellFolder C:\tmp

  9. WIN95 IShellBrowser / IShellView Explorer IShellFolder C:\tmp (folder) IShellBrowser ISF::CreateViewObject IShellView C:\tmp (view)

  10. WIN95 IShellBrowser It allows the shell view to • Merge Menus • Add Toolbar buttons • Put some status text • Translate accelerators Not OLE’s In-place UI negotiation!

  11. WIN95 DefView A default implementation of IShellView on top of IShellFolder. IShellFolder IShellView C:\tmp (folder) ISF::CreateViewObject DefView SHCreateShellFolderView(psf)

  12. WIN95 Extended Name Space ISVs can plug-in their own hierarchical name space IShellFolder Explorer Desktop MyComputer NetHood MSN Athena Zip Folder

  13. IE 3.0 Internet Explorer 3.0 CShellBrowser IShellFolder Http://msw IShellBrowser ISF::CreateViewObject IShellView C:\tmp Wedge IOleDocumentSite IOleDocument HTMLObj Word/Excel

  14. IE 3.0 CShellBrowser CShellBrowser is a mini-Explorer CBaseBrowser subclass IDispatch IWebBrowserApp IHlinkFrame ITargetFrame CShellBrowser IShellBrowser IOleCommandTarget IOleContainer IOleInPlaceUIWindow

  15. IE 3.0 “Wedge” IShellView IOleCommandTarget CShellDocView CDocObjectHost IOleDocumentSite IOleSite IOleInPlaceSite IOleCommandTarget IServiceProvider

  16. IE 3.0 WebBrowserOC IOleObject IViewObject2 IPersistSreamInit IOleControl IWebBrowser etc. CWebBrowserOC CBaseBrowser subclass CWebBrowserSB IShellBrowser IOleCommandTarget IOleContainer IOleInPlaceUIWindow

  17. IE 3.0 Frame Set CShellBrowser IShellBrowser IShellView Wedge IOleDocumentSite IOleDocument HTLMObj Site Site IOleClientSite IOleObject CWebBrowserOC CWebBrowserOC CWebBrowserSB CWebBrowserSB IShellBrowser IShellView Wedge Wedge IOleDocumentSite IOleDocument HTMLObj HTMLObj

  18. IE 4.0 IE 4.0 Explorer IE 4.0 Explorer, Folder and Desktop are based on IE 3.0 browser code. CBaseBrowser subclass CWebBrowserOC subclass CShellBrowser subclass CWebBrowserSB CDesktopBrowser CExplorerBrwsr

  19. IE 4.0 WebBar WebBar is a dockable browser, which can be docked on a browser or the desktop subclass CBaseBrowser CShellBrowser IDockingWindowSite CDesktopBrwsr IDockingWindow CWebBar OCHost WebBrowserOC

  20. IE 4.0 Layout Negotiation

  21. IE 4.0 Effective Client Area Internet toolbar takes this border space Effective Client Area CBaseBrowser::_GetEffectiveClientArea IDockingWindowSite::GetBorderDW for the internet toolbar returns this rectangle.

  22. IE 4.0 ISTBS::GetBorderST IDockingWindowSite::GetBorderDW for the scope pane returns this rectangle. The scope pane takes the border space from left and top.

  23. IE 4.0 Shell View Rectangle Excel’s formular bar CBaseBrowser::_GetViewRect IOleInPlaceUIWindow::GetBorder returns this rectangle.

  24. IE 4.0 Shell View Window Rectangle CBaseBrowser::_GetViewWindowRect IOleDocumentView::SetRect will be called with this rectangle.

  25. IE 4.0 Asynchronous Navigation 1 CShellBrowser _psvPending _psv 2 Wedge2 Wedge1 3 URL moniker HTLMView1 1. IHlinkFrame::Navigate called 2. Create a new Wedge (Wedge2) 3. Create URL moniker and call BindToObject (Note that HTMLView1 remains UIActive)

  26. IE 4.0 Asynchronous Navigation CShellBrowser _psv _psvPending 6 HTLMView2 Wedge2 Wedge1 5 URL moniker 4 HTLMView1 4. Moniker sends a HTTP request to the server 5. Server responds 6. Moniker create another HTML view (Note that HTMLView1 is still UIActive)

  27. IE 4.0 Asynchronous Navigation CShellBrowser _psvPending _psv 9 Wedge2 Wedge1 8 7 URL moniker HTLMView2 HTLMView1 7. Moniker calls Wedge’s OnObjectAvailable 8. Wedge2 gets the pointer to HTML view 9. Wedge2 notifies it to the browser (Note that HTMLView1 is still UIActive)

  28. IE 4.0 Asynchronous Navigation CShellBrowser 11 _psv 10 Wedge2 12 Wedge1 HTLMView2 10. Deactivate and release the current view 11. Activate the Wedge2 12. UIActivate HTMLView2 HTLMView1

  29. IE 4.0 More Information • http://ohserv/users/satona • nt\private\shell\docs (\\trango\slmadd) SHIP IT! Robustness Performance Bug fixes

More Related