Files
envi-code/SourceCode/Code2026/tg_shs/shs_blklib/shs_blklib.cpp
T
2026-09-28 15:28:50 +08:00

164 lines
3.3 KiB
C++

#include "stdafx.h"
#include "actrans.h"
#include "blockmandlg.h"
#include <rxregsvc.h>
#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<int> cmdecho(_T("CMDECHO"), 0);
XPushVar<int> 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<ELEMENTS(cmdtab); i++)
{
XString sCmd;
if(cmdtab[i].cmdname[1]==_T(':'))
sCmd << _T("C:") << GetFullCmdName(&(cmdtab[i].cmdname[2]));
else
sCmd << cmdtab[i].cmdname;
ads_defun(sCmd,i);
}
return RTNORM;
}