// This is part of Total Recorder Developer Edition (DE).
// Copyright (C) 1998-2001 High Criteria Inc.
// All rights reserved.
//
// RecPlaySave sample application.
//
// This sample loads the Total Recorder object,
// saves Total Recorder's settings,
// records 10 sec. from sound board with phone quality,
// plays the recorded sound, saves it to a file,
// restores settings, and releases the Total Recorder object.
//
// EventProcessing.h - definition of the class for processing
//                     Total Recorder events.

#ifndef EventProcessing_h_already_included
#define EventProcessing_h_already_included

class CEventProcessing: public _ITotalRecorderApplicationEvents
{
public:
	CEventProcessing();
	~CEventProcessing();

	ITypeInfo*  m_pTypeInfo;
	ULONG       m_uCnt;

	HRESULT Init();

	// From IUnknown definition:
	virtual HRESULT STDMETHODCALLTYPE QueryInterface( 
		/* [in] */ REFIID riid,
		/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
	virtual ULONG STDMETHODCALLTYPE AddRef( void);
	virtual ULONG STDMETHODCALLTYPE Release( void);

	// From IDispatch definition:
	virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount( 
		/* [out] */ UINT __RPC_FAR *pctinfo);
	virtual HRESULT STDMETHODCALLTYPE GetTypeInfo( 
		/* [in] */ UINT iTInfo,
		/* [in] */ LCID lcid,
		/* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
	virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames( 
		/* [in] */ REFIID riid,
		/* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
		/* [in] */ UINT cNames,
		/* [in] */ LCID lcid,
		/* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
	virtual /* [local] */ HRESULT STDMETHODCALLTYPE Invoke( 
		/* [in] */ DISPID dispIdMember,
		/* [in] */ REFIID riid,
		/* [in] */ LCID lcid,
		/* [in] */ WORD wFlags,
		/* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
		/* [out] */ VARIANT __RPC_FAR *pVarResult,
		/* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
		/* [out] */ UINT __RPC_FAR *puArgErr);

	virtual void STDMETHODCALLTYPE OnMajorEvent();

	virtual void STDMETHODCALLTYPE OnMinorEvent();
};

#endif // EventProcessing_h_already_included
