Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

318 lines
7.2 KiB

#ifndef LEFTVIEW_H
#define LEFTVIEW_H
#include "stdafx.h"
#include "Document.h"
#include "resource.h"
#include "MNLBUIData.h"
#define IDT_REFRESH 1
class LeftView : public CTreeView
{
DECLARE_DYNCREATE( LeftView )
public:
//
// The following enum identifies some operations -- these are used in the implementation of
// certain dialog classes to decide how to present their UI elements -- eg ClusterPage (clusterpage.h,.cpp).
//
typedef enum
{
OP_NEWCLUSTER,
OP_EXISTINGCLUSTER,
OP_ADDHOST,
OP_CLUSTERPROPERTIES,
OP_HOSTPROPERTIES
} OPERATION;
virtual void OnInitialUpdate();
LeftView();
~LeftView();
//
// Called to indicate that deinitialization will soon follow.
// After return from this call, the the left view will ignore
// any HandleEngineEvent entries and the various cmdhandlers (in particular)
// OnRefresh and auto-refresh) will be no-ops.
//
void
PrepareToDeinitialize(void)
{
m_fPrepareToDeinitialize = TRUE;
}
void Deinitialize(void);
//
// Get connection information about a specific host.
//
BOOL
GetConnectString(
IN OUT CHostSpec& host
);
//
// Update the view because of change relating to a specific instance of
// a specific object type.
//
void
HandleEngineEvent(
IN IUICallbacks::ObjectType objtype,
IN ENGINEHANDLE ehClusterId, // could be NULL
IN ENGINEHANDLE ehObjId,
IN IUICallbacks::EventCode evt
);
// world level.
void OnFileLoadHostlist(void);
void OnFileSaveHostlist(void);
void OnWorldConnect(void);
void OnWorldNewCluster(void);
// cluster level.
UINT m_refreshTimer;
void OnTimer(UINT nIDEvent);
void OnRefresh(BOOL bRefreshAll);
void OnClusterProperties(void);
void OnClusterRemove(void);
void OnClusterUnmanage(void);
void OnClusterAddHost(void);
void OnOptionsCredentials(void);
void OnOptionsLogSettings(void);
void OnClusterControl(UINT nID );
void OnClusterPortControl(UINT nID );
// host level
void OnHostProperties(void);
void OnHostStatus(void);
void OnHostRemove(void);
void OnHostControl(UINT nID );
void OnHostPortControl(UINT nID );
Document* GetDocument();
protected:
private:
TVINSERTSTRUCT rootItem;
CString worldName;
_bstr_t title;
// message handlers.
afx_msg BOOL OnHelpInfo (HELPINFO* helpInfo );
afx_msg void OnContextMenu( CWnd* pWnd, CPoint point );
afx_msg void OnRButtonDown( UINT nFlags, CPoint point );
afx_msg void OnKeyDown( UINT nChar, UINT nRepCnt, UINT nFlags );
afx_msg void OnLButtonDblClk( UINT nFlags, CPoint point );
// change in selection.
afx_msg void OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult);
void
mfn_InsertCluster(
ENGINEHANDLE ehClusterId,
const CClusterSpec *pCSpec
);
void
mfn_DeleteCluster(
ENGINEHANDLE ehID
);
void
mfn_InsertInterface(
ENGINEHANDLE ehClusterID,
ENGINEHANDLE ehInterfaceID,
const CHostSpec *pHSpec,
const CInterfaceSpec *pISpec
);
void
mfn_DeleteInterface(
ENGINEHANDLE ehInterfaceID
);
WLBS_OPERATION_CODES
mfn_MapResourceIdToOpcode(bool bClusterWide, DWORD dwResourceId);
map< ENGINEHANDLE, HTREEITEM > mapIdToInterfaceItem;
map< ENGINEHANDLE, HTREEITEM > mapIdToClusterItem;
CRITICAL_SECTION m_crit;
BOOL m_fPrepareToDeinitialize;
void mfn_Lock(void);
void mfn_Unlock(void) {LeaveCriticalSection(&m_crit);}
NLBERROR
mfn_GetSelectedInterface(
ENGINEHANDLE &ehInterface,
ENGINEHANDLE &ehCluster
);
NLBERROR
mfn_GetSelectedCluster(
ENGINEHANDLE &ehCluster
);
int
mfn_GetFileNameFromDialog(
bool bLoadHostList,
CString &FileName
);
void
mfn_EnableClusterMenuItems(BOOL fEnable);
void
mfn_EnableHostMenuItems(BOOL fEnable);
DECLARE_MESSAGE_MAP()
};
class LogSettingsDialog : public CDialog
{
public:
enum
{
IDD = IDD_DIALOG_LOGSETTINGS
};
LogSettingsDialog(Document* pDocument, CWnd* parent = NULL);
virtual BOOL OnInitDialog();
virtual void OnOK();
afx_msg BOOL OnHelpInfo (HELPINFO* helpInfo );
afx_msg void OnContextMenu( CWnd* pWnd, CPoint point );
afx_msg void OnSpecifyLogSettings();
afx_msg void OnUpdateEditLogfileName();
// overrides CDialog -- see SDK documentation on DoDataExchange.
// Used to map controls in resources to corresponding objects in this class.
virtual void DoDataExchange( CDataExchange* pDX );
CEdit m_LogFileName;
CEdit m_DoLogging;
bool m_fLoggingEnabledOnInit;
Document *m_pDocument;
static
DWORD
s_HelpIDs[];
DECLARE_MESSAGE_MAP()
};
//
// This dialog is a read-only dialog that reports on log details or
// misconfiguration details.
//
class DetailsDialog : public CDialog
{
public:
enum
{
IDD = IDD_DIALOG_LOG_DETAILS
};
DetailsDialog(
Document* pDocument,
LPCWSTR szCaption,
LPCWSTR szDate,
LPCWSTR szTime,
LPCWSTR szCluster,
LPCWSTR szHost,
LPCWSTR szInterface,
LPCWSTR szSummary,
LPCWSTR szDetails,
CWnd* parent = NULL
);
~DetailsDialog();
virtual BOOL OnInitDialog();
afx_msg void OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized );
// overrides CDialog -- see SDK documentation on DoDataExchange.
// Used to map controls in resources to corresponding objects in this class.
virtual void DoDataExchange( CDataExchange* pDX );
Document *m_pDocument;
LPCWSTR m_szCaption;
LPCWSTR m_szDate;
LPCWSTR m_szTime;
LPCWSTR m_szCluster;
LPCWSTR m_szHost;
LPCWSTR m_szInterface;
LPCWSTR m_szSummary;
CEdit m_Details;
LPWSTR m_szMungedDetails;
DECLARE_MESSAGE_MAP()
};
/*
* All NLB manager property sheets must use this property sheet, which inherits
* from CPropertySheet in order to add the context sensitive help icon to the
* title bar, as per KB Q244232. (shouse, 9.25.01)
*/
class CNLBMgrPropertySheet : public CPropertySheet {
public:
CNLBMgrPropertySheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0 ) {
CPropertySheet::CPropertySheet(nIDCaption, pParentWnd, iSelectPage);
}
CNLBMgrPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0) {
CPropertySheet::CPropertySheet(pszCaption, pParentWnd, iSelectPage);
}
virtual BOOL OnInitDialog () {
BOOL bResult = CPropertySheet::OnInitDialog();
/* Add the context help icon to the title bar. */
ModifyStyleEx(0, WS_EX_CONTEXTHELP);
return bResult;
}
};
#endif