Back

// PSLMemory.h : Declaration of the CPSLMemory

#pragma once
#include "resource.h"       // main symbols
#include "GUIDs.h"
#include "PSLExceptions.h"
#include "ProSysLib_i.h"

class ATL_NO_VTABLE CPSLMemory :
   public CComObjectRootEx<CComMultiThreadModel>,
   public CComCoClass<CPSLMemory, &CLSID_PSLMemory>,
   public IDispatchImpl<IPSLMemory, &IID_IPSLMemory, &LIBID_ProSysLib, PSL_HiVersion, PSL_LoVersion>,
   public CPSLException<&CLSID_PSLMemory, &IID_IPSLMemory>
{
public:

   CPSLMemory();

BEGIN_COM_MAP(CPSLMemory)
   COM_INTERFACE_ENTRY(IPSLMemory)
   COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()

   DECLARE_PROTECT_FINAL_CONSTRUCT()
   HRESULT FinalConstruct();
   void FinalRelease();

////////////////////////////
// Interface Implementation:
////////////////////////////

   STDMETHOD(get_MemoryLoad)(short * pValue);
   STDMETHOD(get_TotalPhys)(long * pValue);
   STDMETHOD(get_AvailPhys)(long * pValue);
   STDMETHOD(get_TotalPageFile)(long * pValue);
   STDMETHOD(get_AvailPageFile)(long * pValue);
   STDMETHOD(get_TotalVirtual)(long * pValue);
   STDMETHOD(get_AvailVirtual)(long * pValue);
   STDMETHOD(get_AvailExtendedVirtual)(long * pValue);

private:

   void GetMemoryInfo(MEMORYSTATUSEX * pMemory);
};

Top