Listing 5 wintest.c

#include <windows.h>
#include "bogus.h"
#include "wintest.h"

HANDLE hPgmInstance ;
#define IDM_BOGUSEVENT 0x3000

void CenterWindow(HWND hWnd)
   {
   int xSize, ySize, xPos, yPos ;
   RECT rc ;

   xSize = GetSystemMetrics(SM_CXSCREEN) ;
   ySize = GetSystemMetrics(SM_CYSCREEN) ;
   GetWindowRect(hWnd, &rc) ;
   xPos = (xSize - (rc.right - rc.left)) / 2 ;
   yPos = (ySize - (rc.bottom - rc.top)) / 2 ;
   SetWindowPos(hWnd, NULL, xPos, yPos, 0, 0,
      SWP_DRAWFRAME | SWP_NOSIZE | SWP_NOZORDER) ;
   }

LRESULT _loadds FAR PASCAL MainDlgProc(HWND hwndDlg,
UINT msg, WPARAM wParam, LPARAM lParam)
{
   static WORD wCountTotal = 0;
   WORD wCount ;

   lParam = lParam ;

   switch (msg)
   {
   case WM_INITDIALOG:
      RemoveMenu(GetSystemMenu(hwndDlg,0),
SC_CLOSE,MF_BYCOMMAND) ;
      BogusStart(hwndDlg, IDM_BOGUSEVENT) ;
      break ;

   case WM_SHOWWINDOW:
      if (wParam)
      CenterWindow(hwndDlg) ;
      break ;

   case WM_COMMAND:
      switch(wParam)
      {
      case IDM_BOGUSEVENT:
         wCount = BogusGetEvent() ;
         while (wCount)
         {
         wCountTotal += wCount ;
         wCount = BogusGetEvent() ;
         }
         SetDlgItemInt(hwndDlg, IDM_COUNT, wCountTotal, FALSE) ;
         break ;

      case IDCANCEL:
         EndDialog(hwndDlg, 0) ;
         break ;
      }
      break ;

   default:
      return FALSE ;
   }

   return TRUE ;
}

int PASCAL WinMain(HANDLE hInstance, HANDLE hPrevInstance,
LPSTR lpCmdLine, intnCmdShow)
{
   hPgmInstance = hInstance ;
   hPrevInstance = hPrevInstance ;
   lpCmdLine = lpCmdLine ;
   nCmdShow = nCmdShow ;

   if (!hPrevInstance)
   {
   if (BogusCheck())
      {
      if (MessageBox(0, "Press OK to begin bogus I/O",
             "WinTest", MB_OKCANCEL|MB_APPLMODAL) == IDOK)
      {
      DialogBox(hPgmInstance, "MainDlg", 0,
              (FARPROC) MainDlgProc) ;
      BogusStop();
      }
      }
   else
      MessageBox(0, "Bogus device not found", "WinTest",
MB_ICONHAND|MB_OK|MB_APPLMODAL) ;
   }
   else
   MessageBox(0, "Another instance already running",
"WinTest", MB_ICONEXCLAMATION|MB_OK|MB_APPLMODAL) ;

   return 0;
}
/* End of File */