Back

// PSLProcessIO.h : Declaration of the CPSLProcessIO

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

class ATL_NO_VTABLE CPSLProcessIO:
   public CComObjectRootEx<CComMultiThreadModel>,
   public CComCoClass<CPSLProcessIO, &CLSID_PSLProcessIO>,
   public IDispatchImpl<IPSLProcessIO, &IID_IPSLProcessIO, &LIBID_ProSysLib, PSL_HiVersion, PSL_LoVersion>,
   public CPSLException<&CLSID_PSLProcessIO, &IID_IPSLProcessIO>
{
public:

   CPSLProcessIO();

   void Initialize(long ProcessID);

BEGIN_COM_MAP(CPSLProcessIO)
   COM_INTERFACE_ENTRY(IPSLProcessIO)
   COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()

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

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

   STDMETHOD(get_ReadOperationCount)(VARIANT * pValue);
   STDMETHOD(get_WriteOperationCount)(VARIANT * pValue);
   STDMETHOD(get_OtherOperationCount)(VARIANT * pValue);
   STDMETHOD(get_ReadTransferCount)(VARIANT * pValue);
   STDMETHOD(get_WriteTransferCount)(VARIANT * pValue);
   STDMETHOD(get_OtherTransferCount)(VARIANT * pValue);

private:

   bool GetProcessIO(IO_COUNTERS * pCounters);

   long m_ProcessID;
   long m_CurrentProcessID;
};

Top