Back

// PSLSecurity.h : Declaration of the CPSLSecurity

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

#include "PSLUser.h"
#include "PSLAccounts.h"
#include "PSLPrivileges.h"

class ATL_NO_VTABLE CPSLSecurity :
   public CComObjectRootEx<CComMultiThreadModel>,
   public CComCoClass<CPSLSecurity, &CLSID_PSLSecurity>,
   public IDispatchImpl<IPSLSecurity, &IID_IPSLSecurity, &LIBID_ProSysLib, PSL_HiVersion, PSL_LoVersion>,
   public CPSLException<&CLSID_PSLSecurity, &IID_IPSLSecurity>
{
public:

   CPSLSecurity();

BEGIN_COM_MAP(CPSLSecurity)
   COM_INTERFACE_ENTRY(IPSLSecurity)
   COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()

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

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

   STDMETHOD(get_User)(IPSLUser ** ppValue);
   STDMETHOD(get_Accounts)(IPSLAccounts ** ppValue);
   STDMETHOD(get_Privileges)(IPSLPrivileges ** ppValue);
   STDMETHOD(GetNamedObjectAccess)(PSLNamedType not, BSTR sObjectName, long * ErrorCode, long * pValue);

private:

   CAutoObject<CPSLUser> m_User;
   CAutoObject<CPSLAccounts> m_Accounts;
   CAutoObject<CPSLPrivileges> m_Privileges;
};

Top