⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 system.cpp

📁 wince6.0平台上的任务管理器,功能类似于windows的任务管理器. In order to develop applications for Windows Mobile 6.x from
💻 CPP
字号:
// 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -