/*=========================================================================*/
/* CPAMCapt.hpp : MouseCapturer class. virtual class that all objects capturing*/
/* mouse movement messages must derive from.*/
/**/
/* Version			1.0*/
/* Creation date 24/01/97*/
/* Revision date*/
/**/
/* (c) Ubi Studios 1997*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* BENOIT GERMAIN.*/
/*=========================================================================*/
 
#ifndef __CPAMCAPT_HPP__
#define __CPAMCAPT_HPP__
 
/****************************************/
#ifndef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
#endif
/****************************************/
 
#ifdef ACTIVE_EDITOR
 
class CPA_MouseCapturer
{
public:
 CPA_MouseCapturer();
 ~CPA_MouseCapturer();
 /*any class deriving from CPA_MouseCapturer one must declare these methods as follows,*/
 /*because CPA_MouseCapturer does not derive from CWnd*/
 /*CWnd *m_p_oGrabCapture() { return m_p_oGrabCaptureFor(this); }*/
 /*if the object deriving from CPA_MouseCapturer does not derive from CWnd,*/
 /*an alternative is provided to the no-argument method, but the first one must overloaded as is:*/
 /*CWnd *m_p_oGrabCapture() { ASSERT(FALSE); return (CWnd *) NULL; }*/
 virtual CWnd *m_p_oGrabCapture() = 0;
 
 CWnd *m_p_oGrabCaptureFor(CWnd *pWnd);
 CWnd *m_p_oSurrenderCapture(BOOL bCheckCoherence = TRUE);
 
private:
 CWnd *m_p_oPreviousCapturer;
 CWnd *m_p_oCurrentCapturer;
 BOOL m_bDestruction;
};
 
#endif /* ACTIVE_EDITOR*/
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* __CPAMCAPT_HPP__*/
 
