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