windows-nt/Source/XPSP1/NT/base/fs/fltsamples/filespy/usergui/fastioview.cpp
2020-09-26 16:20:57 +08:00

127 lines
2.9 KiB
C++

// FastIoView.cpp : implementation file
//
#include "stdafx.h"
#include "FileSpyApp.h"
#include "FastIoView.h"
#include "global.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFastIoView
IMPLEMENT_DYNCREATE(CFastIoView, CListView)
CFastIoView::CFastIoView()
{
pFastIoView = (LPVOID) this;
}
CFastIoView::~CFastIoView()
{
}
BEGIN_MESSAGE_MAP(CFastIoView, CListView)
//{{AFX_MSG_MAP(CFastIoView)
ON_WM_KEYDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFastIoView drawing
void CFastIoView::OnDraw(CDC* pDC)
{
UNREFERENCED_PARAMETER( pDC );
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
/////////////////////////////////////////////////////////////////////////////
// CFastIoView diagnostics+
#ifdef _DEBUG
void CFastIoView::AssertValid() const
{
CListView::AssertValid();
}
void CFastIoView::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CFastIoView message handlers
BOOL CFastIoView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
cs.style |= LVS_REPORT | WS_HSCROLL | WS_VSCROLL;
return CListView::PreCreateWindow(cs);
}
void CFastIoView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
//
// Add the list header items
//
GetListCtrl().InsertColumn(0, L"S. No", LVCFMT_LEFT, 50);
GetListCtrl().InsertColumn(1, L"Fast IO Entry", LVCFMT_LEFT, 100);
GetListCtrl().InsertColumn(2, L"FileObject", LVCFMT_LEFT, 75);
GetListCtrl().InsertColumn(3, L"Name", LVCFMT_LEFT, 250);
GetListCtrl().InsertColumn(4, L"Offset", LVCFMT_LEFT, 100);
GetListCtrl().InsertColumn(5, L"Length", LVCFMT_LEFT, 100);
GetListCtrl().InsertColumn(6, L"Wait", LVCFMT_LEFT, 100);
GetListCtrl().InsertColumn(7, L"Process:Thread", LVCFMT_LEFT, 100);
GetListCtrl().InsertColumn(8, L"OrgnTime", LVCFMT_LEFT, 78);
GetListCtrl().InsertColumn(9, L"CompTime", LVCFMT_LEFT, 78);
GetListCtrl().InsertColumn(10, L"Return Status", LVCFMT_LEFT, 100);
}
void CFastIoView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
int ti, oldti;
if (nChar == VK_DELETE)
{
ti = 0;
oldti = 0;
while(ti < GetListCtrl().GetItemCount())
{
if (GetListCtrl().GetItemState(ti, LVIS_SELECTED) & LVIS_SELECTED)
{
GetListCtrl().DeleteItem(ti);
oldti = ti;
}
else
{
ti++;
}
}
if (oldti < GetListCtrl().GetItemCount())
{
GetListCtrl().SetItemState(oldti, LVIS_SELECTED, LVIS_SELECTED);
}
else
{
GetListCtrl().SetItemState(oldti-1, LVIS_SELECTED, LVIS_SELECTED);
}
}
CListView::OnKeyDown(nChar, nRepCnt, nFlags);
}