Notes
Outline
Mozilla ActiveX Control
Adam Lock
<locka@iol.ie>
Topics of Discussion
An overview of ActiveX
A description of the Internet Explorer control
The Mozilla control
Feature comparison
The future
What Is an ActiveX Control?
Extends the functionality of the host application
Usually running in-process (I.e. contained in a DLL)
Usually a visible component embedded into a dialog/window of a host application
Controlled through an automation interface
Language independent
Uses a binary type library
Does not require header files or libraries
Works in many development environments, e.g. Visual Basic, Visual C++, Delphi, Internet Explorer
Internet Explorer 4 & 5
Ships as an application and control written around a layout engine
Control and application support via automation interface
Create customized applications around rendering engine
AOL
Encyclopedia Britannica
Intuit Quicken
Qualcomm Eudora
Create HTML authoring tools using control for preview mode
Frontpage 2000/Express
Coldfusion Studio
Topstyle
IE Object Model
Goal
Create an ActiveX control for Mozilla using the “Gecko” layout engine
Implement the control using the same API as the IE control
Implement as much functionality of the IE control as possible
Produce tools and samples that demonstrate how to use the control
Applications
Customized browsers
Skins
Kiosks
Report engines
Encyclopedias, dictionaries
Etc
Specialized HTML/CSS/XML development tools
Side by side comparison between IE and Mozilla
Implementation
DOM Implementation
An Application’s View
The Control’s View
Also…
Using the Control in MFC 1
Using the Control in MFC 2
Using the Control in MFC 3
CBrowse Application
Using the Control in VB 1
Using the Control in VB 2
Using the Control in VB 3
Patching Software
What This All Means
Smaller distributable
Approx 3-6Mb compared to 40+Mb
Less download time
Faster installation
Standards compliance
XML, HTML4.0, DOM 1, CSS 1, ECMAScript, PNG
Liberal distribution license
No product registration
No compulsion to upgrade to use latest version within 6 months
Open source code
Customization
Bug fixing
Community of developers
What the Control Can’t Do
Run Internet Explorer specific HTML
IE DHTML
Embedded controls
VBScript
Extend the behaviour of the underlying Mozilla engine
Change the DOM to be like IE
Add ActiveX/VBScript support
Exact implementation
Other Goodies
The Mozilla control project has spawned some other useful code!
An ActiveX control container class
An ActiveX script host
An ActiveX IE-compatible wrapper for expat
ActiveX control hosting support in Communicator 4.x
Generic implementations for standard COM interfaces IOleCommandTarget, IPropertyBag and IDropTarget
Resources
My site
http://www.iol.ie/~locka/mozilla/mozilla.htm
Mozilla.org
http://www.mozilla.org
news:netscape.public.mozilla.embedding
Microsoft!
http://msdn.microsoft.com/workshop/browser/WebBrowser/WebBrowser.asp
Future Plans
Implement a simple DHTML editor mode
Implement ActiveX control support