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