I am debugging the component and I have found out that if I do not link with xpcom.dll, when I call to "NS_GetServiceManager" the "xpcomFunctions" variable is NULL and it returns "NS_ERROR_NOT_INITIALIZED". This variable is initialized in function "XPCOMGlueStartup" but this function is called when I use the component from a XUL Application (this way it loads the xpcom frozen functions calling "PR_LoadLibraryWithFlags").

On the other side, if I link with xpcom.dll I do not use the GLUE functions, I call directly to xpcom functions to get service manager.

I have run some more test: in autoregistration process, before a call do_GetService to get the Category Manager, I call XPCOMGlueStartup to initialize "xpcomFunctions", and then I can register the JAVASCRIPT_DOM_CLASS function. After that, I call XPCOMGlueShutdown. This way it worked, but I do not know why in linux I do not need to do this initialization (and I have not to link with xpcom.dll).



David Bradley wrote:
lfern wrote:


May be I want something that it is not posible right now!?.


That's possible. I'm just puzzled as to why linking with the xpcom.dll would make a difference. It's probably changing the load order of the DLL's, but I'm not sure why that would make a difference. The only thing I know to do would be to step into the do_GetService call to get the service manager or category manager and see what's really failing inside of it.

David



Reply via email to