Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

151 lines
4.3 KiB

//////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2002 Microsoft Corporation. All rights reserved.
// Copyright (c) 2002 OSR Open Systems Resources, Inc.
//
// ProviderFormatSelectionDlg.cpp : implementation file
//////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include <tchar.h>
#include <wmistr.h>
#include <initguid.h>
extern "C" {
#include <evntrace.h>
}
#include <traceprt.h>
#include "TraceView.h"
#include "LogSession.h"
#include "ProviderFormatInfo.h"
#include "FormatSourceSelectDlg.h"
#include "ProviderFormatSelectionDlg.h"
// CProviderFormatSelectionDlg dialog
IMPLEMENT_DYNAMIC(CProviderFormatSelectionDlg, CDialog)
CProviderFormatSelectionDlg::CProviderFormatSelectionDlg(CWnd* pParent, CTraceSession *pTraceSession)
: CDialog(CProviderFormatSelectionDlg::IDD, pParent)
{
m_pTraceSession = pTraceSession;
}
CProviderFormatSelectionDlg::~CProviderFormatSelectionDlg()
{
}
BOOL CProviderFormatSelectionDlg::OnInitDialog()
{
BOOL retVal;
retVal = CDialog::OnInitDialog();
((CButton *)GetDlgItem(IDC_PDB_SELECT_RADIO))->SetCheck(BST_CHECKED);
GetDlgItem(IDC_PDB_FILE_EDIT)->EnableWindow(TRUE);
GetDlgItem(IDC_PDB_BROWSE_BUTTON)->EnableWindow(TRUE);
((CButton *)GetDlgItem(IDC_TMF_SELECT_RADIO))->SetCheck(BST_UNCHECKED);
return retVal;
}
void CProviderFormatSelectionDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_PDB_FILE_EDIT, m_pdbFileName);
}
BEGIN_MESSAGE_MAP(CProviderFormatSelectionDlg, CDialog)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
ON_BN_CLICKED(IDC_PDB_SELECT_RADIO, OnBnClickedPdbSelectRadio)
ON_BN_CLICKED(IDC_TMF_SELECT_RADIO, OnBnClickedTmfSelectRadio)
ON_BN_CLICKED(IDC_PDB_BROWSE_BUTTON, OnBnClickedPdbBrowseButton)
END_MESSAGE_MAP()
// CProviderFormatSelectionDlg message handlers
void CProviderFormatSelectionDlg::OnBnClickedOk()
{
if(BST_CHECKED == IsDlgButtonChecked(IDC_PDB_SELECT_RADIO)) {
m_pdbFileName.GetWindowText(m_pTraceSession->m_pdbFile);
//
// Have the trace session process the PDB
//
if(!m_pTraceSession->ProcessPdb()) {
EndDialog(2);
return;
}
OnOK();
return;
}
if(((CButton *)GetDlgItem(IDC_TMF_SELECT_RADIO))->GetCheck()) {
//
// Now get the TMF file(s) or path as necessary
//
CFormatSourceSelectDlg *pDialog = new CFormatSourceSelectDlg(this, m_pTraceSession);
if(NULL == pDialog) {
EndDialog(2);
return;
}
if(IDOK != pDialog->DoModal()) {
delete pDialog;
EndDialog(2);
return;
}
delete pDialog;
EndDialog(1);
return;
}
}
void CProviderFormatSelectionDlg::OnBnClickedPdbSelectRadio()
{
((CButton *)GetDlgItem(IDC_PDB_SELECT_RADIO))->SetCheck(BST_CHECKED);
GetDlgItem(IDC_PDB_FILE_EDIT)->EnableWindow(TRUE);
GetDlgItem(IDC_PDB_BROWSE_BUTTON)->EnableWindow(TRUE);
((CButton *)GetDlgItem(IDC_TMF_SELECT_RADIO))->SetCheck(BST_UNCHECKED);
}
void CProviderFormatSelectionDlg::OnBnClickedTmfSelectRadio()
{
((CButton *)GetDlgItem(IDC_PDB_SELECT_RADIO))->SetCheck(BST_UNCHECKED);
GetDlgItem(IDC_PDB_FILE_EDIT)->EnableWindow(FALSE);
GetDlgItem(IDC_PDB_BROWSE_BUTTON)->EnableWindow(FALSE);
((CButton *)GetDlgItem(IDC_TMF_SELECT_RADIO))->SetCheck(BST_CHECKED);
}
void CProviderFormatSelectionDlg::OnBnClickedPdbBrowseButton()
{
//
// Use the common controls file open dialog
//
CFileDialog fileDlg(TRUE,
_T("pdb"),_T("*.pdb"),
OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_READONLY |
OFN_HIDEREADONLY | OFN_EXPLORER | OFN_NOCHANGEDIR,
_T("Program Database Files (*.pdb)|*.pdb||"),
this);
//
// Pop the dialog... Any error, just return
//
if( fileDlg.DoModal()!=IDOK ) {
return;
}
//
// Get the file name and display it
//
if(!fileDlg.GetPathName().IsEmpty()) {
m_pdbFileName.SetWindowText(fileDlg.GetPathName());
m_pdbFileName.SetFocus();
}
}