#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 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 m_arArxCmdGroups; // ADS命令组 CArray m_arAdsCmdGroups; private: // internal use --wyg int m_iArxFunCode; int m_iAdsFunCode; friend class ArxCmdGroup; friend class AdsCmdGroup; }; #endif // !defined(__ArxEntryApp_H__)