Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Browsers Wrapper ( Mozilla IE )

0.00/5 (No votes)
2 Sep 2007 1  
Describe a wrapper to render html page with mozilla or IE
Screenshot - IMG76.jpg

Introduction

If you want to embbeded a web browser in your application, with dotnet 2.0 there's a new control WebBrowser

( A good article about WebBrowser ) .it's the engine of Internet Explorer.

I discover recently there's an Mozilla ActiveX Plug-in, so I have tried to make a c# wrapper class to have the choose between Internet Explorer , and Mozilla to render the Html page.

This article will show about to use the Mozilla ActiveX, and how to have both IE , and Mozilla.

I don't go really inside the Mozilla Active X, may be for a update of this article.

I make a small test application, with the two html rendering objet,

I take two screenshots:

One with IE, and the second why Mozilla.

To make the different between the 2 browser , look the context menu.

Internet Explorer :

Screenshot - IMG77.jpg

Mozilla :

Screenshot - IMG78.jpg


Installing the Mozilla ActiveX

Install the Mozilla ActiveX Plug-in.
Click on the toolbox with the right button , choose Items.
You will find in Com object this line MozillaBrowser Class underlined red.
Screenshot - IMG79.jpg

So when you have selected it , a new icon appear in the toolbox:

Screenshot - IMG82.jpg

Using the code

The class WrapperWebBrowser.cs have

// The constructor 
 public WrapperWebBrowser(
 ref AxMOZILLACONTROLLib.AxMozillaBrowser moz,
 ref System.Windows.Forms.WebBrowser ie
 )


public enum EnumTypeBrowser { IE, MOZILLA }; 


// You can set , or get the TypeBrowser 
// Exemple TypeBrowser = EnumTypeBrowser.IE 

public EnumTypeBrowser TypeBrowser; 


// Set the delegate when the document complete downloaded 
public void SetDocumentCompleteEvent(DelegateDocumentComplete docCompleteEvent)

// Set the url of the browser web.
public void Navigate(string url)

If you want to use the WrapperWebBrowser.cs you have to make a WebBrowser and axMozillaBrowser

 WrapperWebBrowser wrapperWebBrowser = null;

 public Form1()
 {
 InitializeComponent();
 wrapperWebBrowser = new WrapperWebBrowser(ref this.axMozillaBrowser1,ref this.webBrowser1);
 wrapperWebBrowser.SetDocumentCompleteEvent(DocumentComplete);
 }


 private void DocumentComplete(string url)
 {
 this.Text = url; 
 }

If you change the property wraperWebBrowser.TypeBrowser then the window of the browser you choose will be visible and

the other browser window will be not visible of course.

Points of Interest

There's some difference between WebBrowser and AxMozillaBrowser, but they are quite similar .

There's Navigate in each, the name of the callback when the Document is complete change a little bit:

mozillaBrowser.DocumentComplete;
IEBrowser.DocumentCompleted;

And the prototype of the Event too:

private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
private void axMozillaBrowser_DocumentComplete(object sender, AxMOZILLACONTROLLib.DWebBrowserEvents2_DocumentCompleteEvent e)

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here