Remove dependency on nsIClassInfo.h from nsISupports.h (bug 330420). This adds a new nsIClassInfoImpl.h file which can be included to get the CI implementation macros. Also, removes unneeded inclusion of nsIProgrammingLanguage.h from nsIClassInfo.h. r=darin.

This commit is contained in:
bryner%brianryner.com 2006-03-15 04:59:42 +00:00
Родитель 305dfd6b24
Коммит 41e6c02b2f
61 изменённых файлов: 461 добавлений и 395 удалений

Просмотреть файл

@ -43,6 +43,7 @@
#include "nsComponentManagerUtils.h"
#include "nsServiceManagerUtils.h"
#include "nsIClassInfoImpl.h"
#define SECONDS_PER_WEEK 604800
#define SECONDS_PER_DAY 86400
@ -347,4 +348,3 @@ calDuration::Compare(calIDuration *aOther, PRInt32 *aResult)
return NS_OK;
}

Просмотреть файл

@ -53,6 +53,7 @@
#include "nsIObjectOutputStream.h"
#include "nsIPrefBranch.h"
#include "nsIPrefService.h"
#include "nsIClassInfoImpl.h"
#include "nsPrincipal.h"

Просмотреть файл

@ -81,6 +81,7 @@
#include "nsIContent.h"
#include "nsAutoPtr.h"
#include "nsAboutProtocolUtils.h"
#include "nsIClassInfo.h"
static NS_DEFINE_CID(kZipReaderCID, NS_ZIPREADER_CID);
@ -3702,4 +3703,3 @@ nsScriptSecurityManager::PrintPolicyDB()
printf("############## End Capabilities ###############\n");
}
#endif

Просмотреть файл

@ -54,6 +54,7 @@
#include "nsString.h"
#include "nsPrefsCID.h"
#include "nsNetCID.h"
#include "nsIClassInfoImpl.h"
///////////////////////
// nsSecurityNameSet //
@ -488,4 +489,3 @@ CapsModuleDtor(nsIModule* thisModules)
NS_IMPL_NSGETMODULE_WITH_DTOR(nsSecurityManagerModule, capsComponentInfo,
CapsModuleDtor)

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsReadableUtils.h"
#include "nsCRT.h"
#include "nsString.h"
#include "nsIClassInfoImpl.h"
NS_IMPL_QUERY_INTERFACE2_CI(nsSystemPrincipal,

Просмотреть файл

@ -97,7 +97,6 @@
#include "nsIXPConnect.h"
#include "nsDOMCID.h"
#include "nsIScriptObjectOwner.h" // for nsIScriptEventHandlerOwner
#include "nsIClassInfo.h"
#include "nsIFocusController.h"
#include "nsIDOMElement.h"
#include "nsIBoxObject.h"
@ -2426,4 +2425,3 @@ NS_NewEventListenerManager(nsIEventListenerManager** aInstancePtrResult)
return CallQueryInterface(l, aInstancePtrResult);
}

Просмотреть файл

@ -59,6 +59,7 @@
#include "nsNetError.h"
#include "nsLDAPOperation.h"
#include "nsILDAPErrors.h"
#include "nsIClassInfoImpl.h"
const char kConsoleServiceContractId[] = "@mozilla.org/consoleservice;1";
const char kDNSServiceContractId[] = "@mozilla.org/network/dns-service;1";

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsISupportsUtils.h"
#include "nsLDAPBERValue.h"
#include "nsILDAPErrors.h"
#include "nsIClassInfoImpl.h"
NS_IMPL_THREADSAFE_ADDREF(nsLDAPMessage)
NS_IMPL_THREADSAFE_RELEASE(nsLDAPMessage)
@ -680,4 +681,3 @@ nsLDAPMessage::GetMatchedDn(nsACString & aMatchedDn)
aMatchedDn.Assign(mMatchedDn);
return NS_OK;
}

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsISimpleEnumerator.h"
#include "nsLDAPControl.h"
#include "nsILDAPErrors.h"
#include "nsIClassInfoImpl.h"
// constructor
nsLDAPOperation::nsLDAPOperation()

Просмотреть файл

@ -39,7 +39,7 @@
#ifndef nsIDOMClassInfo_h___
#define nsIDOMClassInfo_h___
#include "nsIClassInfo.h"
#include "nsIClassInfoImpl.h"
#include "nsVoidArray.h"
enum nsDOMClassInfoID {

Просмотреть файл

@ -47,7 +47,6 @@
#include "nsServiceManagerUtils.h"
#include "nsIMozAxPlugin.h"
#include "nsIClassInfo.h"
#include "nsIVariant.h"
#include "nsMemory.h"
@ -1133,6 +1132,3 @@ MozAxPlugin::GetValue(NPP instance, NPPVariable variable, void *value)
}
return NPERR_GENERIC_ERROR;
}

