#ifndef _PROTO_MAINWINDOW_HPP_ #define _PROTO_MAINWINDOW_HPP_ #ifndef _COMMON_WINDOW_HPP_ #include #endif #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _COMMON_SMARTPOINTER_HPP_ #include #endif #ifndef _TWAIN_TWAIN_HPP_ #include #endif #ifndef _STATBAR_STATUSBAREX_HPP_ #include #endif class MainWindow : public Window, private Twain { public: MainWindow(HINSTANCE hInstance); virtual ~MainWindow(); static String className(void); protected: virtual void dibReceived(HGLOBAL hDib); virtual int negotiateCapabilities(void); virtual void twainError(TW_ERR error); // void xferReady(LPMSG lpmsg); private: enum{InitialWidth=640,InitialHeight=480}; CallbackData::ReturnType paintHandler(CallbackData &someCallbackData); CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData); CallbackData::ReturnType commandHandler(CallbackData &someCallbackData); CallbackData::ReturnType keyDownHandler(CallbackData &someCallbackData); CallbackData::ReturnType sizeHandler(CallbackData &someCallbackData); CallbackData::ReturnType createHandler(CallbackData &someCallbackData); CallbackData::ReturnType timerHandler(CallbackData &someCallbackData); CallbackData::ReturnType setFocusHandler(CallbackData &someCallbackData); CallbackData::ReturnType lineHandler(CallbackData &someCallbackData); CallbackData::ReturnType closeHandler(CallbackData &someCallbackData); CallbackData::ReturnType completionHandler(CallbackData &someCallbackData); void message(const String &messageString); void message(Block &messageStrings); void registerClass(void)const; void insertHandlers(void); void removeHandlers(void); int message(String message,int retCode); Callback mPaintHandler; Callback mDestroyHandler; Callback mCommandHandler; Callback mKeyDownHandler; Callback mSizeHandler; Callback mCreateHandler; Callback mTimerHandler; Callback mSetFocusHandler; Callback mCloseHandler; static char szClassName[]; static char szMenuName[]; HINSTANCE mhInstance; SmartPointer mStatusBar; SmartPointer mControlWnd; }; inline String MainWindow::className(void) { return String(szClassName); } #endif