|
// (c) R.I.Allen 2002
// You may use this code in anyway that you feel, no guarantees or waranties are implied
// please keep all headers with any source used.
//
#if !defined(AFX_PLUGINMAP_H__59D4EB00_C5CA_11D6_8DCB_9EEEC0B47742__INCLUDED_)
#define AFX_PLUGINMAP_H__59D4EB00_C5CA_11D6_8DCB_9EEEC0B47742__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// PlugInMap.h : header file
//
#include <vector>
class CPlugInMap; // forward declaration
class _PLUGIN_API CPlugInObject : public CObject
{
friend class CPlugInApp;
public:
CPlugInObject()
{
m_pClass = NULL;
};
CPlugInObject(CPlugInObject& other)
{
m_pClass = other.m_pClass;
};
CPlugInObject(CPlugInMap *pMap) : m_pClass(pMap)
{
};
virtual ~CPlugInObject()
{
m_pClass = NULL;
};
CPlugInObject& operator=(CPlugInObject& other)
{
m_pClass = other.m_pClass;
return *this;
};
private:
CPlugInMap* m_pClass;
};
/////////////////////////////////////////////////////////////////////////////
// CPlugInMap command target
class _PLUGIN_API CPlugInMap : public CCmdTarget
{
friend class CPlugInApp;
DECLARE_DYNCREATE(CPlugInMap)
CPlugInMap(); // protected constructor used by dynamic creation
private:
static CList<CPlugInObject, CPlugInObject&> m_PlugInMapList;
protected:
CCmdTarget* m_pPlugInFor;
bool AddObject();
bool m_bPreCall;
bool m_bPostCall;
// Attributes
public:
virtual ~CPlugInMap();
static POSITION GetHeadPosition();
static CPlugInObject& GetAt(POSITION pos);
static void MoveNext(POSITION& pos);
bool IsPreCall() const;
bool IsPostCall() const;
void SetPreCall();
void SetPostCall();
void SuppressThisMessage();
bool IsSuppressed();
bool GetSuppressedState() const;
// Operations
public:
virtual CPlugInMap* CreateMapObject();
void SetPlugInFor(CCmdTarget *pObj);
virtual bool IsPlugInFor(CRuntimeClass *pClass);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CPlugInMap)
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CPlugInMap)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
std::vector<bool> m_bSuppressThisMessage;
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_PLUGINMAP_H__59D4EB00_C5CA_11D6_8DCB_9EEEC0B47742__INCLUDED_)
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
A research and development programmer working for a pharmaceutical instrument company for the past 17 years.
I am one of those lucky people who enjoys his work and spends more time than he should either doing work or reseaching new stuff. I can also be found on playing DDO on the Cannith server (Send a tell to "Maetrim" who is my current main)
I am also a keep fit fanatic, doing cross country running and am seriously into [url]http://www.ryushinkan.co.uk/[/url] Karate at this time of my life, training from 4-6 times a week and recently achieved my 1st Dan after 6 years.