Просмотреть файл

@ -49,6 +49,7 @@
#include "nsID.h"
#include "nsCOMPtr.h"
#include "nsIClassInfo.h"
#include "nsIProgrammingLanguage.h"
#include "nsIMozAxPlugin.h"
#include "nsServiceManagerUtils.h"
#include "nsIURI.h"
@ -157,4 +158,4 @@ namespace MozAxPlugin {
#endif
}
#endif
#endif

Просмотреть файл

@ -43,6 +43,7 @@
#include "nsServiceManagerUtils.h"
#include "nsCOMPtr.h"
#include "nsXPCOMCID.h"
#include "nsIClassInfoImpl.h"
NS_DECL_CLASSINFO(nsMetricsService)

Просмотреть файл

@ -60,6 +60,7 @@
#include "nsStringStream.h"
#include "nsVariant.h"
#include "bzlib.h"
#include "nsIClassInfoImpl.h"
// Make our MIME type inform the server of possible compression.
#ifdef NS_METRICS_SEND_UNCOMPRESSED_DATA

Просмотреть файл

@ -47,6 +47,7 @@
#include "PyXPCOM_std.h"
#include "nsIClassInfo.h"
#include "nsIProgrammingLanguage.h"
static nsIClassInfo *_GetI(PyObject *self) {
nsIID iid = NS_GET_IID(nsIClassInfo);

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsMemory.h"
#include "nsIServiceManager.h"
#include "nsIComponentManager.h"
#include "nsIClassInfoImpl.h"
#include <stdlib.h>
#include <math.h>
@ -136,4 +137,3 @@ nsSchemaDuration::GetNegative(PRBool *aResult)
*aResult = negative;
return NS_OK;
}

Просмотреть файл

@ -56,6 +56,7 @@
#include "nsMemory.h"
#include "nsIServiceManager.h"
#include "nsIComponentManager.h"
#include "nsIClassInfoImpl.h"
#include "nsISchema.h"
#include "nsISchemaLoader.h"
@ -3322,4 +3323,3 @@ nsSchemaValidator::DumpBaseType(nsISchemaBuiltinType *aBuiltInType)
LOG((" Base Type is %s (%d)", NS_ConvertUTF16toUTF8(typeName).get(),foo));
}
#endif

Просмотреть файл

@ -39,6 +39,7 @@
#include "nsIGenericFactory.h"
#include "nsSchemaValidator.h"
#include "nsSchemaDuration.h"
#include "nsIClassInfoImpl.h"
NS_DECL_CLASSINFO(nsSchemaValidator)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsSchemaValidator)
@ -64,4 +65,3 @@ SchemaValidatorModuleCtor(nsIModule* aSelf)
}
NS_IMPL_NSGETMODULE_WITH_CTOR(schemavalidation, components, SchemaValidatorModuleCtor)

Просмотреть файл

@ -48,6 +48,7 @@
#include "nsIExceptionService.h"
#include "nsIServiceManager.h"
#include "nsAString.h"
#include "nsIClassInfoImpl.h"
// SOAP includes
#include "nsISOAPCall.h"

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsMemory.h"
#include "nsComponentManagerUtils.h"
#include "nsServiceManagerUtils.h"
#include "nsIClassInfoImpl.h"
const PRUint8 sInt8Val = 2;
const PRInt16 sInt16Val = 0x1234;

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsXPCOMCID.h"
#include "nsServiceManagerUtils.h"
#include "nsComponentManagerUtils.h"
#include "nsIClassInfoImpl.h"
NS_GENERIC_FACTORY_CONSTRUCTOR(WSPProxyTest)
NS_DECL_CLASSINFO(WSPProxyTest)

Просмотреть файл

@ -50,6 +50,7 @@
#include "nsInterfaceHashtable.h"
#include "nsString.h"
#include "nsIDOMElement.h"
#include "nsIClassInfoImpl.h"
#define NS_SCHEMA_2001_NAMESPACE "http://www.w3.org/2001/XMLSchema"
#define NS_SCHEMA_1999_NAMESPACE "http://www.w3.org/1999/XMLSchema"
@ -752,5 +753,3 @@ public:
"@mozilla.org/xmlextras/schemas/soaparraytype;1"
#endif // __nsSchemaPrivate_h__

Просмотреть файл

