#ifndef __USER_H_
#define __USER_H_
class CFSPlayer;
class ATL_NO_VTABLE CAdminUser :
public IDispatchImpl<IAdminUser, &IID_IAdminUser, &LIBID_ALLEGIANCESERVERLib>,
public ISupportErrorInfo,
public CAdminLimb<CAdminUser, IAdminUser>,
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CAdminUser, &CLSID_AdminUser>
{
public:
DECLARE_REGISTRY_RESOURCEID(IDR_USER)
DECLARE_PROTECT_FINAL_CONSTRUCT()
public:
BEGIN_COM_MAP(CAdminUser)
COM_INTERFACE_ENTRY(IAdminUser)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
public:
BEGIN_CATEGORY_MAP(CAdminUser)
IMPLEMENTED_CATEGORY(CATID_AllegianceAdmin)
END_CATEGORY_MAP()
public:
CAdminUser() :
m_fWantChat(false)
{
}
virtual ~CAdminUser()
{
}
public:
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
public:
STDMETHODIMP get_Name(BSTR* pbstr);
STDMETHODIMP SendMsg(BSTR bstrMessage);
STDMETHODIMP get_isReady(VARIANT_BOOL* pVal);
STDMETHODIMP put_isReady(VARIANT_BOOL Val);
STDMETHODIMP get_Ship(IAdminShip** ppShip);
STDMETHODIMP Boot();
STDMETHODIMP get_UserID(AdminUserID *userid);
STDMETHODIMP get_UniqueID(AGCUniqueID *uniqueID);
STDMETHODIMP get_PlayerStats(IAGCEvent** ppStats);
public:
void Init(CFSPlayer *pPlayer); const BOOL& bWantChat() { return m_fWantChat; }
static AdminUserID DetermineID(CFSPlayer * pPlayer);
protected:
CFSPlayer * m_pPlayer;
IshipIGC * m_pIshipIGC; BOOL m_fWantChat; };
#endif