*joe*, you may use code like this:
var windowService = Components. classes
["@mozilla.org/appshell/window-mediator;1"].
getService (Components. interfaces. nsIWindowMediator);
var mrWindow = windowService. getMostRecentWindow ("navigator:browser");
mrWindow. foo ();
or you may implement any interface in your extension's object, it may be
somethink like
// xpcom .idl
...
interface YourComponent: nsISupports
{
...
void init (in YourComponentCallback obj);
...
};
interface YourComponentCallback: nsISupports
{
...
void foo ();
...
};
// xpcom
...
extobject: null,
...
init: function (obj) { this. extobject = obj; },
...
bar: function () { this. extobject. foo (); }, // call extension's function
...
// extension
var yourextensionobject =
{
...
init: function () {
var mycomponent = Components. classes ["@yourcomponent.cid"].
createInstance (Components. interfaces. YourComponent);
mycomponent. init (this);
},
...
foo: function () { ... },
...
QueryIntrface: function (iid)
{
if ((!iid. equals (Components. interfaces. nsISupprots) && (!iid.
equals (Components. interfaces. nsIYourComponentCallback)) Components.
results. NS_ERROR_NO_INTERFACE;
return this;
}
};
joe ertaba wrote:
Hi
I have a XPCOM Component in my extension for observing a process, it
can detect process, now my question is how to call extension functions
from XPCOM Component ?
example:
MyExtension
-component
-chrome
--content
---a_js_file.js
function foo(var1){
.....
}
---a_xul_file.xul
what I want to do is to call foo(...) from XPCOM
can somebody help?
------------------------------------------------------------------------
_______________________________________________
Project_owners mailing list
[email protected]
https://www.mozdev.org/mailman/listinfo/project_owners
_______________________________________________
Project_owners mailing list
[email protected]
https://www.mozdev.org/mailman/listinfo/project_owners