home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / comcat.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  7KB  |  178 lines

  1. #ifndef _COMCAT_H
  2. #define _COMCAT_H
  3. #if __GNUC__ >=3
  4. #pragma GCC system_header
  5. #endif
  6.  
  7. #ifndef COM_NO_WINDOWS_H
  8. #include <windows.h>
  9. #include <ole2.h>
  10. #endif
  11.  
  12. #ifndef _RC_INVOKED
  13.  
  14. #ifdef __cplusplus
  15. extern "C"{
  16. #endif
  17.  
  18. EXTERN_C const IID IID_IEnumGUID;
  19. typedef interface IEnumGUID *LPENUMGUID;
  20.  
  21. #undef INTERFACE
  22. #define INTERFACE IEnumGUID
  23. DECLARE_INTERFACE_(IEnumGUID,IUnknown)
  24. {
  25.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  26.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  27.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  28.     STDMETHOD(Next)(THIS_ ULONG,GUID*,ULONG*) PURE;
  29.     STDMETHOD(Skip)(THIS_ ULONG) PURE;
  30.     STDMETHOD(Reset)(THIS) PURE;
  31.     STDMETHOD(Clone)(THIS_ LPENUMGUID*) PURE;
  32. };
  33. #undef INTERFACE
  34. #if (!defined (__cplusplus) || defined (CINTERFACE)) \
  35.     && defined (COBJMACROS)
  36. #define IEnumGUID_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  37. #define IEnumGUID_AddRef(p)             (p)->lpVtbl->AddRef(p)
  38. #define IEnumGUID_Release(p)            (p)->lpVtbl->Release(p)
  39. #define IEnumGUID_Next(p,a,b,c)         (p)->lpVtbl->Next(p,a,b,c)
  40. #define IEnumGUID_Skip(p,a)             (p)->lpVtbl->Skip(p,a)
  41. #define IEnumGUID_Reset(p)              (p)->lpVtbl->Reset(p)
  42. #define IEnumGUID_Clone(p,a)            (p)->lpVtbl->Clone(p,a)
  43. #endif
  44.  
  45. typedef GUID CATID;
  46. typedef REFGUID REFCATID;
  47. #define CATID_NULL GUID_NULL
  48. #define IsEqualCATID(a, b) IsEqualGUID(a, b)
  49.  
  50. typedef struct tagCATEGORYINFO {
  51.     CATID   catid;        /* category identifier for component */
  52.     LCID    lcid;        /* locale identifier */
  53.     OLECHAR szDescription[128];    /* description of the category */
  54. } CATEGORYINFO, *LPCATEGORYINFO;
  55.  
  56. EXTERN_C const CATID CATID_Insertable;
  57. EXTERN_C const CATID CATID_Control;
  58. EXTERN_C const CATID CATID_Programmable;
  59. EXTERN_C const CATID CATID_IsShortcut;
  60. EXTERN_C const CATID CATID_NeverShowExt;
  61. EXTERN_C const CATID CATID_DocObject;
  62. EXTERN_C const CATID CATID_Printable;
  63. EXTERN_C const CATID CATID_RequiresDataPathHost;
  64. EXTERN_C const CATID CATID_PersistsToMoniker;
  65. EXTERN_C const CATID CATID_PersistsToStorage;
  66. EXTERN_C const CATID CATID_PersistsToStreamInit;
  67. EXTERN_C const CATID CATID_PersistsToStream;
  68. EXTERN_C const CATID CATID_PersistsToMemory;
  69. EXTERN_C const CATID CATID_PersistsToFile;
  70. EXTERN_C const CATID CATID_PersistsToPropertyBag;
  71. EXTERN_C const CATID CATID_InternetAware;
  72. EXTERN_C const CATID CATID_DesignTimeUIActivatableControl;
  73.  
  74. #define IEnumCATID IEnumGUID
  75. #define LPENUMCATID LPENUMGUID
  76. #define IID_IEnumCATID IID_IEnumGUID
  77.  
  78. #define IEnumCLSID IEnumGUID
  79. #define LPENUMCLSID LPENUMGUID
  80. #define IID_IEnumCLSID IID_IEnumGUID
  81.  
  82. EXTERN_C const IID IID_ICatInformation;
  83. typedef interface ICatInformation *LPCATINFORMATION;
  84.  
  85. EXTERN_C const IID IID_ICatRegister;
  86. typedef interface ICatRegister *LPCATREGISTER;
  87.  
  88. EXTERN_C const IID IID_IEnumCATEGORYINFO;
  89. typedef interface IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
  90.  
  91. EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr;
  92.  
  93. #define INTERFACE ICatInformation
  94. DECLARE_INTERFACE_(ICatInformation,IUnknown)
  95. {
  96.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  97.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  98.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  99.     STDMETHOD(EnumCategories)(THIS_ LCID,LPENUMCATEGORYINFO*) PURE;
  100.     STDMETHOD(GetCategoryDesc)(THIS_ REFCATID,LCID,PWCHAR*) PURE;
  101.     STDMETHOD(EnumClassesOfCategories)(THIS_ ULONG,CATID*,ULONG,CATID*,LPENUMCLSID*) PURE;
  102.     STDMETHOD(IsClassOfCategories)(THIS_ REFCLSID,ULONG,CATID*,ULONG,CATID*) PURE;
  103.     STDMETHOD(EnumImplCategoriesOfClass)(THIS_ REFCLSID,LPENUMCATID*) PURE;
  104.     STDMETHOD(EnumReqCategoriesOfClass)(THIS_ REFCLSID,LPENUMCATID*) PURE;
  105. };
  106. #undef INTERFACE
  107. #if (!defined (__cplusplus) || defined (CINTERFACE)) \
  108.     && defined (COBJMACROS)
  109. #define ICatInformation_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  110. #define ICatInformation_AddRef(p)             (p)->lpVtbl->AddRef(p)
  111. #define ICatInformation_Release(p)            (p)->lpVtbl->Release(p)
  112. #define ICatInformation_EnumCategories(p,a,b) (p)->lpVtbl->EnumCategories(p,a,b)
  113. #define ICatInformation_GetCategoryDesc(p,a,b,c) (p)->lpVtbl->GetCategoryDesc(p,a,b,c)
  114. #define ICatInformation_EnumClassesOfCategories(p,a,b,c,d,e) (p)->lpVtbl->EnumClassesOfCategories(p,a,b,c,d,e)
  115. #define ICatInformation_IsClassOfCategories(p,a,b,c,d,e) (p)->lpVtbl->IsClassOfCategories(p,a,b,c,d,e)
  116. #define ICatInformation_EnumImplCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumImplCategoriesOfClass(p,a,b)
  117. #define ICatInformation_EnumReqCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumReqCategoriesOfClass(p,a,b)
  118. #endif
  119.  
  120. #define INTERFACE ICatRegister
  121. DECLARE_INTERFACE_(ICatRegister,IUnknown)
  122. {
  123.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  124.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  125.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  126.     STDMETHOD(RegisterCategories)(THIS_ ULONG,CATEGORYINFO*) PURE;
  127.     STDMETHOD(UnRegisterCategories)(THIS_ ULONG,CATID*) PURE;
  128.     STDMETHOD(RegisterClassImplCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
  129.     STDMETHOD(UnRegisterClassImplCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
  130.     STDMETHOD(RegisterClassReqCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
  131.     STDMETHOD(UnRegisterClassReqCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
  132. };
  133. #undef INTERFACE
  134. #if (!defined (__cplusplus) || defined (CINTERFACE)) \
  135.     && defined (COBJMACROS)
  136. #define ICatRegister_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  137. #define ICatRegister_AddRef(p)             (p)->lpVtbl->AddRef(p)
  138. #define ICatRegister_Release(p)            (p)->lpVtbl->Release(p)
  139. #define ICatRegister_RegisterCategories(p,a,b) (p)->lpVtbl->RegisterCategories(p,a,b)
  140. #define ICatRegister_UnRegisterCategories(p,a,b) (p)->lpVtbl->UnRegisterCategories(p,a,b)
  141. #define ICatRegister_RegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->RegisterClassImplCategories(p,a,b,c)
  142. #define ICatRegister_UnRegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassImplCategories(p,a,b,c)
  143. #define ICatRegister_RegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->RegisterClassReqCategories(p,a,b,c)
  144. #define ICatRegister_UnRegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassReqCategories(p,a,b,c)
  145. #endif
  146.  
  147. EXTERN_C const IID IID_IEnumCATEGORYINFO;
  148. #undef INTERFACE
  149. #define INTERFACE IEnumCATEGORYINFO
  150. DECLARE_INTERFACE_(IEnumCATEGORYINFO,IUnknown)
  151. {
  152.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  153.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  154.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  155.     STDMETHOD(Next)(THIS_ ULONG,CATEGORYINFO*,ULONG*) PURE;
  156.     STDMETHOD(Skip)(THIS_ ULONG) PURE;
  157.     STDMETHOD(Reset)(THIS) PURE;
  158.     STDMETHOD(Clone)(THIS_ LPENUMCATEGORYINFO*) PURE;
  159. };
  160. #undef INTERFACE
  161. #if (!defined (__cplusplus) || defined (CINTERFACE)) \
  162.     && defined (COBJMACROS)
  163. #define IEnumCATEGORYINFO_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  164. #define IEnumCATEGORYINFO_AddRef(p)             (p)->lpVtbl->AddRef(p)
  165. #define IEnumCATEGORYINFO_Release(p)            (p)->lpVtbl->Release(p)
  166. #define IEnumCATEGORYINFO_Next(p,a,b,c)         (p)->lpVtbl->Next(p,a,b,c)
  167. #define IEnumCATEGORYINFO_Skip(p,a)             (p)->lpVtbl->Skip(p,a)
  168. #define IEnumCATEGORYINFO_Reset(p)              (p)->lpVtbl->Reset(p)
  169. #define IEnumCATEGORYINFO_Clone(p,a)            (p)->lpVtbl->Clone(p,a)
  170. #endif
  171.  
  172. #ifdef __cplusplus
  173. }
  174. #endif
  175.  
  176. #endif /* _RC_INVOKED */
  177. #endif
  178.