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