comcat.idl 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. /*
  2. * Copyright 2002 John K. Hohm
  3. * Copyright 2003 Alexandre Julliard
  4. *
  5. * This library is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU Lesser General Public
  7. * License as published by the Free Software Foundation; either
  8. * version 2.1 of the License, or (at your option) any later version.
  9. *
  10. * This library is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. * Lesser General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU Lesser General Public
  16. * License along with this library; if not, write to the Free Software
  17. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  18. */
  19. import "unknwn.idl";
  20. /*****************************************************************************
  21. * Types
  22. */
  23. typedef GUID CATID;
  24. typedef REFGUID REFCATID;
  25. cpp_quote("#define CATID_NULL GUID_NULL")
  26. cpp_quote("#define IsEqualCATID(rcatid1, rcatid2) IsEqualGUID(rcatid1, rcatid2)")
  27. /*****************************************************************************
  28. * Aliases for EnumGUID
  29. */
  30. #define IEnumCATID IEnumGUID
  31. cpp_quote("#define IEnumCATID IEnumGUID")
  32. cpp_quote("#define IID_IEnumCATID IID_IEnumGUID")
  33. cpp_quote("#define LPENUMCATID LPENUMGUID")
  34. #define IEnumCLSID IEnumGUID
  35. cpp_quote("#define IEnumCLSID IEnumGUID")
  36. cpp_quote("#define IID_IEnumCLSID IID_IEnumGUID")
  37. cpp_quote("#define LPENUMCLSID LPENUMGUID")
  38. /*****************************************************************************
  39. * IEnumGUID
  40. */
  41. [
  42. object,
  43. uuid(0002e000-0000-0000-c000-000000000046),
  44. pointer_default(unique)
  45. ]
  46. interface IEnumGUID : IUnknown
  47. {
  48. typedef [unique] IEnumGUID *LPENUMGUID;
  49. HRESULT Next(
  50. [in] ULONG celt,
  51. [out, size_is(celt), length_is(*pceltFetched)] GUID *rgelt,
  52. [out] ULONG *pceltFetched);
  53. HRESULT Skip(
  54. [in] ULONG celt);
  55. HRESULT Reset();
  56. HRESULT Clone(
  57. [out] IEnumGUID **ppenum);
  58. }
  59. /*****************************************************************************
  60. * IEnumCATEGORYINFO
  61. */
  62. [
  63. object,
  64. uuid(0002e011-0000-0000-c000-000000000046),
  65. pointer_default(unique)
  66. ]
  67. interface IEnumCATEGORYINFO : IUnknown
  68. {
  69. typedef [unique] IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
  70. typedef struct tagCATEGORYINFO
  71. {
  72. CATID catid; /* category identifier for component */
  73. LCID lcid; /* locale identifier */
  74. OLECHAR szDescription[128]; /* description of the category */
  75. } CATEGORYINFO, *LPCATEGORYINFO;
  76. HRESULT Next(
  77. [in] ULONG celt,
  78. [out, size_is(celt), length_is(*pceltFetched)] CATEGORYINFO* rgelt,
  79. [out] ULONG* pceltFetched);
  80. HRESULT Skip(
  81. [in] ULONG celt);
  82. HRESULT Reset();
  83. HRESULT Clone(
  84. [out] IEnumCATEGORYINFO** ppenum);
  85. }
  86. /*****************************************************************************
  87. * ICatInformation
  88. */
  89. [
  90. object,
  91. uuid(0002e013-0000-0000-c000-000000000046),
  92. pointer_default(unique)
  93. ]
  94. interface ICatInformation : IUnknown
  95. {
  96. typedef [unique] ICatInformation* LPCATINFORMATION;
  97. HRESULT EnumCategories(
  98. [in] LCID lcid,
  99. [out] IEnumCATEGORYINFO** ppenumCategoryInfo);
  100. HRESULT GetCategoryDesc(
  101. [in] REFCATID rcatid,
  102. [in] LCID lcid,
  103. [out] LPWSTR* pszDesc);
  104. [local]
  105. HRESULT EnumClassesOfCategories(
  106. [in] ULONG cImplemented,
  107. [in,size_is(cImplemented)] CATID rgcatidImpl[],
  108. [in] ULONG cRequired,
  109. [in,size_is(cRequired)] CATID rgcatidReq[],
  110. [out] IEnumCLSID** ppenumClsid);
  111. [call_as(EnumClassesOfCategories)]
  112. HRESULT RemoteEnumClassesOfCategories(
  113. [in] ULONG cImplemented,
  114. [in,unique,size_is(cImplemented)] CATID rgcatidImpl[],
  115. [in] ULONG cRequired,
  116. [in,unique,size_is(cRequired)] CATID rgcatidReq[],
  117. [out] IEnumCLSID** ppenumClsid);
  118. [local]
  119. HRESULT IsClassOfCategories(
  120. [in] REFCLSID rclsid,
  121. [in] ULONG cImplemented,
  122. [in,size_is(cImplemented)] CATID rgcatidImpl[],
  123. [in] ULONG cRequired,
  124. [in,size_is(cRequired)] CATID rgcatidReq[]);
  125. [call_as(IsClassOfCategories)]
  126. HRESULT RemoteIsClassOfCategories(
  127. [in] REFCLSID rclsid,
  128. [in] ULONG cImplemented,
  129. [in,unique,size_is(cImplemented)] CATID rgcatidImpl[],
  130. [in] ULONG cRequired,
  131. [in,unique,size_is(cRequired)] CATID rgcatidReq[] );
  132. HRESULT EnumImplCategoriesOfClass(
  133. [in] REFCLSID rclsid,
  134. [out] IEnumCATID** ppenumCatid);
  135. HRESULT EnumReqCategoriesOfClass(
  136. [in] REFCLSID rclsid,
  137. [out] IEnumCATID** ppenumCatid);
  138. }
  139. /*****************************************************************************
  140. * ICatRegister
  141. */
  142. [
  143. object,
  144. uuid(0002e012-0000-0000-c000-000000000046),
  145. pointer_default(unique)
  146. ]
  147. interface ICatRegister : IUnknown
  148. {
  149. typedef [unique] ICatRegister* LPCATREGISTER;
  150. HRESULT RegisterCategories(
  151. [in] ULONG cCategories,
  152. [in, size_is(cCategories)] CATEGORYINFO rgCategoryInfo[]);
  153. HRESULT UnRegisterCategories(
  154. [in] ULONG cCategories,
  155. [in, size_is(cCategories)] CATID rgcatid[]);
  156. HRESULT RegisterClassImplCategories(
  157. [in] REFCLSID rclsid,
  158. [in] ULONG cCategories,
  159. [in, size_is(cCategories)] CATID rgcatid[]);
  160. HRESULT UnRegisterClassImplCategories(
  161. [in] REFCLSID rclsid,
  162. [in] ULONG cCategories,
  163. [in, size_is(cCategories)] CATID rgcatid[]);
  164. HRESULT RegisterClassReqCategories(
  165. [in] REFCLSID rclsid,
  166. [in] ULONG cCategories,
  167. [in, size_is(cCategories)] CATID rgcatid[]);
  168. HRESULT UnRegisterClassReqCategories(
  169. [in] REFCLSID rclsid,
  170. [in] ULONG cCategories,
  171. [in, size_is(cCategories)] CATID rgcatid[]);
  172. }
  173. /*****************************************************************************
  174. * Category IDs
  175. */
  176. cpp_quote("DEFINE_GUID( CATID_Insertable, 0x40fc6ed3, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
  177. cpp_quote("DEFINE_GUID( CATID_Control, 0x40fc6ed4, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
  178. cpp_quote("DEFINE_GUID( CATID_Programmable, 0x40fc6ed5, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
  179. cpp_quote("DEFINE_GUID( CATID_IsShortcut, 0x40fc6ed6, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
  180. cpp_quote("DEFINE_GUID( CATID_NeverShowExt, 0x40fc6ed7, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
  181. cpp_quote("DEFINE_GUID( CATID_DocObject, 0x40fc6ed8, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
  182. cpp_quote("DEFINE_GUID( CATID_Printable, 0x40fc6ed9, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);")
  183. cpp_quote("DEFINE_GUID( CATID_RequiresDataPathHost, 0x0de86a50, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
  184. cpp_quote("DEFINE_GUID( CATID_PersistsToMoniker, 0x0de86a51, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
  185. cpp_quote("DEFINE_GUID( CATID_PersistsToStorage, 0x0de86a52, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
  186. cpp_quote("DEFINE_GUID( CATID_PersistsToStreamInit, 0x0de86a53, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
  187. cpp_quote("DEFINE_GUID( CATID_PersistsToStream, 0x0de86a54, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
  188. cpp_quote("DEFINE_GUID( CATID_PersistsToMemory, 0x0de86a55, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
  189. cpp_quote("DEFINE_GUID( CATID_PersistsToFile, 0x0de86a56, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
  190. cpp_quote("DEFINE_GUID( CATID_PersistsToPropertyBag, 0x0de86a57, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
  191. cpp_quote("DEFINE_GUID( CATID_InternetAware, 0x0de86a58, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);")
  192. cpp_quote("DEFINE_GUID( CATID_DesignTimeUIActivatableControl, 0xf2bb56d1, 0xdb07, 0x11d1, 0xaa, 0x6b, 0x00, 0x60, 0x97, 0xdb, 0x95, 0x39);")
  193. /* The Component Category Manager */
  194. cpp_quote("DEFINE_GUID(CLSID_StdComponentCategoriesMgr, 0x0002e005, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);")