|
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 |