getfilesizeevent.cpp

来自「IO函数调用测试」· C++ 代码 · 共 105 行

CPP
105
字号
#include "stdafx.h"
#include "IOExplorer.h"
#include "TraceEvent.h"
  #include "GetFileSizeEvent.h"


/****************************************************************************
*                     GetFileSizeEvent::GetFileSizeEvent
* Inputs:
*       CString s: Name of handle
*	HANDLE  hv: Actual handle, or 0 if not known
* Effect: 
*       Initializes the GetFileSizeEvent
****************************************************************************/

GetFileSizeEvent::GetFileSizeEvent(CString s, HANDLE hv)
    {
     h = hv;
     name = s;
    }

CString GetFileSizeEvent::display_result()
    {
     CString s;

     s.Format(_T("%d"), result);
     return s;
    }

/****************************************************************************
*                          GetFileSizeEvent::execute
* Result: LRESULT
*       (LRESULT)TRUE if successful
*	(LRESULT)FALSE if failure
* Effect: 
*       Closes the handle whose handle value is supplied in the event block
****************************************************************************/

LRESULT GetFileSizeEvent::execute()
    {
     if(h == NULL)
        { /* invalid handle */
	 lasterror = ERROR_INVALID_HANDLE;
	 return FALSE;  // bogus
	} /* invalid handle */

     CWaitCursor c;

     result = GetFileSize(h, NULL);
     if(result != 0xFFFFFFFF)
	lasterror = 0;
     else
	lasterror = ::GetLastError();
     return result;
    }

/****************************************************************************
*                          GetFileSizeEvent::display
* Result: CString
*       Display string for the event
* Effect: 
*       Creates a displayable string
****************************************************************************/

CString GetFileSizeEvent::display()
    {
     CString handle;
     if(h == NULL)
        { /* no handle */
	 if(name.GetLength() == 0)
	    { /* no name */
	     handle = _T("");
	    } /* no name */
	 else
	    { /* has name */
	     handle = name;
	    } /* has name */
	} /* no handle */
     else
        { /* valid handle */
	 handle = name;
	} /* valid handle */

     CString rf;
     rf.Format(_T("GetFileSize(%s, NULL)"), handle);

     return rf;
    }
 

/****************************************************************************
*                           GetFileSizeEvent::copy
* Result: TraceEvent *
*       A copy of the GetFileSize event
* Effect: 
*       Makes a complete copy of the GetFileSize event
****************************************************************************/

TraceEvent * GetFileSizeEvent::copy()
    {
     GetFileSizeEvent * e = new GetFileSizeEvent(name, h);
     copyTraceData(e);
     return e;
    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?