master
  1/*** Autogenerated by WIDL 10.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__
 23typedef interface IEnumGUID IEnumGUID;
 24#ifdef __cplusplus
 25interface IEnumGUID;
 26#endif /* __cplusplus */
 27#endif
 28
 29#ifndef __IEnumCATEGORYINFO_FWD_DEFINED__
 30#define __IEnumCATEGORYINFO_FWD_DEFINED__
 31typedef interface IEnumCATEGORYINFO IEnumCATEGORYINFO;
 32#ifdef __cplusplus
 33interface IEnumCATEGORYINFO;
 34#endif /* __cplusplus */
 35#endif
 36
 37#ifndef __ICatRegister_FWD_DEFINED__
 38#define __ICatRegister_FWD_DEFINED__
 39typedef interface ICatRegister ICatRegister;
 40#ifdef __cplusplus
 41interface ICatRegister;
 42#endif /* __cplusplus */
 43#endif
 44
 45#ifndef __ICatInformation_FWD_DEFINED__
 46#define __ICatInformation_FWD_DEFINED__
 47typedef interface ICatInformation ICatInformation;
 48#ifdef __cplusplus
 49interface ICatInformation;
 50#endif /* __cplusplus */
 51#endif
 52
 53/* Headers for imported files */
 54
 55#include <unknwn.h>
 56
 57#ifdef __cplusplus
 58extern "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__
 71typedef interface IEnumGUID IEnumGUID;
 72#ifdef __cplusplus
 73interface 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__
 81typedef interface IEnumCATEGORYINFO IEnumCATEGORYINFO;
 82#ifdef __cplusplus
 83interface IEnumCATEGORYINFO;
 84#endif /* __cplusplus */
 85#endif
 86
 87#ifndef __ICatRegister_FWD_DEFINED__
 88#define __ICatRegister_FWD_DEFINED__
 89typedef interface ICatRegister ICatRegister;
 90#ifdef __cplusplus
 91interface ICatRegister;
 92#endif /* __cplusplus */
 93#endif
 94
 95#ifndef __ICatInformation_FWD_DEFINED__
 96#define __ICatInformation_FWD_DEFINED__
 97typedef interface ICatInformation ICatInformation;
 98#ifdef __cplusplus
 99interface ICatInformation;
