Home | History | Annotate | Download | only in include
      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