source: Daodan/MinGW/include/comcat.h@ 1051

Last change on this file since 1051 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 7.0 KB
Line 
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
15extern "C"{
16#endif
17
18EXTERN_C const IID IID_IEnumGUID;
19typedef _COM_interface IEnumGUID *LPENUMGUID;
20
21#define INTERFACE IEnumGUID
22DECLARE_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
44typedef GUID CATID;
45typedef REFGUID REFCATID;
46#define CATID_NULL GUID_NULL
47#define IsEqualCATID(a, b) IsEqualGUID(a, b)
48
49typedef 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
55EXTERN_C const CATID CATID_Insertable;
56EXTERN_C const CATID CATID_Control;
57EXTERN_C const CATID CATID_Programmable;
58EXTERN_C const CATID CATID_IsShortcut;
59EXTERN_C const CATID CATID_NeverShowExt;
60EXTERN_C const CATID CATID_DocObject;
61EXTERN_C const CATID CATID_Printable;
62EXTERN_C const CATID CATID_RequiresDataPathHost;
63EXTERN_C const CATID CATID_PersistsToMoniker;
64EXTERN_C const CATID CATID_PersistsToStorage;
65EXTERN_C const CATID CATID_PersistsToStreamInit;
66EXTERN_C const CATID CATID_PersistsToStream;
67EXTERN_C const CATID CATID_PersistsToMemory;
68EXTERN_C const CATID CATID_PersistsToFile;
69EXTERN_C const CATID CATID_PersistsToPropertyBag;
70EXTERN_C const CATID CATID_InternetAware;
71EXTERN_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
81EXTERN_C const IID IID_ICatInformation;
82typedef _COM_interface ICatInformation *LPCATINFORMATION;
83
84EXTERN_C const IID IID_ICatRegister;
85typedef _COM_interface ICatRegister *LPCATREGISTER;
86
87EXTERN_C const IID IID_IEnumCATEGORYINFO;
88typedef _COM_interface IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
89
90EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr;
91
92#define INTERFACE ICatInformation
93DECLARE_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
120DECLARE_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
146EXTERN_C const IID IID_IEnumCATEGORYINFO;
147#define INTERFACE IEnumCATEGORYINFO
148DECLARE_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
Note: See TracBrowser for help on using the repository browser.