I'm just trying to write a test application, the real one will be much more complicated and will include locating the path for installed GREs. I will try NS_InitEmbedding() as you suggest but I doubt if this will help with Firefox.
Olaf wrote: > 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
