OSDN Git Service

Prepare environment for Earnie's tools.
[mingw/mingw-org-wsl.git] / w32api / include / comcat.h
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