home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / inole2 / inc / ianimal.h < prev    next >
C/C++ Source or Header  |  1995-05-03  |  5KB  |  196 lines

  1. #include "rpc.h"
  2. #include "rpcndr.h"
  3.  
  4. #ifndef __ianimal_h__
  5. #define __ianimal_h__
  6.  
  7. #ifdef __cplusplus
  8. extern "C"{
  9. #endif 
  10.  
  11. /* Forward Declarations */ 
  12.  
  13. #ifndef __IAnimal_FWD_DEFINED__
  14. #define __IAnimal_FWD_DEFINED__
  15. typedef interface IAnimal IAnimal;
  16. #endif     /* __IAnimal_FWD_DEFINED__ */
  17.  
  18.  
  19. #include "unknwn.h"
  20. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  21. void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 
  22.  
  23. #ifndef __IAnimal_INTERFACE_DEFINED__
  24. #define __IAnimal_INTERFACE_DEFINED__
  25.  
  26. /****************************************
  27.  * Generated header for interface: IAnimal
  28.  * at Thu Apr 20 09:35:58 1995
  29.  * using MIDL 2.00.72
  30.  ****************************************/
  31. /* [object][uuid] */ 
  32.  
  33.  
  34.  
  35. EXTERN_C const IID IID_IAnimal;
  36.  
  37. #if defined(__cplusplus) && !defined(CINTERFACE)
  38.     
  39.     interface IAnimal : public IUnknown
  40.     {
  41.     public:
  42.         virtual HRESULT __stdcall Eat( 
  43.             /* [in] */ LPTSTR pszFoodRecommended,
  44.             /* [out][in] */ LPTSTR pszFoodEaten,
  45.             /* [in] */ short cchEaten) = 0;
  46.         
  47.         virtual HRESULT __stdcall Sleep( 
  48.             /* [out][in] */ short __RPC_FAR *pcMinutes) = 0;
  49.         
  50.         virtual HRESULT __stdcall Procreate( 
  51.             /* [out] */ short __RPC_FAR *pcOffspring) = 0;
  52.         
  53.         virtual HRESULT __stdcall WhatKindOfAnimal( 
  54.             /* [out] */ IID __RPC_FAR *pIID) = 0;
  55.         
  56.     };
  57.     
  58. #else     /* C style interface */
  59.     
  60.     typedef struct IAnimalVtbl
  61.     {
  62.         
  63.         HRESULT ( __stdcall __RPC_FAR *QueryInterface )( 
  64.             IAnimal __RPC_FAR * This,
  65.             /* [in] */ REFIID riid,
  66.             /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  67.         
  68.         ULONG ( __stdcall __RPC_FAR *AddRef )( 
  69.             IAnimal __RPC_FAR * This);
  70.         
  71.         ULONG ( __stdcall __RPC_FAR *Release )( 
  72.             IAnimal __RPC_FAR * This);
  73.         
  74.         HRESULT ( __stdcall __RPC_FAR *Eat )( 
  75.             IAnimal __RPC_FAR * This,
  76.             /* [in] */ LPTSTR pszFoodRecommended,
  77.             /* [out][in] */ LPTSTR pszFoodEaten,
  78.             /* [in] */ short cchEaten);
  79.         
  80.         HRESULT ( __stdcall __RPC_FAR *Sleep )( 
  81.             IAnimal __RPC_FAR * This,
  82.             /* [out][in] */ short __RPC_FAR *pcMinutes);
  83.         
  84.         HRESULT ( __stdcall __RPC_FAR *Procreate )( 
  85.             IAnimal __RPC_FAR * This,
  86.             /* [out] */ short __RPC_FAR *pcOffspring);
  87.         
  88.         HRESULT ( __stdcall __RPC_FAR *WhatKindOfAnimal )( 
  89.             IAnimal __RPC_FAR * This,
  90.             /* [out] */ IID __RPC_FAR *pIID);
  91.         
  92.     } IAnimalVtbl;
  93.     
  94.     interface IAnimal
  95.     {
  96.         CONST_VTBL struct IAnimalVtbl __RPC_FAR *lpVtbl;
  97.     };
  98.     
  99.     
  100.  
  101. #ifdef COBJMACROS
  102.  
  103.  
  104. #define IAnimal_QueryInterface(This,riid,ppvObject)    \
  105.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  106.  
  107. #define IAnimal_AddRef(This)    \
  108.     (This)->lpVtbl -> AddRef(This)
  109.  
  110. #define IAnimal_Release(This)    \
  111.     (This)->lpVtbl -> Release(This)
  112.  
  113.  
  114. #define IAnimal_Eat(This,pszFoodRecommended,pszFoodEaten,cchEaten)    \
  115.     (This)->lpVtbl -> Eat(This,pszFoodRecommended,pszFoodEaten,cchEaten)
  116.  
  117. #define IAnimal_Sleep(This,pcMinutes)    \
  118.     (This)->lpVtbl -> Sleep(This,pcMinutes)
  119.  
  120. #define IAnimal_Procreate(This,pcOffspring)    \
  121.     (This)->lpVtbl -> Procreate(This,pcOffspring)
  122.  
  123. #define IAnimal_WhatKindOfAnimal(This,pIID)    \
  124.     (This)->lpVtbl -> WhatKindOfAnimal(This,pIID)
  125.  
  126. #endif /* COBJMACROS */
  127.  
  128.  
  129. #endif     /* C style interface */
  130.  
  131.  
  132.  
  133. HRESULT __stdcall IAnimal_Eat_Proxy( 
  134.     IAnimal __RPC_FAR * This,
  135.     /* [in] */ LPTSTR pszFoodRecommended,
  136.     /* [out][in] */ LPTSTR pszFoodEaten,
  137.     /* [in] */ short cchEaten);
  138.  
  139.  
  140. void __RPC_STUB IAnimal_Eat_Stub(
  141.     IRpcStubBuffer *This,
  142.     IRpcChannelBuffer *_pRpcChannelBuffer,
  143.     PRPC_MESSAGE _pRpcMessage,
  144.     DWORD *_pdwStubPhase);
  145.  
  146.  
  147. HRESULT __stdcall IAnimal_Sleep_Proxy( 
  148.     IAnimal __RPC_FAR * This,
  149.     /* [out][in] */ short __RPC_FAR *pcMinutes);
  150.  
  151.  
  152. void __RPC_STUB IAnimal_Sleep_Stub(
  153.     IRpcStubBuffer *This,
  154.     IRpcChannelBuffer *_pRpcChannelBuffer,
  155.     PRPC_MESSAGE _pRpcMessage,
  156.     DWORD *_pdwStubPhase);
  157.  
  158.  
  159. HRESULT __stdcall IAnimal_Procreate_Proxy( 
  160.     IAnimal __RPC_FAR * This,
  161.     /* [out] */ short __RPC_FAR *pcOffspring);
  162.  
  163.  
  164. void __RPC_STUB IAnimal_Procreate_Stub(
  165.     IRpcStubBuffer *This,
  166.     IRpcChannelBuffer *_pRpcChannelBuffer,
  167.     PRPC_MESSAGE _pRpcMessage,
  168.     DWORD *_pdwStubPhase);
  169.  
  170.  
  171. HRESULT __stdcall IAnimal_WhatKindOfAnimal_Proxy( 
  172.     IAnimal __RPC_FAR * This,
  173.     /* [out] */ IID __RPC_FAR *pIID);
  174.  
  175.  
  176. void __RPC_STUB IAnimal_WhatKindOfAnimal_Stub(
  177.     IRpcStubBuffer *This,
  178.     IRpcChannelBuffer *_pRpcChannelBuffer,
  179.     PRPC_MESSAGE _pRpcMessage,
  180.     DWORD *_pdwStubPhase);
  181.  
  182.  
  183.  
  184. #endif     /* __IAnimal_INTERFACE_DEFINED__ */
  185.  
  186.  
  187. /* Additional Prototypes for ALL interfaces */
  188.  
  189. /* end of Additional Prototypes */
  190.  
  191. #ifdef __cplusplus
  192. }
  193. #endif
  194.  
  195. #endif
  196.