CHOSECOM.C
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*****************************************************************************
  2.  *
  3.  *  ChoseCom.c - This module handles the Dialog user interactions for the
  4.  *    choose computers within a log file
  5.  *
  6.  *  Microsoft Confidential
  7.  *  Copyright (c) 1992-1997 Microsoft Corporation
  8.  *
  9.  ****************************************************************************/
  10.  
  11. //==========================================================================//
  12. //                                  Includes                                //
  13. //==========================================================================//
  14. #include "perfmon.h"       // basic defns, windows.h
  15. #include "dlgs.h"          // common dialog control IDs
  16. #include "playback.h"      // for PlayingBackLog
  17. #include "pmhelpid.h"      // Help IDs
  18. #include "utils.h"         // for CallWinHelp
  19. static LPTSTR  lpChooseComputerText ;
  20. static DWORD   TextLength ;
  21. //==========================================================================//
  22. //                              Message Handlers                            //
  23. //==========================================================================//
  24. void static OnInitDialog (HDLG hDlg)
  25.    {
  26.    // build the listbox of computers wintin the log file
  27.    BuildLogComputerList (hDlg, IDD_CHOOSECOMPUTERLISTBOX) ;
  28.    // set the scroll limit on the edit box
  29.    EditSetLimit (GetDlgItem(hDlg, IDD_CHOOSECOMPUTERNAME), TextLength-1) ;
  30.    dwCurrentDlgID = HC_PM_idDlgLogComputerList ;
  31.    WindowCenter (hDlg) ;
  32.    }  // OnInitDialog
  33. void static OnOK (HDLG hDlg)
  34.    {
  35.    GetDlgItemText (hDlg,
  36.       IDD_CHOOSECOMPUTERNAME,
  37.       lpChooseComputerText,
  38.       TextLength-1) ;
  39.    }  // OnOK
  40. void OnComputerSelectionChanged (HWND hDlg)
  41.    {
  42.    TCHAR localComputerName [MAX_COMPUTERNAME_LENGTH + 3] ;
  43.    int   SelectedIndex ;
  44.    HWND  hWndLB = GetDlgItem (hDlg, IDD_CHOOSECOMPUTERLISTBOX) ;
  45.    // get the listbox selection and put it in the editbox
  46.    SelectedIndex = LBSelection (hWndLB) ;
  47.    if (SelectedIndex != LB_ERR)
  48.       {
  49.       localComputerName[0] = TEXT('') ;
  50.       if (LBString (hWndLB, SelectedIndex, localComputerName) != LB_ERR &&
  51.          localComputerName[0])
  52.          {
  53.          SetDlgItemText (hDlg, IDD_CHOOSECOMPUTERNAME, localComputerName) ;
  54.          }
  55.       }
  56.    }  // OnComputerSelectionChanged
  57. BOOL FAR PASCAL ChooseLogComputerDlgProc(HWND hDlg, WORD msg, DWORD wParam, LONG lParam)
  58.    {
  59.    switch (msg)
  60.       {
  61.       case WM_INITDIALOG:
  62.          OnInitDialog (hDlg) ;
  63.          break ;
  64.       case WM_COMMAND:
  65.          switch (LOWORD(wParam))
  66.             {
  67.             case IDOK:
  68.                OnOK (hDlg) ;
  69.                dwCurrentDlgID = 0 ;
  70.                EndDialog (hDlg, TRUE) ;
  71.                return (TRUE) ;
  72.                break ;
  73.             case IDCANCEL:
  74.                dwCurrentDlgID = 0 ;
  75.                EndDialog (hDlg, FALSE) ;
  76.                return (TRUE) ;
  77.             case ID_HELP:
  78.                CallWinHelp (dwCurrentDlgID) ;
  79.                break ;
  80.             case IDD_CHOOSECOMPUTERLISTBOX:
  81.                if (HIWORD (wParam) == LBN_SELCHANGE)
  82.                   OnComputerSelectionChanged (hDlg) ;
  83.                break ;
  84.             default:
  85.                break;
  86.             }
  87.          break ;
  88.       default:
  89.          break ;
  90.       }
  91.    return (FALSE) ;
  92.    }  // ChooseLogComputerDlgProc
  93. BOOL GetLogFileComputer (HWND hWndParent, LPTSTR lpComputerName, DWORD BufferSize)
  94.    {
  95.    BOOL  bSuccess ;
  96.    DWORD LocalDlgID = dwCurrentDlgID ;
  97.    // initialize some globals
  98.    *lpComputerName = TEXT('') ;
  99.    lpChooseComputerText = lpComputerName ;
  100.    TextLength = BufferSize ;
  101.    bSuccess = DialogBox (hInstance,
  102.       idDlgChooseComputer,
  103.       hWndParent,
  104.       (DLGPROC)ChooseLogComputerDlgProc) ;
  105.    dwCurrentDlgID = LocalDlgID ;
  106.    if (*lpComputerName == '')
  107.       {
  108.       bSuccess = FALSE ;
  109.       }
  110.    return (bSuccess) ;
  111.    }  // GetLogFileComputer