The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Wx::ActiveX::Mozilla - ActiveX interface for Mozilla Browser ActiveX Control

SYNOPSIS

use Wx::ActiveX::Mozilla qw(:mozilla);

............

my $browser = Wx::ActiveX::Mozilla->new( $parent , -1 , wxDefaultPosition , wxDefaultSize );
EVT_ACTIVEX_MOZILLA_BEFORENAVIGATE2($this,$browser,\&on_evt_beforenavigate);

............

$browser->LoadUrl("http://wxperl.sf.net");

#OR using common browser events

use Wx::ActiveX::IE;
use Wx::ActiveX::Mozilla;
use Wx::ActiveX::Browser qw(:browser);

............

my $browserclass = $ShouldIUseMozilla ? 'Wx::ActiveX::Mozilla' : 'Wx::ActiveX::IE';
my $browser = $browserclass->new( $parent , -1 , wxDefaultPosition , wxDefaultSize );
EVT_ACTIVEX_BROWSER_BEFORENAVIGATE2($this,$browser,\&on_evt_beforenavigate);

............

$browser->LoadUrl("http://wxperl.sf.net");

DESCRIPTION

This will implement the Mozilla Browser ActiveX control in your App, using the interface Wx::ActiveX.

The Mozilla Browser ActiveX Control is available from http://www.wxperl.co.uk/MozillaControl1712.exe

You can also get it from the control's author at http://www.iol.ie/~locka/mozilla/control.htm

The control may not be currently maintained, the last release being in 2005. You should probably therefore not use it as a general browser.

METHODS

new ( PARENT , ID , POS , SIZE )

This will create and return the browser object.

LoadUrl

Attempts to browse to the url, the control uses its internal network streams.

LoadString

Load the passed HTML string.

LoadStream

Load the passed HTML stream. The control takes ownership of the pointer, deleting when finished.

SetCharset

Sets the charset of the loaded document.

SetEditMode( BOOLEAN )

Set the EditMode ON/OFF.

GetEditMode

Return true if the EditMode as set on.

GetStringSelection( asHTML )

Get the text selected in the page. If asHTML is true it return the html codes too.

GetText( asHTML )

Get all the text of the page. If asHTML is true it return the html codes too.

GoBack

Go back in the History.

GoForward

Go forward in the History (if it goes back before).

GoHome

Go to the Home Page of the browser.

GoSearch

Go to the default search page of IE.

Refresh( LEVEL )

Refresh the URL. You can set the LEVELs, from 0 to 3, of the refresh:

0 -> Normal*.
1 -> If Expired.
2 -> Continue.
3 -> Completely.
Stop

Stop the download process.

Print(Prompt)

Print the page. If Prompt is TRUE, will prompt for configurations, if FALSE will print directly.

PrintPreview

Show the Print Preview window.

EVENTS

All the events use EVT_ACTIVEX. For example, the event BeforeNavigate2 can be declared usgin EVT_ACTIVEX:

EVT_ACTIVEX($parent , $mozilla , "BeforeNavigate2" , sub{...} ) ;

or using the ACTIVEX_MOZILLA event table:

EVT_ACTIVEX_MOZILLA_BEFORENAVIGATE2($parent , $IE , sub{...} ) ;

To import the events use:

use Wx::ActiveX qw( EVT_ACTIVEX );

use Wx::ActiveX::Mozilla qw(EVT_ACTIVEX EVT_ACTIVEX_MOZILLA_NEWWINDOW2 EVT_ACTIVEX_MOZILLA_STATUSTEXTCHANGE) ;
... or ...
use Wx::ActiveX::Mozilla qw(:mozilla) ;

You can use a common event table for both Mozilla and IE

use Wx::ActiveX::Browser qw(:browser);

Here is the event table for Wx::ActiveX::Mozilla:

