PageRenderTime 47ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/gecko_api/include/nsIClassInfoImpl.h

http://firefox-mac-pdf.googlecode.com/
C Header | 400 lines | 323 code | 43 blank | 34 comment | 1 complexity | 0b96cb80480f7fbfab6610241296b778 MD5 | raw file
  1. /* ***** BEGIN LICENSE BLOCK *****
  2. * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3. *
  4. * The contents of this file are subject to the Mozilla Public License Version
  5. * 1.1 (the "License"); you may not use this file except in compliance with
  6. * the License. You may obtain a copy of the License at
  7. * http://www.mozilla.org/MPL/
  8. *
  9. * Software distributed under the License is distributed on an "AS IS" basis,
  10. * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  11. * for the specific language governing rights and limitations under the
  12. * License.
  13. *
  14. * The Original Code is XPCOM.
  15. *
  16. * The Initial Developer of the Original Code is Netscape Communications Corp.
  17. * Portions created by the Initial Developer are Copyright (C) 2001
  18. * the Initial Developer. All Rights Reserved.
  19. *
  20. * Contributor(s):
  21. *
  22. * Alternatively, the contents of this file may be used under the terms of
  23. * either the GNU General Public License Version 2 or later (the "GPL"), or
  24. * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  25. * in which case the provisions of the GPL or the LGPL are applicable instead
  26. * of those above. If you wish to allow use of your version of this file only
  27. * under the terms of either the GPL or the LGPL, and not to allow others to
  28. * use your version of this file under the terms of the MPL, indicate your
  29. * decision by deleting the provisions above and replace them with the notice
  30. * and other provisions required by the GPL or the LGPL. If you do not delete
  31. * the provisions above, a recipient may use your version of this file under
  32. * the terms of any one of the MPL, the GPL or the LGPL.
  33. *
  34. * ***** END LICENSE BLOCK ***** */
  35. #ifndef nsIClassInfoImpl_h__
  36. #define nsIClassInfoImpl_h__
  37. #include "nsIClassInfo.h"
  38. #define NS_CLASSINFO_NAME(_class) _class##_classInfoGlobal
  39. #define NS_CI_INTERFACE_GETTER_NAME(_class) _class##_GetInterfacesHelper
  40. #define NS_DECL_CI_INTERFACE_GETTER(_class) \
  41. extern NS_IMETHODIMP NS_CI_INTERFACE_GETTER_NAME(_class)(PRUint32 *, \
  42. nsIID ***);
  43. #define NS_DECL_CLASSINFO(_class) \
  44. NS_DECL_CI_INTERFACE_GETTER(_class) \
  45. nsIClassInfo *NS_CLASSINFO_NAME(_class);
  46. #define NS_IMPL_QUERY_CLASSINFO(_class) \
  47. if ( aIID.Equals(NS_GET_IID(nsIClassInfo)) ) { \
  48. extern nsIClassInfo *NS_CLASSINFO_NAME(_class); \
  49. foundInterface = static_cast<nsIClassInfo*>(NS_CLASSINFO_NAME(_class)); \
  50. } else
  51. #define NS_CLASSINFO_HELPER_BEGIN(_class, _c) \
  52. NS_IMETHODIMP \
  53. NS_CI_INTERFACE_GETTER_NAME(_class)(PRUint32 *count, nsIID ***array) \
  54. { \
  55. *count = _c; \
  56. *array = (nsIID **)nsMemory::Alloc(sizeof (nsIID *) * _c);
  57. #define NS_CLASSINFO_HELPER_ENTRY(_i, _interface) \
  58. (*array)[_i] = (nsIID *)nsMemory::Clone(&NS_GET_IID(_interface), \
  59. sizeof(nsIID));
  60. #define NS_CLASSINFO_HELPER_END \
  61. return NS_OK; \
  62. }
  63. #define NS_IMPL_CI_INTERFACE_GETTER1(_class, _interface) \
  64. NS_CLASSINFO_HELPER_BEGIN(_class, 1) \
  65. NS_CLASSINFO_HELPER_ENTRY(0, _interface) \
  66. NS_CLASSINFO_HELPER_END
  67. #define NS_IMPL_QUERY_INTERFACE1_CI(_class, _i1) \
  68. NS_INTERFACE_MAP_BEGIN(_class) \
  69. NS_INTERFACE_MAP_ENTRY(_i1) \
  70. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
  71. NS_IMPL_QUERY_CLASSINFO(_class) \
  72. NS_INTERFACE_MAP_END
  73. #define NS_IMPL_ISUPPORTS1_CI(_class, _interface) \
  74. NS_IMPL_ADDREF(_class) \
  75. NS_IMPL_RELEASE(_class) \
  76. NS_IMPL_QUERY_INTERFACE1_CI(_class, _interface) \
  77. NS_IMPL_CI_INTERFACE_GETTER1(_class, _interface)
  78. #define NS_IMPL_CI_INTERFACE_GETTER2(_class, _i1, _i2) \
  79. NS_CLASSINFO_HELPER_BEGIN(_class, 2) \
  80. NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
  81. NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
  82. NS_CLASSINFO_HELPER_END
  83. #define NS_IMPL_QUERY_INTERFACE2_CI(_class, _i1, _i2) \
  84. NS_INTERFACE_MAP_BEGIN(_class) \
  85. NS_INTERFACE_MAP_ENTRY(_i1) \
  86. NS_INTERFACE_MAP_ENTRY(_i2) \
  87. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
  88. NS_IMPL_QUERY_CLASSINFO(_class) \
  89. NS_INTERFACE_MAP_END
  90. #define NS_IMPL_ISUPPORTS2_CI(_class, _i1, _i2) \
  91. NS_IMPL_ADDREF(_class) \
  92. NS_IMPL_RELEASE(_class) \
  93. NS_IMPL_QUERY_INTERFACE2_CI(_class, _i1, _i2) \
  94. NS_IMPL_CI_INTERFACE_GETTER2(_class, _i1, _i2)
  95. #define NS_IMPL_CI_INTERFACE_GETTER3(_class, _i1, _i2, _i3) \
  96. NS_CLASSINFO_HELPER_BEGIN(_class, 3) \
  97. NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
  98. NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
  99. NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
  100. NS_CLASSINFO_HELPER_END
  101. #define NS_IMPL_QUERY_INTERFACE3_CI(_class, _i1, _i2, _i3) \
  102. NS_INTERFACE_MAP_BEGIN(_class) \
  103. NS_INTERFACE_MAP_ENTRY(_i1) \
  104. NS_INTERFACE_MAP_ENTRY(_i2) \
  105. NS_INTERFACE_MAP_ENTRY(_i3) \
  106. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
  107. NS_IMPL_QUERY_CLASSINFO(_class) \
  108. NS_INTERFACE_MAP_END
  109. #define NS_IMPL_ISUPPORTS3_CI(_class, _i1, _i2, _i3) \
  110. NS_IMPL_ADDREF(_class) \
  111. NS_IMPL_RELEASE(_class) \
  112. NS_IMPL_QUERY_INTERFACE3_CI(_class, _i1, _i2, _i3) \
  113. NS_IMPL_CI_INTERFACE_GETTER3(_class, _i1, _i2, _i3)
  114. #define NS_IMPL_CI_INTERFACE_GETTER4(_class, _i1, _i2, _i3, _i4) \
  115. NS_CLASSINFO_HELPER_BEGIN(_class, 4) \
  116. NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
  117. NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
  118. NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
  119. NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
  120. NS_CLASSINFO_HELPER_END
  121. #define NS_IMPL_QUERY_INTERFACE4_CI(_class, _i1, _i2, _i3, _i4) \
  122. NS_INTERFACE_MAP_BEGIN(_class) \
  123. NS_INTERFACE_MAP_ENTRY(_i1) \
  124. NS_INTERFACE_MAP_ENTRY(_i2) \
  125. NS_INTERFACE_MAP_ENTRY(_i3) \
  126. NS_INTERFACE_MAP_ENTRY(_i4) \
  127. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
  128. NS_IMPL_QUERY_CLASSINFO(_class) \
  129. NS_INTERFACE_MAP_END
  130. #define NS_IMPL_ISUPPORTS4_CI(_class, _i1, _i2, _i3, _i4) \
  131. NS_IMPL_ADDREF(_class) \
  132. NS_IMPL_RELEASE(_class) \
  133. NS_IMPL_QUERY_INTERFACE4_CI(_class, _i1, _i2, _i3, _i4) \
  134. NS_IMPL_CI_INTERFACE_GETTER4(_class, _i1, _i2, _i3, _i4)
  135. #define NS_IMPL_CI_INTERFACE_GETTER5(_class, _i1, _i2, _i3, _i4, _i5) \
  136. NS_CLASSINFO_HELPER_BEGIN(_class, 5) \
  137. NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
  138. NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
  139. NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
  140. NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
  141. NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
  142. NS_CLASSINFO_HELPER_END
  143. #define NS_IMPL_QUERY_INTERFACE5_CI(_class, _i1, _i2, _i3, _i4, _i5) \
  144. NS_INTERFACE_MAP_BEGIN(_class) \
  145. NS_INTERFACE_MAP_ENTRY(_i1) \
  146. NS_INTERFACE_MAP_ENTRY(_i2) \
  147. NS_INTERFACE_MAP_ENTRY(_i3) \
  148. NS_INTERFACE_MAP_ENTRY(_i4) \
  149. NS_INTERFACE_MAP_ENTRY(_i5) \
  150. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
  151. NS_IMPL_QUERY_CLASSINFO(_class) \
  152. NS_INTERFACE_MAP_END
  153. #define NS_IMPL_ISUPPORTS5_CI(_class, _i1, _i2, _i3, _i4, _i5) \
  154. NS_IMPL_ADDREF(_class) \
  155. NS_IMPL_RELEASE(_class) \
  156. NS_IMPL_QUERY_INTERFACE5_CI(_class, _i1, _i2, _i3, _i4, _i5) \
  157. NS_IMPL_CI_INTERFACE_GETTER5(_class, _i1, _i2, _i3, _i4, _i5)
  158. #define NS_IMPL_CI_INTERFACE_GETTER6(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
  159. NS_CLASSINFO_HELPER_BEGIN(_class, 6) \
  160. NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
  161. NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
  162. NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
  163. NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
  164. NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
  165. NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
  166. NS_CLASSINFO_HELPER_END
  167. #define NS_IMPL_QUERY_INTERFACE6_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
  168. NS_INTERFACE_MAP_BEGIN(_class) \
  169. NS_INTERFACE_MAP_ENTRY(_i1) \
  170. NS_INTERFACE_MAP_ENTRY(_i2) \
  171. NS_INTERFACE_MAP_ENTRY(_i3) \
  172. NS_INTERFACE_MAP_ENTRY(_i4) \
  173. NS_INTERFACE_MAP_ENTRY(_i5) \
  174. NS_INTERFACE_MAP_ENTRY(_i6) \
  175. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
  176. NS_IMPL_QUERY_CLASSINFO(_class) \
  177. NS_INTERFACE_MAP_END
  178. #define NS_IMPL_ISUPPORTS6_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
  179. NS_IMPL_ADDREF(_class) \
  180. NS_IMPL_RELEASE(_class) \
  181. NS_IMPL_QUERY_INTERFACE6_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
  182. NS_IMPL_CI_INTERFACE_GETTER6(_class, _i1, _i2, _i3, _i4, _i5, _i6)
  183. #define NS_IMPL_CI_INTERFACE_GETTER7(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
  184. _i7) \
  185. NS_CLASSINFO_HELPER_BEGIN(_class, 7) \
  186. NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
  187. NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
  188. NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
  189. NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
  190. NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
  191. NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
  192. NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
  193. NS_CLASSINFO_HELPER_END
  194. #define NS_IMPL_QUERY_INTERFACE7_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
  195. _i7) \
  196. NS_INTERFACE_MAP_BEGIN(_class) \
  197. NS_INTERFACE_MAP_ENTRY(_i1) \
  198. NS_INTERFACE_MAP_ENTRY(_i2) \
  199. NS_INTERFACE_MAP_ENTRY(_i3) \
  200. NS_INTERFACE_MAP_ENTRY(_i4) \
  201. NS_INTERFACE_MAP_ENTRY(_i5) \
  202. NS_INTERFACE_MAP_ENTRY(_i6) \
  203. NS_INTERFACE_MAP_ENTRY(_i7) \
  204. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
  205. NS_IMPL_QUERY_CLASSINFO(_class) \
  206. NS_INTERFACE_MAP_END
  207. #define NS_IMPL_ISUPPORTS7_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7) \
  208. NS_IMPL_ADDREF(_class) \
  209. NS_IMPL_RELEASE(_class) \
  210. NS_IMPL_QUERY_INTERFACE7_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7) \
  211. NS_IMPL_CI_INTERFACE_GETTER7(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7)
  212. #define NS_IMPL_CI_INTERFACE_GETTER8(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
  213. _i7, _i8) \
  214. NS_CLASSINFO_HELPER_BEGIN(_class, 8) \
  215. NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
  216. NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
  217. NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
  218. NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
  219. NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
  220. NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
  221. NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
  222. NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
  223. NS_CLASSINFO_HELPER_END
  224. #define NS_IMPL_QUERY_INTERFACE8_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
  225. _i7, _i8) \
  226. NS_INTERFACE_MAP_BEGIN(_class) \
  227. NS_INTERFACE_MAP_ENTRY(_i1) \
  228. NS_INTERFACE_MAP_ENTRY(_i2) \
  229. NS_INTERFACE_MAP_ENTRY(_i3) \
  230. NS_INTERFACE_MAP_ENTRY(_i4) \
  231. NS_INTERFACE_MAP_ENTRY(_i5) \
  232. NS_INTERFACE_MAP_ENTRY(_i6) \
  233. NS_INTERFACE_MAP_ENTRY(_i7) \
  234. NS_INTERFACE_MAP_ENTRY(_i8) \
  235. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
  236. NS_IMPL_QUERY_CLASSINFO(_class) \
  237. NS_INTERFACE_MAP_END
  238. #define NS_IMPL_ISUPPORTS8_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8) \
  239. NS_IMPL_ADDREF(_class) \
  240. NS_IMPL_RELEASE(_class) \
  241. NS_IMPL_QUERY_INTERFACE8_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8) \
  242. NS_IMPL_CI_INTERFACE_GETTER8(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8)
  243. #define NS_IMPL_CI_INTERFACE_GETTER9(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
  244. _i7, _i8, _i9) \
  245. NS_CLASSINFO_HELPER_BEGIN(_class, 9) \
  246. NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
  247. NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
  248. NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
  249. NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
  250. NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
  251. NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
  252. NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
  253. NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
  254. NS_CLASSINFO_HELPER_ENTRY(8, _i9) \
  255. NS_CLASSINFO_HELPER_END
  256. #define NS_IMPL_QUERY_INTERFACE9_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
  257. _i7, _i8, _i9) \
  258. NS_INTERFACE_MAP_BEGIN(_class) \
  259. NS_INTERFACE_MAP_ENTRY(_i1) \
  260. NS_INTERFACE_MAP_ENTRY(_i2) \
  261. NS_INTERFACE_MAP_ENTRY(_i3) \
  262. NS_INTERFACE_MAP_ENTRY(_i4) \
  263. NS_INTERFACE_MAP_ENTRY(_i5) \
  264. NS_INTERFACE_MAP_ENTRY(_i6) \
  265. NS_INTERFACE_MAP_ENTRY(_i7) \
  266. NS_INTERFACE_MAP_ENTRY(_i8) \
  267. NS_INTERFACE_MAP_ENTRY(_i9) \
  268. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
  269. NS_IMPL_QUERY_CLASSINFO(_class) \
  270. NS_INTERFACE_MAP_END
  271. #define NS_IMPL_ISUPPORTS9_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
  272. _i8, _i9) \
  273. NS_IMPL_ADDREF(_class) \
  274. NS_IMPL_RELEASE(_class) \
  275. NS_IMPL_QUERY_INTERFACE9_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
  276. _i8, _i9) \
  277. NS_IMPL_CI_INTERFACE_GETTER9(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
  278. _i8, _i9)
  279. #define NS_IMPL_CI_INTERFACE_GETTER10(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
  280. _i7, _i8, _i9, _i10) \
  281. NS_CLASSINFO_HELPER_BEGIN(_class, 10) \
  282. NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
  283. NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
  284. NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
  285. NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
  286. NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
  287. NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
  288. NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
  289. NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
  290. NS_CLASSINFO_HELPER_ENTRY(8, _i9) \
  291. NS_CLASSINFO_HELPER_ENTRY(9, _i10) \
  292. NS_CLASSINFO_HELPER_END
  293. #define NS_IMPL_CI_INTERFACE_GETTER11(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
  294. _i7, _i8, _i9, _i10, _i11) \
  295. NS_CLASSINFO_HELPER_BEGIN(_class, 11) \
  296. NS_CLASSINFO_HELPER_ENTRY(0, _i1) \
  297. NS_CLASSINFO_HELPER_ENTRY(1, _i2) \
  298. NS_CLASSINFO_HELPER_ENTRY(2, _i3) \
  299. NS_CLASSINFO_HELPER_ENTRY(3, _i4) \
  300. NS_CLASSINFO_HELPER_ENTRY(4, _i5) \
  301. NS_CLASSINFO_HELPER_ENTRY(5, _i6) \
  302. NS_CLASSINFO_HELPER_ENTRY(6, _i7) \
  303. NS_CLASSINFO_HELPER_ENTRY(7, _i8) \
  304. NS_CLASSINFO_HELPER_ENTRY(8, _i9) \
  305. NS_CLASSINFO_HELPER_ENTRY(9, _i10) \
  306. NS_CLASSINFO_HELPER_ENTRY(10, _i11) \
  307. NS_CLASSINFO_HELPER_END
  308. #define NS_IMPL_QUERY_INTERFACE10_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
  309. _i7, _i8, _i9, _i10) \
  310. NS_INTERFACE_MAP_BEGIN(_class) \
  311. NS_INTERFACE_MAP_ENTRY(_i1) \
  312. NS_INTERFACE_MAP_ENTRY(_i2) \
  313. NS_INTERFACE_MAP_ENTRY(_i3) \
  314. NS_INTERFACE_MAP_ENTRY(_i4) \
  315. NS_INTERFACE_MAP_ENTRY(_i5) \
  316. NS_INTERFACE_MAP_ENTRY(_i6) \
  317. NS_INTERFACE_MAP_ENTRY(_i7) \
  318. NS_INTERFACE_MAP_ENTRY(_i8) \
  319. NS_INTERFACE_MAP_ENTRY(_i9) \
  320. NS_INTERFACE_MAP_ENTRY(_i10) \
  321. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
  322. NS_IMPL_QUERY_CLASSINFO(_class) \
  323. NS_INTERFACE_MAP_END
  324. #define NS_IMPL_QUERY_INTERFACE11_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, \
  325. _i7, _i8, _i9, _i10, _i11) \
  326. NS_INTERFACE_MAP_BEGIN(_class) \
  327. NS_INTERFACE_MAP_ENTRY(_i1) \
  328. NS_INTERFACE_MAP_ENTRY(_i2) \
  329. NS_INTERFACE_MAP_ENTRY(_i3) \
  330. NS_INTERFACE_MAP_ENTRY(_i4) \
  331. NS_INTERFACE_MAP_ENTRY(_i5) \
  332. NS_INTERFACE_MAP_ENTRY(_i6) \
  333. NS_INTERFACE_MAP_ENTRY(_i7) \
  334. NS_INTERFACE_MAP_ENTRY(_i8) \
  335. NS_INTERFACE_MAP_ENTRY(_i9) \
  336. NS_INTERFACE_MAP_ENTRY(_i10) \
  337. NS_INTERFACE_MAP_ENTRY(_i11) \
  338. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _i1) \
  339. NS_IMPL_QUERY_CLASSINFO(_class) \
  340. NS_INTERFACE_MAP_END
  341. #define NS_IMPL_ISUPPORTS10_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
  342. _i8, _i9, _i10) \
  343. NS_IMPL_ADDREF(_class) \
  344. NS_IMPL_RELEASE(_class) \
  345. NS_IMPL_QUERY_INTERFACE10_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
  346. _i8, _i9, _i10) \
  347. NS_IMPL_CI_INTERFACE_GETTER10(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
  348. _i8, _i9, _i10)
  349. #define NS_IMPL_ISUPPORTS11_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
  350. _i8, _i9, _i10, _i11) \
  351. NS_IMPL_ADDREF(_class) \
  352. NS_IMPL_RELEASE(_class) \
  353. NS_IMPL_QUERY_INTERFACE11_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
  354. _i8, _i9, _i10, _i11) \
  355. NS_IMPL_CI_INTERFACE_GETTER11(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, \
  356. _i8, _i9, _i10, _i11)
  357. #endif // nsIClassInfoImpl_h__