|
|
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1996-2002 Microsoft Corporation
//
// Module Name:
// CluAdmin.h
//
// Abstract:
// Definition of the CClusterAdminApp class, which is the main
// application class for the CLUADMIN application.
//
// Author:
// David Potter (davidp) May 1, 1996
//
// Revision History:
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
#ifndef _CLUADMIN_H_
#define _CLUADMIN_H_
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#ifndef _UNICODE
#error _UNICODE *must* be defined!
#endif
/////////////////////////////////////////////////////////////////////////////
// Include Files
/////////////////////////////////////////////////////////////////////////////
#ifndef _RESOURCE_H_
#include "resource.h" // main symbols
#define _RESOURCE_H_
#endif
#ifndef _BARFCLUS_H_
#include "BarfClus.h" // for BARF overrides of CLUSAPIs
#endif
#include "Notify.h" // for CClusterNotifyContext, CClusterNotifyKeyList
/////////////////////////////////////////////////////////////////////////////
// Forward Class Declarations
/////////////////////////////////////////////////////////////////////////////
class CClusterAdminApp;
/////////////////////////////////////////////////////////////////////////////
// External Class Declarations
/////////////////////////////////////////////////////////////////////////////
class CRecentClusterList; class CCluAdminCommandLineInfo;
/////////////////////////////////////////////////////////////////////////////
// Type Definitions
/////////////////////////////////////////////////////////////////////////////
enum ImageListIndex { IMGLI_FOLDER = 0, IMGLI_CLUSTER, IMGLI_CLUSTER_UNKNOWN, IMGLI_NODE, IMGLI_NODE_DOWN, IMGLI_NODE_PAUSED, IMGLI_NODE_UNKNOWN, IMGLI_GROUP, IMGLI_GROUP_PARTIALLY_ONLINE, IMGLI_GROUP_PENDING, IMGLI_GROUP_OFFLINE, IMGLI_GROUP_FAILED, IMGLI_GROUP_UNKNOWN, IMGLI_RES, IMGLI_RES_OFFLINE, IMGLI_RES_PENDING, IMGLI_RES_FAILED, IMGLI_RES_UNKNOWN, IMGLI_RESTYPE, IMGLI_RESTYPE_UNKNOWN, IMGLI_NETWORK, IMGLI_NETWORK_PARTITIONED, IMGLI_NETWORK_DOWN, IMGLI_NETWORK_UNKNOWN, IMGLI_NETIFACE, IMGLI_NETIFACE_UNREACHABLE, IMGLI_NETIFACE_FAILED, IMGLI_NETIFACE_UNKNOWN,
IMGLI_MAX };
/////////////////////////////////////////////////////////////////////////////
// CClusterAdminApp:
// See CluAdmin.cpp for the implementation of this class
/////////////////////////////////////////////////////////////////////////////
class CClusterAdminApp : public CWinApp { DECLARE_DYNAMIC( CClusterAdminApp );
public: CClusterAdminApp( void );
CRecentClusterList * PrclRecentClusterList( void) { return (CRecentClusterList *) m_pRecentFileList; }
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CClusterAdminApp)
public: virtual BOOL InitInstance(); virtual BOOL OnIdle(IN LONG lCount); virtual CDocument* OpenDocumentFile(LPCTSTR lpszFileName); virtual int ExitInstance(); virtual void AddToRecentFileList(LPCTSTR lpszPathName); //}}AFX_VIRTUAL
// Implementation
#ifdef _CLUADMIN_USE_OLE_
COleTemplateServer m_server; // Server object for document creation
#endif
protected: CMultiDocTemplate * m_pDocTemplate; CImageList m_ilSmallImages; CImageList m_ilLargeImages; HCHANGE m_hchangeNotifyPort; LCID m_lcid; CClusterNotifyKeyList m_cnkl; CClusterNotifyContext m_cnctx; CClusterNotifyList m_cnlNotifications; CWinThread * m_wtNotifyThread; HCLUSTER m_hOpenedCluster; ULONG m_nIdleCount;
// Indices of images in the image list.
UINT m_rgiimg[IMGLI_MAX];
IUnknown * m_punkClusCfgClient;
BOOL BInitNotifyThread(void); static UINT AFX_CDECL NotifyThreadProc(LPVOID pParam);
CClusterNotifyContext * Pcnctx(void) { return &m_cnctx; } CWinThread * WtNotifyThread(void) const { return m_wtNotifyThread; }
BOOL ProcessShellCommand(IN OUT CCluAdminCommandLineInfo & rCmdInfo); void InitGlobalImageList(void);
public: CMultiDocTemplate * PdocTemplate(void) const { return m_pDocTemplate; } CImageList * PilSmallImages(void) { return &m_ilSmallImages; } CImageList * PilLargeImages(void) { return &m_ilLargeImages; } HCHANGE HchangeNotifyPort(void) const { return m_hchangeNotifyPort; } LCID Lcid(void) const { return m_lcid; } CClusterNotifyKeyList & Cnkl(void) { return m_cnkl; } CClusterNotifyList & Cnl( void ) { return m_cnlNotifications; } HCLUSTER HOpenedCluster(void) const { return m_hOpenedCluster; }
// Indices of images in the image list.
UINT Iimg(ImageListIndex imgli) { return m_rgiimg[imgli]; }
void LoadImageIntoList( IN OUT CImageList * pil, IN ID idbImage, IN UINT imgli ); static void LoadImageIntoList( IN OUT CImageList * pil, IN ID idbImage, OUT UINT * piimg = NULL );
void SaveConnections(void); afx_msg LRESULT OnRestoreDesktop(WPARAM wparam, LPARAM lparam); afx_msg LRESULT OnClusterNotify(WPARAM wparam, LPARAM lparam);
//{{AFX_MSG(CClusterAdminApp)
afx_msg void OnAppAbout(); afx_msg void OnFileOpen(); afx_msg void OnFileNewCluster(); afx_msg void OnWindowCloseAll(); afx_msg void OnUpdateWindowCloseAll(CCmdUI* pCmdUI); //}}AFX_MSG
#ifdef _DEBUG
afx_msg void OnTraceSettings(); afx_msg void OnBarfSettings(); afx_msg void OnBarfAllSettings(); #endif
DECLARE_MESSAGE_MAP()
}; //*** class CClusterAdminApp
/////////////////////////////////////////////////////////////////////////////
// Global Functions
/////////////////////////////////////////////////////////////////////////////
BOOL BCreateFont(OUT CFont & rfont, IN int nPoints, IN BOOL bBold); void NewNodeWizard( LPCTSTR pcszName, BOOL fIgnoreErrors = FALSE ); void GetClusterInformation( HCLUSTER hClusterIn, CString& rstrNameOut, PCLUSTERVERSIONINFO pcviOut = NULL ); CString StrGetClusterName( HCLUSTER hClusterIn );
inline CClusterAdminApp * GetClusterAdminApp(void) { ASSERT_KINDOF(CClusterAdminApp, AfxGetApp()); return (CClusterAdminApp *) AfxGetApp(); }
inline CFrameWnd * PframeMain(void) { return (CFrameWnd *) AfxGetMainWnd(); }
/////////////////////////////////////////////////////////////////////////////
#endif // _CLUADMIN_H_
|