CHOSECOM.C

/***************************************************************************** 
*
* ChoseCom.c - This module handles the Dialog user interactions for the
* choose computers within a log file
*
* Microsoft Confidential
* Copyright 1992 - 1998 Microsoft Corporation
*
****************************************************************************/


//==========================================================================//
// Includes //
//==========================================================================//


#include "perfmon.h" // basic defns, windows.h

#include "dlgs.h" // common dialog control IDs
#include "playback.h" // for PlayingBackLog
#include "pmhelpid.h" // Help IDs
#include "utils.h" // for CallWinHelp

static LPTSTR lpChooseComputerText ;
static DWORD TextLength ;

//==========================================================================//
// Message Handlers //
//==========================================================================//


void static OnInitDialog (HDLG hDlg)
{
// build the listbox of computers wintin the log file
BuildLogComputerList (hDlg, IDD_CHOOSECOMPUTERLISTBOX) ;

// set the scroll limit on the edit box
EditSetLimit (GetDlgItem(hDlg, IDD_CHOOSECOMPUTERNAME), TextLength-1) ;

dwCurrentDlgID = HC_PM_idDlgLogComputerList ;

WindowCenter (hDlg) ;
} // OnInitDialog

void static OnOK (HDLG hDlg)
{

GetDlgItemText (hDlg,
IDD_CHOOSECOMPUTERNAME,
lpChooseComputerText,
TextLength-1) ;

} // OnOK

void OnComputerSelectionChanged (HWND hDlg)
{
TCHAR localComputerName [MAX_COMPUTERNAME_LENGTH + 3] ;
int SelectedIndex ;
HWND hWndLB = GetDlgItem (hDlg, IDD_CHOOSECOMPUTERLISTBOX) ;

// get the listbox selection and put it in the editbox
SelectedIndex = LBSelection (hWndLB) ;
if (SelectedIndex != LB_ERR)
{
localComputerName[0] = TEXT('\0') ;
if (LBString (hWndLB, SelectedIndex, localComputerName) != LB_ERR &&
localComputerName[0])
{
SetDlgItemText (hDlg, IDD_CHOOSECOMPUTERNAME, localComputerName) ;
}
}
} // OnComputerSelectionChanged

BOOL FAR PASCAL ChooseLogComputerDlgProc(HWND hDlg, WORD msg, DWORD wParam, LONG lParam)
{

switch (msg)
{
case WM_INITDIALOG:
OnInitDialog (hDlg) ;
break ;

case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
OnOK (hDlg) ;
dwCurrentDlgID = 0 ;
EndDialog (hDlg, TRUE) ;
return (TRUE) ;
break ;

case IDCANCEL:
dwCurrentDlgID = 0 ;
EndDialog (hDlg, FALSE) ;
return (TRUE) ;

case ID_HELP:
CallWinHelp (dwCurrentDlgID) ;
break ;

case IDD_CHOOSECOMPUTERLISTBOX:
if (HIWORD (wParam) == LBN_SELCHANGE)
OnComputerSelectionChanged (hDlg) ;
break ;

default:
break;

}
break ;


default:
break ;
}

return (FALSE) ;
} // ChooseLogComputerDlgProc


BOOL GetLogFileComputer (HWND hWndParent, LPTSTR lpComputerName, DWORD BufferSize)
{
BOOL bSuccess ;
DWORD LocalDlgID = dwCurrentDlgID ;

// initialize some globals
*lpComputerName = TEXT('\0') ;
lpChooseComputerText = lpComputerName ;
TextLength = BufferSize ;

bSuccess = DialogBox (hInstance,
idDlgChooseComputer,
hWndParent,
(DLGPROC)ChooseLogComputerDlgProc) ;

dwCurrentDlgID = LocalDlgID ;

if (*lpComputerName == '\0')
{
bSuccess = FALSE ;
}

return (bSuccess) ;
} // GetLogFileComputer