home *** CD-ROM | disk | FTP | other *** search
/ The Net: Ultimate Internet Guide / WWLCD1.ISO / pc / workshop / prog / msconf / confsdk.exe / CMD.C next >
Encoding:
C/C++ Source or Header  |  1996-05-23  |  6.5 KB  |  246 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.     cmd.c
  10.  
  11.     Main command routines
  12.  
  13.     All functions in this file have the format:
  14.         VOID CmdXxx(HWND hwnd, WORD wCmd, WORD wNotify, HWND hwndCtrl);
  15.  
  16.     See also cmd.h
  17.  
  18.   ---------------------------------------------------------------------- */
  19.  
  20. #include "main.h"
  21.  
  22.  
  23. // Main window command table definition.
  24. static CMD _rgcmdMain[] =
  25. {
  26.     {IDM_EXIT,         CmdExit},
  27.     {IDM_HELP,         CmdHelp},
  28.     {IDM_ABOUT,        CmdAbout},
  29.     {IDM_SET_NOTIFY,   CmdSetNotifyProc},
  30.  
  31.     {IDM_VIEW_TBAR,    CmdViewTbar},
  32.     {IDM_VIEW_SBAR,    CmdViewSbar},
  33.     {IDM_VIEW_CLEAR,   CmdClear},
  34.     {IDM_VIEW_FONT,    CmdFont},
  35.     {IDM_VIEW_ENVIRON, CmdViewEnviron},
  36.  
  37.     {IDM_CMD_CONNECT,    CmdConnect},
  38.     {IDM_CMD_DISCONNECT, CmdDisconnect},
  39.     {IDM_CMD_GETINFO,    CmdGetInfo},
  40.     {IDM_CMD_SETINFO,    CmdSetInfo},
  41.     {IDM_CMD_LAUNCHREMOTE,CmdLaunchRemote},
  42.  
  43.     {IDM_CMD_SENDDATA,        CmdSendData},
  44.     {IDM_CMD_SENDFILE,        CmdSendFile},
  45.     {IDM_CMD_SHAREWINDOW,    CmdShareWindow},
  46.     {IDM_CMD_ISWINDOWSHARED,CmdIsWindowShared},
  47.     {IDM_CMD_UNSHAREWINDOW,    CmdUnShareWindow},
  48.  
  49.     {IDM_CMD_ENUMUSER,    CmdEnumUser},
  50.     {IDM_CMD_ENUMCONF,    CmdEnumConf},
  51.     {IDM_CMD_SETRECDIR,   CmdSetRecDir},
  52.     {IDM_CMD_SETGUID,     CmdSetGuid},
  53.  
  54.     {0, DefCmdProc}
  55. };
  56.  
  57.  
  58. /*  M S G  C M D  M A I N */
  59. /*-------------------------------------------------------------------------
  60.     %%Function: MsgCmdMain
  61.  
  62.     Handle a WM_COMMAND message
  63. -------------------------------------------------------------------------*/
  64. LRESULT MsgCmdMain(HWND hwnd, UINT uMsg, WPARAM wparam, LPARAM lparam)
  65. {
  66.     return DispatchCmd(_rgcmdMain, hwnd, wparam, lparam);
  67. }
  68.  
  69.  
  70.  
  71. /* S H O W  H W N D */
  72. /*----------------------------------------------------------------------------
  73.     %%Function: ShowHwnd
  74.  
  75.     Show/Hide a window
  76. ----------------------------------------------------------------------------*/
  77. VOID ShowHwnd(HWND hwnd, BOOL fShow, int idm)
  78. {
  79.     if (hwnd == NULL)
  80.         return;
  81.  
  82.     ShowWindow(hwnd, fShow ? SW_SHOW : SW_HIDE);
  83.  
  84.     SetMenuCheck(idm, fShow);
  85.     RecalcMsgWindow();
  86. }
  87.  
  88. /* C M D  V I E W  T B A R */
  89. /*----------------------------------------------------------------------------
  90.     %%Function: CmdViewTbar
  91.  
  92.     Show/Hide the toolbar
  93. ----------------------------------------------------------------------------*/
  94. VOID CmdViewTbar(HWND hwnd, WORD wCmd, WORD wNotify, HWND hwndCtrl)
  95. {
  96.     gPref.fTbar = !gPref.fTbar;
  97.     ShowHwnd(ghwndTbar, gPref.fTbar, IDM_VIEW_TBAR);
  98. }
  99.  
  100. /* C M D  V I E W  S B A R */
  101. /*----------------------------------------------------------------------------
  102.     %%Function: CmdViewSbar
  103.  
  104.     Show/Hide the status bar
  105. ----------------------------------------------------------------------------*/
  106. VOID CmdViewSbar(HWND hwnd, WORD wCmd, WORD wNotify, HWND hwndCtrl)
  107. {
  108.     gPref.fSbar = !gPref.fSbar;
  109.     ShowHwnd(ghwndSbar, gPref.fSbar, IDM_VIEW_SBAR);
  110. }
  111.  
  112.  
  113. /*----------------------------------------------------------------------------
  114.     %%Function: CmdClear
  115.  
  116.     Clear the message window
  117. ----------------------------------------------------------------------------*/
  118. VOID CmdClear(HWND hwnd, WORD wCmd, WORD wNotify, HWND hwndCtrl)
  119. {
  120.     ClearLog();
  121. }
  122.  
  123.  
  124. /*  C M D  E X I T */
  125. /*-------------------------------------------------------------------------
  126.     %%Function: CmdExit
  127.  
  128.     Shutdown the application.
  129. -------------------------------------------------------------------------*/
  130. VOID CmdExit(HWND hwnd, WORD wCmd, WORD wNotify, HWND hwndCtrl)
  131. {
  132.     WritePref();
  133.     DestroyWindow(hwnd);
  134. }
  135.  
  136.  
  137. /*  C M D  H E L P */
  138. /*-------------------------------------------------------------------------
  139.     %%Function: CmdHelp
  140.  
  141.     Bring up help for the application
  142. -------------------------------------------------------------------------*/
  143. VOID CmdHelp(HWND hwnd, WORD wCmd, WORD wNotify, HWND hwndCtrl)
  144. {
  145.     char * lpch;
  146.     char szFile[cbMaxSz];
  147.  
  148.     GetModuleFileName(ghInst, szFile, cbMaxSz);
  149.  
  150.     for (lpch = &szFile[lstrlen(szFile)]; lpch != szFile; lpch--) {
  151.         if (*lpch == '.') {
  152.             *lpch = chNull;
  153.             break;
  154.         }
  155.     }
  156.     lstrcat(szFile, ".hlp");
  157.  
  158.     WinHelp(hwnd, szFile, HELP_CONTENTS, 0);
  159. }
  160.  
  161. /* C M D  F O N T */
  162. /*----------------------------------------------------------------------------
  163.     %%Function: CmdFont
  164.  
  165.     Change the font for the message window
  166. ----------------------------------------------------------------------------*/
  167. VOID CmdFont(HWND hwnd, WORD wCmd, WORD wNotify, HWND hwndCtrl)
  168. {
  169.     CHOOSEFONT cf;
  170.     LOGFONT    lf;
  171.     HFONT      hfont;
  172.  
  173.     ClearStruct(&cf);
  174.     cf.lStructSize = sizeof(CHOOSEFONT);
  175.     cf.hwndOwner = ghwndMain;
  176.     cf.lpLogFont = &lf;
  177.     cf.Flags = CF_SCREENFONTS | CF_EFFECTS;
  178.  
  179.     if (ChooseFont(&cf) != fTrue)
  180.         return;
  181.  
  182.     hfont= CreateFontIndirect(cf.lpLogFont);
  183.     if (hfont == hfontNil)
  184.         return;
  185.  
  186.     MaybeDeleteObject(&ghfontEntry);
  187.     ghfontEntry = hfont;
  188.     SendMessage(ghwndMsg, WM_SETFONT,
  189.         (WPARAM) ghfontEntry, MAKELPARAM(fTrue, 0));
  190.  
  191.     gPref.lf = lf;
  192. }
  193.  
  194.  
  195. /*  C M D  I G N O R E */
  196. /*-------------------------------------------------------------------------
  197.     %%Function: CmdIgnore
  198.  
  199. -------------------------------------------------------------------------*/
  200. VOID CmdIgnore(HWND hwnd, WORD wCmd, WORD wNotify, HWND hwndCtrl)
  201. {
  202.     Log1(LOG_NORMAL, "CmdIgnore wCmd=0x%08X", wCmd);
  203. }
  204.  
  205.  
  206. /*  C M D  A B O U T */
  207. /*-------------------------------------------------------------------------
  208.     %%Function: CmdAbout
  209.  
  210.     Display the about box
  211. -------------------------------------------------------------------------*/
  212. VOID CmdAbout(HWND hwnd, WORD wCommand, WORD wNotify, HWND hwndCtrl)
  213. {
  214.     char szVersion[cbMaxSz];
  215.  
  216.     LoadString(ghInst, IDS_VERSION, szVersion, sizeof(szVersion));
  217.  
  218.     ShellAbout(hwnd, szVersion, NULL, LoadIcon(ghInst, MAKEINTRESOURCE(ICO_APP)));
  219. }
  220.  
  221. /*  C M D  V I E W  E N V I R O N */
  222. /*----------------------------------------------------------------------------
  223.     %%Function: CmdViewEnviron
  224.  
  225. ----------------------------------------------------------------------------*/
  226. VOID CmdViewEnviron(HWND hwnd, WORD wCmd, WORD wNotify, HWND hwndCtrl)
  227. {
  228.     LPSTR lpEnv;
  229.  
  230.     Log(LOG_NORMAL, "-- start of environment variable list");
  231.     lpEnv = GetEnvironmentStrings();
  232.     if (NULL != lpEnv)
  233.     {
  234.         while (*lpEnv)
  235.         {
  236.             Log(LOG_NORMAL, lpEnv);
  237.             lpEnv += CbSz(lpEnv);
  238.         }
  239.     }
  240.  
  241.     FreeEnvironmentStrings(lpEnv);
  242.     Log(LOG_NORMAL, "--- end of list");
  243. }
  244.  
  245.  
  246.