I try to embed Mozilla browser into my application, but don't want to
distribute a Gecko Runtime with it. The solution I'm working on is to
use GRE installed on user's machine. For example, if there is a Mozilla
Firefox installed my app can use its GRE, if not - my app will not
support browser embedding.
The problem is that when I'm linking to Mozilla's GRE everyting works
fine, while with Firefox' GRE I get an error NS_ERROR_FACTORY_NOT
REGISTERED. My code is like this:
nsresult rv;
rv = XPCOMGlueStartup("c:\program files\mozilla\firefox\xpcom.dll");
if (NS_FAILED(rv))
{
return;
}
nsCOMPtr<nsILocalFile> binDir;
nsCString s("c:\program files\mozilla\firefox");
NS_NewNativeLocalFile(s, TRUE, getter_AddRefs(binDir));
rv = NS_InitXPCOM2(nsnull, binDir, nsnull);
if (NS_FAILED(rv))
{
return;
}
nsCOMPtr<nsIComponentManager> compMan;
rv = NS_GetComponentManager(getter_AddRefs(compMan));
if (NS_FAILED(rv))
{
return;
}
rv = compMan->CreateInstanceByContractID(NS_WEBBROWSER_CONTRACTID,
nsnull, NS_GET_IID(nsISupports), getter_AddRefs(mWebBrowser));
if (NS_FAILED(rv))
{
return;
}
In the last statement I always get rv ==
NS_ERROR_FACTORY_NOT_REGISTERED. I also tried to use
nsIComponentRegistrar, but had no success.
I link my app with xpcomglue.lib, nspr4.lib, plc4.lib, plds4.lib and
string_s.lib from mozilla\dist\lib directory of Mozilla 1.7.13 build.
Have anyone faced such a problem?
_______________________________________________
dev-embedding mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-embedding