#ifndef _CASHFLOW_PPYDLG_HPP_ #define _CASHFLOW_PPYDLG_HPP_ #include #include class PPYDlg : private DWindow { public: PPYDlg(void); virtual ~PPYDlg(); WORD createDialog(HWND hParent,PrePay &prePay); private: CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData); CallbackData::ReturnType initHandler(CallbackData &someCallbackData); CallbackData::ReturnType commandHandler(CallbackData &someCallbackData); CallbackData::ReturnType closeHandler(CallbackData &someCallbackData); void getPPYInfo(void); Callback mCommandHandler; Callback mDestroyHandler; Callback mInitHandler; Callback mCloseHandler; PrePay mPrePay; }; #pragma warning(disable:4355) inline PPYDlg::PPYDlg(void) { mDestroyHandler.setCallback(this,&PPYDlg::destroyHandler); mInitHandler.setCallback(this,&PPYDlg::initHandler); mCommandHandler.setCallback(this,&PPYDlg::commandHandler); mCloseHandler.setCallback(this,&PPYDlg::closeHandler); insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler); insertHandler(VectorHandler::InitDialogHandler,&mInitHandler); insertHandler(VectorHandler::CommandHandler,&mCommandHandler); insertHandler(VectorHandler::CloseHandler,&mCloseHandler); } #pragma warning(default:4355) inline PPYDlg::~PPYDlg() { removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler); removeHandler(VectorHandler::InitDialogHandler,&mInitHandler); removeHandler(VectorHandler::CommandHandler,&mCommandHandler); removeHandler(VectorHandler::CloseHandler,&mCloseHandler); } inline WORD PPYDlg::createDialog(HWND hParent,PrePay &prePay) { WORD returnCode; mPrePay=prePay; HINSTANCE hInstance((HINSTANCE)::GetWindowLong(hParent,GWL_HINSTANCE)); returnCode=::DialogBoxParam(hInstance,(LPSTR)"Prepayments",hParent,DWindow::DlgProc,(LPARAM)(DWindow*)this); if(returnCode)prePay=mPrePay; return returnCode; } #endif