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