/*++ Copyright (c) 1994-95 Microsoft Corporation Module Name: sstobj.cpp Abstract: Server statistic object implementation. Author: Don Ryan (donryan) 03-Mar-1995 Environment: User Mode - Win32 Revision History: --*/ #include "stdafx.h" #include "llsmgr.h" #ifdef _DEBUG #undef THIS_FILE static char BASED_CODE THIS_FILE[] = __FILE__; #endif IMPLEMENT_DYNCREATE(CServerStatistic, CCmdTarget) BEGIN_MESSAGE_MAP(CServerStatistic, CCmdTarget) //{{AFX_MSG_MAP(CServerStatistic) // NOTE - the ClassWizard will add and remove mapping macros here. //}}AFX_MSG_MAP END_MESSAGE_MAP() BEGIN_DISPATCH_MAP(CServerStatistic, CCmdTarget) //{{AFX_DISPATCH_MAP(CServerStatistic) DISP_PROPERTY_EX(CServerStatistic, "Application", GetApplication, SetNotSupported, VT_DISPATCH) DISP_PROPERTY_EX(CServerStatistic, "Parent", GetParent, SetNotSupported, VT_DISPATCH) DISP_PROPERTY_EX(CServerStatistic, "ServerName", GetServerName, SetNotSupported, VT_BSTR) DISP_PROPERTY_EX(CServerStatistic, "MaxUses", GetMaxUses, SetNotSupported, VT_I4) DISP_PROPERTY_EX(CServerStatistic, "HighMark", GetHighMark, SetNotSupported, VT_I4) //}}AFX_DISPATCH_MAP END_DISPATCH_MAP() CServerStatistic::CServerStatistic( CCmdTarget* pParent, LPCTSTR pEntry, DWORD dwFlags, long lMaxUses, long lHighMark ) /*++ Routine Description: Constructor for statistic object. Arguments: pParent - creator of object. pEntry - user or server product. dwFlags - details... lMaxUses - maximum number of uses on server. lHighMark - high water mark thus far. Return Values: None. --*/ { EnableAutomation(); #ifdef ENABLE_PARENT_CHECK ASSERT(pParent && pParent->IsKindOf(RUNTIME_CLASS(CProduct))); #endif // ENABLE_PARENT_CHECK m_pParent = pParent; ASSERT(pEntry && *pEntry); m_strEntry = pEntry; m_lMaxUses = lMaxUses; m_lHighMark = lHighMark; m_bIsPerServer = (dwFlags & LLS_FLAG_PRODUCT_PERSEAT) ? FALSE : TRUE; } CServerStatistic::~CServerStatistic() /*++ Routine Description: Destructor for statistic object. Arguments: None. Return Values: None. --*/ { // // Nothing to do here. // } void CServerStatistic::OnFinalRelease() /*++ Routine Description: When the last reference for an automation object is released OnFinalRelease is called. This implementation deletes object. Arguments: None. Return Values: None. --*/ { delete this; } LPDISPATCH CServerStatistic::GetApplication() /*++ Routine Description: Returns the application object. Arguments: None. Return Values: VT_DISPATCH. --*/ { return theApp.GetAppIDispatch(); } long CServerStatistic::GetHighMark() /*++ Routine Description: Returns number of accesses thus far. Arguments: None. Return Values: VT_I4. --*/ { return m_lHighMark; } long CServerStatistic::GetMaxUses() /*++ Routine Description: Returns number of accesses available. Arguments: None. Return Values: VT_I4. --*/ { return m_lMaxUses; } LPDISPATCH CServerStatistic::GetParent() /*++ Routine Description: Returns the parent of the object. Arguments: None. Return Values: VT_DISPATCH. --*/ { return m_pParent ? m_pParent->GetIDispatch(TRUE) : NULL; } BSTR CServerStatistic::GetServerName() /*++ Routine Description: Returns the name of server. Arguments: None. Return Values: VT_BSTR. --*/ { return m_strEntry.AllocSysString(); }