FWIW, nothing in your code jumped out at me as being particularly wrong.

I would suggest that you confirm that there are no stale descriptions of the interface on your system; e.g. previous attempts at the interface using different UUIDs or names or method signatures. If the typelib loader finds an xpt file that is not in sync with the idl that is compiled into your component then odd things can happen. Also, make sure your UUIDs are unique and not used by some other interface. These are the sorts of problems that can come up as code evolves during development. It is worth being sure that this is not what is going on here.

The only other idea that comes to mind right now is something that may not be very attractive to you as a component developer. But, if *I* was trying to solve this problem then I'd use a debug build of the browser and then trace into the call that your C++ component makes. It *should* get into nsXPCWrappedJSClass::CallMethod. And from there lots of fun stuff might happen.

Other than that, I don't know what to tell you. The general thing it sounds like you are trying to do certainly works elsewhere. Perhaps there is some subtle thing wrong with your code or your 'setup' that is not obvious from here. Either figure out a way to debug it or experiment with variations that might give you a clue to what thing you might be doing wrong.

John.
_______________________________________________
dev-tech-xpcom mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-xpcom

Reply via email to