#include "stdafx.h" #include "actrans.h" #include "blockmandlg.h" #include #include "Tuanmanage.h" HINSTANCE _hdllInstance = NULL; AC_IMPLEMENT_EXTENSION_MODULE(arxmfcDLL); extern "C" int APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { if (dwReason == DLL_PROCESS_ATTACH) { _hdllInstance = hInstance; arxmfcDLL.AttachInstance(hInstance); } else if (dwReason == DLL_PROCESS_DETACH) { arxmfcDLL.DetachInstance(); } return TRUE; } extern int Blkman(); extern int BlkArg(); extern int CallBlkMgr(); extern int BlkMgr(); extern int TSanitaryDlg(); extern int TKW(); extern int CallTKW(); extern int CallTKWnew(); extern int exportTK(); int ShowSlbMgr(); int ShowDwbMgr(); int DrawClapBoard(); int DrawApartBoard(); int CallBlkArg(); int CallBlkMan(); int CreateDbfFile(); int TKMgr(); int RepInsert(); int PurgeBlb(); int PatternMgr(); int TAW(); int GJKW(); int InsGJK(); int InvokeGJKW(); static extern_fun cmdtab[] = { // {_T("C:BlkArg"),BlkArg1}, {_T("IBlkman"), CallBlkMgr}, {_T("ITKW"), CallTKW}, {_T("ITKWman"), CallTKWnew}, {_T("C:TBlkman"), BlkMgr}, {_T("C:TKW"), TKW}, {_T("C:exporttk"), exportTK}, {_T("C:TBlock"), BlkMgr}, {_T("C:TSan"), TSanitaryDlg}, {_T("C:TDwbMan"), ShowDwbMgr}, {_T("C:TSlb"), ShowSlbMgr}, {_T("C:TClap"), DrawClapBoard}, {_T("C:TApart"), DrawApartBoard}, {_T("C:ManageTK"), TKMgr}, {_T("C:TRepIns"), RepInsert}, {_T("C:TPurgeBlb"), PurgeBlb},//add by whl on 040902 {_T("C:TAW"), TAW}, {_T("C:GJKW"), GJKW}, {_T("C:INSERTGJK"), InsGJK}, {_T("ITUAN"), PatternMgr}, {_T("IGKW"), InvokeGJKW}, }; ////////////////////////////////////////////////////////////// int OnDoFunc(); int OnDwgLoaded(); ////////////////////////////////////////////////////////////// // // Entry point // ////////////////////////////////////////////////////////////// extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt) { switch (msg) { case AcRx::kInitAppMsg: acrxUnlockApplication(pkt); #if(ADS>14) acrxDynamicLinker->registerAppMDIAware(pkt); #endif { int nCustomFlag=GetCustomFlag(); if(!(nCustomFlag&CUSTOM_NO_DMLOAD)) { InitDLRegistry(_hdllInstance, _T("wfB")); UpdateDLRegistry(_T("wfB"), cmdtab, ELEMENTS(cmdtab)); } } break; case AcRx::kLoadDwgMsg: OnDwgLoaded(); break; case AcRx::kInvkSubrMsg: OnDoFunc(); break; case AcRx::kSaveMsg: break; case AcRx::kUnloadDwgMsg: //Bug no message coming break; case AcRx::kUnloadAppMsg: break; } return AcRx::kRetOK; } ///////////////////////////////////////////////////////////// int OnDoFunc() { int cindex; XPushVar cmdecho(_T("CMDECHO"), 0); XPushVar blipmode(_T("BLIPMODE"), 0); cindex = ads_getfuncode(); int nRet=RTNORM; if (cindex >= 0 && cindex < ELEMENTS(cmdtab)) { if(cmdtab[cindex].cmdname[1]==_T(':')) { { XPushUndo vTemp; (*cmdtab[cindex].cmdfunc)(); } ads_retvoid(); } else { (*cmdtab[cindex].cmdfunc)(); } nRet = RTNORM; } else nRet=RTERROR; return nRet; } int OnDwgLoaded() { int i; for(i=0;i