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

📄 processes.h

📁 wince6.0平台上的任务管理器,功能类似于windows的任务管理器. In order to develop applications for Windows Mobile 6.x from
💻 H
字号:
// Process.h : Declaration of the CProcess

#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 <comutil.h>
#include "ToolBox.h"

#include "Windows\AutoCriticalSection.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


// CProcess

class ATL_NO_VTABLE CProcess :
	public CComObjectRootEx<CComMultiThreadModel>,
	public CComCoClass<CProcess, &CLSID_Process>,
	public ISupportErrorInfo,
	public IDispatchImpl<IProcess, &IID_IProcess, &LIBID_ToolBoxLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
	CProcess();

#ifndef _CE_DCOM
DECLARE_REGISTRY_RESOURCEID(IDR_PROCESS)
#endif
#ifdef _CE_DCOM
DECLARE_REGISTRY_RESOURCEID(IDR_PROCESSDCOM)
#endif


BEGIN_COM_MAP(CProcess)
	COM_INTERFACE_ENTRY(IProcess)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()

	DECLARE_PROTECT_FINAL_CONSTRUCT()
    //DECLARE_CLASSFACTORY_SINGLETON(CProcess)

	HRESULT FinalConstruct();
	void FinalRelease();

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

    // IProcess
    STDMETHOD(get_Name)(/*[out, retval]*/ BSTR *value);
    STDMETHOD(get_Pid)(/*[out, retval]*/ LONG *value);
    STDMETHOD(get_ThreadCount)(/*[out, retval]*/ LONG *value);
    STDMETHOD(get_BaseAddress)(/*[out, retval]*/ LONG *value);
    STDMETHOD(get_HeapSize)(/*[out, retval]*/ LONG *value);
    STDMETHOD(get_VirtualMemory)(/*[out, retval]*/ LONG *value);
    STDMETHOD(get_VirtualMemoryCommitted)(/*[out, retval]*/ LONG *value);
    STDMETHOD(get_VirtualMemoryReserved)(/*[out, retval]*/ LONG *value);
    STDMETHOD(get_DllCount)(/*[out, retval]*/ LONG *value);

    // C++
    void Init(_bstr_t name, long pid, 
                            long threadCount, 
                            long baseAddress, 
                            long heapSize, 
                            long virtualMemory,
                            long virtualMemoryCommitted,
                            long virtualMemoryReserved,
                            long dll);

private:
    Windows::CriticalSection    m_lock;
    _bstr_t    m_name;
    long    m_pid;
    long    m_threadCount;
    long    m_baseAddress;
    long    m_heapSize;
    long    m_virtualMemory;
    long    m_virtualMemoryCommitted;
    long    m_virtualMemoryReserved;
    long    m_dll;
};

OBJECT_ENTRY_AUTO(__uuidof(Process), CProcess)

⌨️ 快捷键说明

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