var comp = Components.classes[contractId]
.createInstance(iid);
[scriptable, uuid(...)]
interface myIFoo : nsISupports {
AString sayHello();
};
function myFoo () {}
myFoo.prototype = {
sayHello: function () {
return "Hello world!";
},
QueryInterface: ...
};
var myFooFactory = {
createInstance: function (...) {
...
return new myFoo().QueryInterface(...);
}
};
var myFooModule = {
registerSelf: ...,
getClassObject: function (...) {
return myFooFactory;
}
};
Components.manager
.QueryInterface(nsIComponentRegistrar)
.registerFactoryLocation(...);