On Dec 31 2007, 3:16 pm, Benjamin Smedberg <[EMAIL PROTECTED]>
wrote:
> [EMAIL PROTECTED] wrote:
> > Currently I'm only linking to xpcomglue.lib and call XPCOMGlueStartup
> > instead.
> > I was basically following this strategy 
> > now:http://developer.mozilla.org/en/docs/XPCOM_Glue
>
> There are three strategies listed on that page... you're using the
> "standalone" form. Are you defining XPCOM_GLUE?
>
> > But I'm unsure about the difference of XPCOMGlueStartup and
> > XRE_InitEmbedding.
>
> Yeah, this is a bit confusing and we need better docs. I will try to
> explain, and I hope somebody will turn this into a reasonable page on
> developer.mozilla.org:
>
> XPCOMGlueStartup is only for use when using "standalone" linkage. It
> dynamically loads the XPCOM libraries and so that you can call functions
> provided from XPCOM: all of the NS_* functions declared in nsXPCOM.h. It
> does *not* initialize XPCOM! It does *not* dynamically load the XRE_* 
> functions.
>
> After you have called XPCOMGlueStartup, you could call NS_InitXPCOM2 and
> manually initialize everything... but there are a lot of tricks necessary to
> get XPCOM started, and XRE_InitEmbedding has most of those tricks already,
> so...:
>
> Instead, you should call XRE_InitEmbedding. However, that functions hasn't
> been dynamically loaded yet: you need to perform an extra dynamic-linking
> step before you can call this function... in code, it would look something
> like this:
>
> static const nsDynamicFunctionLoad kXRESymbols[] = {
>   { "XRE_InitEmbedding", (NSFuncPtr*) &XRE_InitEmbedding },
>   // If you need other XRE_ functions such as XRE_LockProfileDirectory,
>   // add them to the list here:
>   { "XRE_LockProfileDirectory", (NSFuncPtr*) &XRE_LockProfileDirectory },
>   { nsnull, nsnull }
>
> };
>
> XPCOMGlueLoadXULFunctions(kXRESymbols);
>
> // Now you may call XRE_InitEmbedding
>
> In summary, the sequence of functions you want to call is:
>
> * GRE_GetGREPathWithProperties (if you don't know where XULRunner is 
> installed)
> * XPCOMGlueStartup
> * XPCOMGlueLoadXULFunctions
> * XRE_InitEmbedding
>
> --BDS


That seems to work.
Thanks for your help, its really appreciated!





_______________________________________________
dev-embedding mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-embedding

Reply via email to