Back

// PSLPrivilege.h : Declaration of the CPSLPrivilege

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

class ATL_NO_VTABLE CPSLPrivilege :
   public CComObjectRootEx<CComMultiThreadModel>,
   public CComCoClass<CPSLPrivilege, &CLSID_PSLPrivilege>,
   public IDispatchImpl<IPSLPrivilege, &IID_IPSLPrivilege, &LIBID_ProSysLib, PSL_HiVersion, PSL_LoVersion>,
   public CPSLException<&CLSID_PSLPrivilege, &IID_IPSLPrivilege>
{
public:

   CPSLPrivilege();
   ~CPSLPrivilege();

   void Initialize(LUID_AND_ATTRIBUTES & Attributes, LPCTSTR sPrivilegeName);

BEGIN_COM_MAP(CPSLPrivilege)
   COM_INTERFACE_ENTRY(IPSLPrivilege)
   COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()

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

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

   STDMETHOD(get_Name)(BSTR * pValue);
   STDMETHOD(get_Enabled)(VARIANT_BOOL * pValue);
   STDMETHOD(put_Enabled)(VARIANT_BOOL newValue);
   STDMETHOD(get_Default)(VARIANT_BOOL * pValue);
   STDMETHOD(get_Removed)(VARIANT_BOOL * pValue);
   STDMETHOD(get_UsedForAccess)(VARIANT_BOOL * pValue);
   STDMETHOD(get_LUID)(VARIANT * pValue);

private:

   bool EnablePrivilege(bool bEnable = true);

   _bstr_t m_sName;
   bool m_bEnabled;
   bool m_bDefault;
   bool m_bRemoved;
   bool m_bUsedForAccess;

   LUID m_Luid;
};

Top