windows-nt/Source/XPSP1/NT/admin/netui/llsmgr/srvobj.h
2020-09-26 16:20:57 +08:00

116 lines
2.8 KiB
C++

/*++
Copyright (c) 1994-95 Microsoft Corporation
Module Name:
srvobj.h
Abstract:
Server object implementation.
Author:
Don Ryan (donryan) 04-Jan-1995
Environment:
User Mode - Win32
Revision History:
Jeff Parham (jeffparh) 30-Jan-1996
o Modified to use LlsProductLicensesGet() to avoid race conditions in
getting the correct number of concurrent licenses with secure products.
o Ported to LlsLocalService API to remove dependencies on configuration
information being in the registry.
--*/
#ifndef _SRVOBJ_H_
#define _SRVOBJ_H_
class CServer : public CCmdTarget
{
DECLARE_DYNCREATE(CServer)
private:
enum Win2000State { uninitialized = 0, win2000, notwin2000 };
Win2000State m_IsWin2000;
CCmdTarget* m_pParent;
CString m_strController;
CObArray m_serviceArray;
BOOL m_bServicesRefreshed;
protected:
HKEY m_hkeyRoot;
HKEY m_hkeyLicense;
HKEY m_hkeyReplication;
LLS_HANDLE m_hLls;
public:
CString m_strName;
CServices* m_pServices;
public:
CServer(CCmdTarget* pParent = NULL, LPCTSTR pName = NULL);
#ifdef CONFIG_THROUGH_REGISTRY
inline HKEY GetReplRegHandle()
{ return m_hkeyReplication; }
#else
inline LLS_HANDLE GetLlsHandle()
{ return m_hLls; }
#endif
virtual ~CServer();
BOOL InitializeIfNecessary();
BOOL RefreshServices();
void ResetServices();
BOOL ConnectLls();
void DisconnectLls();
BOOL HaveAdminAuthority();
BOOL IsWin2000();
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CServer)
public:
virtual void OnFinalRelease();
//}}AFX_VIRTUAL
// Generated OLE dispatch map functions
//{{AFX_DISPATCH(CServer)
afx_msg LPDISPATCH GetApplication();
afx_msg BSTR GetName();
afx_msg LPDISPATCH GetParent();
afx_msg BSTR GetController();
afx_msg BOOL IsLogging();
afx_msg BOOL IsReplicatingToDC();
afx_msg BOOL IsReplicatingDaily();
afx_msg long GetReplicationTime();
afx_msg LPDISPATCH GetServices(const VARIANT FAR& index);
//}}AFX_DISPATCH
DECLARE_DISPATCH_MAP()
protected:
// Generated message map functions
//{{AFX_MSG(CServer)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
friend class CService; // accesses m_hkeyLicense;
};
#define REG_KEY_SERVER_PARAMETERS _T("SYSTEM\\CurrentControlSet\\Services\\LicenseService\\Parameters")
#define REG_VALUE_USE_ENTERPRISE _T("UseEnterprise")
#define REG_VALUE_ENTERPRISE_SERVER _T("EnterpriseServer")
#define REG_VALUE_REPLICATION_TYPE _T("ReplicationType")
#define REG_VALUE_REPLICATION_TIME _T("ReplicationTime")
#endif // _SRVOBJ_H_