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