home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / win_lrn / endings / faexit.c next >
C/C++ Source or Header  |  1988-08-10  |  3KB  |  135 lines

  1. /*
  2.  *  Function demonstrated in this program: FatalExit
  3.  *  Compiler version: C 5.1
  4.  *
  5.  *  Description:
  6.  *   This function is typically used for debugging and cannot be
  7.  *   demonstrated in this program.  Only a message box will display
  8.  *   in this program.
  9.  */
  10.  
  11. #include "windows.h"
  12.  
  13.  
  14. /* PROTOTYPES */
  15.  
  16. long    FAR PASCAL WndProc(HWND, unsigned, WORD, LONG);
  17. void CALL_FatalExit(HWND hWnd, HDC hDC);
  18. BOOL WinInit(HANDLE hInstance);
  19.  
  20. /***********************************************************************/
  21.  
  22. int    PASCAL WinMain(hInstance, hPrevInstance, lpszCmdLine, cmdShow)
  23. HANDLE hInstance, hPrevInstance;
  24. LPSTR lpszCmdLine;
  25. int    cmdShow;
  26. {
  27.   MSG   msg;
  28.   HWND  hWnd;
  29.   HDC   hDC;
  30.  
  31.   if (!hPrevInstance)
  32.   {
  33. /* Call initialization procedure if this is the first instance */
  34.     if (!WinInit( hInstance ))
  35.       return FALSE;
  36.   }
  37.  
  38.   hWnd = CreateWindow((LPSTR)"FatalExit",
  39.       (LPSTR)"FatalExit()",
  40.       WS_OVERLAPPEDWINDOW,
  41.       CW_USEDEFAULT,
  42.       CW_USEDEFAULT,
  43.       CW_USEDEFAULT,
  44.       CW_USEDEFAULT,
  45.       (HWND)NULL,        /* no parent */
  46.   (HMENU)NULL,       /* use class menu */
  47.   (HANDLE)hInstance, /* handle to window instance */
  48.   (LPSTR)NULL        /* no params to pass on */
  49.   );
  50.  
  51. /* Make window visible according to the way the app is activated */
  52.   ShowWindow(hWnd, cmdShow);
  53.   UpdateWindow(hWnd);
  54.  
  55.   GetDC(hWnd);
  56.   CALL_FatalExit(hWnd, hDC);
  57.   ReleaseDC(hWnd, hDC);
  58.  
  59. /* Polling messages from event queue */
  60.   while (GetMessage((LPMSG) & msg, NULL, 0, 0))
  61.   {
  62.     TranslateMessage((LPMSG) & msg);
  63.     DispatchMessage((LPMSG) & msg);
  64.   }
  65.  
  66.   return (int)msg.wParam;
  67. }
  68.  
  69.  
  70. /***********************************************************************/
  71.  
  72. /* Procedures which make up the window class. */
  73. long    FAR PASCAL WndProc(hWnd, message, wParam, lParam)
  74. HWND hWnd;
  75. unsigned    message;
  76. WORD wParam;
  77. LONG lParam;
  78. {
  79.   switch (message)
  80.   {
  81.   case WM_DESTROY:
  82.     PostQuitMessage( 0 );
  83.     break;
  84.  
  85.   default:
  86.     return DefWindowProc( hWnd, message, wParam, lParam );
  87.     break;
  88.   }
  89.   return(0L);
  90. }
  91.  
  92.  
  93. /**************************************************************************/
  94.  
  95. /* Procedure called when the application is loaded for the first time */
  96. BOOL WinInit(hInstance)
  97. HANDLE hInstance;
  98. {
  99.   WNDCLASS   wcClass;
  100.  
  101.   wcClass.style          = CS_HREDRAW | CS_VREDRAW;
  102.   wcClass.lpfnWndProc    = WndProc;
  103.   wcClass.cbClsExtra     = 0;
  104.   wcClass.cbWndExtra     = 0;
  105.   wcClass.hInstance      = hInstance;
  106.   wcClass.hIcon          = LoadIcon(hInstance, NULL);
  107.   wcClass.hCursor        = LoadCursor(NULL, IDC_ARROW);
  108.   wcClass.hbrBackground  = (HBRUSH)GetStockObject(WHITE_BRUSH);
  109.   wcClass.lpszMenuName   = (LPSTR)NULL;
  110.   wcClass.lpszClassName  = (LPSTR)"FatalExit";
  111.  
  112.   if (!RegisterClass((LPWNDCLASS) & wcClass))
  113.     return FALSE;
  114.  
  115.   return TRUE;        /* Initialization succeeded */
  116. }
  117.  
  118.  
  119. /***********************************************************************/
  120.  
  121. void CALL_FatalExit(hWnd, hDC)
  122. HWND hWnd;
  123. HDC hDC;
  124. {
  125.  
  126. /*  FatalExit(0);  */        /*      FatalExit function  */
  127.  
  128.   MessageBox(hWnd, (LPSTR)"FatalExit cannot be demonstrated \
  129. - debugging Windows not installed.",
  130.       (LPSTR)"FatalExit", MB_OK);
  131.   return;
  132. }
  133.  
  134.  
  135.