- better support for non-blocking COMM and socket read/writes:
[wine] / include / comcat.h
1 /*** Autogenerated by WIDL 0.1 from comcat.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
4
5 #ifndef __WIDL_COMCAT_H
6 #define __WIDL_COMCAT_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <unknwn.h>
11 typedef GUID CATID;
12
13 typedef REFGUID REFCATID;
14
15 #define CATID_NULL GUID_NULL
16 #define IsEqualCATID(rcatid1, rcatid2) IsEqualGUID(rcatid1, rcatid2)
17 #define IEnumCATID IEnumGUID
18 #define IID_IEnumCATID IID_IEnumGUID
19 #define LPENUMCATID LPENUMGUID
20 #define IEnumCLSID IEnumGUID
21 #define IID_IEnumCLSID IID_IEnumGUID
22 #define LPENUMCLSID LPENUMGUID
23 #ifndef __IEnumGUID_FWD_DEFINED__
24 #define __IEnumGUID_FWD_DEFINED__
25 typedef struct IEnumGUID IEnumGUID;
26 #endif
27
28 typedef IEnumGUID *LPENUMGUID;
29
30 /*****************************************************************************
31  * IEnumGUID interface
32  */
33 #ifndef __IEnumGUID_INTERFACE_DEFINED__
34 #define __IEnumGUID_INTERFACE_DEFINED__
35
36 DEFINE_GUID(IID_IEnumGUID, 0x0002e000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
37 #if defined(__cplusplus) && !defined(CINTERFACE)
38 struct IEnumGUID : public IUnknown
39 {
40     virtual HRESULT STDMETHODCALLTYPE Next(
41         ULONG celt,
42         GUID* rgelt,
43         ULONG* pceltFetched) = 0;
44
45     virtual HRESULT STDMETHODCALLTYPE Skip(
46         ULONG celt) = 0;
47
48     virtual HRESULT STDMETHODCALLTYPE Reset(
49         ) = 0;
50
51     virtual HRESULT STDMETHODCALLTYPE Clone(
52         IEnumGUID** ppenum) = 0;
53
54 };
55 #else
56 typedef struct IEnumGUIDVtbl IEnumGUIDVtbl;
57 struct IEnumGUID {
58     const IEnumGUIDVtbl* lpVtbl;
59 };
60 struct IEnumGUIDVtbl {
61     ICOM_MSVTABLE_COMPAT_FIELDS
62
63     /*** IUnknown methods ***/
64     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
65         IEnumGUID* This,
66         REFIID riid,
67         void** ppvObject);
68
69     ULONG (STDMETHODCALLTYPE *AddRef)(
70         IEnumGUID* This);
71
72     ULONG (STDMETHODCALLTYPE *Release)(
73         IEnumGUID* This);
74
75     /*** IEnumGUID methods ***/
76     HRESULT (STDMETHODCALLTYPE *Next)(
77         IEnumGUID* This,
78         ULONG celt,
79         GUID* rgelt,
80         ULONG* pceltFetched);
81
82     HRESULT (STDMETHODCALLTYPE *Skip)(
83         IEnumGUID* This,
84         ULONG celt);
85
86     HRESULT (STDMETHODCALLTYPE *Reset)(
87         IEnumGUID* This);
88
89     HRESULT (STDMETHODCALLTYPE *Clone)(
90         IEnumGUID* This,
91         IEnumGUID** ppenum);
92
93 };
94
95 #ifdef COBJMACROS
96 /*** IUnknown methods ***/
97 #define IEnumGUID_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
98 #define IEnumGUID_AddRef(p) (p)->lpVtbl->AddRef(p)
99 #define IEnumGUID_Release(p) (p)->lpVtbl->Release(p)
100 /*** IEnumGUID methods ***/
101 #define IEnumGUID_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
102 #define IEnumGUID_Skip(p,a) (p)->lpVtbl->Skip(p,a)
103 #define IEnumGUID_Reset(p) (p)->lpVtbl->Reset(p)
104 #define IEnumGUID_Clone(p,a) (p)->lpVtbl->Clone(p,a)
105 #endif
106
107 #endif
108
109 #define IEnumGUID_METHODS \
110     ICOM_MSVTABLE_COMPAT_FIELDS \
111     /*** IUnknown methods ***/ \
112     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
113     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
114     STDMETHOD_(ULONG,Release)(THIS) PURE; \
115     /*** IEnumGUID methods ***/ \
116     STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, GUID* rgelt, ULONG* pceltFetched) PURE; \
117     STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
118     STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
119     STDMETHOD_(HRESULT,Clone)(THIS_ IEnumGUID** ppenum) PURE;
120
121 HRESULT CALLBACK IEnumGUID_Next_Proxy(
122     IEnumGUID* This,
123     ULONG celt,
124     GUID* rgelt,
125     ULONG* pceltFetched);
126 void __RPC_STUB IEnumGUID_Next_Stub(
127     struct IRpcStubBuffer* This,
128     struct IRpcChannelBuffer* pRpcChannelBuffer,
129     PRPC_MESSAGE pRpcMessage,
130     DWORD* pdwStubPhase);
131 HRESULT CALLBACK IEnumGUID_Skip_Proxy(
132     IEnumGUID* This,
133     ULONG celt);
134 void __RPC_STUB IEnumGUID_Skip_Stub(
135     struct IRpcStubBuffer* This,
136     struct IRpcChannelBuffer* pRpcChannelBuffer,
137     PRPC_MESSAGE pRpcMessage,
138     DWORD* pdwStubPhase);
139 HRESULT CALLBACK IEnumGUID_Reset_Proxy(
140     IEnumGUID* This);
141 void __RPC_STUB IEnumGUID_Reset_Stub(
142     struct IRpcStubBuffer* This,
143     struct IRpcChannelBuffer* pRpcChannelBuffer,
144     PRPC_MESSAGE pRpcMessage,
145     DWORD* pdwStubPhase);
146 HRESULT CALLBACK IEnumGUID_Clone_Proxy(
147     IEnumGUID* This,
148     IEnumGUID** ppenum);
149 void __RPC_STUB IEnumGUID_Clone_Stub(
150     struct IRpcStubBuffer* This,
151     struct IRpcChannelBuffer* pRpcChannelBuffer,
152     PRPC_MESSAGE pRpcMessage,
153     DWORD* pdwStubPhase);
154
155 #endif  /* __IEnumGUID_INTERFACE_DEFINED__ */
156
157 #ifndef __IEnumCATEGORYINFO_FWD_DEFINED__
158 #define __IEnumCATEGORYINFO_FWD_DEFINED__
159 typedef struct IEnumCATEGORYINFO IEnumCATEGORYINFO;
160 #endif
161
162 typedef IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
163
164 typedef struct tagCATEGORYINFO {
165     CATID catid;
166     LCID lcid;
167     OLECHAR szDescription[128];
168 } CATEGORYINFO, *LPCATEGORYINFO;
169
170 /*****************************************************************************
171  * IEnumCATEGORYINFO interface
172  */
173 #ifndef __IEnumCATEGORYINFO_INTERFACE_DEFINED__
174 #define __IEnumCATEGORYINFO_INTERFACE_DEFINED__
175
176 DEFINE_GUID(IID_IEnumCATEGORYINFO, 0x0002e011, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
177 #if defined(__cplusplus) && !defined(CINTERFACE)
178 struct IEnumCATEGORYINFO : public IUnknown
179 {
180     virtual HRESULT STDMETHODCALLTYPE Next(
181         ULONG celt,
182         CATEGORYINFO* rgelt,
183         ULONG* pceltFetched) = 0;
184
185     virtual HRESULT STDMETHODCALLTYPE Skip(
186         ULONG celt) = 0;
187
188     virtual HRESULT STDMETHODCALLTYPE Reset(
189         ) = 0;
190
191     virtual HRESULT STDMETHODCALLTYPE Clone(
192         IEnumCATEGORYINFO** ppenum) = 0;
193
194 };
195 #else
196 typedef struct IEnumCATEGORYINFOVtbl IEnumCATEGORYINFOVtbl;
197 struct IEnumCATEGORYINFO {
198     const IEnumCATEGORYINFOVtbl* lpVtbl;
199 };
200 struct IEnumCATEGORYINFOVtbl {
201     ICOM_MSVTABLE_COMPAT_FIELDS
202
203     /*** IUnknown methods ***/
204     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
205         IEnumCATEGORYINFO* This,
206         REFIID riid,
207         void** ppvObject);
208
209     ULONG (STDMETHODCALLTYPE *AddRef)(
210         IEnumCATEGORYINFO* This);
211
212     ULONG (STDMETHODCALLTYPE *Release)(
213         IEnumCATEGORYINFO* This);
214
215     /*** IEnumCATEGORYINFO methods ***/
216     HRESULT (STDMETHODCALLTYPE *Next)(
217         IEnumCATEGORYINFO* This,
218         ULONG celt,
219         CATEGORYINFO* rgelt,
220         ULONG* pceltFetched);
221
222     HRESULT (STDMETHODCALLTYPE *Skip)(
223         IEnumCATEGORYINFO* This,
224         ULONG celt);
225
226     HRESULT (STDMETHODCALLTYPE *Reset)(
227         IEnumCATEGORYINFO* This);
228
229     HRESULT (STDMETHODCALLTYPE *Clone)(
230         IEnumCATEGORYINFO* This,
231         IEnumCATEGORYINFO** ppenum);
232
233 };
234
235 #ifdef COBJMACROS
236 /*** IUnknown methods ***/
237 #define IEnumCATEGORYINFO_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
238 #define IEnumCATEGORYINFO_AddRef(p) (p)->lpVtbl->AddRef(p)
239 #define IEnumCATEGORYINFO_Release(p) (p)->lpVtbl->Release(p)
240 /*** IEnumCATEGORYINFO methods ***/
241 #define IEnumCATEGORYINFO_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
242 #define IEnumCATEGORYINFO_Skip(p,a) (p)->lpVtbl->Skip(p,a)
243 #define IEnumCATEGORYINFO_Reset(p) (p)->lpVtbl->Reset(p)
244 #define IEnumCATEGORYINFO_Clone(p,a) (p)->lpVtbl->Clone(p,a)
245 #endif
246
247 #endif
248
249 #define IEnumCATEGORYINFO_METHODS \
250     ICOM_MSVTABLE_COMPAT_FIELDS \
251     /*** IUnknown methods ***/ \
252     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
253     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
254     STDMETHOD_(ULONG,Release)(THIS) PURE; \
255     /*** IEnumCATEGORYINFO methods ***/ \
256     STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, CATEGORYINFO* rgelt, ULONG* pceltFetched) PURE; \
257     STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
258     STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
259     STDMETHOD_(HRESULT,Clone)(THIS_ IEnumCATEGORYINFO** ppenum) PURE;
260
261 HRESULT CALLBACK IEnumCATEGORYINFO_Next_Proxy(
262     IEnumCATEGORYINFO* This,
263     ULONG celt,
264     CATEGORYINFO* rgelt,
265     ULONG* pceltFetched);
266 void __RPC_STUB IEnumCATEGORYINFO_Next_Stub(
267     struct IRpcStubBuffer* This,
268     struct IRpcChannelBuffer* pRpcChannelBuffer,
269     PRPC_MESSAGE pRpcMessage,
270     DWORD* pdwStubPhase);
271 HRESULT CALLBACK IEnumCATEGORYINFO_Skip_Proxy(
272     IEnumCATEGORYINFO* This,
273     ULONG celt);
274 void __RPC_STUB IEnumCATEGORYINFO_Skip_Stub(
275     struct IRpcStubBuffer* This,
276     struct IRpcChannelBuffer* pRpcChannelBuffer,
277     PRPC_MESSAGE pRpcMessage,
278     DWORD* pdwStubPhase);
279 HRESULT CALLBACK IEnumCATEGORYINFO_Reset_Proxy(
280     IEnumCATEGORYINFO* This);
281 void __RPC_STUB IEnumCATEGORYINFO_Reset_Stub(
282     struct IRpcStubBuffer* This,
283     struct IRpcChannelBuffer* pRpcChannelBuffer,
284     PRPC_MESSAGE pRpcMessage,
285     DWORD* pdwStubPhase);
286 HRESULT CALLBACK IEnumCATEGORYINFO_Clone_Proxy(
287     IEnumCATEGORYINFO* This,
288     IEnumCATEGORYINFO** ppenum);
289 void __RPC_STUB IEnumCATEGORYINFO_Clone_Stub(
290     struct IRpcStubBuffer* This,
291     struct IRpcChannelBuffer* pRpcChannelBuffer,
292     PRPC_MESSAGE pRpcMessage,
293     DWORD* pdwStubPhase);
294
295 #endif  /* __IEnumCATEGORYINFO_INTERFACE_DEFINED__ */
296
297 #ifndef __ICatInformation_FWD_DEFINED__
298 #define __ICatInformation_FWD_DEFINED__
299 typedef struct ICatInformation ICatInformation;
300 #endif
301
302 typedef ICatInformation *LPCATINFORMATION;
303
304 /*****************************************************************************
305  * ICatInformation interface
306  */
307 #ifndef __ICatInformation_INTERFACE_DEFINED__
308 #define __ICatInformation_INTERFACE_DEFINED__
309
310 DEFINE_GUID(IID_ICatInformation, 0x0002e013, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
311 #if defined(__cplusplus) && !defined(CINTERFACE)
312 struct ICatInformation : public IUnknown
313 {
314     virtual HRESULT STDMETHODCALLTYPE EnumCategories(
315         LCID lcid,
316         IEnumCATEGORYINFO** ppenumCategoryInfo) = 0;
317
318     virtual HRESULT STDMETHODCALLTYPE GetCategoryDesc(
319         REFCATID rcatid,
320         LCID lcid,
321         LPWSTR* pszDesc) = 0;
322
323     virtual HRESULT STDMETHODCALLTYPE EnumClassesOfCategories(
324         ULONG cImplemented,
325         CATID rgcatidImpl[],
326         ULONG cRequired,
327         CATID rgcatidReq[],
328         IEnumGUID** ppenumClsid) = 0;
329
330     virtual HRESULT STDMETHODCALLTYPE IsClassOfCategories(
331         REFCLSID rclsid,
332         ULONG cImplemented,
333         CATID rgcatidImpl[],
334         ULONG cRequired,
335         CATID rgcatidReq[]) = 0;
336
337     virtual HRESULT STDMETHODCALLTYPE EnumImplCategoriesOfClass(
338         REFCLSID rclsid,
339         IEnumGUID** ppenumCatid) = 0;
340
341     virtual HRESULT STDMETHODCALLTYPE EnumReqCategoriesOfClass(
342         REFCLSID rclsid,
343         IEnumGUID** ppenumCatid) = 0;
344
345 };
346 #else
347 typedef struct ICatInformationVtbl ICatInformationVtbl;
348 struct ICatInformation {
349     const ICatInformationVtbl* lpVtbl;
350 };
351 struct ICatInformationVtbl {
352     ICOM_MSVTABLE_COMPAT_FIELDS
353
354     /*** IUnknown methods ***/
355     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
356         ICatInformation* This,
357         REFIID riid,
358         void** ppvObject);
359
360     ULONG (STDMETHODCALLTYPE *AddRef)(
361         ICatInformation* This);
362
363     ULONG (STDMETHODCALLTYPE *Release)(
364         ICatInformation* This);
365
366     /*** ICatInformation methods ***/
367     HRESULT (STDMETHODCALLTYPE *EnumCategories)(
368         ICatInformation* This,
369         LCID lcid,
370         IEnumCATEGORYINFO** ppenumCategoryInfo);
371
372     HRESULT (STDMETHODCALLTYPE *GetCategoryDesc)(
373         ICatInformation* This,
374         REFCATID rcatid,
375         LCID lcid,
376         LPWSTR* pszDesc);
377
378     HRESULT (STDMETHODCALLTYPE *EnumClassesOfCategories)(
379         ICatInformation* This,
380         ULONG cImplemented,
381         CATID rgcatidImpl[],
382         ULONG cRequired,
383         CATID rgcatidReq[],
384         IEnumGUID** ppenumClsid);
385
386     HRESULT (STDMETHODCALLTYPE *IsClassOfCategories)(
387         ICatInformation* This,
388         REFCLSID rclsid,
389         ULONG cImplemented,
390         CATID rgcatidImpl[],
391         ULONG cRequired,
392         CATID rgcatidReq[]);
393
394     HRESULT (STDMETHODCALLTYPE *EnumImplCategoriesOfClass)(
395         ICatInformation* This,
396         REFCLSID rclsid,
397         IEnumGUID** ppenumCatid);
398
399     HRESULT (STDMETHODCALLTYPE *EnumReqCategoriesOfClass)(
400         ICatInformation* This,
401         REFCLSID rclsid,
402         IEnumGUID** ppenumCatid);
403
404 };
405
406 #ifdef COBJMACROS
407 /*** IUnknown methods ***/
408 #define ICatInformation_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
409 #define ICatInformation_AddRef(p) (p)->lpVtbl->AddRef(p)
410 #define ICatInformation_Release(p) (p)->lpVtbl->Release(p)
411 /*** ICatInformation methods ***/
412 #define ICatInformation_EnumCategories(p,a,b) (p)->lpVtbl->EnumCategories(p,a,b)
413 #define ICatInformation_GetCategoryDesc(p,a,b,c) (p)->lpVtbl->GetCategoryDesc(p,a,b,c)
414 #define ICatInformation_EnumClassesOfCategories(p,a,b,c,d,e) (p)->lpVtbl->EnumClassesOfCategories(p,a,b,c,d,e)
415 #define ICatInformation_IsClassOfCategories(p,a,b,c,d,e) (p)->lpVtbl->IsClassOfCategories(p,a,b,c,d,e)
416 #define ICatInformation_EnumImplCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumImplCategoriesOfClass(p,a,b)
417 #define ICatInformation_EnumReqCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumReqCategoriesOfClass(p,a,b)
418 #endif
419
420 #endif
421
422 #define ICatInformation_METHODS \
423     ICOM_MSVTABLE_COMPAT_FIELDS \
424     /*** IUnknown methods ***/ \
425     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
426     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
427     STDMETHOD_(ULONG,Release)(THIS) PURE; \
428     /*** ICatInformation methods ***/ \
429     STDMETHOD_(HRESULT,EnumCategories)(THIS_ LCID lcid, IEnumCATEGORYINFO** ppenumCategoryInfo) PURE; \
430     STDMETHOD_(HRESULT,GetCategoryDesc)(THIS_ REFCATID rcatid, LCID lcid, LPWSTR* pszDesc) PURE; \
431     STDMETHOD_(HRESULT,EnumClassesOfCategories)(THIS_ ULONG cImplemented, CATID rgcatidImpl[], ULONG cRequired, CATID rgcatidReq[], IEnumGUID** ppenumClsid) PURE; \
432     STDMETHOD_(HRESULT,IsClassOfCategories)(THIS_ REFCLSID rclsid, ULONG cImplemented, CATID rgcatidImpl[], ULONG cRequired, CATID rgcatidReq[]) PURE; \
433     STDMETHOD_(HRESULT,EnumImplCategoriesOfClass)(THIS_ REFCLSID rclsid, IEnumGUID** ppenumCatid) PURE; \
434     STDMETHOD_(HRESULT,EnumReqCategoriesOfClass)(THIS_ REFCLSID rclsid, IEnumGUID** ppenumCatid) PURE;
435
436 HRESULT CALLBACK ICatInformation_EnumCategories_Proxy(
437     ICatInformation* This,
438     LCID lcid,
439     IEnumCATEGORYINFO** ppenumCategoryInfo);
440 void __RPC_STUB ICatInformation_EnumCategories_Stub(
441     struct IRpcStubBuffer* This,
442     struct IRpcChannelBuffer* pRpcChannelBuffer,
443     PRPC_MESSAGE pRpcMessage,
444     DWORD* pdwStubPhase);
445 HRESULT CALLBACK ICatInformation_GetCategoryDesc_Proxy(
446     ICatInformation* This,
447     REFCATID rcatid,
448     LCID lcid,
449     LPWSTR* pszDesc);
450 void __RPC_STUB ICatInformation_GetCategoryDesc_Stub(
451     struct IRpcStubBuffer* This,
452     struct IRpcChannelBuffer* pRpcChannelBuffer,
453     PRPC_MESSAGE pRpcMessage,
454     DWORD* pdwStubPhase);
455 HRESULT CALLBACK ICatInformation_RemoteEnumClassesOfCategories_Proxy(
456     ICatInformation* This,
457     ULONG cImplemented,
458     CATID rgcatidImpl[],
459     ULONG cRequired,
460     CATID rgcatidReq[],
461     IEnumGUID** ppenumClsid);
462 void __RPC_STUB ICatInformation_RemoteEnumClassesOfCategories_Stub(
463     struct IRpcStubBuffer* This,
464     struct IRpcChannelBuffer* pRpcChannelBuffer,
465     PRPC_MESSAGE pRpcMessage,
466     DWORD* pdwStubPhase);
467 HRESULT CALLBACK ICatInformation_EnumClassesOfCategories_Proxy(
468     ICatInformation* This,
469     ULONG cImplemented,
470     CATID rgcatidImpl[],
471     ULONG cRequired,
472     CATID rgcatidReq[],
473     IEnumGUID** ppenumClsid);
474 HRESULT __RPC_STUB ICatInformation_EnumClassesOfCategories_Stub(
475     ICatInformation* This,
476     ULONG cImplemented,
477     CATID rgcatidImpl[],
478     ULONG cRequired,
479     CATID rgcatidReq[],
480     IEnumGUID** ppenumClsid);
481 HRESULT CALLBACK ICatInformation_RemoteIsClassOfCategories_Proxy(
482     ICatInformation* This,
483     REFCLSID rclsid,
484     ULONG cImplemented,
485     CATID rgcatidImpl[],
486     ULONG cRequired,
487     CATID rgcatidReq[]);
488 void __RPC_STUB ICatInformation_RemoteIsClassOfCategories_Stub(
489     struct IRpcStubBuffer* This,
490     struct IRpcChannelBuffer* pRpcChannelBuffer,
491     PRPC_MESSAGE pRpcMessage,
492     DWORD* pdwStubPhase);
493 HRESULT CALLBACK ICatInformation_IsClassOfCategories_Proxy(
494     ICatInformation* This,
495     REFCLSID rclsid,
496     ULONG cImplemented,
497     CATID rgcatidImpl[],
498     ULONG cRequired,
499     CATID rgcatidReq[]);
500 HRESULT __RPC_STUB ICatInformation_IsClassOfCategories_Stub(
501     ICatInformation* This,
502     REFCLSID rclsid,
503     ULONG cImplemented,
504     CATID rgcatidImpl[],
505     ULONG cRequired,
506     CATID rgcatidReq[]);
507 HRESULT CALLBACK ICatInformation_EnumImplCategoriesOfClass_Proxy(
508     ICatInformation* This,
509     REFCLSID rclsid,
510     IEnumGUID** ppenumCatid);
511 void __RPC_STUB ICatInformation_EnumImplCategoriesOfClass_Stub(
512     struct IRpcStubBuffer* This,
513     struct IRpcChannelBuffer* pRpcChannelBuffer,
514     PRPC_MESSAGE pRpcMessage,
515     DWORD* pdwStubPhase);
516 HRESULT CALLBACK ICatInformation_EnumReqCategoriesOfClass_Proxy(
517     ICatInformation* This,
518     REFCLSID rclsid,
519     IEnumGUID** ppenumCatid);
520 void __RPC_STUB ICatInformation_EnumReqCategoriesOfClass_Stub(
521     struct IRpcStubBuffer* This,
522     struct IRpcChannelBuffer* pRpcChannelBuffer,
523     PRPC_MESSAGE pRpcMessage,
524     DWORD* pdwStubPhase);
525
526 #endif  /* __ICatInformation_INTERFACE_DEFINED__ */
527
528 #ifndef __ICatRegister_FWD_DEFINED__
529 #define __ICatRegister_FWD_DEFINED__
530 typedef struct ICatRegister ICatRegister;
531 #endif
532
533 typedef ICatRegister *LPCATREGISTER;
534
535 /*****************************************************************************
536  * ICatRegister interface
537  */
538 #ifndef __ICatRegister_INTERFACE_DEFINED__
539 #define __ICatRegister_INTERFACE_DEFINED__
540
541 DEFINE_GUID(IID_ICatRegister, 0x0002e012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
542 #if defined(__cplusplus) && !defined(CINTERFACE)
543 struct ICatRegister : public IUnknown
544 {
545     virtual HRESULT STDMETHODCALLTYPE RegisterCategories(
546         ULONG cCategories,
547         CATEGORYINFO rgCategoryInfo[]) = 0;
548
549     virtual HRESULT STDMETHODCALLTYPE UnRegisterCategories(
550         ULONG cCategories,
551         CATID rgcatid[]) = 0;
552
553     virtual HRESULT STDMETHODCALLTYPE RegisterClassImplCategories(
554         REFCLSID rclsid,
555         ULONG cCategories,
556         CATID rgcatid[]) = 0;
557
558     virtual HRESULT STDMETHODCALLTYPE UnRegisterClassImplCategories(
559         REFCLSID rclsid,
560         ULONG cCategories,
561         CATID rgcatid[]) = 0;
562
563     virtual HRESULT STDMETHODCALLTYPE RegisterClassReqCategories(
564         REFCLSID rclsid,
565         ULONG cCategories,
566         CATID rgcatid[]) = 0;
567
568     virtual HRESULT STDMETHODCALLTYPE UnRegisterClassReqCategories(
569         REFCLSID rclsid,
570         ULONG cCategories,
571         CATID rgcatid[]) = 0;
572
573 };
574 #else
575 typedef struct ICatRegisterVtbl ICatRegisterVtbl;
576 struct ICatRegister {
577     const ICatRegisterVtbl* lpVtbl;
578 };
579 struct ICatRegisterVtbl {
580     ICOM_MSVTABLE_COMPAT_FIELDS
581
582     /*** IUnknown methods ***/
583     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
584         ICatRegister* This,
585         REFIID riid,
586         void** ppvObject);
587
588     ULONG (STDMETHODCALLTYPE *AddRef)(
589         ICatRegister* This);
590
591     ULONG (STDMETHODCALLTYPE *Release)(
592         ICatRegister* This);
593
594     /*** ICatRegister methods ***/
595     HRESULT (STDMETHODCALLTYPE *RegisterCategories)(
596         ICatRegister* This,
597         ULONG cCategories,
598         CATEGORYINFO rgCategoryInfo[]);
599
600     HRESULT (STDMETHODCALLTYPE *UnRegisterCategories)(
601         ICatRegister* This,
602         ULONG cCategories,
603         CATID rgcatid[]);
604
605     HRESULT (STDMETHODCALLTYPE *RegisterClassImplCategories)(
606         ICatRegister* This,
607         REFCLSID rclsid,
608         ULONG cCategories,
609         CATID rgcatid[]);
610
611     HRESULT (STDMETHODCALLTYPE *UnRegisterClassImplCategories)(
612         ICatRegister* This,
613         REFCLSID rclsid,
614         ULONG cCategories,
615         CATID rgcatid[]);
616
617     HRESULT (STDMETHODCALLTYPE *RegisterClassReqCategories)(
618         ICatRegister* This,
619         REFCLSID rclsid,
620         ULONG cCategories,
621         CATID rgcatid[]);
622
623     HRESULT (STDMETHODCALLTYPE *UnRegisterClassReqCategories)(
624         ICatRegister* This,
625         REFCLSID rclsid,
626         ULONG cCategories,
627         CATID rgcatid[]);
628
629 };
630
631 #ifdef COBJMACROS
632 /*** IUnknown methods ***/
633 #define ICatRegister_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
634 #define ICatRegister_AddRef(p) (p)->lpVtbl->AddRef(p)
635 #define ICatRegister_Release(p) (p)->lpVtbl->Release(p)
636 /*** ICatRegister methods ***/
637 #define ICatRegister_RegisterCategories(p,a,b) (p)->lpVtbl->RegisterCategories(p,a,b)
638 #define ICatRegister_UnRegisterCategories(p,a,b) (p)->lpVtbl->UnRegisterCategories(p,a,b)
639 #define ICatRegister_RegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->RegisterClassImplCategories(p,a,b,c)
640 #define ICatRegister_UnRegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassImplCategories(p,a,b,c)
641 #define ICatRegister_RegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->RegisterClassReqCategories(p,a,b,c)
642 #define ICatRegister_UnRegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassReqCategories(p,a,b,c)
643 #endif
644
645 #endif
646
647 #define ICatRegister_METHODS \
648     ICOM_MSVTABLE_COMPAT_FIELDS \
649     /*** IUnknown methods ***/ \
650     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
651     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
652     STDMETHOD_(ULONG,Release)(THIS) PURE; \
653     /*** ICatRegister methods ***/ \
654     STDMETHOD_(HRESULT,RegisterCategories)(THIS_ ULONG cCategories, CATEGORYINFO rgCategoryInfo[]) PURE; \
655     STDMETHOD_(HRESULT,UnRegisterCategories)(THIS_ ULONG cCategories, CATID rgcatid[]) PURE; \
656     STDMETHOD_(HRESULT,RegisterClassImplCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID rgcatid[]) PURE; \
657     STDMETHOD_(HRESULT,UnRegisterClassImplCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID rgcatid[]) PURE; \
658     STDMETHOD_(HRESULT,RegisterClassReqCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID rgcatid[]) PURE; \
659     STDMETHOD_(HRESULT,UnRegisterClassReqCategories)(THIS_ REFCLSID rclsid, ULONG cCategories, CATID rgcatid[]) PURE;
660
661 HRESULT CALLBACK ICatRegister_RegisterCategories_Proxy(
662     ICatRegister* This,
663     ULONG cCategories,
664     CATEGORYINFO rgCategoryInfo[]);
665 void __RPC_STUB ICatRegister_RegisterCategories_Stub(
666     struct IRpcStubBuffer* This,
667     struct IRpcChannelBuffer* pRpcChannelBuffer,
668     PRPC_MESSAGE pRpcMessage,
669     DWORD* pdwStubPhase);
670 HRESULT CALLBACK ICatRegister_UnRegisterCategories_Proxy(
671     ICatRegister* This,
672     ULONG cCategories,
673     CATID rgcatid[]);
674 void __RPC_STUB ICatRegister_UnRegisterCategories_Stub(
675     struct IRpcStubBuffer* This,
676     struct IRpcChannelBuffer* pRpcChannelBuffer,
677     PRPC_MESSAGE pRpcMessage,
678     DWORD* pdwStubPhase);
679 HRESULT CALLBACK ICatRegister_RegisterClassImplCategories_Proxy(
680     ICatRegister* This,
681     REFCLSID rclsid,
682     ULONG cCategories,
683     CATID rgcatid[]);
684 void __RPC_STUB ICatRegister_RegisterClassImplCategories_Stub(
685     struct IRpcStubBuffer* This,
686     struct IRpcChannelBuffer* pRpcChannelBuffer,
687     PRPC_MESSAGE pRpcMessage,
688     DWORD* pdwStubPhase);
689 HRESULT CALLBACK ICatRegister_UnRegisterClassImplCategories_Proxy(
690     ICatRegister* This,
691     REFCLSID rclsid,
692     ULONG cCategories,
693     CATID rgcatid[]);
694 void __RPC_STUB ICatRegister_UnRegisterClassImplCategories_Stub(
695     struct IRpcStubBuffer* This,
696     struct IRpcChannelBuffer* pRpcChannelBuffer,
697     PRPC_MESSAGE pRpcMessage,
698     DWORD* pdwStubPhase);
699 HRESULT CALLBACK ICatRegister_RegisterClassReqCategories_Proxy(
700     ICatRegister* This,
701     REFCLSID rclsid,
702     ULONG cCategories,
703     CATID rgcatid[]);
704 void __RPC_STUB ICatRegister_RegisterClassReqCategories_Stub(
705     struct IRpcStubBuffer* This,
706     struct IRpcChannelBuffer* pRpcChannelBuffer,
707     PRPC_MESSAGE pRpcMessage,
708     DWORD* pdwStubPhase);
709 HRESULT CALLBACK ICatRegister_UnRegisterClassReqCategories_Proxy(
710     ICatRegister* This,
711     REFCLSID rclsid,
712     ULONG cCategories,
713     CATID rgcatid[]);
714 void __RPC_STUB ICatRegister_UnRegisterClassReqCategories_Stub(
715     struct IRpcStubBuffer* This,
716     struct IRpcChannelBuffer* pRpcChannelBuffer,
717     PRPC_MESSAGE pRpcMessage,
718     DWORD* pdwStubPhase);
719
720 #endif  /* __ICatRegister_INTERFACE_DEFINED__ */
721
722 DEFINE_GUID( CATID_Insertable, 0x40fc6ed3, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
723 DEFINE_GUID( CATID_Control, 0x40fc6ed4, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
724 DEFINE_GUID( CATID_Programmable, 0x40fc6ed5, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
725 DEFINE_GUID( CATID_IsShortcut, 0x40fc6ed6, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
726 DEFINE_GUID( CATID_NeverShowExt, 0x40fc6ed7, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
727 DEFINE_GUID( CATID_DocObject, 0x40fc6ed8, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
728 DEFINE_GUID( CATID_Printable, 0x40fc6ed9, 0x2438, 0x11cf, 0xa3, 0xdb, 0x08, 0x00, 0x36, 0xf1, 0x25, 0x02);
729 DEFINE_GUID( CATID_RequiresDataPathHost, 0x0de86a50, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
730 DEFINE_GUID( CATID_PersistsToMoniker, 0x0de86a51, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
731 DEFINE_GUID( CATID_PersistsToStorage, 0x0de86a52, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
732 DEFINE_GUID( CATID_PersistsToStreamInit, 0x0de86a53, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
733 DEFINE_GUID( CATID_PersistsToStream, 0x0de86a54, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
734 DEFINE_GUID( CATID_PersistsToMemory, 0x0de86a55, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
735 DEFINE_GUID( CATID_PersistsToFile, 0x0de86a56, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
736 DEFINE_GUID( CATID_PersistsToPropertyBag, 0x0de86a57, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
737 DEFINE_GUID( CATID_InternetAware, 0x0de86a58, 0x2baa, 0x11cf, 0xa2, 0x29, 0x00, 0xaa, 0x00, 0x3d, 0x73, 0x52);
738 DEFINE_GUID( CATID_DesignTimeUIActivatableControl, 0xf2bb56d1, 0xdb07, 0x11d1, 0xaa, 0x6b, 0x00, 0x60, 0x97, 0xdb, 0x95, 0x39);
739 DEFINE_GUID(CLSID_StdComponentCategoriesMgr, 0x0002e005, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
740 #ifdef __cplusplus
741 }
742 #endif
743 #endif /* __WIDL_COMCAT_H */