mirror of
https://github.com/bobranten/Ext4Fsd.git
synced 2025-10-30 05:18:31 -05:00
line endings conversions
This commit is contained in:
@@ -1,267 +1,267 @@
|
||||
// PerfStatDlg.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "ext2mgr.h"
|
||||
#include "PerfStatDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPerfStatDlg dialog
|
||||
|
||||
|
||||
CPerfStatDlg::CPerfStatDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CPerfStatDlg::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CPerfStatDlg)
|
||||
m_Interval = 30;
|
||||
m_Handle = 0;
|
||||
//}}AFX_DATA_INIT
|
||||
m_IrpList = NULL;
|
||||
m_MemList = NULL;
|
||||
}
|
||||
|
||||
void CPerfStatDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CPerfStatDlg)
|
||||
DDX_Text(pDX, IDC_PERFSTAT_INTERVAL, m_Interval);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CPerfStatDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CPerfStatDlg)
|
||||
ON_WM_TIMER()
|
||||
ON_WM_DESTROY()
|
||||
ON_COMMAND(ID_QUERYPERF, OnQueryPerf)
|
||||
ON_EN_CHANGE(IDC_PERFSTAT_INTERVAL, OnChangePerfstatInterval)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPerfStatDlg message handlers
|
||||
|
||||
BOOL CPerfStatDlg::OnInitDialog()
|
||||
{
|
||||
LONG_PTR dwStyle = 0;
|
||||
int i;
|
||||
CString s;
|
||||
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
|
||||
m_IrpList = (CListCtrl *)GetDlgItem(IDC_IRP_LIST);
|
||||
m_MemList = (CListCtrl *)GetDlgItem(IDC_MEMORY_LIST);;
|
||||
|
||||
if (m_IrpList == NULL || m_MemList == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* initialize the memory list */
|
||||
dwStyle=GetWindowLongPtr(m_MemList->GetSafeHwnd(), GWL_STYLE);
|
||||
dwStyle&=~LVS_TYPEMASK;
|
||||
dwStyle|= (LVS_REPORT | LVS_AUTOARRANGE);
|
||||
SetWindowLongPtr(m_MemList->GetSafeHwnd(),GWL_STYLE,dwStyle);
|
||||
m_MemList->SetExtendedStyle(LVS_EX_GRIDLINES);
|
||||
ListView_SetExtendedListViewStyleEx (
|
||||
m_MemList->GetSafeHwnd(),
|
||||
LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT );
|
||||
|
||||
m_MemList->DeleteAllItems();
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_NAME);
|
||||
m_MemList->InsertColumn(0, (LPCSTR)s, LVCFMT_RIGHT, 100);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_UNIT);
|
||||
m_MemList->InsertColumn(1, (LPCSTR)s, LVCFMT_RIGHT, 40);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_CURRENT);
|
||||
m_MemList->InsertColumn(2, (LPCSTR)s, LVCFMT_RIGHT, 56);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_SIZE);
|
||||
m_MemList->InsertColumn(3, (LPCSTR)s, LVCFMT_RIGHT, 80);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_TOTAL);
|
||||
m_MemList->InsertColumn(4, (LPCSTR)s, LVCFMT_RIGHT, 120);
|
||||
for (i = 0; PerfStatStrings[i] != NULL ; i++) {
|
||||
m_MemList->InsertItem(i, PerfStatStrings[i]);
|
||||
}
|
||||
|
||||
/* initialize the irp list */
|
||||
dwStyle=GetWindowLongPtr(m_IrpList->GetSafeHwnd(), GWL_STYLE);
|
||||
dwStyle&=~LVS_TYPEMASK;
|
||||
dwStyle|= (LVS_REPORT | LVS_AUTOARRANGE);
|
||||
SetWindowLongPtr(m_IrpList->GetSafeHwnd(),GWL_STYLE,dwStyle);
|
||||
m_IrpList->SetExtendedStyle(LVS_EX_GRIDLINES);
|
||||
ListView_SetExtendedListViewStyleEx (
|
||||
m_IrpList->GetSafeHwnd(),
|
||||
LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT );
|
||||
|
||||
m_IrpList->DeleteAllItems();
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_NAME);
|
||||
m_IrpList->InsertColumn(0, (LPCSTR)s, LVCFMT_RIGHT, 180);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_PROCESSING);
|
||||
m_IrpList->InsertColumn(1, (LPCSTR)s, LVCFMT_RIGHT, 110);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_PROCESSED);
|
||||
m_IrpList->InsertColumn(2, (LPCSTR)s, LVCFMT_RIGHT, 100);
|
||||
for (i=0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++) {
|
||||
m_IrpList->InsertItem(i, IrpMjStrings[i]);
|
||||
}
|
||||
|
||||
RefreshPerfStat();
|
||||
|
||||
SetTimer('STAT', m_Interval * 1000, NULL);
|
||||
UpdateData(FALSE);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CPerfStatDlg::RefreshPerfStat()
|
||||
{
|
||||
int i;
|
||||
CString s;
|
||||
|
||||
PEXT2_PERF_STATISTICS_V1 PerfV1 = NULL;
|
||||
PEXT2_PERF_STATISTICS_V2 PerfV2 = NULL;
|
||||
|
||||
NT::NTSTATUS status;
|
||||
|
||||
if (m_Handle == 0) {
|
||||
status = Ext2Open("\\DosDevices\\Ext2Fsd", &m_Handle,
|
||||
EXT2_DESIRED_ACCESS );
|
||||
if (!NT_SUCCESS(status)) {
|
||||
goto errorout;
|
||||
}
|
||||
}
|
||||
|
||||
if (Ext2QueryPerfStat(m_Handle, &m_PerfStat, &PerfV1, &PerfV2)) {
|
||||
|
||||
if (PerfV2) {
|
||||
|
||||
if (m_MemList) {
|
||||
for (i = 0; i < PS_MAX_TYPE_V2; i++) {
|
||||
if (PerfV2->Unit.Slot[i] == 0)
|
||||
break;
|
||||
else if (PerfV2->Unit.Slot[i] == 1)
|
||||
s = "*";
|
||||
else
|
||||
s.Format("%u", PerfV2->Unit.Slot[i]);
|
||||
m_MemList->SetItem(i, 1, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV2->Current.Slot[i]);
|
||||
m_MemList->SetItem(i, 2, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV2->Size.Slot[i]);
|
||||
m_MemList->SetItem(i, 3, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV2->Total.Slot[i]);
|
||||
m_MemList->SetItem(i, 4, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_IrpList) {
|
||||
for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++) {
|
||||
s.Format("%u", PerfV2->Irps[i].Current);
|
||||
m_IrpList->SetItem(i, 1, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
s.Format("%u", PerfV2->Irps[i].Processed);
|
||||
m_IrpList->SetItem(i, 2, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (PerfV1) {
|
||||
|
||||
if (m_MemList) {
|
||||
for (i = 0; i < PS_MAX_TYPE_V1; i++) {
|
||||
|
||||
if (PerfV1->Unit.Slot[i] == 0)
|
||||
s = "*";
|
||||
else
|
||||
s.Format("%u", PerfV1->Unit.Slot[i]);
|
||||
m_MemList->SetItem(i, 1, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV1->Current.Slot[i]);
|
||||
m_MemList->SetItem(i, 2, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV1->Size.Slot[i]);
|
||||
m_MemList->SetItem(i, 3, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV1->Total.Slot[i]);
|
||||
m_MemList->SetItem(i, 4, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_IrpList) {
|
||||
for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++) {
|
||||
s.Format("%u", PerfV1->Irps[i].Current);
|
||||
m_IrpList->SetItem(i, 1, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
s.Format("%u", PerfV1->Irps[i].Processed);
|
||||
m_IrpList->SetItem(i, 2, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
Ext2Close(&m_Handle);
|
||||
}
|
||||
|
||||
errorout:
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnTimer(UINT_PTR nIDEvent)
|
||||
{
|
||||
RefreshPerfStat();
|
||||
|
||||
CDialog::OnTimer(nIDEvent);
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnDestroy()
|
||||
{
|
||||
KillTimer('STAT');
|
||||
Ext2Close(&m_Handle);
|
||||
CDialog::OnDestroy();
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnChangePerfstatInterval()
|
||||
{
|
||||
UpdateData(TRUE);
|
||||
|
||||
if (m_Interval == 0) {
|
||||
m_Interval = 1;
|
||||
}
|
||||
SetTimer('STAT', m_Interval * 1000, NULL);
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnOK()
|
||||
{
|
||||
// TODO: Add extra validation here
|
||||
KillTimer('STAT');
|
||||
Ext2Close(&m_Handle);
|
||||
GetParent()->PostMessage(WM_COMMAND, ID_PERFSTOP, 0);
|
||||
CDialog::OnOK();
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnCancel()
|
||||
{
|
||||
// TODO: Add extra validation here
|
||||
KillTimer('STAT');
|
||||
Ext2Close(&m_Handle);
|
||||
GetParent()->PostMessage(WM_COMMAND, ID_PERFSTOP, 0);
|
||||
CDialog::OnCancel();
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnQueryPerf()
|
||||
{
|
||||
RefreshPerfStat();
|
||||
}
|
||||
// PerfStatDlg.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "ext2mgr.h"
|
||||
#include "PerfStatDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPerfStatDlg dialog
|
||||
|
||||
|
||||
CPerfStatDlg::CPerfStatDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CPerfStatDlg::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CPerfStatDlg)
|
||||
m_Interval = 30;
|
||||
m_Handle = 0;
|
||||
//}}AFX_DATA_INIT
|
||||
m_IrpList = NULL;
|
||||
m_MemList = NULL;
|
||||
}
|
||||
|
||||
void CPerfStatDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CPerfStatDlg)
|
||||
DDX_Text(pDX, IDC_PERFSTAT_INTERVAL, m_Interval);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CPerfStatDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CPerfStatDlg)
|
||||
ON_WM_TIMER()
|
||||
ON_WM_DESTROY()
|
||||
ON_COMMAND(ID_QUERYPERF, OnQueryPerf)
|
||||
ON_EN_CHANGE(IDC_PERFSTAT_INTERVAL, OnChangePerfstatInterval)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPerfStatDlg message handlers
|
||||
|
||||
BOOL CPerfStatDlg::OnInitDialog()
|
||||
{
|
||||
LONG_PTR dwStyle = 0;
|
||||
int i;
|
||||
CString s;
|
||||
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
|
||||
m_IrpList = (CListCtrl *)GetDlgItem(IDC_IRP_LIST);
|
||||
m_MemList = (CListCtrl *)GetDlgItem(IDC_MEMORY_LIST);;
|
||||
|
||||
if (m_IrpList == NULL || m_MemList == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* initialize the memory list */
|
||||
dwStyle=GetWindowLongPtr(m_MemList->GetSafeHwnd(), GWL_STYLE);
|
||||
dwStyle&=~LVS_TYPEMASK;
|
||||
dwStyle|= (LVS_REPORT | LVS_AUTOARRANGE);
|
||||
SetWindowLongPtr(m_MemList->GetSafeHwnd(),GWL_STYLE,dwStyle);
|
||||
m_MemList->SetExtendedStyle(LVS_EX_GRIDLINES);
|
||||
ListView_SetExtendedListViewStyleEx (
|
||||
m_MemList->GetSafeHwnd(),
|
||||
LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT );
|
||||
|
||||
m_MemList->DeleteAllItems();
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_NAME);
|
||||
m_MemList->InsertColumn(0, (LPCSTR)s, LVCFMT_RIGHT, 100);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_UNIT);
|
||||
m_MemList->InsertColumn(1, (LPCSTR)s, LVCFMT_RIGHT, 40);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_CURRENT);
|
||||
m_MemList->InsertColumn(2, (LPCSTR)s, LVCFMT_RIGHT, 56);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_SIZE);
|
||||
m_MemList->InsertColumn(3, (LPCSTR)s, LVCFMT_RIGHT, 80);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_TOTAL);
|
||||
m_MemList->InsertColumn(4, (LPCSTR)s, LVCFMT_RIGHT, 120);
|
||||
for (i = 0; PerfStatStrings[i] != NULL ; i++) {
|
||||
m_MemList->InsertItem(i, PerfStatStrings[i]);
|
||||
}
|
||||
|
||||
/* initialize the irp list */
|
||||
dwStyle=GetWindowLongPtr(m_IrpList->GetSafeHwnd(), GWL_STYLE);
|
||||
dwStyle&=~LVS_TYPEMASK;
|
||||
dwStyle|= (LVS_REPORT | LVS_AUTOARRANGE);
|
||||
SetWindowLongPtr(m_IrpList->GetSafeHwnd(),GWL_STYLE,dwStyle);
|
||||
m_IrpList->SetExtendedStyle(LVS_EX_GRIDLINES);
|
||||
ListView_SetExtendedListViewStyleEx (
|
||||
m_IrpList->GetSafeHwnd(),
|
||||
LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT );
|
||||
|
||||
m_IrpList->DeleteAllItems();
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_NAME);
|
||||
m_IrpList->InsertColumn(0, (LPCSTR)s, LVCFMT_RIGHT, 180);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_PROCESSING);
|
||||
m_IrpList->InsertColumn(1, (LPCSTR)s, LVCFMT_RIGHT, 110);
|
||||
|
||||
s.LoadString(IDS_PERFSTAT_PROCESSED);
|
||||
m_IrpList->InsertColumn(2, (LPCSTR)s, LVCFMT_RIGHT, 100);
|
||||
for (i=0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++) {
|
||||
m_IrpList->InsertItem(i, IrpMjStrings[i]);
|
||||
}
|
||||
|
||||
RefreshPerfStat();
|
||||
|
||||
SetTimer('STAT', m_Interval * 1000, NULL);
|
||||
UpdateData(FALSE);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CPerfStatDlg::RefreshPerfStat()
|
||||
{
|
||||
int i;
|
||||
CString s;
|
||||
|
||||
PEXT2_PERF_STATISTICS_V1 PerfV1 = NULL;
|
||||
PEXT2_PERF_STATISTICS_V2 PerfV2 = NULL;
|
||||
|
||||
NT::NTSTATUS status;
|
||||
|
||||
if (m_Handle == 0) {
|
||||
status = Ext2Open("\\DosDevices\\Ext2Fsd", &m_Handle,
|
||||
EXT2_DESIRED_ACCESS );
|
||||
if (!NT_SUCCESS(status)) {
|
||||
goto errorout;
|
||||
}
|
||||
}
|
||||
|
||||
if (Ext2QueryPerfStat(m_Handle, &m_PerfStat, &PerfV1, &PerfV2)) {
|
||||
|
||||
if (PerfV2) {
|
||||
|
||||
if (m_MemList) {
|
||||
for (i = 0; i < PS_MAX_TYPE_V2; i++) {
|
||||
if (PerfV2->Unit.Slot[i] == 0)
|
||||
break;
|
||||
else if (PerfV2->Unit.Slot[i] == 1)
|
||||
s = "*";
|
||||
else
|
||||
s.Format("%u", PerfV2->Unit.Slot[i]);
|
||||
m_MemList->SetItem(i, 1, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV2->Current.Slot[i]);
|
||||
m_MemList->SetItem(i, 2, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV2->Size.Slot[i]);
|
||||
m_MemList->SetItem(i, 3, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV2->Total.Slot[i]);
|
||||
m_MemList->SetItem(i, 4, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_IrpList) {
|
||||
for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++) {
|
||||
s.Format("%u", PerfV2->Irps[i].Current);
|
||||
m_IrpList->SetItem(i, 1, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
s.Format("%u", PerfV2->Irps[i].Processed);
|
||||
m_IrpList->SetItem(i, 2, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (PerfV1) {
|
||||
|
||||
if (m_MemList) {
|
||||
for (i = 0; i < PS_MAX_TYPE_V1; i++) {
|
||||
|
||||
if (PerfV1->Unit.Slot[i] == 0)
|
||||
s = "*";
|
||||
else
|
||||
s.Format("%u", PerfV1->Unit.Slot[i]);
|
||||
m_MemList->SetItem(i, 1, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV1->Current.Slot[i]);
|
||||
m_MemList->SetItem(i, 2, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV1->Size.Slot[i]);
|
||||
m_MemList->SetItem(i, 3, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
|
||||
s.Format("%u", PerfV1->Total.Slot[i]);
|
||||
m_MemList->SetItem(i, 4, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_IrpList) {
|
||||
for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++) {
|
||||
s.Format("%u", PerfV1->Irps[i].Current);
|
||||
m_IrpList->SetItem(i, 1, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
s.Format("%u", PerfV1->Irps[i].Processed);
|
||||
m_IrpList->SetItem(i, 2, LVIF_TEXT, (LPCSTR)s, 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
Ext2Close(&m_Handle);
|
||||
}
|
||||
|
||||
errorout:
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnTimer(UINT_PTR nIDEvent)
|
||||
{
|
||||
RefreshPerfStat();
|
||||
|
||||
CDialog::OnTimer(nIDEvent);
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnDestroy()
|
||||
{
|
||||
KillTimer('STAT');
|
||||
Ext2Close(&m_Handle);
|
||||
CDialog::OnDestroy();
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnChangePerfstatInterval()
|
||||
{
|
||||
UpdateData(TRUE);
|
||||
|
||||
if (m_Interval == 0) {
|
||||
m_Interval = 1;
|
||||
}
|
||||
SetTimer('STAT', m_Interval * 1000, NULL);
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnOK()
|
||||
{
|
||||
// TODO: Add extra validation here
|
||||
KillTimer('STAT');
|
||||
Ext2Close(&m_Handle);
|
||||
GetParent()->PostMessage(WM_COMMAND, ID_PERFSTOP, 0);
|
||||
CDialog::OnOK();
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnCancel()
|
||||
{
|
||||
// TODO: Add extra validation here
|
||||
KillTimer('STAT');
|
||||
Ext2Close(&m_Handle);
|
||||
GetParent()->PostMessage(WM_COMMAND, ID_PERFSTOP, 0);
|
||||
CDialog::OnCancel();
|
||||
}
|
||||
|
||||
void CPerfStatDlg::OnQueryPerf()
|
||||
{
|
||||
RefreshPerfStat();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user