IANIMAL.H

#include "rpc.h" 
#include "rpcndr.h"

#ifndef __ianimal_h__
#define __ianimal_h__

#ifdef __cplusplus
extern "C"{
#endif

/* Forward Declarations */

#ifndef __IAnimal_FWD_DEFINED__
#define __IAnimal_FWD_DEFINED__
typedef interface IAnimal IAnimal;
#endif /* __IAnimal_FWD_DEFINED__ */


#include "unknwn.h"
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );

#ifndef __IAnimal_INTERFACE_DEFINED__
#define __IAnimal_INTERFACE_DEFINED__

/****************************************
* Generated header for interface: IAnimal
* at Thu Apr 20 09:35:58 1995
* using MIDL 2.00.72
****************************************/
/* [object][uuid] */



EXTERN_C const IID IID_IAnimal;

#if defined(__cplusplus) && !defined(CINTERFACE)

interface IAnimal : public IUnknown
{
public:
virtual HRESULT __stdcall Eat(
/* [in] */ LPTSTR pszFoodRecommended,
/* [out][in] */ LPTSTR pszFoodEaten,
/* [in] */ short cchEaten) = 0;

virtual HRESULT __stdcall Sleep(
/* [out][in] */ short __RPC_FAR *pcMinutes) = 0;

virtual HRESULT __stdcall Procreate(
/* [out] */ short __RPC_FAR *pcOffspring) = 0;

virtual HRESULT __stdcall WhatKindOfAnimal(
/* [out] */ IID __RPC_FAR *pIID) = 0;

};

#else /* C style interface */

typedef struct IAnimalVtbl
{

HRESULT ( __stdcall __RPC_FAR *QueryInterface )(
IAnimal __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject);

ULONG ( __stdcall __RPC_FAR *AddRef )(
IAnimal __RPC_FAR * This);

ULONG ( __stdcall __RPC_FAR *Release )(
IAnimal __RPC_FAR * This);

HRESULT ( __stdcall __RPC_FAR *Eat )(
IAnimal __RPC_FAR * This,
/* [in] */ LPTSTR pszFoodRecommended,
/* [out][in] */ LPTSTR pszFoodEaten,
/* [in] */ short cchEaten);

HRESULT ( __stdcall __RPC_FAR *Sleep )(
IAnimal __RPC_FAR * This,
/* [out][in] */ short __RPC_FAR *pcMinutes);

HRESULT ( __stdcall __RPC_FAR *Procreate )(
IAnimal __RPC_FAR * This,
/* [out] */ short __RPC_FAR *pcOffspring);

HRESULT ( __stdcall __RPC_FAR *WhatKindOfAnimal )(
IAnimal __RPC_FAR * This,
/* [out] */ IID __RPC_FAR *pIID);

} IAnimalVtbl;

interface IAnimal
{
CONST_VTBL struct IAnimalVtbl __RPC_FAR *lpVtbl;
};



#ifdef COBJMACROS


#define IAnimal_QueryInterface(This,riid,ppvObject)\
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IAnimal_AddRef(This)\
(This)->lpVtbl -> AddRef(This)

#define IAnimal_Release(This)\
(This)->lpVtbl -> Release(This)


#define IAnimal_Eat(This,pszFoodRecommended,pszFoodEaten,cchEaten)\
(This)->lpVtbl -> Eat(This,pszFoodRecommended,pszFoodEaten,cchEaten)

#define IAnimal_Sleep(This,pcMinutes)\
(This)->lpVtbl -> Sleep(This,pcMinutes)

#define IAnimal_Procreate(This,pcOffspring)\
(This)->lpVtbl -> Procreate(This,pcOffspring)

#define IAnimal_WhatKindOfAnimal(This,pIID)\
(This)->lpVtbl -> WhatKindOfAnimal(This,pIID)

#endif /* COBJMACROS */


#endif /* C style interface */



HRESULT __stdcall IAnimal_Eat_Proxy(
IAnimal __RPC_FAR * This,
/* [in] */ LPTSTR pszFoodRecommended,
/* [out][in] */ LPTSTR pszFoodEaten,
/* [in] */ short cchEaten);


void __RPC_STUB IAnimal_Eat_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);


HRESULT __stdcall IAnimal_Sleep_Proxy(
IAnimal __RPC_FAR * This,
/* [out][in] */ short __RPC_FAR *pcMinutes);


void __RPC_STUB IAnimal_Sleep_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);


HRESULT __stdcall IAnimal_Procreate_Proxy(
IAnimal __RPC_FAR * This,
/* [out] */ short __RPC_FAR *pcOffspring);


void __RPC_STUB IAnimal_Procreate_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);


HRESULT __stdcall IAnimal_WhatKindOfAnimal_Proxy(
IAnimal __RPC_FAR * This,
/* [out] */ IID __RPC_FAR *pIID);


void __RPC_STUB IAnimal_WhatKindOfAnimal_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);



#endif /* __IAnimal_INTERFACE_DEFINED__ */


/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif