home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / win_lrn / comm / getcerro.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-08-11  |  3.2 KB  |  101 lines

  1. /*
  2.  *
  3.  *  GetCommError
  4.  *  
  5.  *  This program demonstrates the use of the function GetCommError.
  6.  *  This function fills the status buffer pointed to by the last parameter
  7.  *  with the current status of the communication device specified by the
  8.  *  first parameter.  It also returns the error code that have occurred
  9.  *  since the last GetCommError call.
  10.  *  
  11.  *  Windows Version 2.0 function demonstration application
  12.  *
  13.  */
  14.  
  15. #include "windows.h"
  16.  
  17. int PASCAL WinMain( hInstance, hPrevInstance, lpszCmdLine, cmdShow )
  18. HANDLE hInstance, hPrevInstance;
  19. LPSTR  lpszCmdLine;
  20. int    cmdShow;
  21. {
  22.   int nCid;
  23.   short nError;
  24.  
  25.   nCid = OpenComm ( (LPSTR)"COM1", 50, 50);
  26.   if ( nCid < 0 )
  27.      {
  28.      MessageBox (NULL, (LPSTR)"OpenComm Failed", (LPSTR)"OpenComm",
  29.         MB_OK|MB_ICONEXCLAMATION);
  30.      exit (1);
  31.      }
  32.   WriteComm ( nCid, (LPSTR)"This is a test!!!", 25 );
  33.   
  34.   MessageBox (NULL, (LPSTR)"Clearing communication port", (LPSTR)"GetCommError",
  35.      MB_OK);
  36.  
  37.   nError = GetCommError ( nCid, NULL );
  38.  
  39.   if ( nError == CE_BREAK )
  40.      MessageBox (NULL, (LPSTR)"Hardware detected a brake condition",
  41.         (LPSTR)"GetCommError", MB_OK);
  42.   else
  43.   if ( nError == CE_CTSTO )
  44.      MessageBox (NULL, (LPSTR)"Clear-to-send timeout",
  45.         (LPSTR)"GetCommError", MB_OK);
  46.   else
  47.   if ( nError == CE_DNS )
  48.      MessageBox (NULL, (LPSTR)"Parallel device is not selected",
  49.         (LPSTR)"GetCommError", MB_OK);
  50.   else
  51.   if ( nError == CE_DSRTO )
  52.      MessageBox (NULL, (LPSTR)"Data-set-ready timeout",
  53.         (LPSTR)"GetCommError", MB_OK);
  54.   else
  55.   if ( nError == CE_FRAME )
  56.      MessageBox (NULL, (LPSTR)"Hardware detects a framing error",
  57.         (LPSTR)"GetCommError", MB_OK);
  58.   else
  59.   if ( nError == CE_IOE )
  60.      MessageBox (NULL, (LPSTR)"I/O error while communicate with parallel device",
  61.         (LPSTR)"GetCommError", MB_OK);
  62.   else
  63.   if ( nError == CE_MODE )
  64.      MessageBox (NULL, (LPSTR)"Requested mode is not supported",
  65.         (LPSTR)"GetCommError", MB_OK);
  66.   else
  67.   if ( nError == CE_OOP )
  68.      MessageBox (NULL, (LPSTR)"Parallel device signals its out of paper",
  69.         (LPSTR)"GetCommError", MB_OK);
  70.   else
  71.   if ( nError == CE_OVERRUN )
  72.      MessageBox (NULL, (LPSTR)"A character has been overrun and lost",
  73.         (LPSTR)"GetCommError", MB_OK);
  74.   else
  75.   if ( nError == CE_PTO )
  76.      MessageBox (NULL, (LPSTR)"Timeout while communicating with parallel device",
  77.         (LPSTR)"GetCommError", MB_OK);
  78.   else
  79.   if ( nError == CE_RLSDTO )
  80.      MessageBox (NULL, (LPSTR)"Recieve-line-signal-detect timeout",
  81.         (LPSTR)"GetCommError", MB_OK);
  82.   else
  83.   if ( nError == CE_RXOVER )
  84.      MessageBox (NULL, (LPSTR)"Receive queue overflow",
  85.         (LPSTR)"GetCommError", MB_OK);
  86.   else
  87.   if ( nError == CE_RXPARITY )
  88.      MessageBox (NULL, (LPSTR)"Hardware detected a parity error",
  89.         (LPSTR)"GetCommError", MB_OK);
  90.   else
  91.   if ( nError == CE_TXFULL )
  92.      MessageBox (NULL, (LPSTR)"Transmit gueue is full while trying \n to queue a character",
  93.         (LPSTR)"GetCommError", MB_OK);
  94.   else
  95.      MessageBox (NULL, (LPSTR)"No ERROR",
  96.         (LPSTR)"GetCommError", MB_OK|MB_ICONEXCLAMATION);
  97.  
  98.   CloseComm ( nCid );
  99.   return 0;
  100. }
  101.