closehandle.cpp
来自「IO函数调用测试」· C++ 代码 · 共 111 行
CPP
111 行
// CloseHandle.cpp : implementation file
//
#include "stdafx.h"
#include <afxtempl.h>
#include "help.h"
#include "IOExplorer.h"
#include "TraceEvent.h"
#include "EventList.h"
#include "EventLog.h"
#include "status.h"
#include "handle.h"
#include "HandleCombo.h"
#include "handleManager.h"
#include "TraceManager.h"
#include "CreateFileSheet.h"
#include "CloseHandleEvent.h"
#include "HandlePage.h"
#include "CloseHandle.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCloseHandle property page
IMPLEMENT_DYNCREATE(CCloseHandle, CHandlePage)
CCloseHandle::CCloseHandle() : CHandlePage(CCloseHandle::IDD)
{
//{{AFX_DATA_INIT(CCloseHandle)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CCloseHandle::~CCloseHandle()
{
}
void CCloseHandle::DoDataExchange(CDataExchange* pDX)
{
CHandlePage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCloseHandle)
DDX_Control(pDX, IDC_CLOSEHANDLE, c_CloseHandle);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCloseHandle, CHandlePage)
//{{AFX_MSG_MAP(CCloseHandle)
ON_BN_CLICKED(IDC_CLOSEHANDLE, OnClosehandle)
ON_BN_CLICKED(IDC_HELPBUTTON, OnHelp)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCloseHandle message handlers
void CCloseHandle::OnClosehandle()
{
CCreateFileSheet * sheet = getSheet();
CHandle * ho = sheet->HandleList.getCurrentHandle();
CloseHandleEvent * e = new CloseHandleEvent(ho->Name, ho->h);
if(e->execute())
{ /* closed handle */
sheet->HandleList.Remove(ho->h);
sheet->HandleList.setCurrentHandle(NULL);
CString s = e->display_result();
c_Status.SetWindowText(s);
} /* closed handle */
else
{ /* error */
c_Status.SetWindowText(e->lasterror);
} /* error */
sheet->log->add(e);
loadHandles();
updateControls();
}
void CCloseHandle::updateControls()
{
CCreateFileSheet * sheet = getSheet();
CHandle * ho = sheet->HandleList.getCurrentHandle();
CloseHandleEvent e(ho != NULL ? ho->Name : _T(""),
ho != NULL ? ho->h : NULL);
CString s = e.display();
c_Text.SetWindowText(s);
c_CloseHandle.EnableWindow(ho != NULL);
}
BOOL CCloseHandle::OnSetActive()
{
return CHandlePage::OnSetActive();
}
void CCloseHandle::OnHelp()
{
AfxGetApp()->WinHelp(CloseHandleHelp, HELP_CONTEXT);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?