It sounds like the factory did not get registered correctly. Do you see your ContractID/CID mentioned in components/compreg.dat? Might be good to verify that it is present in that file. You might also want to comment out the AutoRegister steps in your code below, and then just use regxpcom to update the registry. Also, NS_InitXPCOM2 will auto-register components in a debug build (and in a non-debug under certain conditions).

Darin



Ramin Dousti wrote:

Hello,

I'm (primitively) playing with xpcom and have the following simple program.
It seems that the registration of the component is taking place properly
but when I want to instantiate the service I receive "factory not registered"
or the error code 80040154. Can someone help me with this please.



int main(void) {
   nsresult rv = NS_OK;

   putenv("NSPR_LOG_MODULES=all:5");
   putenv("NSPR_LOG_FILE=xpcom.log");

   // Initialize XPCOM
   rv = NS_InitXPCOM2(nsnull, nsnull, nsnull);
   NS_ENSURE_SUCCESS(rv, rv);

   if (NS_FAILED(rv)) {
       printf("ERROR: XPCOM intialization error [%x].\n", rv);
       return -1;
   }
   // register all components in our default component directory
   nsCOMPtr<nsIComponentRegistrar> registrar;
   rv = NS_GetComponentRegistrar(getter_AddRefs(registrar));
   if(NS_FAILED(rv)) {
      NS_ShutdownXPCOM(nsnull);
      return rv;
   }

rv = registrar->AutoRegister(nsnull);
if(NS_FAILED(rv)) {
NS_ShutdownXPCOM(nsnull);
return rv;
}
NS_ENSURE_SUCCESS(rv, rv);
// Create an instance of our component


   static NS_DEFINE_CID(kConfigServiceCID, XP_CONFIGSERVICE_CID);
   nsCOMPtr<xpIConfigService> pConfigSvc = do_GetService(kConfigServiceCID, &rv);
   if (NS_FAILED(rv))
   {
     printf("XP Config Service unavailable. Cannot continue [%x].\n", rv);
     NS_ShutdownXPCOM(nsnull);
     return rv;
   }
   ...
   ...
}


_______________________________________________
Mozilla-xpcom mailing list
[EMAIL PROTECTED]
http://mail.mozilla.org/listinfo/mozilla-xpcom



_______________________________________________ Mozilla-xpcom mailing list [EMAIL PROTECTED] http://mail.mozilla.org/listinfo/mozilla-xpcom

Reply via email to