|
|
/*++
Copyright (C) Microsoft Corporation, 1995 - 1999 All rights reserved.
Module Name:
srvprop.hxx
Abstract:
Server properties header.
Author:
Steve Kiraly (steveKi) 11-Nov-1995
Revision History:
--*/ #ifndef _SVRPROP_HXX
#define _SVRPROP_HXX
/********************************************************************
Defines a function to return the specified page id.
********************************************************************/ #define DEFINE_PAGE_IDENTIFIER( PageId ) \
protected: \ UINT \ uGetPageId( \ VOID \ ) const \ { \ return PageId; \ }
/********************************************************************
Server property data.
********************************************************************/
class TServerData : public MSingletonWin {
SIGNATURE( 'svpr' ) SAFE_NEW
public:
VAR( UINT, uStartPage ); VAR( INT, iCmdShow ); VAR( BOOL, bAdministrator ); VAR( BOOL, bRebootRequired ); VAR( TString, strTitle ); VAR( HANDLE, hPrintServer ); VAR( LPCTSTR, pszServerName ); VAR( TString, strMachineName ); VAR( HICON, hDefaultSmallIcon ); VAR( BOOL, bCancelButtonIsClose ); VAR( DWORD, dwDriverVersion ); VAR( BOOL, bRemoteDownLevel );
TServerData( IN LPCTSTR pszServerName, IN INT iCmdShow, IN LPARAM lParam, IN HWND hwnd, IN BOOL bModal );
~TServerData( VOID );
BOOL bValid( VOID );
BOOL bLoad( VOID );
private:
//
// Copying and assignment are not defined.
//
TServerData( const TServerData & );
TServerData & operator =( const TServerData & );
BOOL bStore( VOID );
VOID vCreateMachineName( IN const TString &strServerName, IN BOOL bLocal, IN TString &strMachineName );
BOOL _bIsDataStored; BOOL _bValid; };
/********************************************************************
ServerProp.
Base class for server property sheets. This class should not not contain any information/services that is not generic to all derived classes.
********************************************************************/
class TServerProp : public MGenericProp {
SIGNATURE( 'prsv' ) SAFE_NEW
protected:
TServerProp( IN TServerData *pServerData );
virtual ~TServerProp( VOID );
BOOL bValid( VOID );
BOOL bHandleMessage( IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam );
VOID vCancelToClose( IN HWND hDlg );
virtual BOOL bSetUI( VOID ) = 0;
virtual BOOL bReadUI( VOID ) = 0;
virtual BOOL bSaveUI( VOID ) = 0;
virtual UINT uGetPageId( VOID ) const = 0;
TServerData *_pServerData;
private:
//
// Copying and assignment are not defined.
//
TServerProp( const TServerProp & );
TServerProp & operator =( const TServerProp & );
};
/********************************************************************
General server settings page.
********************************************************************/
class TServerSettings : public TServerProp {
SIGNATURE( 'stsv' ) SAFE_NEW DEFINE_PAGE_IDENTIFIER( DLG_SERVER_SETTINGS );
public:
TServerSettings( IN TServerData* pServerData );
~TServerSettings( );
BOOL bValid( VOID );
BOOL bHandleMessage( IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam );
BOOL bSetUI( VOID );
BOOL bSetUI( INT LoadType );
BOOL bReadUI( VOID );
BOOL bSaveUI( VOID );
private:
enum EStatus { kStatusError, kStatusSuccess, kStatusInvalidSpoolDirectory, kStatusCannotSaveUserNotification, };
enum CONSTANTS { kServerAttributesLoad, kServerAttributesStore, kServerAttributesDefault, };
TString _strSpoolDirectoryOrig; TString _strSpoolDirectory; BOOL _bBeepErrorJobs; BOOL _bEventLogging; BOOL _bNotifyPrintedJobs; BOOL _bNotifyLocalPrintedJobs; BOOL _bNotifyNetworkPrintedJobs; BOOL _bNotifyPrintedJobsComputer; BOOL _bChanged; BOOL _bDownLevelServer; BOOL _bNewOptionSupport;
private:
//
// Copying and assignment are not defined.
//
TServerSettings( const TServerSettings & );
TServerSettings & operator =( const TServerSettings & );
INT sServerAttributes( BOOL bDirection );
VOID TServerSettings:: vEnable( BOOL bState );
};
/********************************************************************
Forms server property page.
********************************************************************/
class TServerForms : public TServerProp {
SIGNATURE( 'fmsv' ) SAFE_NEW DEFINE_PAGE_IDENTIFIER( DLG_FORMS );
public:
TServerForms( IN TServerData* pServerData );
~TServerForms( VOID );
BOOL bValid( VOID );
BOOL bHandleMessage( IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam );
BOOL bSetUI( VOID );
BOOL bReadUI( VOID );
BOOL bSaveUI( VOID );
private:
enum { kMagic = 0xDEAD };
//
// Copying and assignment are not defined.
//
TServerForms( const TServerForms & );
TServerForms & operator =( const TServerForms & );
PVOID _p;
};
/********************************************************************
Ports server property page.
********************************************************************/
class TServerPorts : public TServerProp {
SIGNATURE( 'posv' ) SAFE_NEW DEFINE_PAGE_IDENTIFIER( DLG_SERVER_PORTS );
public:
TServerPorts( IN TServerData* pServerData );
~TServerPorts( VOID );
BOOL bValid( VOID );
BOOL bSetUI( VOID );
BOOL bReadUI( VOID );
BOOL bSaveUI( VOID );
BOOL bHandleMessage( IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam );
private:
//
// Copying and assignment are not defined.
//
TServerPorts( const TServerPorts & );
TServerPorts & operator =( const TServerPorts & );
TPortsLV _PortsLV;
};
/********************************************************************
Server Driver Administration.
********************************************************************/ class TServerDrivers : public TServerProp {
SIGNATURE( 'drsv' ) SAFE_NEW DEFINE_PAGE_IDENTIFIER( DLG_SERVER_DRIVERS );
friend class TServerDriverNotify;
public:
TServerDrivers( IN TServerData* pServerData );
~TServerDrivers( VOID );
BOOL bValid( VOID );
BOOL bSetUI( VOID );
BOOL bReadUI( VOID );
BOOL bSaveUI( VOID );
BOOL bHandleMessage( IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam );
private:
//
// Copying and assignment are not defined.
//
TServerDrivers( const TServerDrivers & );
TServerDrivers & operator =( const TServerDrivers & );
BOOL bHandleAddDriver( UINT uMsg, WPARAM wParam, LPARAM lParam );
BOOL bHandleRemoveDriver( UINT uMsg, WPARAM wParam, LPARAM lParam );
BOOL TServerDrivers:: bHandleUpdateDriver( UINT uMsg, WPARAM wParam, LPARAM lParam );
BOOL bHandleDriverDetails( UINT uMsg, WPARAM wParam, LPARAM lParam );
BOOL bHandleDriverItemSelection( UINT uMsg, WPARAM wParam, LPARAM lParam );
VOID vUpdateButtons( VOID );
BOOL bRemoveDriverCallback( IN TDriverInfo *pDriverInfo, IN DWORD dwFlags, IN DWORD dwRefdata );
BOOL bWarnUserDriverDeletion( IN TDriverInfo *pDriverInfo, IN UINT nCount ) const;
BOOL TServerDrivers:: bWarnUserDriverUpdate( IN TDriverInfo *pDriverInfo, IN UINT nCount ) const;
TDriversLV _DriversLV; BOOL _bChanged; BOOL _bCanRemoveDrivers;
};
/********************************************************************
Driver Remove Notify class.
********************************************************************/ class TServerDriverNotify : public TDriversLVNotify {
public:
TServerDriverNotify( IN TServerDrivers *ServerDrivers );
~TServerDriverNotify( VOID );
BOOL bNotify( IN TDriverInfo *pDriverInfo );
private:
//
// Copying and assignment are not defined.
//
TServerDriverNotify( const TServerDriverNotify & );
TServerDriverNotify & operator =( const TServerDriverNotify & );
BOOL bInstall( IN TDriverInfo *pDriverInfo );
BOOL bRemove( IN TDriverInfo *pDriverInfo );
BOOL bUpdate( IN TDriverInfo *pDriverInfo );
TServerDrivers *_pServerDrivers; TPrinterDriverInstallation *_pDi; BOOL _bActionFailed; UINT _uNotifyCount;
};
/********************************************************************
Server property windows.
********************************************************************/
class TServerWindows {
SIGNATURE( 'svrw' ) SAFE_NEW
public:
TServerWindows( IN TServerData *pServerData );
~TServerWindows( VOID );
BOOL bValid( VOID );
BOOL bBuildPages( VOID );
BOOL bDisplayPages( VOID );
private:
//
// Copying and assignment are not defined.
//
TServerWindows( const TServerWindows & );
TServerWindows & operator =( const TServerWindows & );
TServerData *_pServerData; TServerForms _Forms; TServerPorts _Ports; TServerSettings _Settings; TServerDrivers _Drivers;
};
/********************************************************************
Global scoped functions.
********************************************************************/
VOID vServerPropPages( IN HWND hwnd, IN LPCTSTR pszServerName, IN INT iCmdShow, IN LPARAM lParam );
INT WINAPI iServerPropPagesProc( IN TServerData *pServerData );
#endif
|