EVT_ACTIVEX_MOZILLA_STATUSTEXTCHANGE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_DOWNLOADCOMPLETE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_COMMANDSTATECHANGE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_DOWNLOADBEGIN($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_PROGRESSCHANGE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_PROPERTYCHANGE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_TITLECHANGE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_BEFORENAVIGATE2($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_NEWWINDOW2($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_NAVIGATECOMPLETE2($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_ONQUIT($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_ONVISIBLE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_ONTOOLBAR($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_ONMENUBAR($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_ONSTATUSBAR($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_ONFULLSCREEN($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_DOCUMENTCOMPLETE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_MOZILLA_ONTHEATERMODE($handler, $axcontrol, \&event_sub);

Here is the event table for Wx::ActiveX::Browser:

EVT_ACTIVEX_BROWSER_STATUSTEXTCHANGE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_DOWNLOADCOMPLETE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_COMMANDSTATECHANGE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_DOWNLOADBEGIN($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_PROGRESSCHANGE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_PROPERTYCHANGE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_TITLECHANGE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_BEFORENAVIGATE2($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_NEWWINDOW2($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_NAVIGATECOMPLETE2($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_ONQUIT($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_ONVISIBLE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_ONTOOLBAR($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_ONMENUBAR($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_ONSTATUSBAR($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_ONFULLSCREEN($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_DOCUMENTCOMPLETE($handler, $axcontrol, \&event_sub);
EVT_ACTIVEX_BROWSER_ONTHEATERMODE($handler, $axcontrol, \&event_sub);    

DISPATCH METHODS

$obj->MethodName( @args );

or

$obj->Invoke( 'MethodName', @args );

AddRef()
ClientToWindow(pcx , pcy)
ExecWB(cmdID , cmdexecopt , pvaIn , pvaOut)
GetIDsOfNames(riid , rgszNames , cNames , lcid , rgdispid)
GetProperty(Property)
GetTypeInfo(itinfo , lcid , pptinfo)
GetTypeInfoCount(pctinfo)
GoBack()
GoForward()
GoHome()
GoSearch()
Invoke(dispidMember , riid , lcid , wFlags , pdispparams , pvarResult , pexcepinfo , puArgErr)
Navigate(URL , Flags , TargetFrameName , PostData , Headers)
Navigate2(URL , Flags , TargetFrameName , PostData , Headers)
PutProperty(Property , vtValue)
QueryInterface(riid , ppvObj)
QueryStatusWB(cmdID)
Quit()
Refresh()
Refresh2(Level)
Release()
ShowBrowserBar(pvaClsid , pvarShow , pvarSize)
Stop()   

PROPERTIES

AddressBar                   (bool)
Application                  (IDispatch)
Busy                         (bool)
Container                    (IDispatch)
Document                     (IDispatch)
FullName                     (wxString)
FullScreen                   (bool)
Height                       (long)
HWND                         (long)
Left                         (long)
LocationName                 (wxString)
LocationURL                  (wxString)
MenuBar                      (bool)
Name                         (wxString)
Offline                      (bool)
Parent                       (IDispatch)
Path                         (wxString)
ReadyState                   (*user defined*)
RegisterAsBrowser            (bool)
RegisterAsDropTarget         (bool)
Resizable                    (bool)
Silent                       (bool)
StatusBar                    (bool)
StatusText                   (wxString)
TheaterMode                  (bool)
ToolBar                      (int)
Top                          (long)
TopLevelContainer            (bool)
Type                         (wxString)
Visible                      (bool)
Width                        (long)

ACTIVEX EVENT LIST

StatusTextChange
DownloadComplete
CommandStateChange
DownloadBegin
ProgressChange
PropertyChange
TitleChange
BeforeNavigate2
NewWindow2
NavigateComplete2
OnQuit
OnVisible
OnToolBar
OnMenuBar
OnStatusBar
OnFullScreen
DocumentComplete
OnTheaterMode

SEE ALSO

Wx::ActiveX Wx Wx::ActiveX::IE Wx

AUTHOR

Mark Dootson <mdootson@cpan.org>

This is a virtual copy of Wx::ActiveX::IE so thanks to all who contribute that module.

COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.