gecko/modules/plugin/sdk/samples/4x-scriptable
Josh Aas f67ebb90ae put all sample plugins into the npapi sdk. b=360955 rs=jst
--HG--
rename : modules/plugin/samples/4x-scriptable/acmeIScriptObject.idl => modules/plugin/sdk/samples/4x-scriptable/acmeIScriptObject.idl
rename : modules/plugin/samples/4x-scriptable/doc.html => modules/plugin/sdk/samples/4x-scriptable/doc.html
rename : modules/plugin/samples/4x-scriptable/makefile.win => modules/plugin/sdk/samples/4x-scriptable/makefile.win
rename : modules/plugin/samples/4x-scriptable/np4xscr.def => modules/plugin/sdk/samples/4x-scriptable/np4xscr.def
rename : modules/plugin/samples/4x-scriptable/np4xscr.rc => modules/plugin/sdk/samples/4x-scriptable/np4xscr.rc
rename : modules/plugin/samples/4x-scriptable/np_entry.cpp => modules/plugin/sdk/samples/4x-scriptable/np_entry.cpp
rename : modules/plugin/samples/4x-scriptable/npmac.cpp => modules/plugin/sdk/samples/4x-scriptable/npmac.cpp
rename : modules/plugin/samples/4x-scriptable/npn_gate.cpp => modules/plugin/sdk/samples/4x-scriptable/npn_gate.cpp
rename : modules/plugin/samples/4x-scriptable/npp_gate.cpp => modules/plugin/sdk/samples/4x-scriptable/npp_gate.cpp
rename : modules/plugin/samples/4x-scriptable/nsI4xScriptablePlugin.idl => modules/plugin/sdk/samples/4x-scriptable/nsI4xScriptablePlugin.idl
rename : modules/plugin/samples/4x-scriptable/nsScriptablePeer.cpp => modules/plugin/sdk/samples/4x-scriptable/nsScriptablePeer.cpp
rename : modules/plugin/samples/4x-scriptable/nsScriptablePeer.h => modules/plugin/sdk/samples/4x-scriptable/nsScriptablePeer.h
rename : modules/plugin/samples/4x-scriptable/nsScriptablePeer1.cpp => modules/plugin/sdk/samples/4x-scriptable/nsScriptablePeer1.cpp
rename : modules/plugin/samples/4x-scriptable/nsScriptablePeer1.h => modules/plugin/sdk/samples/4x-scriptable/nsScriptablePeer1.h
rename : modules/plugin/samples/4x-scriptable/plugin.cpp => modules/plugin/sdk/samples/4x-scriptable/plugin.cpp
rename : modules/plugin/samples/4x-scriptable/plugin.h => modules/plugin/sdk/samples/4x-scriptable/plugin.h
rename : modules/plugin/samples/4x-scriptable/readme.txt => modules/plugin/sdk/samples/4x-scriptable/readme.txt
rename : modules/plugin/samples/4x-scriptable/resource.h => modules/plugin/sdk/samples/4x-scriptable/resource.h
rename : modules/plugin/samples/4x-scriptable/script-test.html => modules/plugin/sdk/samples/4x-scriptable/script-test.html
rename : modules/plugin/samples/4x-scriptable/test.html => modules/plugin/sdk/samples/4x-scriptable/test.html
rename : modules/plugin/samples/SanePlugin/Makefile.in => modules/plugin/sdk/samples/SanePlugin/Makefile.in
rename : modules/plugin/samples/SanePlugin/README => modules/plugin/sdk/samples/SanePlugin/README
rename : modules/plugin/samples/SanePlugin/nsSanePlugin.cpp => modules/plugin/sdk/samples/SanePlugin/nsSanePlugin.cpp
rename : modules/plugin/samples/SanePlugin/nsSanePlugin.h => modules/plugin/sdk/samples/SanePlugin/nsSanePlugin.h
rename : modules/plugin/samples/SanePlugin/nsSanePluginControl.idl => modules/plugin/sdk/samples/SanePlugin/nsSanePluginControl.idl
rename : modules/plugin/samples/SanePlugin/nsSanePluginFactory.cpp => modules/plugin/sdk/samples/SanePlugin/nsSanePluginFactory.cpp
rename : modules/plugin/samples/SanePlugin/nsSanePluginFactory.h => modules/plugin/sdk/samples/SanePlugin/nsSanePluginFactory.h
rename : modules/plugin/samples/SanePlugin/nsSanePlugin_CID.h => modules/plugin/sdk/samples/SanePlugin/nsSanePlugin_CID.h
rename : modules/plugin/samples/SanePlugin/test/camera.html => modules/plugin/sdk/samples/SanePlugin/test/camera.html
rename : modules/plugin/samples/SanePlugin/test/scanner.html => modules/plugin/sdk/samples/SanePlugin/test/scanner.html
rename : modules/plugin/samples/npruntime/Makefile.in => modules/plugin/sdk/samples/npruntime/Makefile.in
rename : modules/plugin/samples/npruntime/np_entry.cpp => modules/plugin/sdk/samples/npruntime/np_entry.cpp
rename : modules/plugin/samples/npruntime/npn_gate.cpp => modules/plugin/sdk/samples/npruntime/npn_gate.cpp
rename : modules/plugin/samples/npruntime/npp_gate.cpp => modules/plugin/sdk/samples/npruntime/npp_gate.cpp
rename : modules/plugin/samples/npruntime/nprt.def => modules/plugin/sdk/samples/npruntime/nprt.def
rename : modules/plugin/samples/npruntime/nprt.rc => modules/plugin/sdk/samples/npruntime/nprt.rc
rename : modules/plugin/samples/npruntime/plugin.cpp => modules/plugin/sdk/samples/npruntime/plugin.cpp
rename : modules/plugin/samples/npruntime/plugin.h => modules/plugin/sdk/samples/npruntime/plugin.h
rename : modules/plugin/samples/npruntime/resource.h => modules/plugin/sdk/samples/npruntime/resource.h
rename : modules/plugin/samples/npruntime/test.html => modules/plugin/sdk/samples/npruntime/test.html
rename : modules/plugin/samples/npthread/windows/action.cpp => modules/plugin/sdk/samples/npthread/windows/action.cpp
rename : modules/plugin/samples/npthread/windows/action.h => modules/plugin/sdk/samples/npthread/windows/action.h
rename : modules/plugin/samples/npthread/windows/dbg.cpp => modules/plugin/sdk/samples/npthread/windows/dbg.cpp
rename : modules/plugin/samples/npthread/windows/dbg.h => modules/plugin/sdk/samples/npthread/windows/dbg.h
rename : modules/plugin/samples/npthread/windows/np_entry.cpp => modules/plugin/sdk/samples/npthread/windows/np_entry.cpp
rename : modules/plugin/samples/npthread/windows/npn_gate.cpp => modules/plugin/sdk/samples/npthread/windows/npn_gate.cpp
rename : modules/plugin/samples/npthread/windows/npp_gate.cpp => modules/plugin/sdk/samples/npthread/windows/npp_gate.cpp
rename : modules/plugin/samples/npthread/windows/npthread.def => modules/plugin/sdk/samples/npthread/windows/npthread.def
rename : modules/plugin/samples/npthread/windows/npthread.dsp => modules/plugin/sdk/samples/npthread/windows/npthread.dsp
rename : modules/plugin/samples/npthread/windows/npthread.dsw => modules/plugin/sdk/samples/npthread/windows/npthread.dsw
rename : modules/plugin/samples/npthread/windows/npthread.rc => modules/plugin/sdk/samples/npthread/windows/npthread.rc
rename : modules/plugin/samples/npthread/windows/plugin.cpp => modules/plugin/sdk/samples/npthread/windows/plugin.cpp
rename : modules/plugin/samples/npthread/windows/plugin.h => modules/plugin/sdk/samples/npthread/windows/plugin.h
rename : modules/plugin/samples/npthread/windows/plugload.cpp => modules/plugin/sdk/samples/npthread/windows/plugload.cpp
rename : modules/plugin/samples/npthread/windows/plugload.h => modules/plugin/sdk/samples/npthread/windows/plugload.h
rename : modules/plugin/samples/npthread/windows/readme.txt => modules/plugin/sdk/samples/npthread/windows/readme.txt
rename : modules/plugin/samples/npthread/windows/resource.h => modules/plugin/sdk/samples/npthread/windows/resource.h
rename : modules/plugin/samples/npthread/windows/thread.cpp => modules/plugin/sdk/samples/npthread/windows/thread.cpp
rename : modules/plugin/samples/npthread/windows/thread.h => modules/plugin/sdk/samples/npthread/windows/thread.h
rename : modules/plugin/samples/testevents/Makefile => modules/plugin/sdk/samples/testevents/Makefile
rename : modules/plugin/samples/testevents/Makefile.in => modules/plugin/sdk/samples/testevents/Makefile.in
rename : modules/plugin/samples/testevents/README.txt => modules/plugin/sdk/samples/testevents/README.txt
rename : modules/plugin/samples/testevents/SimpleEventsTest.html => modules/plugin/sdk/samples/testevents/SimpleEventsTest.html
rename : modules/plugin/samples/testevents/npevents.cpp => modules/plugin/sdk/samples/testevents/npevents.cpp
rename : modules/plugin/samples/testevents/nsIEventsPluginInstance.idl => modules/plugin/sdk/samples/testevents/nsIEventsPluginInstance.idl
rename : modules/plugin/samples/unixprinting/Makefile.in => modules/plugin/sdk/samples/unixprinting/Makefile.in
rename : modules/plugin/samples/unixprinting/npprint.pkg => modules/plugin/sdk/samples/unixprinting/npprint.pkg
rename : modules/plugin/samples/unixprinting/npshell.c => modules/plugin/sdk/samples/unixprinting/npshell.c
rename : modules/plugin/samples/unixprinting/npunix.c => modules/plugin/sdk/samples/unixprinting/npunix.c
rename : modules/plugin/samples/unixprinting/printplugin.c => modules/plugin/sdk/samples/unixprinting/printplugin.c
rename : modules/plugin/samples/unixprinting/printplugin.h => modules/plugin/sdk/samples/unixprinting/printplugin.h
rename : modules/plugin/samples/unixprinting/unixprintplugin_test1.html => modules/plugin/sdk/samples/unixprinting/unixprintplugin_test1.html
rename : modules/plugin/samples/unixprinting/unixprintplugin_test2.html => modules/plugin/sdk/samples/unixprinting/unixprintplugin_test2.html
2008-09-02 14:51:32 -04:00
..
acmeIScriptObject.idl put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
doc.html put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
makefile.win put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
np4xscr.def put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
np4xscr.rc put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
np_entry.cpp put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
npmac.cpp put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
npn_gate.cpp put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
npp_gate.cpp put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
nsI4xScriptablePlugin.idl put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
nsScriptablePeer1.cpp put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
nsScriptablePeer1.h put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
nsScriptablePeer.cpp put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
nsScriptablePeer.h put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
plugin.cpp put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
plugin.h put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
readme.txt put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
resource.h put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
script-test.html put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00
test.html put all sample plugins into the npapi sdk. b=360955 rs=jst 2008-09-02 14:51:32 -04:00

