_PROTOTYPING AND PROGRAMMING DATABASE SYSTEMS_ by Miles Dempsey [LISTING ONE] //REGEN_FILEHEADING //REGEN_FILEHEADING /***************************************************************************** * Source File: Warning.c ******************************************************************************/ #include #include #include "WARNING.h" //REGEN_VARIABLES //REGEN_VARIABLES VIEW hViewWarning; HWND hWndWarning; LONG FAR PASCAL fnWarningWndProc(HWND, WORD, WORD, LONG); int fnWarning(HWND hParentWnd) { int ReturnCode; VIEWPROC lpfnfnWarningWndProc; //REGEN_BEGINFUNCTION //REGEN_BEGINFUNCTION lpfnfnWarningWndProc=(VIEWPROC)MakeProcInstance((FARPROC) fnWarningWndProc,hInst); //REGEN_INITDLG //REGEN_INITDLG if(!(hViewWarning = vwCreateView(hInst, "Warning", hParentWnd, lpfnfnWarningWndProc, NULL))) return FALSE; vwSetFieldVar(hViewWarning, ID_WARNING, &nWarning); //REGEN_INITVIEW //REGEN_INITVIEW if((ReturnCode = vwShowModalView(hViewWarning)) == -1) { MessageBox(NULL, "Unable to display view", "System Error", MB_SYSTEMMODAL | MB_ICONHAND | MB_OK); return FALSE; } //REGEN_TERMVIEW //REGEN_TERMVIEW FreeProcInstance((FARPROC)lpfnfnWarningWndProc); return(ReturnCode); } long FAR PASCAL fnWarningWndProc(HWND hWnd, WORD wMessage, WORD wParam, LONG lParam) { GETVIEW; //REGEN_WINDOWPROCVARIABLES static int Opto22 = 0; //REGEN_WINDOWPROCVARIABLES switch(wMessage) { //REGEN_WNDPROC case WM_TIMER : switch (wParam) { case TIMER_LOOK_FOR_CLAMP: code which monitored one of the Opto 22 boards went here // Flash the bitmap until the steel is clamped if (!bFlash) { vwHideField (View, ID_WARNING); bFlash = TRUE; } else { vwUnHideField (View, ID_WARNING); bFlash = FALSE; } // When steel is clamped, kill the timer if ( Opto22 == FOUND ) KillTimer (hWnd, TIMER_LOOK_FOR_CLAMP); break; } break; //REGEN_WNDPROC case WM_INITDIALOG : //REGEN_WM_INITDIALOG /* Custom code which starts a timer looking for feedback * from the vision instuments went here between the regeneration * comments which ProtoGen will preserve. */ SetTimer (hWnd, TIMER_LOOK_FOR_CLAMP, 500, NULL); //REGEN_WM_INITDIALOG return TRUE; case WM_COMMAND : switch(wParam) { case ID_WARNING : //REGEN_ID_WARNING //REGEN_ID_WARNING break; case ID_CONTINUEOPERATION : //REGEN_ID_CONTINUEOPERATION //REGEN_ID_CONTINUEOPERATION break; //REGEN_CUSTOMCOMMAND //REGEN_CUSTOMCOMMAND } break; } return DefViewProc(hWnd, wMessage, wParam, lParam); } //REGEN_CUSTOMCODE //REGEN_CUSTOMCODE [LISTING TWO] long FAR PASCAL fnReadCommWndProc(HWND hWnd, WORD wMessage, WORD wParam, LONG lParam) { switch(wMessage) { //REGEN_WNDPROC case WM_TIMER : switch (wParam) { case TIMER_LOOK_FOR_CHARACTER: // code to monitor the RS422 port // szString was generated by ProtoGen ReadComm (...., szString); if ( lstrlen(szString) > 0 ) vwUpdateScreen (View); break; } break; //REGEN_WNDPROC case WM_INITDIALOG : //REGEN_WM_INITDIALOG // Set a timer for every 1/10 of a second // The third parameter is milliseconds // 1000 = 1 second SetTimer (hWnd, TIMER_LOOK_FOR_CHARACTER, 100, NULL); //REGEN_WM_INITDIALOG return TRUE; } return DefViewProc(hWnd, wMessage, wParam, lParam); } //REGEN_CUSTOMCODE //REGEN_CUSTOMCODE