603 lines
17 KiB
C++
603 lines
17 KiB
C++
|
//Copyright (c) 1998 - 1999 Microsoft Corporation
|
||
|
/*******************************************************************************
|
||
|
*
|
||
|
* rtpane.cpp
|
||
|
*
|
||
|
* implementation of the CRightPane class
|
||
|
*
|
||
|
*
|
||
|
*******************************************************************************/
|
||
|
|
||
|
#include "stdafx.h"
|
||
|
#include "winadmin.h"
|
||
|
#include "rtpane.h"
|
||
|
#include "admindoc.h"
|
||
|
|
||
|
#ifdef _DEBUG
|
||
|
#define new DEBUG_NEW
|
||
|
#undef THIS_FILE
|
||
|
static char THIS_FILE[] = __FILE__;
|
||
|
#endif
|
||
|
|
||
|
|
||
|
////////////////////////////
|
||
|
// MESSAGE MAP: CRightPane
|
||
|
//
|
||
|
IMPLEMENT_DYNCREATE(CRightPane, CView)
|
||
|
|
||
|
BEGIN_MESSAGE_MAP(CRightPane, CView)
|
||
|
//{{AFX_MSG_MAP(CRightPane)
|
||
|
ON_WM_SIZE()
|
||
|
ON_MESSAGE(WM_ADMIN_CHANGEVIEW, OnAdminChangeView)
|
||
|
ON_MESSAGE(WM_ADMIN_ADD_SERVER, OnAdminAddServer)
|
||
|
ON_MESSAGE(WM_ADMIN_REMOVE_SERVER, OnAdminRemoveServer)
|
||
|
ON_MESSAGE(WM_ADMIN_UPDATE_SERVER, OnAdminUpdateServer)
|
||
|
ON_MESSAGE(WM_ADMIN_UPDATE_PROCESSES, OnAdminUpdateProcesses)
|
||
|
ON_MESSAGE(WM_ADMIN_REMOVE_PROCESS, OnAdminRemoveProcess)
|
||
|
ON_MESSAGE(WM_ADMIN_REDISPLAY_PROCESSES, OnAdminRedisplayProcesses)
|
||
|
ON_MESSAGE(WM_ADMIN_UPDATE_SERVER_INFO, OnAdminUpdateServerInfo)
|
||
|
ON_MESSAGE(WM_ADMIN_REDISPLAY_LICENSES, OnAdminRedisplayLicenses)
|
||
|
ON_MESSAGE(WM_ADMIN_UPDATE_WINSTATIONS, OnAdminUpdateWinStations)
|
||
|
ON_MESSAGE(WM_ADMIN_TABBED_VIEW , OnTabbedView)
|
||
|
ON_MESSAGE(WM_ADMIN_SHIFTTABBED_VIEW , OnShiftTabbedView )
|
||
|
ON_MESSAGE( WM_ADMIN_CTRLTABBED_VIEW , OnCtrlTabbedView )
|
||
|
ON_MESSAGE( WM_ADMIN_CTRLSHIFTTABBED_VIEW , OnCtrlShiftTabbedView )
|
||
|
ON_MESSAGE( WM_ADMIN_NEXTPANE_VIEW , OnNextPane )
|
||
|
ON_WM_SETFOCUS()
|
||
|
//}}AFX_MSG_MAP
|
||
|
END_MESSAGE_MAP()
|
||
|
|
||
|
|
||
|
RightPaneView CRightPane::views[NUMBER_OF_VIEWS] = {
|
||
|
{ NULL, RUNTIME_CLASS( CBlankView ) },
|
||
|
{ NULL, RUNTIME_CLASS( CAllServersView ) },
|
||
|
{ NULL, RUNTIME_CLASS( CDomainView ) },
|
||
|
{ NULL, RUNTIME_CLASS( CServerView ) },
|
||
|
{ NULL, RUNTIME_CLASS( CMessageView ) },
|
||
|
{ NULL, RUNTIME_CLASS( CWinStationView ) },
|
||
|
};
|
||
|
|
||
|
|
||
|
/////////////////////////
|
||
|
// CRightPane ctor
|
||
|
//
|
||
|
// - the view pointers are initially set to NULL
|
||
|
// - the default view type is BLANK
|
||
|
//
|
||
|
CRightPane::CRightPane()
|
||
|
{
|
||
|
m_CurrViewType = VIEW_BLANK;
|
||
|
|
||
|
} // end CRightPane ctor
|
||
|
|
||
|
|
||
|
////////////////////////////
|
||
|
// CRightPane::OnDraw
|
||
|
//
|
||
|
void CRightPane::OnDraw(CDC* pDC)
|
||
|
{
|
||
|
|
||
|
|
||
|
} // end CRightPane::OnDraw
|
||
|
|
||
|
|
||
|
/////////////////////////
|
||
|
// CRightPane dtor
|
||
|
//
|
||
|
CRightPane::~CRightPane()
|
||
|
{
|
||
|
} // end CRightPane ctor
|
||
|
|
||
|
|
||
|
#ifdef _DEBUG
|
||
|
/////////////////////////////////
|
||
|
// CRightPane::AssertValid
|
||
|
//
|
||
|
void CRightPane::AssertValid() const
|
||
|
{
|
||
|
CView::AssertValid();
|
||
|
|
||
|
} // end CView::AssertValid
|
||
|
|
||
|
|
||
|
//////////////////////////
|
||
|
// CRightPane::Dump
|
||
|
//
|
||
|
void CRightPane::Dump(CDumpContext& dc) const
|
||
|
{
|
||
|
CView::Dump(dc);
|
||
|
|
||
|
} // end CRightPane::Dump
|
||
|
|
||
|
#endif //_DEBUG
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnInitialUpdate
|
||
|
//
|
||
|
// - each of the default view objects is created
|
||
|
// - the CBlankView object is initially the 'active' view in the right pane
|
||
|
//
|
||
|
void CRightPane::OnInitialUpdate()
|
||
|
{
|
||
|
CView::OnInitialUpdate();
|
||
|
|
||
|
CFrameWnd* pMainWnd = (CFrameWnd*)AfxGetMainWnd();
|
||
|
CWinAdminDoc* pDoc = (CWinAdminDoc*)pMainWnd->GetActiveDocument();
|
||
|
|
||
|
for(int vw = 0; vw < NUMBER_OF_VIEWS; vw++) {
|
||
|
views[vw].m_pView = (CAdminView*)views[vw].m_pRuntimeClass->CreateObject();
|
||
|
views[vw].m_pView->Create(NULL, NULL, WS_CHILD, CRect(0, 0, 0, 0), this, vw);
|
||
|
pDoc->AddView(views[vw].m_pView);
|
||
|
}
|
||
|
|
||
|
pDoc->UpdateAllViews(NULL);
|
||
|
|
||
|
} // end CRightPane::OnInitialUpdate
|
||
|
|
||
|
|
||
|
////////////////////////////
|
||
|
// CRightPane::OnSize
|
||
|
//
|
||
|
// - currently all views are sized to fit the view, whether they are 'active'
|
||
|
// or not... this may change to sizing only the view that is 'active' if
|
||
|
// it significantly impacts performance
|
||
|
//
|
||
|
void CRightPane::OnSize(UINT nType, int cx, int cy)
|
||
|
{
|
||
|
RECT rect;
|
||
|
GetClientRect(&rect);
|
||
|
|
||
|
for(int i = 0; i < NUMBER_OF_VIEWS; i++) {
|
||
|
if(views[i].m_pView && views[i].m_pView->GetSafeHwnd())
|
||
|
views[i].m_pView->MoveWindow(&rect, TRUE);
|
||
|
}
|
||
|
|
||
|
CView::OnSize(nType, cx, cy);
|
||
|
|
||
|
} // end CRightPane::OnSize
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnAdminChangeView
|
||
|
//
|
||
|
// - if the new view type is different from the current
|
||
|
// view type, the new view type is made 'active', reset, and invalidated
|
||
|
// - if the new view type is the same as the current
|
||
|
// view type, the current view is simply reset using the new
|
||
|
// object pointer and then invalidated
|
||
|
//
|
||
|
// lParam contains pointer to CTreeNode of current item in tree
|
||
|
// wParam is TRUE if message caused by user clicking on tree item
|
||
|
//
|
||
|
LRESULT CRightPane::OnAdminChangeView(WPARAM wParam, LPARAM lParam)
|
||
|
{
|
||
|
CTreeNode* pNode = (CTreeNode*)lParam;
|
||
|
((CWinAdminDoc*)GetDocument())->SetCurrentPage(PAGE_CHANGING);
|
||
|
|
||
|
ODS( L"CRightPane::OnAdminChangeView\n" );
|
||
|
|
||
|
if( pNode == NULL )
|
||
|
{
|
||
|
ODS( L"CRightPane!OnAdminChangeView pNode invalid\n" );
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
void *resetParam = pNode->GetTreeObject();
|
||
|
|
||
|
VIEW newView = VIEW_BLANK;
|
||
|
|
||
|
switch(pNode->GetNodeType()) {
|
||
|
|
||
|
case NODE_THIS_COMP: // FALL THROUGH
|
||
|
case NODE_FAV_LIST:
|
||
|
resetParam = pNode;
|
||
|
newView = VIEW_ALL_SERVERS;
|
||
|
break;
|
||
|
|
||
|
|
||
|
case NODE_ALL_SERVERS:
|
||
|
newView = VIEW_ALL_SERVERS;
|
||
|
ODS( L"CRightPane::OnAdminChangeView = VIEW_ALL_SERVERS\n" );
|
||
|
break;
|
||
|
|
||
|
case NODE_DOMAIN:
|
||
|
{
|
||
|
CDomain *pDomain = (CDomain*)pNode->GetTreeObject();
|
||
|
// If we haven't fired off a background thread for this
|
||
|
// domain yet, do it now
|
||
|
if(!pDomain->GetThreadPointer()) {
|
||
|
newView = VIEW_MESSAGE;
|
||
|
ODS( L"CRightPane::OnAdminChangeView = VIEW_MESSAGE\n" );
|
||
|
// todo change message to let the user know that a dblclk action is required to
|
||
|
// start the enumeration process.
|
||
|
resetParam = (void*)IDS_DOMAIN_DBLCLK_MSG;
|
||
|
// pDomain->StartEnumerating();
|
||
|
}
|
||
|
else if(pDomain->IsState(DS_INITIAL_ENUMERATION))
|
||
|
{
|
||
|
newView = VIEW_MESSAGE;
|
||
|
ODS( L"CRightPane::OnAdminChangeView = VIEW_MESSAGE\n" );
|
||
|
resetParam = (void*)IDS_DOMAIN_FINDING_SERVERS;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
newView = VIEW_DOMAIN;
|
||
|
ODS( L"CRightPane::OnAdminChangeView = VIEW_DOMAIN\n" );
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case NODE_SERVER:
|
||
|
{
|
||
|
CServer *pServer = (CServer*)pNode->GetTreeObject();
|
||
|
if(!pServer->GetThreadPointer()) {
|
||
|
newView = VIEW_MESSAGE;
|
||
|
ODS( L"CRightPane::OnAdminChangeView = VIEW_MESSAGE !pServer->GetThreadPointer\n" );
|
||
|
// If we just disconnected from this server, we don't
|
||
|
// want to reconnect
|
||
|
if( ( pServer->IsState( SS_NOT_CONNECTED ) || pServer->IsPreviousState(SS_DISCONNECTING) ) && !wParam)
|
||
|
{
|
||
|
resetParam = (void*)IDS_CLICK_TO_CONNECT;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
resetParam = (void*)IDS_GATHERING_SERVER_INFO;
|
||
|
pServer->Connect();
|
||
|
}
|
||
|
}
|
||
|
else if(!pServer->IsServerSane())
|
||
|
{
|
||
|
newView = VIEW_MESSAGE;
|
||
|
ODS( L"CRightPane::OnAdminChangeView = VIEW_MESSAGE !pServer->IsServerSane\n" );
|
||
|
resetParam = (void*)IDS_NOT_AUTHENTICATED;
|
||
|
}
|
||
|
else if(!pServer->IsState(SS_GOOD))
|
||
|
{
|
||
|
newView = VIEW_MESSAGE;
|
||
|
ODS( L"CRightPane::OnAdminChangeView = VIEW_MESSAGE !pServer->IsState(SS_GOOD)\n" );
|
||
|
resetParam = (void*)IDS_GATHERING_SERVER_INFO;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
newView = VIEW_SERVER;
|
||
|
ODS( L"CRightPane::OnAdminChangeView = VIEW_SERVER default\n" );
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case NODE_WINSTATION:
|
||
|
{
|
||
|
CWinStation *pWinStation = (CWinStation*)pNode->GetTreeObject();
|
||
|
if(pWinStation->IsConnected() || pWinStation->IsState(State_Disconnected) ||
|
||
|
pWinStation->IsState(State_Shadow))
|
||
|
{
|
||
|
newView = VIEW_WINSTATION;
|
||
|
ODS( L"CRightPane::OnAdminChangeView = VIEW_WINSTATION\n" );
|
||
|
}
|
||
|
else if(pWinStation->IsState(State_Listen))
|
||
|
{
|
||
|
newView = VIEW_MESSAGE;
|
||
|
ODS( L"CRightPane::OnAdminChangeView = VIEW_MESSAGE\n" );
|
||
|
resetParam = (void *)IDS_LISTENER_MSG;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
newView = VIEW_MESSAGE;
|
||
|
ODS( L"CRightPane::OnAdminChangeView = VIEW_MESSAGE\n" );
|
||
|
resetParam = (void *)IDS_INACTIVE_MSG;
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(m_CurrViewType != newView)
|
||
|
{
|
||
|
//views[newView].m_pView->Reset(resetParam);
|
||
|
views[m_CurrViewType].m_pView->ModifyStyle(WS_VISIBLE, WS_DISABLED);
|
||
|
m_CurrViewType = newView;
|
||
|
|
||
|
views[newView].m_pView->ModifyStyle(WS_DISABLED, WS_VISIBLE);
|
||
|
views[newView].m_pView->Reset(resetParam);
|
||
|
views[newView].m_pView->Invalidate();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
views[newView].m_pView->Reset(resetParam);
|
||
|
}
|
||
|
|
||
|
|
||
|
((CWinAdminDoc*)GetDocument())->SetCurrentView(newView);
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
} // end CRightPane::OnAdminChangeView
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnAdminAddServer
|
||
|
//
|
||
|
LRESULT CRightPane::OnAdminAddServer(WPARAM wParam, LPARAM lParam)
|
||
|
{
|
||
|
ASSERT(lParam);
|
||
|
|
||
|
// We only want to send this along if "All Listed Servers"
|
||
|
// or "Domain" is the current view
|
||
|
if(m_CurrViewType == VIEW_ALL_SERVERS || m_CurrViewType == VIEW_DOMAIN)
|
||
|
views[m_CurrViewType].m_pView->SendMessage(WM_ADMIN_ADD_SERVER, wParam, lParam);
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
} // end CRightPane::OnAdminAddServer
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnAdminRemoveServer
|
||
|
//
|
||
|
LRESULT CRightPane::OnAdminRemoveServer(WPARAM wParam, LPARAM lParam)
|
||
|
{
|
||
|
ASSERT(lParam);
|
||
|
|
||
|
// ODS( L"CRightPane::OnAdminRemoveServer\n" );
|
||
|
// We only want to send this along if "All Listed Servers" or "Domain"
|
||
|
// is the current view
|
||
|
if(m_CurrViewType == VIEW_ALL_SERVERS || m_CurrViewType == VIEW_DOMAIN)
|
||
|
{
|
||
|
// ODS( L"view is ALL_SERVERS OR DOMAIN\n" );
|
||
|
views[m_CurrViewType].m_pView->SendMessage(WM_ADMIN_REMOVE_SERVER, wParam, lParam);
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
} // end CRightPane::OnAdminRemoveServer
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnAdminUpdateServer
|
||
|
//
|
||
|
LRESULT CRightPane::OnAdminUpdateServer(WPARAM wParam, LPARAM lParam)
|
||
|
{
|
||
|
ASSERT(lParam);
|
||
|
|
||
|
// We only want to send this along if "All Listed Servers" or Domain
|
||
|
// the current view
|
||
|
|
||
|
if(m_CurrViewType == VIEW_ALL_SERVERS || m_CurrViewType == VIEW_DOMAIN)
|
||
|
{
|
||
|
views[m_CurrViewType].m_pView->SendMessage(WM_ADMIN_UPDATE_SERVER, wParam, lParam);
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
} // end CRightPane::OnAdminUpdateServer
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnAdminUpdateProcesses
|
||
|
//
|
||
|
LRESULT CRightPane::OnAdminUpdateProcesses(WPARAM wParam, LPARAM lParam)
|
||
|
{
|
||
|
ASSERT(lParam);
|
||
|
|
||
|
BOOL bSendMessage = FALSE;
|
||
|
|
||
|
void *pCurrentSelectedNode = ((CWinAdminDoc*)((CWinAdminApp*)AfxGetApp())->GetDocument())->GetCurrentSelectedNode();
|
||
|
|
||
|
switch(m_CurrViewType) {
|
||
|
case VIEW_ALL_SERVERS:
|
||
|
bSendMessage = TRUE;
|
||
|
break;
|
||
|
|
||
|
case VIEW_DOMAIN:
|
||
|
if((CDomain*)((CServer*)lParam)->GetDomain() == (CDomain*)pCurrentSelectedNode)
|
||
|
bSendMessage = TRUE;
|
||
|
break;
|
||
|
|
||
|
case VIEW_SERVER:
|
||
|
if((void*)lParam == pCurrentSelectedNode)
|
||
|
bSendMessage = TRUE;
|
||
|
break;
|
||
|
|
||
|
case VIEW_WINSTATION:
|
||
|
if((CServer*)lParam == (CServer*)((CWinStation*)pCurrentSelectedNode)->GetServer())
|
||
|
bSendMessage = TRUE;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(bSendMessage) {
|
||
|
views[m_CurrViewType].m_pView->SendMessage(WM_ADMIN_UPDATE_PROCESSES, wParam, lParam);
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
} // end CRightPane::OnAdminUpdateProcesses
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnAdminRemoveProcess
|
||
|
//
|
||
|
LRESULT CRightPane::OnAdminRemoveProcess(WPARAM wParam, LPARAM lParam)
|
||
|
{
|
||
|
ASSERT(lParam);
|
||
|
|
||
|
// We only want to send this along if "All Listed Servers", VIEW_DOMAIN, or VIEW_SERVER is
|
||
|
// the current view
|
||
|
if(m_CurrViewType == VIEW_ALL_SERVERS || m_CurrViewType == VIEW_DOMAIN || m_CurrViewType == VIEW_WINSTATION) {
|
||
|
views[m_CurrViewType].m_pView->SendMessage(WM_ADMIN_REMOVE_PROCESS, wParam, lParam);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
void *pCurrentSelectedNode = ((CWinAdminDoc*)((CWinAdminApp*)AfxGetApp())->GetDocument())->GetCurrentSelectedNode();
|
||
|
|
||
|
if(m_CurrViewType == VIEW_SERVER && ((CServer*)((CProcess*)lParam)->GetServer() == (CServer*)pCurrentSelectedNode))
|
||
|
views[m_CurrViewType].m_pView->SendMessage(WM_ADMIN_REMOVE_PROCESS, wParam, lParam);
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
} // end CRightPane::OnAdminUpdateProcesses
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnAdminRedisplayProcesses
|
||
|
//
|
||
|
LRESULT CRightPane::OnAdminRedisplayProcesses(WPARAM wParam, LPARAM lParam)
|
||
|
{
|
||
|
ASSERT(lParam);
|
||
|
|
||
|
void *pCurrentSelectedNode = NULL;
|
||
|
|
||
|
if(m_CurrViewType == VIEW_ALL_SERVERS || m_CurrViewType == VIEW_DOMAIN
|
||
|
|| m_CurrViewType == VIEW_SERVER || m_CurrViewType == VIEW_WINSTATION)
|
||
|
{
|
||
|
if( m_CurrViewType == VIEW_ALL_SERVERS )
|
||
|
{
|
||
|
pCurrentSelectedNode = ((CWinAdminDoc*)((CWinAdminApp*)AfxGetApp())->GetDocument())->GetCurrentSelectedNode();
|
||
|
}
|
||
|
|
||
|
views[m_CurrViewType].m_pView->SendMessage(WM_ADMIN_REDISPLAY_PROCESSES, ( WPARAM )m_CurrViewType , ( LPARAM )pCurrentSelectedNode );
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
} // end CRightPane::OnAdminRedisplayProcesses
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnAdminUpdateWinStations
|
||
|
//
|
||
|
LRESULT CRightPane::OnAdminUpdateWinStations(WPARAM wParam, LPARAM lParam)
|
||
|
{
|
||
|
ASSERT(lParam);
|
||
|
BOOL bSendMessage = FALSE;
|
||
|
|
||
|
void *pCurrentSelectedNode = ((CWinAdminDoc*)((CWinAdminApp*)AfxGetApp())->GetDocument())->GetCurrentSelectedNode();
|
||
|
|
||
|
switch(m_CurrViewType) {
|
||
|
|
||
|
case VIEW_ALL_SERVERS:
|
||
|
ODS( L"CRightPane::OnAdminUpdateWinStations -- VIEW_ALL_SERVERS\n" );
|
||
|
bSendMessage = TRUE;
|
||
|
break;
|
||
|
case VIEW_DOMAIN:
|
||
|
ODS( L"CRightPane::OnAdminUpdateWinStations -- VIEW_DOMAIN\n" );
|
||
|
if((CDomain*)((CServer*)lParam)->GetDomain() == (CDomain*)pCurrentSelectedNode)
|
||
|
bSendMessage = TRUE;
|
||
|
break;
|
||
|
|
||
|
case VIEW_SERVER:
|
||
|
ODS( L"CRightPane::OnAdminUpdateWinStations -- VIEW_SERVER\n" );
|
||
|
if((void*)lParam == pCurrentSelectedNode)
|
||
|
bSendMessage = TRUE;
|
||
|
break;
|
||
|
|
||
|
case VIEW_WINSTATION:
|
||
|
ODS( L"CRightPane::OnAdminUpdateWinStations -- VIEW_WINSTATION\n" );
|
||
|
if((CServer*)lParam == (CServer*)((CWinStation*)pCurrentSelectedNode)->GetServer())
|
||
|
bSendMessage = TRUE;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(bSendMessage) {
|
||
|
views[m_CurrViewType].m_pView->SendMessage(WM_ADMIN_UPDATE_WINSTATIONS, wParam, lParam);
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
} // end CRightPane::OnAdminUpdateWinStations
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnAdminUpdateServerInfo
|
||
|
//
|
||
|
LRESULT CRightPane::OnAdminUpdateServerInfo(WPARAM wParam, LPARAM lParam)
|
||
|
{
|
||
|
ASSERT(lParam);
|
||
|
|
||
|
BOOL bSendMessage = FALSE;
|
||
|
|
||
|
void *pCurrentSelectedNode = ((CWinAdminDoc*)((CWinAdminApp*)AfxGetApp())->GetDocument())->GetCurrentSelectedNode();
|
||
|
|
||
|
switch(m_CurrViewType) {
|
||
|
case VIEW_DOMAIN:
|
||
|
if((CDomain*)((CServer*)lParam)->GetDomain() == (CDomain*)pCurrentSelectedNode)
|
||
|
bSendMessage = TRUE;
|
||
|
break;
|
||
|
|
||
|
case VIEW_SERVER:
|
||
|
if((void*)lParam == pCurrentSelectedNode)
|
||
|
bSendMessage = TRUE;
|
||
|
break;
|
||
|
|
||
|
case VIEW_WINSTATION:
|
||
|
if((CServer*)lParam == (CServer*)((CWinStation*)pCurrentSelectedNode)->GetServer())
|
||
|
bSendMessage = TRUE;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(bSendMessage) {
|
||
|
views[m_CurrViewType].m_pView->SendMessage(WM_ADMIN_UPDATE_SERVER_INFO, wParam, lParam);
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
} // end CRightPane::OnAdminUpdateServerInfo
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnAdminRedisplayLicenses
|
||
|
//
|
||
|
LRESULT CRightPane::OnAdminRedisplayLicenses(WPARAM wParam, LPARAM lParam)
|
||
|
{
|
||
|
ASSERT(lParam);
|
||
|
|
||
|
if(m_CurrViewType == VIEW_ALL_SERVERS)
|
||
|
views[VIEW_ALL_SERVERS].m_pView->SendMessage(WM_ADMIN_REDISPLAY_LICENSES, wParam, lParam);
|
||
|
|
||
|
else if(m_CurrViewType == VIEW_DOMAIN && (CDomain*)((CServer*)lParam)->GetDomain() == (CDomain*)((CWinAdminDoc*)((CWinAdminApp*)AfxGetApp())->GetDocument())->GetCurrentSelectedNode())
|
||
|
views[VIEW_DOMAIN].m_pView->SendMessage(WM_ADMIN_REDISPLAY_LICENSES, wParam, lParam);
|
||
|
|
||
|
else if(m_CurrViewType == VIEW_SERVER && (CServer*)lParam == (CServer*)((CWinAdminDoc*)((CWinAdminApp*)AfxGetApp())->GetDocument())->GetCurrentSelectedNode())
|
||
|
views[VIEW_SERVER].m_pView->SendMessage(WM_ADMIN_REDISPLAY_LICENSES, wParam, lParam);
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
} // end CRightPane::OnAdminRedisplayLicenses
|
||
|
|
||
|
|
||
|
/////////////////////////////////////
|
||
|
// CRightPane::OnSetFocus
|
||
|
//
|
||
|
void CRightPane::OnSetFocus(CWnd* pOldWnd)
|
||
|
{
|
||
|
CView::OnSetFocus(pOldWnd);
|
||
|
|
||
|
views[m_CurrViewType].m_pView->SetFocus();
|
||
|
|
||
|
} // end CRightPane::OnSetFocus
|
||
|
|
||
|
LRESULT CRightPane::OnTabbedView(WPARAM wParam, LPARAM lParam)
|
||
|
{
|
||
|
return views[ m_CurrViewType ].m_pView->SendMessage( WM_ADMIN_TABBED_VIEW , 0 , 0 );
|
||
|
}
|
||
|
|
||
|
LRESULT CRightPane::OnShiftTabbedView( WPARAM , LPARAM )
|
||
|
{
|
||
|
return views[ m_CurrViewType ].m_pView->SendMessage( WM_ADMIN_SHIFTTABBED_VIEW , 0 , 0 );
|
||
|
}
|
||
|
|
||
|
LRESULT CRightPane::OnCtrlTabbedView( WPARAM , LPARAM )
|
||
|
{
|
||
|
return views[ m_CurrViewType ].m_pView->SendMessage( WM_ADMIN_CTRLTABBED_VIEW , 0 , 0 );
|
||
|
}
|
||
|
|
||
|
LRESULT CRightPane::OnCtrlShiftTabbedView( WPARAM , LPARAM )
|
||
|
{
|
||
|
return views[ m_CurrViewType ].m_pView->SendMessage( WM_ADMIN_CTRLSHIFTTABBED_VIEW , 0 , 0 );
|
||
|
}
|
||
|
|
||
|
LRESULT CRightPane::OnNextPane( WPARAM , LPARAM )
|
||
|
{
|
||
|
return views[ m_CurrViewType ].m_pView->SendMessage( WM_ADMIN_NEXTPANE_VIEW , 0 , 0 );
|
||
|
}
|