Back

// PSLThreads.h : Declaration of the CPSLThreads

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

DECLARE_PSL_COLLECTION(Threads, Thread)

class ATL_NO_VTABLE CPSLThreads :
   public CComObjectRootEx<CComMultiThreadModel>,
   public CComCoClass<CPSLThreads, &CLSID_PSLThreads>,
   public CThreadsCollection,
   public CPSLException<&CLSID_PSLThreads, &IID_IPSLThreads>
{
public:

   CPSLThreads();

BEGIN_COM_MAP(CPSLThreads)
   COM_INTERFACE_ENTRY(IPSLThreads)
   COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()

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

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

   STDMETHOD(Update)();
   STDMETHOD(Find)(long ThreadID, IPSLThread ** ppValue);
   STDMETHOD(FindCurrent)(IPSLThread ** ppValue);

protected:

   virtual HRESULT OnIndexOutOfRange();

private:

   void InternalUpdate();
};

Top