This is a plugin sample which demonstrates how with minimal modifications
in the 4.x legacy plugin code to achieve scripting functionality despite
of Mozilla not supporting LiveConnect in the way it was supported in 
Netscape Communicator.

To build the sample:

1. create .xpt and nsI4xScrPlugin.h out of nsI4xScrPlugin.idl file
using Netscape idl compiler xpidl.exe. The command options are:
   xpidl -m header nsI4xScrPlugin.idl
   xpidl -m typelib nsI4xScrPlugin.idl
nsISupports.idl and nsrootidl.idl are needed for this.

2. create a project and build np4xscr.dll -- the plugin itself

3. place .xpt file in the components directory and the dll in the
plugins directory

4. load test.html and see it in work

The current sample code was written for Windows but can be easily 
modified for other platforms.

Important notice: although developers who work on xpcom plugins
are strongly encouraged to use Netscape macros for common interface
method declarations and implementations, in the present sample we 
decided to use their manual implementation. This is because the technique
shown in the sample may be useful for plugins which are supposed to
work under both Mozilla based browsers and Netscape Communicator
(4.x browsers). Using the macros requires linking against some
libraries which are not present in 4.x browsers (xpcom.lib, nspr.lib).

Files which under other circumstances would benefit from using
the macros are nsScriptablePeer.h and nsScriptablePeer.cpp. The versions
which use macros are also included (nsScriptablePeer1.h and 
nsScriptablePeer1.cpp) for reference purposes.

Some header files from mozilla/dist/include and some .idl files from
mozilla/dist/idl are still needed to successfully build the sample.