98 lines
2.9 KiB
C++
98 lines
2.9 KiB
C++
#if !defined(__TGARXENTRYAPP_H__)
|
|
#define __TGARXENTRYAPP_H__
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
// ARX应用程序入口消息管理,它封装了ARX入口函数,使用宏声明
|
|
// 并管理ARX/ADS命令集,可以从它派生新类,重载它的函数,
|
|
// 来实现自己的管理操作
|
|
// 例子:自己管理入口 TG_IMPLEMENT_ARXAPP_ENTRYPOINT(CMySelfEntryApp)
|
|
// 或 添加ARX、ADS各1个 TG_IMPLEMENT_CMD_ARXAPP_ENTRYPOINT(CMyArxGroup, CMyAdsGroup)
|
|
// 或 添加1个ARX命令集 TG_IMPLEMENT_ARXCMD_ARXAPP_ENTRYPOINT(CMyArxGroup)
|
|
// 或 添加1个ADS命令集 TG_IMPLEMENT_ADSCMD_ARXAPP_ENTRYPOINT(CMyAdsGroup)
|
|
// 或 添加多个ARX、ADS命令集
|
|
// TG_BEGIN_IMPLEMENT_CMD_MAP_ARXAPP_ENTRYPOINT()
|
|
// ON_TG_ARXCMD_GROUP(CArxCmdGroup)
|
|
// ...
|
|
// ON_TG_ADSCMD_GROUP(CAdsCmdGroup)
|
|
// ...
|
|
// TG_END_IMPLEMENT_CMD_MAP_ARXAPP_ENTRYPOINT()
|
|
// ARX/ADS命令集管理,请参考相关的说明
|
|
// wyg--2005-04-05
|
|
|
|
#include <afxtempl.h>
|
|
|
|
class TGArxCmdGroup;
|
|
class TGAdsCmdGroup;
|
|
class CAdUiTabExtensionManager;
|
|
|
|
class TGArxEntryApp : public CObject
|
|
{
|
|
DECLARE_DYNCREATE(TGArxEntryApp);
|
|
public:
|
|
TGArxEntryApp();
|
|
virtual ~TGArxEntryApp();
|
|
|
|
// 添加命令组
|
|
void AddArxCommandGroup(CRuntimeClass* pClass);
|
|
void AddAdsCommandGroup(CRuntimeClass* pClass);
|
|
|
|
// 取得命令组
|
|
TGArxCmdGroup* GetArxCommandGroup(CRuntimeClass* pClass);
|
|
TGAdsCmdGroup* 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<TGArxCmdGroup*, TGArxCmdGroup*&> m_arArxCmdGroups;
|
|
// ADS命令组
|
|
CArray<TGAdsCmdGroup*, TGAdsCmdGroup*&> m_arAdsCmdGroups;
|
|
|
|
private:
|
|
// internal use --wyg
|
|
int m_iArxFunCode;
|
|
int m_iAdsFunCode;
|
|
|
|
friend class TGArxCmdGroup;
|
|
friend class TGAdsCmdGroup;
|
|
};
|
|
|
|
#endif // !defined(__TGARXENTRYAPP_H__)
|