Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #include "rpc.h"
      7 #include "rpcndr.h"
      8 #ifndef COM_NO_WINDOWS_H
      9 #include "windows.h"
     10 #include "ole2.h"
     11 #endif
     12 
     13 #ifndef __multinfo_h__
     14 #define __multinfo_h__
     15 
     16 #ifdef __cplusplus
     17 extern "C" {
     18 #endif
     19 
     20 #ifndef __IProvideClassInfo_FWD_DEFINED__
     21 #define __IProvideClassInfo_FWD_DEFINED__
     22   typedef struct IProvideClassInfo IProvideClassInfo;
     23 #endif
     24 
     25 #ifndef __IProvideClassInfo2_FWD_DEFINED__
     26 #define __IProvideClassInfo2_FWD_DEFINED__
     27   typedef struct IProvideClassInfo2 IProvideClassInfo2;
     28 #endif
     29 
     30 #ifndef __IProvideMultipleClassInfo_FWD_DEFINED__
     31 #define __IProvideMultipleClassInfo_FWD_DEFINED__
     32   typedef struct IProvideMultipleClassInfo IProvideMultipleClassInfo;
     33 #endif
     34 
     35 #include "oaidl.h"
     36 
     37 #ifndef __MIDL_user_allocate_free_DEFINED__
     38 #define __MIDL_user_allocate_free_DEFINED__
     39   void *__RPC_API MIDL_user_allocate(size_t);
     40   void __RPC_API MIDL_user_free(void *);
     41 #endif
     42 
     43 #ifndef _OLECTL_H_
     44 #include <olectl.h>
     45 #endif
     46 
     47   DEFINE_GUID(IID_IProvideMultipleClassInfo,0xa7aba9c1,0x8983,0x11cf,0x8f,0x20,0x0,0x80,0x5f,0x2c,0xd0,0x64);
     48 
     49   extern RPC_IF_HANDLE __MIDL__intf_0053_v0_0_c_ifspec;
     50   extern RPC_IF_HANDLE __MIDL__intf_0053_v0_0_s_ifspec;
     51 
     52 #ifndef __IProvideMultipleClassInfo_INTERFACE_DEFINED__
     53 #define __IProvideMultipleClassInfo_INTERFACE_DEFINED__
     54 
     55 #define MULTICLASSINFO_GETTYPEINFO 0x00000001
     56 #define MULTICLASSINFO_GETNUMRESERVEDDISPIDS 0x00000002
     57 #define MULTICLASSINFO_GETIIDPRIMARY 0x00000004
     58 #define MULTICLASSINFO_GETIIDSOURCE 0x00000008
     59 #define TIFLAGS_EXTENDDISPATCHONLY 0x00000001
     60 
     61   EXTERN_C const IID IID_IProvideMultipleClassInfo;
     62 #if defined(__cplusplus) && !defined(CINTERFACE)
     63   struct IProvideMultipleClassInfo : public IProvideClassInfo2 {
     64 public:
     65   virtual HRESULT WINAPI GetMultiTypeInfoCount(ULONG *pcti) = 0;
     66   virtual HRESULT WINAPI GetInfoOfIndex(ULONG iti,DWORD dwFlags,ITypeInfo **pptiCoClass,DWORD *pdwTIFlags,ULONG *pcdispidReserved,IID *piidPrimary,IID *piidSource) = 0;
     67   };
     68 #else
     69   typedef struct IProvideMultipleClassInfoVtbl {
     70     HRESULT (WINAPI *QueryInterface)(IProvideMultipleClassInfo *This,REFIID riid,void **ppvObject);
     71     ULONG (WINAPI *AddRef)(IProvideMultipleClassInfo *This);
     72     ULONG (WINAPI *Release)(IProvideMultipleClassInfo *This);
     73     HRESULT (WINAPI *GetClassInfo)(IProvideMultipleClassInfo *This,LPTYPEINFO *ppTI);
     74     HRESULT (WINAPI *GetGUID)(IProvideMultipleClassInfo *This,DWORD dwGuidKind,GUID *pGUID);
     75     HRESULT (WINAPI *GetMultiTypeInfoCount)(IProvideMultipleClassInfo *This,ULONG *pcti);
     76     HRESULT (WINAPI *GetInfoOfIndex)(IProvideMultipleClassInfo *This,ULONG iti,DWORD dwFlags,ITypeInfo **pptiCoClass,DWORD *pdwTIFlags,ULONG *pcdispidReserved,IID *piidPrimary,IID *piidSource);
     77   } IProvideMultipleClassInfoVtbl;
     78   struct IProvideMultipleClassInfo {
     79     CONST_VTBL struct IProvideMultipleClassInfoVtbl *lpVtbl;
     80   };
     81 #ifdef COBJMACROS
     82 #define IProvideMultipleClassInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
     83 #define IProvideMultipleClassInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
     84 #define IProvideMultipleClassInfo_Release(This) (This)->lpVtbl->Release(This)
     85 #define IProvideMultipleClassInfo_GetClassInfo(This,ppTI) (This)->lpVtbl->GetClassInfo(This,ppTI)
     86 #define IProvideMultipleClassInfo_GetGUID(This,dwGuidKind,pGUID) (This)->lpVtbl->GetGUID(This,dwGuidKind,pGUID)
     87 #define IProvideMultipleClassInfo_GetMultiTypeInfoCount(This,pcti) (This)->lpVtbl->GetMultiTypeInfoCount(This,pcti)
     88 #define IProvideMultipleClassInfo_GetInfoOfIndex(This,iti,dwFlags,pptiCoClass,pdwTIFlags,pcdispidReserved,piidPrimary,piidSource) (This)->lpVtbl->GetInfoOfIndex(This,iti,dwFlags,pptiCoClass,pdwTIFlags,pcdispidReserved,piidPrimary,piidSource)
     89 #endif
     90 #endif
     91   HRESULT WINAPI IProvideMultipleClassInfo_GetMultiTypeInfoCount_Proxy(IProvideMultipleClassInfo *This,ULONG *pcti);
     92   void __RPC_STUB IProvideMultipleClassInfo_GetMultiTypeInfoCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
     93   HRESULT WINAPI IProvideMultipleClassInfo_GetInfoOfIndex_Proxy(IProvideMultipleClassInfo *This,ULONG iti,DWORD dwFlags,ITypeInfo **pptiCoClass,DWORD *pdwTIFlags,ULONG *pcdispidReserved,IID *piidPrimary,IID *piidSource);
     94   void __RPC_STUB IProvideMultipleClassInfo_GetInfoOfIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
     95 #endif
     96 
     97 #ifdef __cplusplus
     98 }
     99 #endif
    100 #endif
    101