Files
envi-code/SourceCode/Code2026/inc/ArxEntryApp.h
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

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__)