mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Clarified some docs for the ActiveX plugin build.
This commit is contained in:
parent
f38dc2fe3a
commit
35a9327247
1 changed files with 68 additions and 69 deletions
|
|
@ -1,69 +1,68 @@
|
|||
|
||||
|
||||
Juce Browser Plugin Framework
|
||||
=============================
|
||||
|
||||
These classes let you easily turn a normal Juce component into a Mac/Windows NPAPI plugin
|
||||
for use in Firefox, Safari, Chrome, etc., and/or an ActiveX plugin for IE.
|
||||
|
||||
To create your plugin, your code just needs to implement the createBrowserPlugin() function
|
||||
to return a subclass of BrowserPluginComponent, and this acts as the plugin window.
|
||||
|
||||
To communicate with javascript running in the host webpage, the 'var' and 'DynamicObject' juce
|
||||
classes emulate javascript objects, so you can create a javascript object that represents
|
||||
your plugin, and the webpage can invoke methods and access properties on this object. To
|
||||
get bi-directional communication between the plugin and webpage, your webpage can simply
|
||||
pass its own object to your plugin, and the plugin can call methods on this object to invoke
|
||||
javascript actions.
|
||||
|
||||
In a similar style to audio plugins, your project has to contain a BrowserPluginCharacteristics.h
|
||||
file that defines various properties of the plugin.
|
||||
|
||||
|
||||
Building a Mac NPAPI Plugin with XCode
|
||||
--------------------------------------
|
||||
|
||||
- Create a new "CFPlugin Bundle" project
|
||||
- Add the juce wrapper source files to the project (have a look at the demo project to
|
||||
find out which files this includes).
|
||||
- Set up all the usual frameworks, etc, like you would for any other juce project.
|
||||
- In the project or target settings, change the "Wrapper Extension" to "plugin"
|
||||
- In your target, add a build phase "Build ResourceManager resources", and add the juce_NPAPI_MacResource.r file
|
||||
to this step.
|
||||
- Check that your info.plist contains the same items as the demo plugin, because these needs to be set for the
|
||||
browser to recognise it as a plugin. In particular, the "Bundle OS Type Code" should be set to BRPL.
|
||||
- The finished bundle needs to be copied into "/Library/Internet Plug-Ins", so you might want to set up a
|
||||
post-build copy step to do this automatically
|
||||
|
||||
|
||||
Building a Windows NPAPI plugin in Visual Studio
|
||||
------------------------------------------------
|
||||
|
||||
- Create a new project to build a win32 DLL
|
||||
- Add the juce wrapper source files to the project (have a look at the demo project to
|
||||
find out which files this includes).
|
||||
- Your compiled plugin DLL must begin with the letters 'np' (in lower case) for it to be recognised as
|
||||
a plugin, so you should make sure your target settings reflect this.
|
||||
- To include the BrowserPluginCharacteristics.h file, you may need to add an include path to wherever this
|
||||
file lives in your project. Don't use a global include path for this - just add it to the project's
|
||||
search paths (both the c++ include paths and the resource include paths)
|
||||
- (Refer to the normal juce instructions for setting up other project settings such as which c++ libs to link to etc)
|
||||
- The finished plugin needs to be copied into "C:\Program Files\Mozilla Firefox\plugins", so you might want
|
||||
to add a post-build step to copy it
|
||||
- Note that the "browser plugins/wrapper/npapi" folder contains a copy of some NPAPI header files. If you're
|
||||
building a closed-source project, please check the licensing details in these files to make sure
|
||||
you're not breaking any Mozilla licensing restictions.
|
||||
|
||||
|
||||
Building a Windows ActiveX control for Internet Explorer
|
||||
--------------------------------------------------------
|
||||
|
||||
- This is actually quite easy, because the same DLL that functions as an NPAPI plugin can
|
||||
also be used as an ActiveX control.
|
||||
- Just create a windows NPAPI plugin as described above, but add the juce_ActiveX_GlueCode.cpp
|
||||
file to the project.
|
||||
- In your BrowserPluginCharacteristics.h file, the JuceBrowserPlugin_ActiveXCLSID setting needs
|
||||
to be given a unique GUID for your plugin.
|
||||
- Because the plugin is a COM object, it doesn't matter where the DLL lives, but it needs to
|
||||
be registered in the normal COM way, with regsvr32.exe. Note that on Vista, this command
|
||||
needs to be run with administrator permissions for it to be able to write to the registry.
|
||||
|
||||
|
||||
Juce Browser Plugin Framework
|
||||
=============================
|
||||
|
||||
These classes let you easily turn a normal Juce component into a Mac/Windows NPAPI plugin
|
||||
for use in Firefox, Safari, Chrome, etc., and/or an ActiveX plugin for IE.
|
||||
|
||||
To create your plugin, your code just needs to implement the createBrowserPlugin() function
|
||||
to return a subclass of BrowserPluginComponent, and this acts as the plugin window.
|
||||
|
||||
To communicate with javascript running in the host webpage, the 'var' and 'DynamicObject' juce
|
||||
classes emulate javascript objects, so you can create a javascript object that represents
|
||||
your plugin, and the webpage can invoke methods and access properties on this object. To
|
||||
get bi-directional communication between the plugin and webpage, your webpage can simply
|
||||
pass its own object to your plugin, and the plugin can call methods on this object to invoke
|
||||
javascript actions.
|
||||
|
||||
In a similar style to audio plugins, your project has to contain a BrowserPluginCharacteristics.h
|
||||
file that defines various properties of the plugin.
|
||||
|
||||
|
||||
Building a Mac NPAPI Plugin with XCode
|
||||
--------------------------------------
|
||||
|
||||
- Create a new "CFPlugin Bundle" project
|
||||
- Add the juce wrapper source files to the project (have a look at the demo project to
|
||||
find out which files this includes).
|
||||
- Set up all the usual frameworks, etc, like you would for any other juce project.
|
||||
- In the project or target settings, change the "Wrapper Extension" to "plugin"
|
||||
- In your target, add a build phase "Build ResourceManager resources", and add the juce_NPAPI_MacResource.r file
|
||||
to this step.
|
||||
- Check that your info.plist contains the same items as the demo plugin, because these needs to be set for the
|
||||
browser to recognise it as a plugin. In particular, the "Bundle OS Type Code" should be set to BRPL.
|
||||
- The finished bundle needs to be copied into "/Library/Internet Plug-Ins", so you might want to set up a
|
||||
post-build copy step to do this automatically
|
||||
|
||||
|
||||
Building a Windows NPAPI plugin in Visual Studio
|
||||
------------------------------------------------
|
||||
|
||||
- Create a new project to build a win32 DLL
|
||||
- Add the juce wrapper source files to the project (have a look at the demo project to
|
||||
find out which files this includes).
|
||||
- Your compiled plugin DLL must begin with the letters 'np' (in lower case) for it to be recognised as
|
||||
a plugin, so you should make sure your target settings reflect this.
|
||||
- To include the BrowserPluginCharacteristics.h file, you may need to add an include path to wherever this
|
||||
file lives in your project. Don't use a global include path for this - just add it to the project's
|
||||
search paths (both the c++ include paths and the resource include paths)
|
||||
- (Refer to the normal juce instructions for setting up other project settings such as which c++ libs to link to etc)
|
||||
- The finished plugin needs to be copied into "C:\Program Files\Mozilla Firefox\plugins", so you might want
|
||||
to add a post-build step to copy it
|
||||
- Note that the "browser plugins/wrapper/npapi" folder contains a copy of some NPAPI header files. If you're
|
||||
building a closed-source project, please check the licensing details in these files to make sure
|
||||
you're not breaking any Mozilla licensing restictions.
|
||||
|
||||
|
||||
Building a Windows ActiveX control for Internet Explorer
|
||||
--------------------------------------------------------
|
||||
|
||||
- This is actually quite easy, because the same DLL that functions as an NPAPI plugin can
|
||||
also be used as an ActiveX control.
|
||||
- By default the build will produce an ActiveX plugin. To disable this, you can set JUCE_BUILD_ACTIVEX = 0
|
||||
- In your BrowserPluginCharacteristics.h file, the JuceBrowserPlugin_ActiveXCLSID setting needs
|
||||
to be given a unique GUID for your plugin.
|
||||
- Because the plugin is a COM object, it doesn't matter where the DLL lives, but it needs to
|
||||
be registered in the normal COM way, with regsvr32.exe. Note that on Vista, this command
|
||||
needs to be run with administrator permissions for it to be able to write to the registry.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue