98 lines
2.9 KiB
C++
98 lines
2.9 KiB
C++
#if !defined(__ARXENTRYAPP_H__)
|
|
#define __ARXENTRYAPP_H__
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
// ARX应用程序入口消息管理,它封装了ARX入口函数,使用宏声明
|
|
// 并管理ARX/ADS命令集,可以从它派生新类,重载它的函数,
|
|
// 来实现自己的管理操作
|
|
// 例子:自己管理入口 AEC_IMPLEMENT_ARXAPP_ENTRYPOINT(CMySelfEntryApp)
|
|
// 或 添加ARX、ADS各1个 AEC_IMPLEMENT_CMD_ARXAPP_ENTRYPOINT(CMyArxGroup, CMyAdsGroup)
|
|
// 或 添加1个ARX命令集 AEC_IMPLEMENT_ARXCMD_ARXAPP_ENTRYPOINT(CMyArxGroup)
|
|
// 或 添加1个ADS命令集 AEC_IMPLEMENT_ADSCMD_ARXAPP_ENTRYPOINT(CMyAdsGroup)
|
|
// 或 添加多个ARX、ADS命令集
|
|
// AEC_BEGIN_IMPLEMENT_CMD_MAP_ARXAPP_ENTRYPOINT()
|
|
// ON_AEC_ARXCMD_GROUP(CArxCmdGroup)
|
|
// ...
|
|
// ON_AEC_ADSCMD_GROUP(CAdsCmdGroup)
|
|
// ...
|
|
// AEC_END_IMPLEMENT_CMD_MAP_ARXAPP_ENTRYPOINT()
|
|
// ARX/ADS命令集管理,请参考相关的说明
|
|
// wyg--2005-04-05
|
|
|
|
#include <afxtempl.h>
|
|
|
|
class ArxCmdGroup;
|
|
class AdsCmdGroup;
|
|
class CAdUiTabExtensionManager;
|
|
|
|
class ArxEntryApp : public CObject
|
|
{
|
|
DECLARE_DYNCREATE(ArxEntryApp);
|
|
public:
|
|
ArxEntryApp();
|
|
virtual ~ArxEntryApp();
|
|
|
|
// 添加命令组
|
|
void AddArxCommandGroup(CRuntimeClass* pClass);
|
|
void AddAdsCommandGroup(CRuntimeClass* pClass);
|
|
|
|
// 取得命令组
|
|
ArxCmdGroup* GetArxCommandGroup(CRuntimeClass* pClass);
|
|
AdsCmdGroup* GetAdsCommandGroup(CRuntimeClass* pClass);
|
|
|
|
// 应用程序锁定
|
|
void LockApplication();
|
|
void UnlockApplication();
|
|
|
|
// 获得本模块ARX应用
|
|
void* GetThisArxApp();
|
|
|
|
// 消息分发
|
|
virtual AcRx::AppRetCode DispatchEntryMsg(AcRx::AppMsgCode msg, void* pArxApp);
|
|
|
|
protected:
|
|
virtual AcRx::AppRetCode On_PreInitAppMsg();
|
|
virtual AcRx::AppRetCode On_kInitAppMsg();
|
|
virtual AcRx::AppRetCode On_kLoadDwgMsg();
|
|
virtual AcRx::AppRetCode On_kUnloadDwgMsg();
|
|
virtual AcRx::AppRetCode On_kInvkSubrMsg();
|
|
virtual AcRx::AppRetCode On_kInitDialogMsg(CAdUiTabExtensionManager* pTabMgr);
|
|
virtual AcRx::AppRetCode On_kEndDialogMsg();
|
|
virtual AcRx::AppRetCode On_kNullMsg();
|
|
virtual AcRx::AppRetCode On_kCfgMsg();
|
|
virtual AcRx::AppRetCode On_kOleUnloadAppMsg();
|
|
virtual AcRx::AppRetCode On_kDependencyMsg();
|
|
virtual AcRx::AppRetCode On_kNoDependencyMsg();
|
|
virtual AcRx::AppRetCode On_kSuspendMsg();
|
|
virtual AcRx::AppRetCode On_kSaveMsg();
|
|
virtual AcRx::AppRetCode On_kEndMsg();
|
|
virtual AcRx::AppRetCode On_kPreQuitMsg();
|
|
virtual AcRx::AppRetCode On_kQuitMsg();
|
|
virtual AcRx::AppRetCode On_kUnloadAppMsg();
|
|
|
|
// 当前入口消息
|
|
AcRx::AppMsgCode m_eCurMsg;
|
|
// 当前入口参数
|
|
void* m_pCurParam;
|
|
// 本模块ARX应用
|
|
void* m_pThisArxApp;
|
|
|
|
// ARX命令组
|
|
CArray<ArxCmdGroup*, ArxCmdGroup*&> m_arArxCmdGroups;
|
|
// ADS命令组
|
|
CArray<AdsCmdGroup*, AdsCmdGroup*&> m_arAdsCmdGroups;
|
|
|
|
private:
|
|
// internal use --wyg
|
|
int m_iArxFunCode;
|
|
int m_iAdsFunCode;
|
|
|
|
friend class ArxCmdGroup;
|
|
friend class AdsCmdGroup;
|
|
};
|
|
|
|
#endif // !defined(__ArxEntryApp_H__)
|