system.cpp
来自「wince6.0平台上的任务管理器,功能类似于windows的任务管理器. 」· C++ 代码 · 共 103 行
CPP
103 行
// System.cpp : Implementation of CSystem
#include "stdafx.h"
#include "System.h"
#include <stdexcept>
#include "Tools\Exception.h"
#include "Windows\Handle.h"
CSystem::CSystem()
{
Update();
}
// CSystem
HRESULT CSystem::FinalConstruct()
{
return S_OK;
}
void CSystem::FinalRelease()
{
}
STDMETHODIMP CSystem::InterfaceSupportsErrorInfo(REFIID riid)
{
static const IID* arr[] =
{
&IID_ISystem
};
for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
if (InlineIsEqualGUID(*arr[i],riid))
return S_OK;
}
return S_FALSE;
}
STDMETHODIMP CSystem::Update(void)
{
{
// Make sure this happens thread-safe
Windows::AutoCriticalSection lock(m_lock);
m_memoryStatus.dwLength = sizeof(MEMORYSTATUS);
GlobalMemoryStatus(&m_memoryStatus);
}
return S_OK;
}
STDMETHODIMP CSystem::get_PhysicalMemoryTotal(/*[out, retval]*/ LONG *value)
{
*value = m_memoryStatus.dwTotalPhys;
return S_OK;
}
STDMETHODIMP CSystem::get_PhysicalAvailable(/*[out, retval]*/ LONG *value)
{
*value = m_memoryStatus.dwAvailPhys;
return S_OK;
}
STDMETHODIMP CSystem::get_PageFileTotal(/*[out, retval]*/ LONG *value)
{
*value = m_memoryStatus.dwTotalPageFile;
return S_OK;
}
STDMETHODIMP CSystem::get_PageFileAvailable(/*[out, retval]*/ LONG *value)
{
*value = m_memoryStatus.dwAvailPageFile;
return S_OK;
}
STDMETHODIMP CSystem::get_VirtualMemoryTotal(/*[out, retval]*/ LONG *value)
{
*value = m_memoryStatus.dwTotalVirtual;
return S_OK;
}
STDMETHODIMP CSystem::get_VirtualMemoryAvailable(/*[out, retval]*/ LONG *value)
{
*value = m_memoryStatus.dwAvailVirtual;
return S_OK;
}
STDMETHODIMP CSystem::EndProcess(/*[in]*/ LONG Pid, /*[out, retval]*/ VARIANT_BOOL *result)
{
BOOL success = FALSE;
try
{
Windows::Handle processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, Pid);
success = TerminateProcess(processHandle, 0);
} catch (...)
{
}
*result = (success != FALSE) ? VARIANT_TRUE : VARIANT_FALSE;
return S_OK;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?