home *** CD-ROM | disk | FTP | other *** search
/ The Net: Ultimate Internet Guide / WWLCD1.ISO / pc / workshop / prog / msconf / confsdk.exe / MSG.C < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-23  |  4.7 KB  |  191 lines

  1. /* ----------------------------------------------------------------------
  2.  
  3.     CNFTEST sample for Microsoft ActiveX Conferencing
  4.  
  5.     Unpublished work.
  6.     Copyright (c) 1996, Microsoft Corporation
  7.     All rights reserved.
  8.  
  9.     msg.c
  10.  
  11.     Main message handlers.
  12.   ---------------------------------------------------------------------- */
  13.  
  14. #include "main.h"
  15.  
  16. // Main window message table definition.
  17. static MSD _rgmsdMain[] =
  18. {
  19.     {WM_COMMAND,    MsgCmdMain},
  20.     {WM_NOTIFY,     MsgNotify},
  21.     {WM_CREATE,     MsgCreate},
  22.     {WM_DESTROY,    MsgDestroy},
  23.     {WM_CLOSE,      MsgClose},
  24.     {WM_SIZE,       MsgSize},
  25.     {WM_MENUSELECT, MsgMenuSelect},
  26.     {WM_GETMINMAXINFO, MsgGetMinMax},
  27.     
  28.     {0, (PFNMSG) DefWindowProc}
  29. };
  30.  
  31.  
  32. /*  W N D  P R O C */
  33. /*-------------------------------------------------------------------------
  34.     %%Function: WndProc
  35.  
  36.     Main Window proc
  37. -------------------------------------------------------------------------*/
  38. LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wparam, LPARAM lparam)
  39. {
  40.     return DispatchMsg(_rgmsdMain, hwnd, uMsg, wparam, lparam);
  41. }
  42.  
  43.  
  44. /*  M S G  D E S T R O Y */
  45. /*-------------------------------------------------------------------------
  46.     %%Function: MsgDestroy
  47.  
  48.     Handle a WM_DESTROY message
  49. -------------------------------------------------------------------------*/
  50. LRESULT MsgDestroy(HWND hwnd, UINT uMsg, WPARAM wparam, LPARAM lParam)
  51. {
  52.     PostQuitMessage(0);
  53.     return 0;
  54. }
  55.  
  56.  
  57. /* M S G  C R E A T E */
  58. /*----------------------------------------------------------------------------
  59.     %%Function: MsgCreate
  60.  
  61. ----------------------------------------------------------------------------*/
  62. LRESULT MsgCreate(HWND hwnd, UINT uMsg, WPARAM wparam, LPARAM lParam)
  63. {
  64.     return 0;
  65. }
  66.  
  67.  
  68.  
  69. /*  M S G  C L O S E */
  70. /*-------------------------------------------------------------------------
  71.     %%Function: MsgClose
  72.  
  73.     Handle a WM_CLOSE message
  74. -------------------------------------------------------------------------*/
  75. LRESULT MsgClose(HWND hwnd, UINT uMsg, WPARAM wparam, LPARAM lparam)
  76. {
  77.     WritePref();
  78.     DestroyWindow(hwnd);
  79.  
  80.     if (ghInstDll != NULL)
  81.         FreeLibrary(ghInstDll);
  82.  
  83.     return 0;
  84. }
  85.  
  86. /* _ S I Z E  S T A T U S */
  87. /*----------------------------------------------------------------------------
  88.     %%Function: _SizeStatus
  89.  
  90. ----------------------------------------------------------------------------*/
  91. VOID _SizeStatus(int dxClient, int dy)
  92. {
  93.     int rgdxp[3];
  94.  
  95.     rgdxp[2] = dxClient;
  96.     dxClient -= 100;
  97.     rgdxp[1] = dxClient;
  98.     dxClient -= 100;
  99.     rgdxp[0] = dxClient;
  100.     SendMessage(ghwndSbar, SB_SETPARTS, (WPARAM) 3, (LPARAM) rgdxp);
  101. }
  102.  
  103. /* _ S I Z E  M S G  W I N D O W */
  104. /*----------------------------------------------------------------------------
  105.     %%Function: _SizeMsgWindow
  106.  
  107. ----------------------------------------------------------------------------*/
  108. VOID _SizeMsgWindow(int dx, int dy)
  109. {
  110.     RECT rc;
  111.     int xLeft;
  112.     int yTop;
  113.     int d;
  114.  
  115.     xLeft = 0;
  116.     yTop = 3;
  117.     dy -= 3;
  118.  
  119.     if (gPref.fTbar)
  120.     {
  121.         // adjust for Toolbar
  122.         GetClientRect(ghwndTbar, &rc);
  123.         d = (rc.bottom - rc.top);
  124.         yTop += d;
  125.         dy -= d;
  126.     }
  127.  
  128.     if (gPref.fSbar)
  129.     {
  130.         // adjust for status bar
  131.         GetClientRect(ghwndSbar, &rc);
  132.         d = (rc.bottom - rc.top);
  133.         dy -= d;
  134.     }
  135.  
  136.     MoveWindow(ghwndMsg, xLeft, yTop, dx, dy, fTrue);
  137. }
  138.  
  139. /* R E C A L C  M S G  W I N D O W */
  140. /*----------------------------------------------------------------------------
  141.     %%Function: RecalcMsgWindow
  142.  
  143. ----------------------------------------------------------------------------*/
  144. VOID RecalcMsgWindow(void)
  145. {
  146.     RECT rc;
  147.  
  148.     GetClientRect(ghwndMain, &rc);
  149.     _SizeMsgWindow(rc.right, rc.bottom);
  150. }
  151.  
  152.  
  153. /*  M S G  S I Z E */
  154. /*-------------------------------------------------------------------------
  155.     %%Function: MsgSize
  156.  
  157.     Handle a WM_SIZE message
  158. -------------------------------------------------------------------------*/
  159. LRESULT MsgSize(HWND hwnd, UINT uMsg, WPARAM wparam, LPARAM lparam)
  160. {
  161.     int dxClient = LOWORD(lparam);  // width of client area
  162.     int dyClient = HIWORD(lparam);  // height of client area
  163.  
  164.     _SizeMsgWindow(dxClient, dyClient);
  165.     _SizeStatus(dxClient, 0);
  166.     SendMessage(ghwndSbar, uMsg, wparam, lparam);
  167.     SendMessage(ghwndTbar, uMsg, wparam, lparam);
  168.     
  169.     return 0;
  170. }
  171.  
  172.  
  173. /*  M S G  G E T  M I N  M A X */
  174. /*-------------------------------------------------------------------------
  175.     %%Function: MsgGetMinMax
  176.  
  177.     Handle a WM_GETMINMAXINFO message
  178. -------------------------------------------------------------------------*/
  179. LRESULT MsgGetMinMax(HWND hwnd, UINT uMsg, WPARAM wparam, LPARAM lparam)
  180. {
  181.     LPMINMAXINFO lpminmax = (LPMINMAXINFO) lparam;
  182.  
  183.     if (gdxWndMin == 0 || gdyWndMin == 0)
  184.         return 0;
  185.  
  186.     lpminmax->ptMinTrackSize.x = gdxWndMin;
  187.     lpminmax->ptMinTrackSize.y = gdyWndMin;
  188.  
  189.     return 0;
  190. }
  191.