100#endif /* __cplusplus */
101#endif
102
103
104EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr;
105#endif
106
107#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
108typedef GUID CATID;
109typedef 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
123EXTERN_C const CATID CATID_Insertable;
124EXTERN_C const CATID CATID_Control;
125EXTERN_C const CATID CATID_Programmable;
126EXTERN_C const CATID CATID_IsShortcut;
127EXTERN_C const CATID CATID_NeverShowExt;
128EXTERN_C const CATID CATID_DocObject;
129EXTERN_C const CATID CATID_Printable;
130EXTERN_C const CATID CATID_RequiresDataPathHost;
131EXTERN_C const CATID CATID_PersistsToMoniker;
132EXTERN_C const CATID CATID_PersistsToStorage;
133EXTERN_C const CATID CATID_PersistsToStreamInit;
134EXTERN_C const CATID CATID_PersistsToStream;
135EXTERN_C const CATID CATID_PersistsToMemory;
136EXTERN_C const CATID CATID_PersistsToFile;
137EXTERN_C const CATID CATID_PersistsToPropertyBag;
138EXTERN_C const CATID CATID_InternetAware;
139EXTERN_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
151typedef IEnumGUID *LPENUMGUID;
152DEFINE_GUID(IID_IEnumGUID, 0x0002e000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
153#if defined(__cplusplus) && !defined(CINTERFACE)
154MIDL_INTERFACE("0002e000-0000-0000-c000-000000000046")
155IEnumGUID : 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
176typedef 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
212interface 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 ***/
229static inline HRESULT IEnumGUID_QueryInterface(IEnumGUID* This,REFIID riid,void **ppvObject) {
230    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
231}
232static inline ULONG IEnumGUID_AddRef(IEnumGUID* This) {
233    return This->lpVtbl->AddRef(This);
234}
235static inline ULONG IEnumGUID_Release(IEnumGUID* This) {
236    return This->lpVtbl->Release(This);
237}
238/*** IEnumGUID methods ***/
239static inline HRESULT IEnumGUID_Next(IEnumGUID* This,ULONG celt,GUID *rgelt,ULONG *pceltFetched) {
240    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
241}
242static inline HRESULT IEnumGUID_Skip(IEnumGUID* This,ULONG celt) {
243    return This->lpVtbl->Skip(This,celt);
244}
245static inline HRESULT IEnumGUID_Reset(IEnumGUID* This) {
246    return This->lpVtbl->Reset(This);
247}
248static inline HRESULT IEnumGUID_Clone(IEnumGUID* This,IEnumGUID **ppenum) {
249    return This->lpVtbl->Clone(This,ppenum);
250}
251#endif
252#endif
253
254#endif
255
256HRESULT STDMETHODCALLTYPE IEnumGUID_RemoteNext_Proxy(
257    IEnumGUID* This,
258    ULONG celt,
259    GUID *rgelt,
260    ULONG *pceltFetched);
261void __RPC_STUB IEnumGUID_RemoteNext_Stub(
262    IRpcStubBuffer* This,
263    IRpcChannelBuffer* pRpcChannelBuffer,
264    PRPC_MESSAGE pRpcMessage,
265    DWORD* pdwStubPhase);
266HRESULT CALLBACK IEnumGUID_Next_Proxy(
267    IEnumGUID* This,
268    ULONG celt,
269    GUID *rgelt,
270    ULONG *pceltFetched);
271HRESULT __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
291typedef IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
292
293typedef struct tagCATEGORYINFO {
294    CATID catid;
295    LCID lcid;
296    OLECHAR szDescription[128];
297} CATEGORYINFO;
298typedef struct tagCATEGORYINFO *LPCATEGORYINFO;
299
300DEFINE_GUID(IID_IEnumCATEGORYINFO, 0x0002e011, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
301#if defined(__cplusplus) && !defined(CINTERFACE)
302MIDL_INTERFACE("0002e011-0000-0000-c000-000000000046")
303IEnumCATEGORYINFO : 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
324typedef 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
360interface 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 ***/
377static inline HRESULT IEnumCATEGORYINFO_QueryInterface(IEnumCATEGORYINFO* This,REFIID riid,void **ppvObject) {
378    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
379}
380static inline ULONG IEnumCATEGORYINFO_AddRef(IEnumCATEGORYINFO* This) {
381    return This->lpVtbl->AddRef(This);
382}
383static inline ULONG IEnumCATEGORYINFO_Release(IEnumCATEGORYINFO* This) {
384    return This->lpVtbl->Release(This);
385}
386/*** IEnumCATEGORYINFO methods ***/
387static inline HRESULT IEnumCATEGORYINFO_Next(IEnumCATEGORYINFO* This,ULONG celt,CATEGORYINFO *rgelt,ULONG *pceltFetched) {
388    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
389}
390static inline HRESULT IEnumCATEGORYINFO_Skip(IEnumCATEGORYINFO* This,ULONG celt) {
391    return This->lpVtbl->Skip(This,celt);
392}
393static inline HRESULT IEnumCATEGORYINFO_Reset(IEnumCATEGORYINFO* This) {
394    return This->lpVtbl->Reset(This);
395}
396static inline 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
417typedef ICatRegister *LPCATREGISTER;
418
419DEFINE_GUID(IID_ICatRegister, 0x0002e012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
420#if defined(__cplusplus) && !defined(CINTERFACE)
421MIDL_INTERFACE("0002e012-0000-0000-c000-000000000046")
422ICatRegister : 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
457typedef 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
510interface 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 ***/
529static inline HRESULT ICatRegister_QueryInterface(ICatRegister* This,REFIID riid,void **ppvObject) {
530    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
531}
532static inline ULONG ICatRegister_AddRef(ICatRegister* This) {
533    return This->lpVtbl->AddRef(This);
534}
535static inline ULONG ICatRegister_Release(ICatRegister* This) {
536    return This->lpVtbl->Release(This);
537}
538/*** ICatRegister methods ***/
539static inline HRESULT ICatRegister_RegisterCategories(ICatRegister* This,ULONG cCategories,CATEGORYINFO rgCategoryInfo[]) {
540    return This->lpVtbl->RegisterCategories(This,cCategories,rgCategoryInfo);
541}
542static inline HRESULT ICatRegister_UnRegisterCategories(ICatRegister* This,ULONG cCategories,CATID rgcatid[]) {
543    return This->lpVtbl->UnRegisterCategories(This,cCategories,rgcatid);
544}
545static inline HRESULT ICatRegister_RegisterClassImplCategories(ICatRegister* This,REFCLSID rclsid,ULONG cCategories,CATID rgcatid[]) {
546    return This->lpVtbl->RegisterClassImplCategories(This,rclsid,cCategories,rgcatid);
547}
548static inline HRESULT ICatRegister_UnRegisterClassImplCategories(ICatRegister* This,REFCLSID rclsid,ULONG cCategories,CATID rgcatid[]) {
549    return This->lpVtbl->UnRegisterClassImplCategories(This,rclsid,cCategories,rgcatid);
550}
551static inline HRESULT ICatRegister_RegisterClassReqCategories(ICatRegister* This,REFCLSID rclsid,ULONG cCategories,CATID rgcatid[]) {
552    return This->lpVtbl->RegisterClassReqCategories(This,rclsid,cCategories,rgcatid);
553}
554static inline 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
575typedef ICatInformation *LPCATINFORMATION;
576
577DEFINE_GUID(IID_ICatInformation, 0x0002e013, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
578#if defined(__cplusplus) && !defined(CINTERFACE)
579MIDL_INTERFACE("0002e013-0000-0000-c000-000000000046")
580ICatInformation : 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
618typedef 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
674interface 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 ***/
693static inline HRESULT ICatInformation_QueryInterface(ICatInformation* This,REFIID riid,void **ppvObject) {
694    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
695}
696static inline ULONG ICatInformation_AddRef(ICatInformation* This) {
697    return This->lpVtbl->AddRef(This);
698}
699static inline ULONG ICatInformation_Release(ICatInformation* This) {
700    return This->lpVtbl->Release(This);
701}
702/*** ICatInformation methods ***/
703static inline HRESULT ICatInformation_EnumCategories(ICatInformation* This,LCID lcid,IEnumCATEGORYINFO **ppenumCategoryInfo) {
704    return This->lpVtbl->EnumCategories(This,lcid,ppenumCategoryInfo);
705}
706static inline HRESULT ICatInformation_GetCategoryDesc(ICatInformation* This,REFCATID rcatid,LCID lcid,LPWSTR *pszDesc) {
707    return This->lpVtbl->GetCategoryDesc(This,rcatid,lcid,pszDesc);
708}
709static inline 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}
712static inline 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}
715static inline HRESULT ICatInformation_EnumImplCategoriesOfClass(ICatInformation* This,REFCLSID rclsid,IEnumGUID **ppenumCatid) {
716    return This->lpVtbl->EnumImplCategoriesOfClass(This,rclsid,ppenumCatid);
717}
718static inline 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
726HRESULT STDMETHODCALLTYPE ICatInformation_RemoteEnumClassesOfCategories_Proxy(
727    ICatInformation* This,
728    ULONG cImplemented,
729    const CATID rgcatidImpl[],
730    ULONG cRequired,
731    const CATID rgcatidReq[],
732    IEnumGUID **ppenumClsid);
733void __RPC_STUB ICatInformation_RemoteEnumClassesOfCategories_Stub(
734    IRpcStubBuffer* This,
735    IRpcChannelBuffer* pRpcChannelBuffer,
736    PRPC_MESSAGE pRpcMessage,
737    DWORD* pdwStubPhase);
738HRESULT STDMETHODCALLTYPE ICatInformation_RemoteIsClassOfCategories_Proxy(
739    ICatInformation* This,
740    REFCLSID rclsid,
741    ULONG cImplemented,
742    const CATID rgcatidImpl[],
743    ULONG cRequired,
744    const CATID rgcatidReq[]);
745void __RPC_STUB ICatInformation_RemoteIsClassOfCategories_Stub(
746    IRpcStubBuffer* This,
747    IRpcChannelBuffer* pRpcChannelBuffer,
748    PRPC_MESSAGE pRpcMessage,
749    DWORD* pdwStubPhase);
750HRESULT CALLBACK ICatInformation_EnumClassesOfCategories_Proxy(
751    ICatInformation* This,
752    ULONG cImplemented,
753    const CATID rgcatidImpl[],
754    ULONG cRequired,
755    const CATID rgcatidReq[],
756    IEnumGUID **ppenumClsid);
757HRESULT __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);
764HRESULT CALLBACK ICatInformation_IsClassOfCategories_Proxy(
765    ICatInformation* This,
766    REFCLSID rclsid,
767    ULONG cImplemented,
768    const CATID rgcatidImpl[],
769    ULONG cRequired,
770    const CATID rgcatidReq[]);
771HRESULT __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__ */