// ToolbarSink.cpp : implementation file // #include "stdafx.h" #include "paint.h" #include "ToolbarSink.h" #include "MainFrm.h" #include "PaintVw.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CToolbarSink IMPLEMENT_DYNCREATE(CToolbarSink, CCmdTarget) CToolbarSink::CToolbarSink() { m_pMainWnd=NULL; EnableAutomation(); } CToolbarSink::~CToolbarSink() { } void CToolbarSink::OnFinalRelease() { // When the last reference for an automation object is released // OnFinalRelease is called. The base class will automatically // deletes the object. Add additional cleanup required for your // object before calling the base class. CCmdTarget::OnFinalRelease(); } BEGIN_MESSAGE_MAP(CToolbarSink, CCmdTarget) //{{AFX_MSG_MAP(CToolbarSink) // NOTE - the ClassWizard will add and remove mapping macros here. //}}AFX_MSG_MAP END_MESSAGE_MAP() BEGIN_DISPATCH_MAP(CToolbarSink, CCmdTarget) //{{AFX_DISPATCH_MAP(CToolbarSink) // NOTE - the ClassWizard will add and remove mapping macros here. DISP_FUNCTION_ID(CToolbarSink, "ToolBarButton", 1, OnToolBarButton, VT_EMPTY,VTS_DISPATCH VTS_I4 VTS_I4) //}}AFX_DISPATCH_MAP END_DISPATCH_MAP() BEGIN_INTERFACE_MAP(CToolbarSink, CCmdTarget) INTERFACE_PART(CToolbarSink, DIID__LEADToolBarEvents, Dispatch) END_INTERFACE_MAP() static const IID IID_IToolbarSink = { 0x3e47f727, 0xa981, 0x49a5, { 0xa5, 0xaf, 0x93, 0x6f, 0xc, 0xb0, 0x5f, 0xa4 } }; void CToolbarSink::OnToolBarButton(LPDISPATCH pButton, long nButtonID, long dwData) { switch(nButtonID) { case BUTTON_ID_TOOL_PAINT_BRUSH: m_pMainWnd->OnToolBrush(); break; case BUTTON_ID_TOOL_PAINT_SHAPE_LINE: m_pMainWnd->OnToolShapeLine(); break; case BUTTON_ID_TOOL_PAINT_SHAPE_RECT: m_pMainWnd->OnToolShapeRectangle(); break; case BUTTON_ID_TOOL_PAINT_SHAPE_ROUNDRECT: m_pMainWnd->OnToolShapeRoundrectangle(); break; case BUTTON_ID_TOOL_PAINT_SHAPE_ELLIPSE: m_pMainWnd->OnToolShapeEllipse(); break; case BUTTON_ID_TOOL_PAINT_SHAPE_POLYGON: m_pMainWnd->OnToolShapePolygon(); break; case BUTTON_ID_TOOL_PAINT_REGION_RECT: m_pMainWnd->OnToolRegionRectangle(); break; case BUTTON_ID_TOOL_PAINT_REGION_ROUNDRECT: m_pMainWnd->OnToolRegionRoundrectangle(); break; case BUTTON_ID_TOOL_PAINT_REGION_ELLIPSE: m_pMainWnd->OnToolRegionEllipse(); break; case BUTTON_ID_TOOL_PAINT_REGION_POLYGON: m_pMainWnd->OnToolRegionPolygon(); break; case BUTTON_ID_TOOL_PAINT_REGION_SURFACE: m_pMainWnd->OnToolRegionSurface(); break; case BUTTON_ID_TOOL_PAINT_REGION_BORDER: m_pMainWnd->OnToolRegionBorder(); break; case BUTTON_ID_TOOL_PAINT_REGION_COLOR: m_pMainWnd->OnToolRegionColor(); break; case BUTTON_ID_TOOL_PAINT_FILL_SURFACE: m_pMainWnd->OnToolFillSurface(); break; case BUTTON_ID_TOOL_PAINT_FILL_BORDER: m_pMainWnd->OnToolFillBorder(); break; case BUTTON_ID_TOOL_PAINT_FILL_COLORREPLACE: m_pMainWnd->OnToolFillColorreplace(); break; case BUTTON_ID_TOOL_PAINT_TEXT: m_pMainWnd->OnToolText(); break; } } ///////////////////////////////////////////////////////////////////////////// // CToolbarSink message handlers