3 * @copy 2012 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #pragma GCC system_header
28 #ifndef COM_NO_WINDOWS_H
39 EXTERN_C const IID IID_IEnumGUID;
40 typedef _COM_interface IEnumGUID *LPENUMGUID;
42 #define INTERFACE IEnumGUID
43 DECLARE_INTERFACE_(IEnumGUID,IUnknown)
45 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
46 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
47 STDMETHOD_(ULONG,Release)(THIS) PURE;
48 STDMETHOD(Next)(THIS_ ULONG,GUID*,ULONG*) PURE;
49 STDMETHOD(Skip)(THIS_ ULONG) PURE;
50 STDMETHOD(Reset)(THIS) PURE;
51 STDMETHOD(Clone)(THIS_ LPENUMGUID*) PURE;
54 #if (!defined (__cplusplus) || defined (CINTERFACE)) \
55 && defined (COBJMACROS)
56 #define IEnumGUID_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
57 #define IEnumGUID_AddRef(p) (p)->lpVtbl->AddRef(p)
58 #define IEnumGUID_Release(p) (p)->lpVtbl->Release(p)
59 #define IEnumGUID_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
60 #define IEnumGUID_Skip(p,a) (p)->lpVtbl->Skip(p,a)
61 #define IEnumGUID_Reset(p) (p)->lpVtbl->Reset(p)
62 #define IEnumGUID_Clone(p,a) (p)->lpVtbl->Clone(p,a)
66 typedef REFGUID REFCATID;
67 #define CATID_NULL GUID_NULL
68 #define IsEqualCATID(a, b) IsEqualGUID(a, b)
70 typedef struct tagCATEGORYINFO {
71 CATID catid; /* category identifier for component */
72 LCID lcid; /* locale identifier */
73 OLECHAR szDescription[128]; /* description of the category */
74 } CATEGORYINFO, *LPCATEGORYINFO;
76 EXTERN_C const CATID CATID_Insertable;
77 EXTERN_C const CATID CATID_Control;
78 EXTERN_C const CATID CATID_Programmable;
79 EXTERN_C const CATID CATID_IsShortcut;
80 EXTERN_C const CATID CATID_NeverShowExt;
81 EXTERN_C const CATID CATID_DocObject;
82 EXTERN_C const CATID CATID_Printable;
83 EXTERN_C const CATID CATID_RequiresDataPathHost;
84 EXTERN_C const CATID CATID_PersistsToMoniker;
85 EXTERN_C const CATID CATID_PersistsToStorage;
86 EXTERN_C const CATID CATID_PersistsToStreamInit;
87 EXTERN_C const CATID CATID_PersistsToStream;
88 EXTERN_C const CATID CATID_PersistsToMemory;
89 EXTERN_C const CATID CATID_PersistsToFile;
90 EXTERN_C const CATID CATID_PersistsToPropertyBag;
91 EXTERN_C const CATID CATID_InternetAware;
92 EXTERN_C const CATID CATID_DesignTimeUIActivatableControl;
94 #define IEnumCATID IEnumGUID
95 #define LPENUMCATID LPENUMGUID
96 #define IID_IEnumCATID IID_IEnumGUID
98 #define IEnumCLSID IEnumGUID
99 #define LPENUMCLSID LPENUMGUID
100 #define IID_IEnumCLSID IID_IEnumGUID
102 EXTERN_C const IID IID_ICatInformation;
103 typedef _COM_interface ICatInformation *LPCATINFORMATION;
105 EXTERN_C const IID IID_ICatRegister;
106 typedef _COM_interface ICatRegister *LPCATREGISTER;
108 EXTERN_C const IID IID_IEnumCATEGORYINFO;
109 typedef _COM_interface IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
111 EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr;
113 #define INTERFACE ICatInformation
114 DECLARE_INTERFACE_(ICatInformation,IUnknown)
116 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
117 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
118 STDMETHOD_(ULONG,Release)(THIS) PURE;
119 STDMETHOD(EnumCategories)(THIS_ LCID,LPENUMCATEGORYINFO*) PURE;
120 STDMETHOD(GetCategoryDesc)(THIS_ REFCATID,LCID,PWCHAR*) PURE;
121 STDMETHOD(EnumClassesOfCategories)(THIS_ ULONG,CATID*,ULONG,CATID*,LPENUMCLSID*) PURE;
122 STDMETHOD(IsClassOfCategories)(THIS_ REFCLSID,ULONG,CATID*,ULONG,CATID*) PURE;
123 STDMETHOD(EnumImplCategoriesOfClass)(THIS_ REFCLSID,LPENUMCATID*) PURE;
124 STDMETHOD(EnumReqCategoriesOfClass)(THIS_ REFCLSID,LPENUMCATID*) PURE;
127 #if (!defined (__cplusplus) || defined (CINTERFACE)) \
128 && defined (COBJMACROS)
129 #define ICatInformation_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
130 #define ICatInformation_AddRef(p) (p)->lpVtbl->AddRef(p)
131 #define ICatInformation_Release(p) (p)->lpVtbl->Release(p)
132 #define ICatInformation_EnumCategories(p,a,b) (p)->lpVtbl->EnumCategories(p,a,b)
133 #define ICatInformation_GetCategoryDesc(p,a,b,c) (p)->lpVtbl->GetCategoryDesc(p,a,b,c)
134 #define ICatInformation_EnumClassesOfCategories(p,a,b,c,d,e) (p)->lpVtbl->EnumClassesOfCategories(p,a,b,c,d,e)
135 #define ICatInformation_IsClassOfCategories(p,a,b,c,d,e) (p)->lpVtbl->IsClassOfCategories(p,a,b,c,d,e)
136 #define ICatInformation_EnumImplCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumImplCategoriesOfClass(p,a,b)
137 #define ICatInformation_EnumReqCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumReqCategoriesOfClass(p,a,b)
140 #define INTERFACE ICatRegister
141 DECLARE_INTERFACE_(ICatRegister,IUnknown)
143 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
144 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
145 STDMETHOD_(ULONG,Release)(THIS) PURE;
146 STDMETHOD(RegisterCategories)(THIS_ ULONG,CATEGORYINFO*) PURE;
147 STDMETHOD(UnRegisterCategories)(THIS_ ULONG,CATID*) PURE;
148 STDMETHOD(RegisterClassImplCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
149 STDMETHOD(UnRegisterClassImplCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
150 STDMETHOD(RegisterClassReqCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
151 STDMETHOD(UnRegisterClassReqCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
154 #if (!defined (__cplusplus) || defined (CINTERFACE)) \
155 && defined (COBJMACROS)
156 #define ICatRegister_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
157 #define ICatRegister_AddRef(p) (p)->lpVtbl->AddRef(p)
158 #define ICatRegister_Release(p) (p)->lpVtbl->Release(p)
159 #define ICatRegister_RegisterCategories(p,a,b) (p)->lpVtbl->RegisterCategories(p,a,b)
160 #define ICatRegister_UnRegisterCategories(p,a,b) (p)->lpVtbl->UnRegisterCategories(p,a,b)
161 #define ICatRegister_RegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->RegisterClassImplCategories(p,a,b,c)
162 #define ICatRegister_UnRegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassImplCategories(p,a,b,c)
163 #define ICatRegister_RegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->RegisterClassReqCategories(p,a,b,c)
164 #define ICatRegister_UnRegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassReqCategories(p,a,b,c)
167 EXTERN_C const IID IID_IEnumCATEGORYINFO;
168 #define INTERFACE IEnumCATEGORYINFO
169 DECLARE_INTERFACE_(IEnumCATEGORYINFO,IUnknown)
171 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
172 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
173 STDMETHOD_(ULONG,Release)(THIS) PURE;
174 STDMETHOD(Next)(THIS_ ULONG,CATEGORYINFO*,ULONG*) PURE;
175 STDMETHOD(Skip)(THIS_ ULONG) PURE;
176 STDMETHOD(Reset)(THIS) PURE;
177 STDMETHOD(Clone)(THIS_ LPENUMCATEGORYINFO*) PURE;
180 #if (!defined (__cplusplus) || defined (CINTERFACE)) \
181 && defined (COBJMACROS)
182 #define IEnumCATEGORYINFO_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
183 #define IEnumCATEGORYINFO_AddRef(p) (p)->lpVtbl->AddRef(p)
184 #define IEnumCATEGORYINFO_Release(p) (p)->lpVtbl->Release(p)
185 #define IEnumCATEGORYINFO_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
186 #define IEnumCATEGORYINFO_Skip(p,a) (p)->lpVtbl->Skip(p,a)
187 #define IEnumCATEGORYINFO_Reset(p) (p)->lpVtbl->Reset(p)
188 #define IEnumCATEGORYINFO_Clone(p,a) (p)->lpVtbl->Clone(p,a)
195 #endif /* _RC_INVOKED */