cpuload.h

来自「wince6.0平台上的任务管理器,功能类似于windows的任务管理器. 」· C头文件 代码 · 共 93 行

H
93
字号
// CpuLoad.h : Declaration of the CCpuLoad

#pragma once
#ifdef STANDARDSHELL_UI_MODEL
#include "resource.h"
#endif
#ifdef POCKETPC2003_UI_MODEL
#include "resourceppc.h"
#endif
#ifdef SMARTPHONE2003_UI_MODEL
#include "resourcesp.h"
#endif
#ifdef AYGSHELL_UI_MODEL
#include "resourceayg.h"
#endif

#include "ToolBox.h"
#include "CpuLoad.h"
#include "_ICpuLoadEvents_CP.h"

#include "Windows\AutoCriticalSection.h"
#include "Threads\TimerThread.h"
#include "Threads\IdleThread.h"

#define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA

#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
#error "Single-threaded COM objects are not properly supported on Windows CE platform, such as the Windows Mobile platforms that do not include full DCOM support. Define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA to force ATL to support creating single-thread COM object's and allow use of it's single-threaded COM object implementations. The threading model in your rgs file was set to 'Free' as that is the only threading model supported in non DCOM Windows CE platforms."
#endif


// CCpuLoad

class ATL_NO_VTABLE CCpuLoad :
	public CComObjectRootEx<CComMultiThreadModel>,
	public CComCoClass<CCpuLoad, &CLSID_CpuLoad>,
	public ISupportErrorInfo,
	public IConnectionPointContainerImpl<CCpuLoad>,
	public CProxy_ICpuLoadEvents<CCpuLoad>,
	public IDispatchImpl<ICpuLoad, &IID_ICpuLoad, &LIBID_ToolBoxLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
    public Threads::TimerCallback
{
public:
	CCpuLoad();

#ifndef _CE_DCOM
DECLARE_REGISTRY_RESOURCEID(IDR_CPULOAD)
#endif
#ifdef _CE_DCOM
DECLARE_REGISTRY_RESOURCEID(IDR_CPULOADDCOM)
#endif


BEGIN_COM_MAP(CCpuLoad)
	COM_INTERFACE_ENTRY(ICpuLoad)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(ISupportErrorInfo)
	COM_INTERFACE_ENTRY(IConnectionPointContainer)
END_COM_MAP()

BEGIN_CONNECTION_POINT_MAP(CCpuLoad)
	CONNECTION_POINT_ENTRY(__uuidof(_ICpuLoadEvents))
END_CONNECTION_POINT_MAP()

	DECLARE_PROTECT_FINAL_CONSTRUCT()
    //DECLARE_CLASSFACTORY_SINGLETON(CCpuLoad)

	HRESULT FinalConstruct();
	void FinalRelease();

public:
    // COM
    // ISupportsErrorInfo
	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

    // ICpuLoad
    STDMETHOD(Start)(void);
    STDMETHOD(Stop)(void);

    // C++
    // TimerCallback
    void OnTimer();

private:
    bool    m_started;
    Threads::TimerThread    m_timerThread;
    Threads::IdleThread    m_idleThread;
    Windows::CriticalSection    m_lock;
    Windows::Handle    m_handle;
};

OBJECT_ENTRY_AUTO(__uuidof(CpuLoad), CCpuLoad)

⌨️ 快捷键说明

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