Hi Guys
I have written a simple c/c++ program on windows to understand how xpcom works. My objective is to write independent application without using mozilla to connect to xpcom module ( ex : cookiemanager )
Below is the very basic code which initializes xpcom and tries to create instance of cookiemanager. I have copied the binary into the C:\Program Files\Mozilla Firefox folder and then executed. Init xpcom works properly , but when it tries to create instance of cookie manager
it fails with error 0x80040154 ( NS_ERROR_FACTORY_NOT_REGISTERED ).
Then I called autoregister() method before trying to create instance of cookie manager...but that did not help...!
I am new bee to xpcom world and trying to resolve this problem since last 2 weeks without any success...
Any links in this direction will be of great help......
Thank you
***************************************************************************************************
#include <stdio.h>
#include <nsxpcom.h>
#include <nsIServiceManager.h>
#include <nsIComponentManager.h>
#include <nsIComponentRegistrar.h>
#include "nsICookieManager.h"
#pragma comment(lib,"
xpcom.lib")
int main()
{
nsresult rv;
rv = NS_InitXPCOM2(NULL, nsnull, nsnull);
if ( NS_FAILED(rv) )
{
printf("\n Init xpcom failed..");
return -1;
}
printf("\n\n Creating the new instance of cookiemanager component");
nsIComponentManager *compManager;
rv = NS_GetComponentManager(&compManager);
nsICookieManager *cookieManager = NULL;
rv = compManager->CreateInstanceByContractID("@mozilla.org/cookiemanager;1",
nsnull,
NS_GET_IID(nsICookieManager),
(void**)&cookieManager
);
if ( NS_FAILED(rv) || cookieManager == nsnull)
{
printf("\n CreateInstanceByContractID failed : 0x%x ", rv);
return -1;
}
printf("\n Successfully created the instance....");
// Shutdown XPCOM
NS_ShutdownXPCOM(nsnull);
return 0;
}
*************************************************************************
--
With Regards
Nagareshwar
- CreateInstanceByContractID failed with error 0x8004015... Nagareshwar Talekar
- Re: CreateInstanceByContractID failed with error ... BRUYET Xavier
