// (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.
//
// PlugInApp.h: interface for the CPlugInApp class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PLUGINAPP_H__67549E26_C1D2_11D6_8DCB_F4C2093E0F42__INCLUDED_)
#define AFX_PLUGINAPP_H__67549E26_C1D2_11D6_8DCB_F4C2093E0F42__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CDLLWrapper ;
class CPlugInMap ;
class _PLUGIN_API CPlugInApp : public CWinApp
{
public:
CPlugInApp();
virtual ~CPlugInApp();
public:
// functions supplied / overriden
CString GetApplicationPath() ;
// these procedures are called from the constructors of PI window base classes
CPlugInMap** GetMessageMaps(CCmdTarget *pObj, int &count) ;
// functions to allow plug in maps to be called
BOOL ProcessCommandMessageMaps(CPIState& state, bool pre, bool *pbSuppress, CPlugInMap** pMaps, int count, UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) ;
BOOL CallCommandMessageMap(CPlugInMap *pPI, UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) ;
BOOL DispatchCmdMsg(CCmdTarget* pTarget, UINT nID, int nCode, AFX_PMSG pfn, void* pExtra, UINT nSig, AFX_CMDHANDLERINFO* pHandlerInfo) ;
const AFX_MSGMAP_ENTRY* FindMessageEntry(const AFX_MSGMAP_ENTRY* lpEntry, UINT nMsg, UINT nCode, UINT nID) ;
BOOL ProcessWindowMessageMaps(CPIState& state, bool pre, bool *pbSuppress, CPlugInMap** pMaps, int count, UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult) ;
BOOL CallWindowMessageMap(CPlugInMap *pPI, UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult) ;
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CPlugInApp)
public:
virtual int ExitInstance();
//}}AFX_VIRTUAL
int GetPlugInDLLCount() const;
CDLLWrapper* GetDLL(int index);
protected:
void LoadPlugInDLLs() ; // Loads any plug in DLLs
void ReplaceDocManager() ;
void RegisterDLLDocumentTemplates() ;
void InitialisePlugIns() ;
void SuppressThisMessage(bool suppress) { m_bSuppressThisMessage = suppress ;} ;
void UpdateMenus() ;
void UpdateAccelerators() ;
// member variables
int m_PlugInDLLCount ;
CDLLWrapper *m_pPlugInDLLs ; // the actual loaded plug in DLL's
private:
CPlugInMap** m_pMaps ;
int m_MapCount ;
bool m_bSuppressThisMessage ;
CPIState m_state;
public:
// Implementation
//{{AFX_MSG(CPlugInApp)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif // !defined(AFX_PLUGINAPP_H__67549E26_C1D2_11D6_8DCB_F4C2093E0F42__INCLUDED_)