OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/builds/tinderbox/XR-Mozilla1.8.0
-Release/WINNT_5.2_Depend/mozilla/xpcom/components/nsIClassInfo.idl |
| 3 */ |
| 4 |
| 5 #ifndef __gen_nsIClassInfo_h__ |
| 6 #define __gen_nsIClassInfo_h__ |
| 7 |
| 8 |
| 9 #ifndef __gen_nsISupports_h__ |
| 10 #include "nsISupports.h" |
| 11 #endif |
| 12 |
| 13 #ifndef __gen_nsIProgrammingLanguage_h__ |
| 14 #include "nsIProgrammingLanguage.h" |
| 15 #endif |
| 16 |
| 17 /* For IDL files that don't want to include root IDL files. */ |
| 18 #ifndef NS_NO_VTABLE |
| 19 #define NS_NO_VTABLE |
| 20 #endif |
| 21 |
| 22 /* starting interface: nsIClassInfo */ |
| 23 #define NS_ICLASSINFO_IID_STR "986c11d0-f340-11d4-9075-0010a4e73d9a" |
| 24 |
| 25 #define NS_ICLASSINFO_IID \ |
| 26 {0x986c11d0, 0xf340, 0x11d4, \ |
| 27 { 0x90, 0x75, 0x00, 0x10, 0xa4, 0xe7, 0x3d, 0x9a }} |
| 28 |
| 29 /** |
| 30 * Provides information about a specific implementation class |
| 31 * @status FROZEN |
| 32 */ |
| 33 class NS_NO_VTABLE nsIClassInfo : public nsISupports { |
| 34 public: |
| 35 |
| 36 NS_DEFINE_STATIC_IID_ACCESSOR(NS_ICLASSINFO_IID) |
| 37 |
| 38 /** |
| 39 * Get an ordered list of the interface ids that instances of the class |
| 40 * promise to implement. Note that nsISupports is an implicit member |
| 41 * of any such list and need not be included. |
| 42 * |
| 43 * Should set *count = 0 and *array = null and return NS_OK if getting the |
| 44 * list is not supported. |
| 45 */ |
| 46 /* void getInterfaces (out PRUint32 count, [array, size_is (count), retval] ou
t nsIIDPtr array); */ |
| 47 NS_IMETHOD GetInterfaces(PRUint32 *count, nsIID * **array) = 0; |
| 48 |
| 49 /** |
| 50 * Get a language mapping specific helper object that may assist in using |
| 51 * objects of this class in a specific lanaguage. For instance, if asked |
| 52 * for the helper for nsIProgrammingLanguage::JAVASCRIPT this might return |
| 53 * an object that can be QI'd into the nsIXPCScriptable interface to assist |
| 54 * XPConnect in supplying JavaScript specific behavior to callers of the |
| 55 * instance object. |
| 56 * |
| 57 * see: nsIProgrammingLanguage.idl |
| 58 * |
| 59 * Should return null if no helper available for given language. |
| 60 */ |
| 61 /* nsISupports getHelperForLanguage (in PRUint32 language); */ |
| 62 NS_IMETHOD GetHelperForLanguage(PRUint32 language, nsISupports **_retval) = 0; |
| 63 |
| 64 /** |
| 65 * A contract ID through which an instance of this class can be created |
| 66 * (or accessed as a service, if |flags & SINGLETON|), or null. |
| 67 */ |
| 68 /* readonly attribute string contractID; */ |
| 69 NS_IMETHOD GetContractID(char * *aContractID) = 0; |
| 70 |
| 71 /** |
| 72 * A human readable string naming the class, or null. |
| 73 */ |
| 74 /* readonly attribute string classDescription; */ |
| 75 NS_IMETHOD GetClassDescription(char * *aClassDescription) = 0; |
| 76 |
| 77 /** |
| 78 * A class ID through which an instance of this class can be created |
| 79 * (or accessed as a service, if |flags & SINGLETON|), or null. |
| 80 */ |
| 81 /* readonly attribute nsCIDPtr classID; */ |
| 82 NS_IMETHOD GetClassID(nsCID * *aClassID) = 0; |
| 83 |
| 84 /** |
| 85 * Return language type from list in nsIProgrammingLanguage |
| 86 */ |
| 87 /* readonly attribute PRUint32 implementationLanguage; */ |
| 88 NS_IMETHOD GetImplementationLanguage(PRUint32 *aImplementationLanguage) = 0; |
| 89 |
| 90 /** |
| 91 * Bitflags for 'flags' attribute. |
| 92 */ |
| 93 enum { SINGLETON = 1U }; |
| 94 |
| 95 enum { THREADSAFE = 2U }; |
| 96 |
| 97 enum { MAIN_THREAD_ONLY = 4U }; |
| 98 |
| 99 enum { DOM_OBJECT = 8U }; |
| 100 |
| 101 enum { PLUGIN_OBJECT = 16U }; |
| 102 |
| 103 enum { EAGER_CLASSINFO = 32U }; |
| 104 |
| 105 /** |
| 106 * 'flags' attribute bitflag: whether objects of this type implement |
| 107 * nsIContent. |
| 108 */ |
| 109 enum { CONTENT_NODE = 64U }; |
| 110 |
| 111 enum { RESERVED = 2147483648U }; |
| 112 |
| 113 /* readonly attribute PRUint32 flags; */ |
| 114 NS_IMETHOD GetFlags(PRUint32 *aFlags) = 0; |
| 115 |
| 116 /** |
| 117 * Also a class ID through which an instance of this class can be created |
| 118 * (or accessed as a service, if |flags & SINGLETON|). If the class does |
| 119 * not have a CID, it should return NS_ERROR_NOT_AVAILABLE. This attribute |
| 120 * exists so C++ callers can avoid allocating and freeing a CID, as would |
| 121 * happen if they used classID. |
| 122 */ |
| 123 /* [notxpcom] readonly attribute nsCID classIDNoAlloc; */ |
| 124 NS_IMETHOD GetClassIDNoAlloc(nsCID *aClassIDNoAlloc) = 0; |
| 125 |
| 126 }; |
| 127 |
| 128 /* Use this macro when declaring classes that implement this interface. */ |
| 129 #define NS_DECL_NSICLASSINFO \ |
| 130 NS_IMETHOD GetInterfaces(PRUint32 *count, nsIID * **array); \ |
| 131 NS_IMETHOD GetHelperForLanguage(PRUint32 language, nsISupports **_retval); \ |
| 132 NS_IMETHOD GetContractID(char * *aContractID); \ |
| 133 NS_IMETHOD GetClassDescription(char * *aClassDescription); \ |
| 134 NS_IMETHOD GetClassID(nsCID * *aClassID); \ |
| 135 NS_IMETHOD GetImplementationLanguage(PRUint32 *aImplementationLanguage); \ |
| 136 NS_IMETHOD GetFlags(PRUint32 *aFlags); \ |
| 137 NS_IMETHOD GetClassIDNoAlloc(nsCID *aClassIDNoAlloc); |
| 138 |
| 139 /* Use this macro to declare functions that forward the behavior of this interfa
ce to another object. */ |
| 140 #define NS_FORWARD_NSICLASSINFO(_to) \ |
| 141 NS_IMETHOD GetInterfaces(PRUint32 *count, nsIID * **array) { return _to GetInt
erfaces(count, array); } \ |
| 142 NS_IMETHOD GetHelperForLanguage(PRUint32 language, nsISupports **_retval) { re
turn _to GetHelperForLanguage(language, _retval); } \ |
| 143 NS_IMETHOD GetContractID(char * *aContractID) { return _to GetContractID(aCont
ractID); } \ |
| 144 NS_IMETHOD GetClassDescription(char * *aClassDescription) { return _to GetClas
sDescription(aClassDescription); } \ |
| 145 NS_IMETHOD GetClassID(nsCID * *aClassID) { return _to GetClassID(aClassID); }
\ |
| 146 NS_IMETHOD GetImplementationLanguage(PRUint32 *aImplementationLanguage) { retu
rn _to GetImplementationLanguage(aImplementationLanguage); } \ |
| 147 NS_IMETHOD GetFlags(PRUint32 *aFlags) { return _to GetFlags(aFlags); } \ |
| 148 NS_IMETHOD GetClassIDNoAlloc(nsCID *aClassIDNoAlloc) { return _to GetClassIDNo
Alloc(aClassIDNoAlloc); } |
| 149 |
| 150 /* Use this macro to declare functions that forward the behavior of this interfa
ce to another object in a safe way. */ |
| 151 #define NS_FORWARD_SAFE_NSICLASSINFO(_to) \ |
| 152 NS_IMETHOD GetInterfaces(PRUint32 *count, nsIID * **array) { return !_to ? NS_
ERROR_NULL_POINTER : _to->GetInterfaces(count, array); } \ |
| 153 NS_IMETHOD GetHelperForLanguage(PRUint32 language, nsISupports **_retval) { re
turn !_to ? NS_ERROR_NULL_POINTER : _to->GetHelperForLanguage(language, _retval)
; } \ |
| 154 NS_IMETHOD GetContractID(char * *aContractID) { return !_to ? NS_ERROR_NULL_PO
INTER : _to->GetContractID(aContractID); } \ |
| 155 NS_IMETHOD GetClassDescription(char * *aClassDescription) { return !_to ? NS_E
RROR_NULL_POINTER : _to->GetClassDescription(aClassDescription); } \ |
| 156 NS_IMETHOD GetClassID(nsCID * *aClassID) { return !_to ? NS_ERROR_NULL_POINTER
: _to->GetClassID(aClassID); } \ |
| 157 NS_IMETHOD GetImplementationLanguage(PRUint32 *aImplementationLanguage) { retu
rn !_to ? NS_ERROR_NULL_POINTER : _to->GetImplementationLanguage(aImplementation
Language); } \ |
| 158 NS_IMETHOD GetFlags(PRUint32 *aFlags) { return !_to ? NS_ERROR_NULL_POINTER :
_to->GetFlags(aFlags); } \ |
| 159 NS_IMETHOD GetClassIDNoAlloc(nsCID *aClassIDNoAlloc) { return !_to ? NS_ERROR_
NULL_POINTER : _to->GetClassIDNoAlloc(aClassIDNoAlloc); } |
| 160 |
| 161 #if 0 |
| 162 /* Use the code below as a template for the implementation class for this interf
ace. */ |
| 163 |
| 164 /* Header file */ |
| 165 class nsClassInfo : public nsIClassInfo |
| 166 { |
| 167 public: |
| 168 NS_DECL_ISUPPORTS |
| 169 NS_DECL_NSICLASSINFO |
| 170 |
| 171 nsClassInfo(); |
| 172 |
| 173 private: |
| 174 ~nsClassInfo(); |
| 175 |
| 176 protected: |
| 177 /* additional members */ |
| 178 }; |
| 179 |
| 180 /* Implementation file */ |
| 181 NS_IMPL_ISUPPORTS1(nsClassInfo, nsIClassInfo) |
| 182 |
| 183 nsClassInfo::nsClassInfo() |
| 184 { |
| 185 /* member initializers and constructor code */ |
| 186 } |
| 187 |
| 188 nsClassInfo::~nsClassInfo() |
| 189 { |
| 190 /* destructor code */ |
| 191 } |
| 192 |
| 193 /* void getInterfaces (out PRUint32 count, [array, size_is (count), retval] out
nsIIDPtr array); */ |
| 194 NS_IMETHODIMP nsClassInfo::GetInterfaces(PRUint32 *count, nsIID * **array) |
| 195 { |
| 196 return NS_ERROR_NOT_IMPLEMENTED; |
| 197 } |
| 198 |
| 199 /* nsISupports getHelperForLanguage (in PRUint32 language); */ |
| 200 NS_IMETHODIMP nsClassInfo::GetHelperForLanguage(PRUint32 language, nsISupports *
*_retval) |
| 201 { |
| 202 return NS_ERROR_NOT_IMPLEMENTED; |
| 203 } |
| 204 |
| 205 /* readonly attribute string contractID; */ |
| 206 NS_IMETHODIMP nsClassInfo::GetContractID(char * *aContractID) |
| 207 { |
| 208 return NS_ERROR_NOT_IMPLEMENTED; |
| 209 } |
| 210 |
| 211 /* readonly attribute string classDescription; */ |
| 212 NS_IMETHODIMP nsClassInfo::GetClassDescription(char * *aClassDescription) |
| 213 { |
| 214 return NS_ERROR_NOT_IMPLEMENTED; |
| 215 } |
| 216 |
| 217 /* readonly attribute nsCIDPtr classID; */ |
| 218 NS_IMETHODIMP nsClassInfo::GetClassID(nsCID * *aClassID) |
| 219 { |
| 220 return NS_ERROR_NOT_IMPLEMENTED; |
| 221 } |
| 222 |
| 223 /* readonly attribute PRUint32 implementationLanguage; */ |
| 224 NS_IMETHODIMP nsClassInfo::GetImplementationLanguage(PRUint32 *aImplementationLa
nguage) |
| 225 { |
| 226 return NS_ERROR_NOT_IMPLEMENTED; |
| 227 } |
| 228 |
| 229 /* readonly attribute PRUint32 flags; */ |
| 230 NS_IMETHODIMP nsClassInfo::GetFlags(PRUint32 *aFlags) |
| 231 { |
| 232 return NS_ERROR_NOT_IMPLEMENTED; |
| 233 } |
| 234 |
| 235 /* [notxpcom] readonly attribute nsCID classIDNoAlloc; */ |
| 236 NS_IMETHODIMP nsClassInfo::GetClassIDNoAlloc(nsCID *aClassIDNoAlloc) |
| 237 { |
| 238 return NS_ERROR_NOT_IMPLEMENTED; |
| 239 } |
| 240 |
| 241 /* End of implementation class template. */ |
| 242 #endif |
| 243 |
| 244 |
| 245 #endif /* __gen_nsIClassInfo_h__ */ |
OLD | NEW |