Thomas Lee wrote:
I went through all of the same issues that most everybody here has
talked about with FF .5 registration. My scenario was that I
developed a toolbar for FF 1.0.X and it has come time to upgrade this
to work with FF 1.5. It was my understanding that the Gecko 1.7 SDK
would be sufficient to use with FF 1.5.

That is indeed the theory, as long as you are using only frozen functions.

Not the case however. When I
tried to instantiated my C++ component I received a
NS_ERROR_XPC_CI_RETURNED_FAILURE error.

Well, there are two possibilities that I can currently think of for this...
o) You have an Init() method + NS_GENERIC_FACTORY_CONSTRUCTOR_INIT, and that Init method returns a failure code
o) The IID of the interface that JS is asking for has changed
o) (maybe) compreg.dat is out of date

It might be the case that you are linking to unfrozen symbols in xpcom that changed, although I'd think that that would give a different error.

I even went so far as to
create an empty shell of a component and still received the error. So
after mucking around for a day or so I decided to solicit the news
group where I learned that in fact we had to use the 1.8 Gecko SDK
for FF 1.5.

You should compile with the SDK of the oldest version that you want to run with. I do believe that people succeeded in doing this :)

No problem I thought - however I ran into several issues.
One issue was that  I no longer could use nsEmbedString class as it
would no longer compile. After research I discovered that I should
use nsString - however to use this class I had to define
MOZILLA_STRICT_API.

Yeah, if you want cross-version compatibility you should define MOZILLA_STRICT_API. (Not needed for a Gecko 1.8 SDK, though)

Odd that nsEmbedString doesn't work for you... it certainly should (it's a typedef for nsString, see nsStringAPI.h / nsEmbedString.h)

So I said what the heck - so I defined out of
spite. So now everything compiles except for one tiny problem - I can
no longer use NS_GetServiceManager because it is not included when I
define MOZILLA_STRICT_API.

Did you try #include "nsXPCOM.h"?

You might also want to look at http://developer.mozilla.org/en/docs/XPCOM_Glue#Compiling_or_linking_against_XPCOM_headers if you haven't already.

-biesi

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to