Extending Mozilla Tutorial
Me (Heikki Toivonen) and Johnny Stenback presented a tutorial
called "Extending Mozilla or How To Do The Impossible" at the
XTech'99 in San Jose, California (March 7).
This tutorial is now online at:
We are correcting and updating the handout, which should appear
there shortly. The sample code is downloadable already.
We plan to keep this tutorial up to date so that when the APIs
change we will change our samples as well. This should be the
definitive place to find out how to write XPCOM modules and plugins
and especially how to embed and extend Mozilla in various ways.
All comments are welcome. We would be really interested to know if
there are any errors etc. in this material.
We hope you will find this material useful.
XPCOM Hello World
We created an XPCOM component that can automatically register itself.
The component's only functionality is that it writes "Hello World!"
to standard output, but it is the only up to date sample application
on how to use XPCOM. A sample test program is also provided.
Embedding MozillaControl ActiveX Component
In this sample we have created a simple HTML/XML editor with preview.
The preview is handled by the MozillaControl. Another tool in this
sample is a double browser, which has both MozillaControl and the
Microsoft IE ActiveX control side by side. It is easy to check that
pages you have created will look okay with both products. We used
Microsoft Access for this sample, which you will need to get something out
of this sample.
Frankenbrowser with DOM Tree View
This sample includes an MFC dialog that shows the documents structure
in a tree view. It is possible to view a node's content in the tree
view and also delete nodes in the tree view. Deletions get reflected back
in the viewer.
Embedding NGLayout Programmatically
In this sample we have embedded a web shell in an MFC dialog application.
It shows how easy it is to add web browser support to any application
on any platform, although we used only MFC on Windows.
We are working on an XPCOM plugin sample. It is not yet available.