General questions about Plugins
How to implement "Config" function of a Plugin
How to add new or override existing protocols
How to make a "Button" type plugin
Extended DHTML support
General questions about Plugins:
1. COM Object
COM object must implement IMyIEClient interface. Please refer to IMyIE.h
2. Exe File:
Any win32 exe file could be used as plugin. MyIE2 will send different
parameters under different circumstance.
General parameter:
a. "-h=handle" : handle is the Wnd handle of the MyIE2 main
window, decimalist.
3. Script File:
Script File must be written in the following format:
Example:
<script language="Javascript">
alert(document.lastModified);
</script>
The 'language' could be any valid language that IE supports.
How to implement 'Config' function
of a Plugin?
There is a 'Config' button in the 'MyIE2 Plugin' option page. MyIE2 will
call the corresponding 'Config' function of a plugin, when user clicks
the 'Config' button.
1. COM Object:
The COM's IMyIEClient::Config will be call with the parameter of the
config dialog's hWnd handle.
2. Exe File:
The file will be called with a parameter of "-setup". For example,
if the filename is "abc.exe", then MyIE2 will call "abc.exe
-setup ..." .
3. Script File:
Not support currently...
How to add new or override existing
protocols?
With MyIE2, the plugin could estanblish a new protocol, such as book://,
or override an existing protocol, such as ftp:// .When the user inputs
the protocol in the address bar or clicks the protocol on webpage, MyIE2
will call the plugin.
1. COM Object:
Not support currently...
2. Exe File:
The file will be called with the parameter "-u=url", in which
the url is the address that the user wants to visit, such as book://www.mysite.com/abc.pdf,
or ftp://www.google.com .
3. Srcipt File:
Not support currently...
How to make a
"Button" type plugin?
MyIE2 supports "Button" type plugins, which will be placed
on "Ext Button" toolbar. The plugin is called when user clicks
on the corresponding button. The 'Button' plugin could be implemented
using the following methods.
1.COM Object:
When user clicks on the button, MyIE2 will query the Com's IOleCommandTarget
interface and ║═IObjectWithSite interfaceú¼passing the IWebBrowser2 pointer
of the current page to its IObjectWithSite::SetSite functionú¼then call
its IOleCommandTarget::Exec function. It's similar to IE's implementation
of button. Please refer to MSDN for more information.
Sample Plugin.ini:
[General]
Name=ComButton
Author=bloodchen
Version=1.0
ModuleType=COM
FileName=ComButton.dll
CLSID={96E78121-9FF2-466D-B6CD-4038CAC1BB79}
Comments=Com type 'Button'
Type=BUTTON
HotIcon=hot.ico
Icon=cold.ico
2.Script:
When the user clicks the button, MyIE2 will run the script on current
web page.
Sample Plugin.ini:
[General]
Name=LastModified
Author=bloodchen
Version=1.0
ModuleType=SCRIPT
FileName=LastModified.htm
Comments=See last modified date of current page
Type=BUTTON
HotIcon=hot.ico
Icon=cold.ico
3.Exe File:
When the user clicks the button, MyIE2 will call the file with the parameters
of current address and handle of the main MyIE2 window. For example, the
file is abc.exeú¼then MyIE2 will call abc.exe -h=23424 -u=http://www.yahoo.com,
in which 23424 is the handle of the main MyIE2 window and http://www.yahoo.com
is the URL of the current page.
Sample Plugin.ini:
[General]
Name=ExeButton
Author=BloodChen
Version=1.0
ModuleType=EXE
FileName=abc.exe
Comments=Exe type Button
Type=BUTTON
Icon=p.ico
Extended DHTML
support
MYIE2 has extended the DHTML support by adding several new commands which
could be called from script langauge. The HTML or scirpt writer could
call the function through the 'window.external' object. The function could
be called from the script in a HTML page or a scirpt plugin.
- addFavorite( url , title ) , addFavorite( url )
This function will ask user to add the 'url' into favortes, using 'title'
for the name of the url.
Example1: external.addFavorite( "http://www.google.com" );
Example2: external.addFavorite( "http://www.google.com","This
is google");
- addProxy (name, address, speed, is_web_proxy)
This function will call MYIE2's add proxy dialog to add the proxy named
as 'name' at address 'address', giving the initial speed 'speed'. The
is_web_proxy indicates whether the proxy is a web proxy or a normal
proxy.
Example: external.addProxy("My proxy","192.168.1.0:8080",1,0);
- addFilter( address ) , addFilter( address, is_pop_filter )
This function will call MYIE2's add filter dialog, setting the address
to be filtered as 'address'. 'is_pop_filter' indicates whether the defalut
filter type is 'pop filter'.
Example1: external.addFilter("http://www.yahoo.com/ad*");
Example1: external.addFilter("http://www.yahoo.com/img/*",
0);
- readFile( plugin_name, file_name)
This function can only be used in a script plugin, for the security
reasons. The 'plugin_name' refers to the plugin name defined in plugin.ini
and the 'file_name' indicates which file it wants to read. The function
will reture the file contents. If the plugin is not enabled or the 'plugin_name'
is wrong or not found, the function will fail and return null.
Example: alert(external.readFile("Test plugin","plugin.ini"))
;
- writeFile( plugin_name, file_name, content )
This function can only be used in a script plugin, for the security
reasons. The 'plugin_name' refers to the plugin name defined in plugin.ini
and the 'file_name' indicates the file name which will be write. The
'content' is the content that will be write to the file. If the plugin
is not enabled or the 'plugin_name' is wrong or not found, the function
will fail and return null.
Please note: The file will be overwritten
from the beginning.
Example: external.writeFile("Test plugin","setting.ini","username=abc\npass=qwrxcv");
|