#include "StdAfx.h"
#include "eb_api.h"		//	CAXA EB API 函数
#include "funcdef.h"	//	包含用户消息响应函数声明的头文件
#include "resource.h"
#include "EbaSample.h"
	
FUNTABLE  ft[] = {
//	TODO:	添加消息响应函数与对应ID值的对应组并删除下面的NULL
	{ID_APPEND_DRAW,	usrAppendDraw},
	{ID_APPEND_MODIFY,	usrAppendModify}
};

CMDDTABLE  pCmd[] = {
//	TODO:	添加执行消息响应函数的命令名与对应ID值的对应组并删除下面的NULL
	{"jdline",	ID_APPEND_DRAW},
	{"jdmodify",ID_APPEND_MODIFY}
};

void WINAPI STARTUP()
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

	AfxGetApp()->m_pMainWnd=new CFrameWnd;
	AfxGetApp()->m_pMainWnd->m_hWnd=ebGetMainFrame()->m_hWnd;

	for(int i=0; i<ELEMENTS(ft); i++)
		ebRegistFunc(&ft[i]);

	for(i=0; i<ELEMENTS(pCmd); i++)
		ebRegistCmd(&pCmd[i]);

	//	TODO:	定制用户界面,例如加载用户自定义的菜单等
	//	添加用户定义的菜单
	CMenu menu;
	menu.LoadMenu(IDR_MENU_APPEND);
	ebAppendMenu(&menu);
	//	TODO:	添加其他初始化信息

}

void WINAPI FINISH()
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

	for(int i=0; i<ELEMENTS(ft); i++)
		ebDelFunc(&ft[i]);

	for(i=0; i<ELEMENTS(pCmd); i++)
		ebDelCmd(&pCmd[i]);

	//	TODO:	添加应用程序终止时的处理,如删除掉在STARTUP()
	//			函数中加载的用户自定义菜单
	//	删除添加的菜单
	CMenu menu;
	menu.LoadMenu(IDR_MENU_APPEND);
	ebDeleteMenu(&menu);

	ASSERT(AfxGetMainWnd()!=NULL);
	AfxGetMainWnd()->m_hWnd=NULL;
	delete AfxGetMainWnd();
}


////////////////////////////////////////////////////////////////////
//	注册构件库

struct CONITEM	//	构件描述结构
{
	int m_iCmdID;	//	命令ID
	int m_iNameID;	//	名字字符串资源ID
	int m_iBmpID;	//	位图资源ID
	int m_iFuncID;	//	功能说明字符串资源ID
};

CONITEM pCon[]= {
//	TODO:	添加构件库描述数组并删除下面的NULL
	NULL
};


LPCTSTR WINAPI REGCON(CONITEM** pConArray,int* iConNum)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

	*pConArray=pCon;
	*iConNum=ELEMENTS(pCon);

	//	TODO:	设置构件库的描述
	return _T("EbaSample");
}
