Back

// PSLModule.h : Declaration of the CPSLModule

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

#include "PSLModuleVersion.h"

class ATL_NO_VTABLE CPSLModule:
   public CComObjectRootEx<CComMultiThreadModel>,
   public CComCoClass<CPSLModule, &CLSID_PSLModule>,
   public IDispatchImpl<IPSLModule, &IID_IPSLModule, &LIBID_ProSysLib, PSL_HiVersion, PSL_LoVersion>,
   public CPSLException<&CLSID_PSLModule, &IID_IPSLModule>
{
public:

   CPSLModule();

   void Initialize(HMODULE hModule);

BEGIN_COM_MAP(CPSLModule)
   COM_INTERFACE_ENTRY(IPSLModule)
   COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()

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

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

   STDMETHOD(get_FileName)(BSTR * pValue);
   STDMETHOD(get_FilePath)(BSTR * pValue);
   STDMETHOD(get_FileDir)(BSTR * pValue);
   STDMETHOD(get_Version)(IPSLModuleVersion ** ppValue);

private:

   _bstr_t m_sFileName;
   _bstr_t m_sFilePath;
   _bstr_t m_sFileDir;

   CAutoObject<CPSLModuleVersion> m_Version;
};

Top