Reading your code, you try to do all initialization yourself... If you know where the GRE is (as in your example) you can use NS_InitEmbedding() to initialize. But what if the user has installed it in another location?
For your situation it may be better to read: http://developer.mozilla.org/en/docs/GRE Here is explained how to look for installed GRE's (there can be more than one version) and use one (the function GRE_GetGREPathWithProperties). [EMAIL PROTECTED] wrote: > 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
