Back

// PSLIPv4.h : Declaration of the CPSLIPv4

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

class ATL_NO_VTABLE CPSLIPv4:
   public CComObjectRootEx<CComMultiThreadModel>,
   public CComCoClass<CPSLIPv4, &CLSID_PSLIPv4>,
   public IDispatchImpl<IPSLIPv4, &IID_IPSLIPv4, &LIBID_ProSysLib, PSL_HiVersion, PSL_LoVersion>,
   public CPSLException<&CLSID_PSLIPv4, &IID_IPSLIPv4>
{
public:

   CPSLIPv4();

   bool Initialize(LPCTSTR sIP, bool bCreating);

BEGIN_COM_MAP(CPSLIPv4)
   COM_INTERFACE_ENTRY(IPSLIPv4)
   COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()

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

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

   STDMETHOD(get_A1)(short * pValue);
   STDMETHOD(put_A1)(short newValue);
   STDMETHOD(get_A2)(short * pValue);
   STDMETHOD(put_A2)(short newValue);
   STDMETHOD(get_A3)(short * pValue);
   STDMETHOD(put_A3)(short newValue);
   STDMETHOD(get_A4)(short * pValue);
   STDMETHOD(put_A4)(short newValue);
   STDMETHOD(get_Port)(long * pValue);
   STDMETHOD(put_Port)(long newValue);
   STDMETHOD(get_Address)(long * pValue);
   STDMETHOD(put_Address)(long newValue);
   STDMETHOD(get_Text)(BSTR * pValue);
   STDMETHOD(put_Text)(BSTR newValue);
   STDMETHOD(get_Format)(PSLIPv4Format * pValue);
   STDMETHOD(put_Format)(PSLIPv4Format newValue);
   STDMETHOD(Clear)(VARIANT_BOOL bClearFormat);

private:

   void GetAddrValue(tstring & s, USHORT uValue, long PaddingBase = 2);
   _bstr_t GetIPName();

   USHORT m_uAddr[4]; // 4 octets;
   USHORT m_uPort;
   PSLIPv4Format m_Format;
};

Top