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