@ -56,6 +56,7 @@
#include "nsIWebScriptsAccessService.h"
#include "nsMemory.h"
#include "nsIDocument.h"
#include "nsIClassInfoImpl.h"
nsHTTPSOAPTransport::nsHTTPSOAPTransport()
{

Просмотреть файл

@ -44,6 +44,7 @@
#include "nsIURI.h"
#include "nsNetUtil.h"
#include "nsSOAPException.h"
#include "nsIClassInfoImpl.h"
/////////////////////////////////////////////
//

Просмотреть файл

@ -50,6 +50,7 @@
#include "nsISchemaLoader.h"
#include "nsSOAPUtils.h"
#include "nsReadableUtils.h"
#include "nsIClassInfoImpl.h"
//
// callback for deleting the encodings from the nsObjectHashtable, mEncodings,

Просмотреть файл

@ -38,6 +38,7 @@
#include "nsSOAPException.h"
#include "nsReadableUtils.h"
#include "nsIXPConnect.h"
#include "nsIClassInfoImpl.h"
nsSOAPException::nsSOAPException(nsresult aStatus, const nsAString & aName,
const nsAString & aMessage, nsIException* aInner) :

Просмотреть файл

@ -40,6 +40,7 @@
#include "nsIDOMNodeList.h"
#include "nsISOAPMessage.h"
#include "nsSOAPException.h"
#include "nsIClassInfoImpl.h"
nsSOAPFault::nsSOAPFault()
{

Просмотреть файл

@ -43,6 +43,7 @@
#include "nsISOAPAttachments.h"
#include "nsISOAPMessage.h"
#include "nsSOAPException.h"
#include "nsIClassInfoImpl.h"
nsSOAPHeaderBlock::nsSOAPHeaderBlock()
{

Просмотреть файл

@ -41,6 +41,7 @@
#include "nsSOAPUtils.h"
#include "nsIServiceManager.h"
#include "nsISOAPAttachments.h"
#include "nsIClassInfoImpl.h"
nsSOAPParameter::nsSOAPParameter()
{

Просмотреть файл

@ -44,6 +44,7 @@
#include "nsHashKeys.h"
#include "jsapi.h"
#include "nsIXPCScriptable.h"
#include "nsIClassInfoImpl.h"
class nsSOAPPropertyBagEnumerator;
class nsSOAPPropertyBag:public nsIPropertyBag, public nsIXPCScriptable {

Просмотреть файл

@ -43,6 +43,7 @@
#include "nsISOAPParameter.h"
#include "nsIServiceManager.h"
#include "nsIComponentManager.h"
#include "nsIClassInfoImpl.h"
nsSOAPResponse::nsSOAPResponse()
{

Просмотреть файл

@ -54,6 +54,7 @@
#include "nsString.h"
#include "nsReadableUtils.h"
#include "nsWeakReference.h"
#include "nsIClassInfoImpl.h"
// Typelib includes
#include "nsIInterfaceInfo.h"

Просмотреть файл

@ -45,6 +45,7 @@
#include "nsIEventStateManager.h"
#include "nsIContent.h"
#include "nsIXFormsControl.h"
#include "nsIProgrammingLanguage.h"
NS_IMPL_ISUPPORTS2(nsXFormsAccessors, nsIXFormsAccessors, nsIClassInfo)

Просмотреть файл

@ -75,6 +75,7 @@
#include "nsAutoPtr.h"
#include "nsArray.h"
#include "nsIDOMDocumentXBL.h"
#include "nsIProgrammingLanguage.h"
#define XFORMS_LAZY_INSTANCE_BINDING \
"chrome://xforms/content/xforms.xml#xforms-lazy-instance"

Просмотреть файл

@ -55,7 +55,7 @@
#include "nsAutoPtr.h"
#include "nsISupports.h"
#include "nsIServiceManager.h"
#include "nsIClassInfo.h"
#include "nsIClassInfoImpl.h"
#include "nsIComponentManager.h"
#include "nsIComponentRegistrar.h"
#include "nsISupportsPrimitives.h"

Просмотреть файл

@ -42,6 +42,7 @@
#include "nsIXPCScriptable.h"
#include "xpctest_calljs.h"
#include "nsISupports.h"
#include "nsIClassInfoImpl.h"
class xpcTestCallJS : public nsIXPCTestCallJS, public nsIXPCScriptable {
public:

Просмотреть файл

@ -45,6 +45,7 @@
#include "nsIModule.h"
#include "nsIGenericFactory.h"
#include "nsCRT.h"
#include "nsIClassInfoImpl.h"
NS_DECL_CLASSINFO(xpcTestCallJS)
NS_DECL_CLASSINFO(xpcTestChild2)
@ -74,4 +75,3 @@ static const nsModuleComponentInfo components[] = {
};
NS_IMPL_NSGETMODULE(xpconnect_test, components)

Просмотреть файл

@ -41,6 +41,7 @@
#include "xpctest_multiple.h"
#include "nsISupports.h"
#include "xpctest_private.h"
#include "nsIClassInfoImpl.h"
class xpcTestParentOne : public nsIXPCTestParentOne {
public:

Просмотреть файл

@ -49,6 +49,7 @@
#include "nsNetCID.h"
#include "nsIObjectInputStream.h"
#include "nsIObjectOutputStream.h"
#include "nsIProgrammingLanguage.h"
static NS_DEFINE_CID(kJARURICID, NS_JARURI_CID);

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsI4xScriptablePlugin.h"
#include "nsIClassInfo.h"
#include "nsIProgrammingLanguage.h"
class CPlugin;
@ -103,4 +104,4 @@ protected:
acmeIScriptObject* mWindow;
};
#endif
#endif

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsI4xScriptablePlugin.h"
#include "nsIClassInfo.h"
#include "nsIProgrammingLanguage.h"
class CPlugin;
@ -92,4 +93,4 @@ protected:
CPlugin* mPlugin;
};
#endif
#endif

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsIScriptablePluginSample.h"
#include "nsIClassInfo.h"
#include "nsIProgrammingLanguage.h"
class nsPluginInstance;
@ -104,4 +105,4 @@ protected:
nsPluginInstance* mPlugin;
};
#endif
#endif

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsIScriptablePluginSample.h"
#include "nsIClassInfo.h"
#include "nsIProgrammingLanguage.h"
class nsPluginInstance;
@ -105,4 +106,3 @@ protected:
};
#endif

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsIScriptablePluginSample.h"
#include "nsIClassInfo.h"
#include "nsIProgrammingLanguage.h"
class nsPluginInstance;
@ -104,4 +105,4 @@ protected:
nsPluginInstance* mPlugin;
};
#endif
#endif

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsISimplePlugin.h"
#include "nsIClassInfo.h"
#include "nsIProgrammingLanguage.h"
class nsPluginInstance;
@ -105,4 +106,3 @@ protected:
};
#endif

Просмотреть файл

@ -51,6 +51,7 @@
#include "nsIObjectOutputStream.h"
#include "nsEscape.h"
#include "nsNetError.h"
#include "nsIProgrammingLanguage.h"
static NS_DEFINE_CID(kThisSimpleURIImplementationCID,
NS_THIS_SIMPLEURI_IMPLEMENTATION_CID);
@ -429,4 +430,3 @@ nsSimpleURI::GetClassIDNoAlloc(nsCID *aClassIDNoAlloc)
*aClassIDNoAlloc = kSimpleURICID;
return NS_OK;
}

Просмотреть файл

@ -42,6 +42,7 @@
#include "nsAgg.h"
#include "nsISerializable.h"
#include "nsString.h"
#include "nsIClassInfo.h"
#define NS_THIS_SIMPLEURI_IMPLEMENTATION_CID \
{ /* 22b8f64a-2f7b-11d3-8cd0-0060b0fc14a3 */ \

Просмотреть файл

@ -55,6 +55,7 @@
#include "nsNetUtil.h"
#include "prlog.h"
#include "nsAutoPtr.h"
#include "nsIProgrammingLanguage.h"
static NS_DEFINE_CID(kThisImplCID, NS_THIS_STANDARDURL_IMPL_CID);
static NS_DEFINE_CID(kStandardURLCID, NS_STANDARDURL_CID);
@ -2798,4 +2799,3 @@ nsStandardURL::GetClassIDNoAlloc(nsCID *aClassIDNoAlloc)
*aClassIDNoAlloc = kStandardURLCID;
return NS_OK;
}

Просмотреть файл

@ -52,6 +52,7 @@
#include "nsIIOService.h"
#include "nsCOMPtr.h"
#include "nsURLHelper.h"
#include "nsIClassInfo.h"
class nsIBinaryInputStream;
class nsIBinaryOutputStream;

Просмотреть файл

@ -49,6 +49,7 @@
#include "nsConsoleService.h"
#include "nsConsoleMessage.h"
#include "nsIClassInfoImpl.h"
NS_IMPL_THREADSAFE_ADDREF(nsConsoleService)
NS_IMPL_THREADSAFE_RELEASE(nsConsoleService)

Просмотреть файл

@ -39,6 +39,7 @@
#include "nsXPCOM.h"
#include "nsXPCOMPrivate.h"
#include "nscore.h"
#include "nsIClassInfoImpl.h"
#include "nsStaticComponents.h"
#include "prlink.h"
#include "nsCOMPtr.h"

Просмотреть файл

@ -75,6 +75,7 @@
#include "nsXPCOM.h"
#include "nsXPCOMPrivate.h"
#include "nsISupportsPrimitives.h"
#include "nsIClassInfo.h"
#include "nsLocalFile.h"
#include "nsReadableUtils.h"
#include "nsString.h"

Просмотреть файл

@ -39,7 +39,6 @@
* ***** END LICENSE BLOCK ***** */
#include "nsISupports.idl"
#include "nsIProgrammingLanguage.idl"
/**
* Provides information about a specific implementation class

Просмотреть файл

@ -104,6 +104,7 @@ SDK_HEADERS = \
nsComponentManagerUtils.h \
nsServiceManagerUtils.h \
nsVersionComparator.h \
nsIClassInfoImpl.h \
$(NULL)
SDK_LIBRARY = \
@ -117,4 +118,3 @@ FORCE_STATIC_LIB = 1
FORCE_USE_PIC = 1
include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -44,6 +44,7 @@
#include "nsCOMPtr.h"
#include "nsIComponentManager.h"
#include "nsIComponentRegistrar.h"
#include "nsIProgrammingLanguage.h"
#ifdef XPCOM_GLUE
#include "nsXPCOMGlue.h"

Просмотреть файл

@ -0,0 +1,400 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is XPCOM.
*
* The Initial Developer of the Original Code is Netscape Communications Corp.
* Portions created by the Initial Developer are Copyright (C) 2001
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
#ifndef nsIClassInfoImpl_h__
#define nsIClassInfoImpl_h__
#include "nsIClassInfo.h"
#define NS_CLASSINFO_NAME(_class) _class##_classInfoGlobal
#define NS_CI_INTERFACE_GETTER_NAME(_class) _class##_GetInterfacesHelper
#define NS_DECL_CI_INTERFACE_GETTER(_class) \
extern NS_IMETHODIMP NS_CI_INTERFACE_GETTER_NAME(_class)(PRUint32 *, \
nsIID ***);
#define NS_DECL_CLASSINFO(_class) \
NS_DECL_CI_INTERFACE_GETTER(_class) \
nsIClassInfo *NS_CLASSINFO_NAME(_class);
#define NS_IMPL_QUERY_CLASSINFO(_class) \
if ( aIID.Equals(NS_GET_IID(nsIClassInfo)) ) { \
extern nsIClassInfo *NS_CLASSINFO_NAME(_class); \
foundInterface = NS_STATIC_CAST(nsIClassInfo*, NS_CLASSINFO_NAME(_class));\
} else
#define NS_CLASSINFO_HELPER_BEGIN(_class, _c) \
NS_IMETHODIMP \
NS_CI_INTERFACE_GETTER_NAME(_class)(PRUint32 *count, nsIID ***array) \
{ \
*count = _c; \
*array = (nsIID **)nsMemory::Alloc(sizeof (nsIID *) * _c);
#define NS_CLASSINFO_HELPER_ENTRY(_i, _interface) \
(*array)[_i] = (nsIID *)nsMemory::Clone(&NS_GET_IID(_interface), \
sizeof(nsIID));
#define NS_CLASSINFO_HELPER_END \
return NS_OK; \
}
#define NS_IMPL_CI_INTERFACE_GETTER1(_class, _interface) \
NS_CLASSINFO_HELPER_BEGIN(_class, 1) \
NS_CLASSINFO_HELPER_ENTRY(0, _interface) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE1_CI(_class, _i1) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS1_CI(_class, _interface) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE1_CI(_class, _interface) \
NS_IMPL_CI_INTERFACE_GETTER1(_class, _interface)
#define NS_IMPL_CI_INTERFACE_GETTER2(_class, _i1, _i2) \
NS_CLASSINFO_HELPER_BEGIN(_class, 2) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE2_CI(_class, _i1, _i2) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS2_CI(_class, _i1, _i2) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE2_CI(_class, _i1, _i2) \
NS_IMPL_CI_INTERFACE_GETTER2(_class, _i1, _i2)
#define NS_IMPL_CI_INTERFACE_GETTER3(_class, _i1, _i2, _i3) \
NS_CLASSINFO_HELPER_BEGIN(_class, 3) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE3_CI(_class, _i1, _i2, _i3) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS3_CI(_class, _i1, _i2, _i3) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE3_CI(_class, _i1, _i2, _i3) \
NS_IMPL_CI_INTERFACE_GETTER3(_class, _i1, _i2, _i3)
#define NS_IMPL_CI_INTERFACE_GETTER4(_class, _i1, _i2, _i3, _i4) \
NS_CLASSINFO_HELPER_BEGIN(_class, 4) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE4_CI(_class, _i1, _i2, _i3, _i4) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS4_CI(_class, _i1, _i2, _i3, _i4) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE4_CI(_class, _i1, _i2, _i3, _i4) \
NS_IMPL_CI_INTERFACE_GETTER4(_class, _i1, _i2, _i3, _i4)
#define NS_IMPL_CI_INTERFACE_GETTER5(_class, _i1, _i2, _i3, _i4, _i5) \
NS_CLASSINFO_HELPER_BEGIN(_class, 5) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE5_CI(_class, _i1, _i2, _i3, _i4, _i5) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS5_CI(_class, _i1, _i2, _i3, _i4, _i5) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE5_CI(_class, _i1, _i2, _i3, _i4, _i5) \
NS_IMPL_CI_INTERFACE_GETTER5(_class, _i1, _i2, _i3, _i4, _i5)
#define NS_IMPL_CI_INTERFACE_GETTER6(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
NS_CLASSINFO_HELPER_BEGIN(_class, 6) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE6_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS6_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE6_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
NS_IMPL_CI_INTERFACE_GETTER6(_class, _i1, _i2, _i3, _i4, _i5, _i6)
#define NS_IMPL_CI_INTERFACE_GETTER7(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7) \
NS_CLASSINFO_HELPER_BEGIN(_class, 7) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE7_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY(_i7) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS7_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE7_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7) \
NS_IMPL_CI_INTERFACE_GETTER7(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7)
#define NS_IMPL_CI_INTERFACE_GETTER8(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8) \
NS_CLASSINFO_HELPER_BEGIN(_class, 8) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE8_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY(_i7) \
NS_INTERFACE_MAP_ENTRY(_i8) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS8_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE8_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8) \
NS_IMPL_CI_INTERFACE_GETTER8(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8)
#define NS_IMPL_CI_INTERFACE_GETTER9(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9) \
NS_CLASSINFO_HELPER_BEGIN(_class, 9) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
NS_CLASSINFO_HELPER_ENTRY(8, _i9) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE9_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY(_i7) \
NS_INTERFACE_MAP_ENTRY(_i8) \
NS_INTERFACE_MAP_ENTRY(_i9) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS9_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE9_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9) \
NS_IMPL_CI_INTERFACE_GETTER9(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9)
#define NS_IMPL_CI_INTERFACE_GETTER10(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9, _i10) \
NS_CLASSINFO_HELPER_BEGIN(_class, 10) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
NS_CLASSINFO_HELPER_ENTRY(8, _i9) \
NS_CLASSINFO_HELPER_ENTRY(9, _i10) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_CI_INTERFACE_GETTER11(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9, _i10, _i11) \
NS_CLASSINFO_HELPER_BEGIN(_class, 11) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
NS_CLASSINFO_HELPER_ENTRY(8, _i9) \
NS_CLASSINFO_HELPER_ENTRY(9, _i10) \
NS_CLASSINFO_HELPER_ENTRY(10, _i11) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE10_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9, _i10) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY(_i7) \
NS_INTERFACE_MAP_ENTRY(_i8) \
NS_INTERFACE_MAP_ENTRY(_i9) \
NS_INTERFACE_MAP_ENTRY(_i10) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_QUERY_INTERFACE11_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9, _i10, _i11) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY(_i7) \
NS_INTERFACE_MAP_ENTRY(_i8) \
NS_INTERFACE_MAP_ENTRY(_i9) \
NS_INTERFACE_MAP_ENTRY(_i10) \
NS_INTERFACE_MAP_ENTRY(_i11) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS10_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE10_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10) \
NS_IMPL_CI_INTERFACE_GETTER10(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10)
#define NS_IMPL_ISUPPORTS11_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10, _i11) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE11_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10, _i11) \
NS_IMPL_CI_INTERFACE_GETTER11(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10, _i11)
#endif // nsIClassInfoImpl_h__

Просмотреть файл

@ -816,372 +816,6 @@ NS_IMETHODIMP_(nsrefcnt) _class::Release(void) \
NS_IMPL_THREADSAFE_QUERY_INTERFACE11(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9, _i10, _i11)
///////////////////////////////////////////////////////////////////////////////
// Macros for implementing nsIClassInfo-related stuff.
///////////////////////////////////////////////////////////////////////////////
// include here instead of at the top because it requires the nsISupport decl
#include "nsIClassInfo.h"
#define NS_CLASSINFO_NAME(_class) _class##_classInfoGlobal
#define NS_CI_INTERFACE_GETTER_NAME(_class) _class##_GetInterfacesHelper
#define NS_DECL_CI_INTERFACE_GETTER(_class) \
extern NS_IMETHODIMP NS_CI_INTERFACE_GETTER_NAME(_class)(PRUint32 *, \
nsIID ***);
#define NS_DECL_CLASSINFO(_class) \
NS_DECL_CI_INTERFACE_GETTER(_class) \
nsIClassInfo *NS_CLASSINFO_NAME(_class);
#define NS_IMPL_QUERY_CLASSINFO(_class) \
if ( aIID.Equals(NS_GET_IID(nsIClassInfo)) ) { \
extern nsIClassInfo *NS_CLASSINFO_NAME(_class); \
foundInterface = NS_STATIC_CAST(nsIClassInfo*, NS_CLASSINFO_NAME(_class));\
} else
#define NS_CLASSINFO_HELPER_BEGIN(_class, _c) \
NS_IMETHODIMP \
NS_CI_INTERFACE_GETTER_NAME(_class)(PRUint32 *count, nsIID ***array) \
{ \
*count = _c; \
*array = (nsIID **)nsMemory::Alloc(sizeof (nsIID *) * _c);
#define NS_CLASSINFO_HELPER_ENTRY(_i, _interface) \
(*array)[_i] = (nsIID *)nsMemory::Clone(&NS_GET_IID(_interface), \
sizeof(nsIID));
#define NS_CLASSINFO_HELPER_END \
return NS_OK; \
}
#define NS_IMPL_CI_INTERFACE_GETTER1(_class, _interface) \
NS_CLASSINFO_HELPER_BEGIN(_class, 1) \
NS_CLASSINFO_HELPER_ENTRY(0, _interface) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE1_CI(_class, _i1) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS1_CI(_class, _interface) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE1_CI(_class, _interface) \
NS_IMPL_CI_INTERFACE_GETTER1(_class, _interface)
#define NS_IMPL_CI_INTERFACE_GETTER2(_class, _i1, _i2) \
NS_CLASSINFO_HELPER_BEGIN(_class, 2) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE2_CI(_class, _i1, _i2) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS2_CI(_class, _i1, _i2) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE2_CI(_class, _i1, _i2) \
NS_IMPL_CI_INTERFACE_GETTER2(_class, _i1, _i2)
#define NS_IMPL_CI_INTERFACE_GETTER3(_class, _i1, _i2, _i3) \
NS_CLASSINFO_HELPER_BEGIN(_class, 3) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE3_CI(_class, _i1, _i2, _i3) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS3_CI(_class, _i1, _i2, _i3) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE3_CI(_class, _i1, _i2, _i3) \
NS_IMPL_CI_INTERFACE_GETTER3(_class, _i1, _i2, _i3)
#define NS_IMPL_CI_INTERFACE_GETTER4(_class, _i1, _i2, _i3, _i4) \
NS_CLASSINFO_HELPER_BEGIN(_class, 4) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE4_CI(_class, _i1, _i2, _i3, _i4) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS4_CI(_class, _i1, _i2, _i3, _i4) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE4_CI(_class, _i1, _i2, _i3, _i4) \
NS_IMPL_CI_INTERFACE_GETTER4(_class, _i1, _i2, _i3, _i4)
#define NS_IMPL_CI_INTERFACE_GETTER5(_class, _i1, _i2, _i3, _i4, _i5) \
NS_CLASSINFO_HELPER_BEGIN(_class, 5) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE5_CI(_class, _i1, _i2, _i3, _i4, _i5) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS5_CI(_class, _i1, _i2, _i3, _i4, _i5) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE5_CI(_class, _i1, _i2, _i3, _i4, _i5) \
NS_IMPL_CI_INTERFACE_GETTER5(_class, _i1, _i2, _i3, _i4, _i5)
#define NS_IMPL_CI_INTERFACE_GETTER6(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
NS_CLASSINFO_HELPER_BEGIN(_class, 6) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE6_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS6_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE6_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
NS_IMPL_CI_INTERFACE_GETTER6(_class, _i1, _i2, _i3, _i4, _i5, _i6)
#define NS_IMPL_CI_INTERFACE_GETTER7(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7) \
NS_CLASSINFO_HELPER_BEGIN(_class, 7) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE7_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY(_i7) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS7_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE7_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7) \
NS_IMPL_CI_INTERFACE_GETTER7(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7)
#define NS_IMPL_CI_INTERFACE_GETTER8(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8) \
NS_CLASSINFO_HELPER_BEGIN(_class, 8) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE8_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY(_i7) \
NS_INTERFACE_MAP_ENTRY(_i8) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS8_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE8_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8) \
NS_IMPL_CI_INTERFACE_GETTER8(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8)
#define NS_IMPL_CI_INTERFACE_GETTER9(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9) \
NS_CLASSINFO_HELPER_BEGIN(_class, 9) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
NS_CLASSINFO_HELPER_ENTRY(8, _i9) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE9_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY(_i7) \
NS_INTERFACE_MAP_ENTRY(_i8) \
NS_INTERFACE_MAP_ENTRY(_i9) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS9_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE9_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9) \
NS_IMPL_CI_INTERFACE_GETTER9(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9)
#define NS_IMPL_CI_INTERFACE_GETTER10(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9, _i10) \
NS_CLASSINFO_HELPER_BEGIN(_class, 10) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
NS_CLASSINFO_HELPER_ENTRY(8, _i9) \
NS_CLASSINFO_HELPER_ENTRY(9, _i10) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_CI_INTERFACE_GETTER11(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9, _i10, _i11) \
NS_CLASSINFO_HELPER_BEGIN(_class, 11) \
NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
NS_CLASSINFO_HELPER_ENTRY(8, _i9) \
NS_CLASSINFO_HELPER_ENTRY(9, _i10) \
NS_CLASSINFO_HELPER_ENTRY(10, _i11) \
NS_CLASSINFO_HELPER_END
#define NS_IMPL_QUERY_INTERFACE10_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9, _i10) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY(_i7) \
NS_INTERFACE_MAP_ENTRY(_i8) \
NS_INTERFACE_MAP_ENTRY(_i9) \
NS_INTERFACE_MAP_ENTRY(_i10) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_QUERY_INTERFACE11_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
_i7, _i8, _i9, _i10, _i11) \
NS_INTERFACE_MAP_BEGIN(_class) \
NS_INTERFACE_MAP_ENTRY(_i1) \
NS_INTERFACE_MAP_ENTRY(_i2) \
NS_INTERFACE_MAP_ENTRY(_i3) \
NS_INTERFACE_MAP_ENTRY(_i4) \
NS_INTERFACE_MAP_ENTRY(_i5) \
NS_INTERFACE_MAP_ENTRY(_i6) \
NS_INTERFACE_MAP_ENTRY(_i7) \
NS_INTERFACE_MAP_ENTRY(_i8) \
NS_INTERFACE_MAP_ENTRY(_i9) \
NS_INTERFACE_MAP_ENTRY(_i10) \
NS_INTERFACE_MAP_ENTRY(_i11) \
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
NS_IMPL_QUERY_CLASSINFO(_class) \
NS_INTERFACE_MAP_END
#define NS_IMPL_ISUPPORTS10_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE10_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10) \
NS_IMPL_CI_INTERFACE_GETTER10(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10)
#define NS_IMPL_ISUPPORTS11_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10, _i11) \
NS_IMPL_ADDREF(_class) \
NS_IMPL_RELEASE(_class) \
NS_IMPL_QUERY_INTERFACE11_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10, _i11) \
NS_IMPL_CI_INTERFACE_GETTER11(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
_i8, _i9, _i10, _i11)
#define NS_INTERFACE_MAP_END_THREADSAFE NS_IMPL_QUERY_TAIL_GUTS
#endif

Просмотреть файл

@ -52,6 +52,7 @@
#include "nsISeekableStream.h"
#include "nsISerializable.h"
#include "nsIStreamBufferAccess.h"
#include "nsIClassInfo.h"
#include "nsBinaryStream.h"
#include "nsFastLoadFile.h"

Просмотреть файл

@ -61,6 +61,7 @@
#include "nsCRT.h"
#include "prerror.h"
#include "plstr.h"
#include "nsIClassInfoImpl.h"
//-----------------------------------------------------------------------------
// nsIStringInputStream implementation

Просмотреть файл

@ -49,6 +49,7 @@
#include "nsMemory.h"
#include "nsEmbedString.h"
#include "nsIClassInfoImpl.h"
////////////////////////////////////////////////////////////////////////
nsSampleImpl::nsSampleImpl() : mValue(nsnull)

Просмотреть файл

@ -36,6 +36,7 @@
*
* ***** END LICENSE BLOCK ***** */
#include "nsIGenericFactory.h"
#include "nsIClassInfoImpl.h"
#include "nsSample.h"