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

Reply via email to