Wednesday, January 17, 2007

csEXWB - Complete C# Webbrowser Wrapper Control

Code Project - The most complete C# Webbrowser wrapper control

"csEXWB is a C# (.NET 2.0) control which creates, hosts, and sinks the events of the original Webbrowser control (Not .NET or any other wrapper). Advanced customization and almost total control over Webbrowser control are achieved via implementation of a number of interfaces along with addition of many methods, properties and events. The control has no dependencies on MSHTML interop or any other third party library, all the interfaces, enums, and structs are defined within the project. Here are some of the features of this control

  • Can easily be extended by adding other interfaces and methods, unlike .NET or any other Webbrowser wrapper.
  • All the basics expected from a Webbrowser wrapper are implemented. Setting/getting UI, and DL control flags. Handling of context menus, keyboard, registry, securitymanager, script errors, popups, Authentication, Security problems, Font size, messageboxes.
  • Build in HTMLDocument and HTMLWindow events.
  • Frameset aware. All the relevant routines check for frames.
  • Full internal drag drop support.
  • Refresh begin, and end events!
  • Create and resolve Internet shortcuts using IShellLink interface.
  • Load HTML content specifying BaseURL.
  • Added functionality to use the control as an MSHTML editor.
  • MSHTML as a UI-less HTML parser helper class.
  • Comes with a comprehensive demo which shows how to use most of the functionality included in the control.

..."

This is an interesting project... Sometimes the .Net 2 WebBrowser control does the job, but sometimes you need to get closer to the metal. That's where this project looks like it could come in handy.

Being packaged as a control it should easily be usable from any other .Net language. For example, I was able to build an uber-simple browser app in VB with it in just seconds. Just as easy as with the .Net 2 WebBrowser control, but with much more power...

2 comments:

Anonymous said...

Here is the correct link:
http://www.codeproject.com/KB/miscctrl/csEXWB.aspx

Greg said...

Thank you... Link fixed