home *** CD-ROM | disk | FTP | other *** search
/ CD Loisirs 18 / cd.iso / PLANETE / MUDWIN / SOURCE.ZIP / ABOUTEST.C < prev    next >
C/C++ Source or Header  |  1994-09-27  |  3KB  |  139 lines

  1. //  MODULE    Main.c
  2. //
  3. //  PURPOSE    Main processing loop and general utilities
  4. //
  5. //  EXPORTS    WinMain()
  6. //        MsgBox()
  7. //        SockerrToString()
  8. //        CreateSocket()
  9. //        ResetSocket()
  10. //
  11.  
  12. #include "defcon.h"
  13. #include "global.h"
  14. #pragma hdrstop
  15. #include <stdarg.h>
  16.  
  17. /* note when we were last compiled */
  18. TS(Main)
  19.  
  20. //long FAR PASCAL ShellAbout(LPCSTR, LPCSTR, HWND);
  21.  
  22. long FAR PASCAL
  23. MainWndProc(HWND hwnd,
  24.         UINT nMessage,
  25.         WPARAM wParam,
  26.         LPARAM lParam)
  27. {
  28.    switch (nMessage)
  29.    {
  30.    case WM_LBUTTONUP:
  31.     //ShellAbout("Hello","World",hwnd);
  32.        AboutDialog(NULL);
  33.     return 0;
  34.  
  35.    case WM_DESTROY:
  36.        MessageBeep(-1);
  37.        PostQuitMessage(0);
  38.         return 0;
  39.  
  40.    default:
  41.     //return DefWindowProc(hwnd, nMessage, wParam, lParam);
  42.     return CallWindowProc((FARPROC) gComboProc,
  43.             hwnd, nMessage, wParam, lParam);
  44.    }
  45. }
  46.  
  47. /*******************************************************************
  48.  
  49.     NAME:       WinMain
  50.  
  51.     SYNOPSIS:   Normal Windows application entry point
  52.     PURPOSE     Does some initialization and enters the message loop.
  53.  
  54.     ENTRY:      hInstance - The current application instance
  55.  
  56.         hPrev - The previous instance.  Don't depend on this
  57.             value, as under Win32 it is always NULL
  58.  
  59.         pszCmdLine - Points to command line arguments
  60.  
  61.         nCmdShow - Specifies how the initial window should
  62.             be displayed.  Should just be passed onto
  63.             ShowWindow
  64.  
  65. ********************************************************************/
  66.  
  67. int PASCAL
  68. WinMain(HINSTANCE hInstance,
  69.     HINSTANCE hPrevInstance,
  70.     LPSTR lpszCmdLine,
  71.     int nCmdShow)
  72. {
  73.    MSG      msg;
  74.    WNDCLASS wc;
  75.    FARPROC lpfn;
  76.  
  77.    hInst = hInstance;
  78.    if (!hPrevInstance)
  79.    {
  80.     if (!GetClassInfo(NULL, "Button", &wc))
  81.         return FALSE;
  82.     gComboProc = (WNDPROC) wc.lpfnWndProc;
  83.     wc.style &= ~CS_GLOBALCLASS;
  84.        wc.lpfnWndProc  = MainWndProc;
  85.        wc.hInstance    = hInstance;
  86.        wc.lpszClassName= "About:Button";
  87.        if (!RegisterClass(&wc))
  88.            return FALSE;
  89.    }
  90.  
  91.  
  92.    hMainWnd = CreateWindow(
  93.           "About:Button", "About",
  94.           WS_POPUPWINDOW | WS_CAPTION,
  95.           CW_USEDEFAULT, 0, 64, 64,
  96.           NULL, NULL, hInstance, NULL);
  97.    if (!hMainWnd) return 0;
  98.    ShowWindow(hMainWnd, nCmdShow);
  99.  
  100.    while (GetMessage (&msg, NULL, NULL, NULL)) {
  101.       if(hAbout == NULL || !IsDialogMessage(hAbout,&msg))
  102.       {
  103.      TranslateMessage(&msg); /* Translat virtual key codes */
  104.      DispatchMessage(&msg);    /* Dispatches message to window */
  105.       }
  106.    }
  107.    return (msg.wParam);  /* Returns the value from
  108.                             PostQuitMessage */
  109. }
  110.  
  111. //  FUNCTION    MsgBox
  112. //
  113. //  PURPOSE    Flashes a Message Box to the user
  114. //        The format string is taken from the STRINGTABLE
  115. //
  116. //  PARAMETERS    fuStyle - Style flags for MessageBox
  117. //        id      - String used as format spec
  118. //        ...     - Zero or more arguments passed to wvsprintf
  119. //
  120. //  RETURNS    The value returned by MessageBox()
  121.  
  122. short FAR CDECL
  123. MsgBox2(WORD fuStyle, LPCSTR lpszFmt,...)
  124. {
  125.     char            szTxt[240];
  126.     va_list         ArgList;
  127.  
  128.     va_start(ArgList, lpszFmt);
  129.     /* This next bit is slightly non-portable... */
  130.     wvsprintf(szTxt, lpszFmt, ArgList);
  131.     va_end(ArgList);
  132.  
  133.     MessageBeep(fuStyle & MB_ICONMASK);
  134.  
  135.     return MessageBox(hMainWnd, szTxt, "Hey!", fuStyle);
  136. }
  137.  
  138.  
  139.