Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

310 lines
7.7 KiB

/**********************************************************************/
/** Microsoft Windows/NT **/
/** Copyright(c) Microsoft Corp., 1992 **/
/**********************************************************************/
/*
svclb.hxx
Class declarations for the SVC_LISTBOX and SVCCNTL_LBI classes.
FILE HISTORY:
KeithMo 22-Dec-1992 Split off from svccntl.hxx.
*/
#ifndef _SVCLB_HXX_
#define _SVCLB_HXX_
//
// This is the number of display columns in the SVC_LISTBOX.
//
#define NUM_SVC_LISTBOX_COLUMNS 3
/*************************************************************************
NAME: SVC_LBI
SYNOPSIS: This class represents one item in the SVC_LISTBOX.
INTERFACE: SVC_LBI - Class constructor.
~SVC_LBI - Class destructor.
Paint - Draw an item.
QueryLeadingChar - Query the first character for
the keyboard interface.
Compare - Compare two items.
QueryServiceName - Query the service's name.
QueryCurrentState - Returns the current state of the
service.
QueryControlsAccepted - Returns a bit mask specifying
the control operations this service
will accept.
PARENT: LBI
USES: NLS_STR
HISTORY:
KeithMo 15-Jan-1992 Created for the Server Manager.
beng 22-Apr-1992 Change to LBI::Paint
KeithMo 22-Dec-1992 Split off from svccntl.hxx.
**************************************************************************/
class SVC_LBI : public LBI
{
private:
//
// This data member contains the current state of the
// target service.
//
ULONG _CurrentState;
//
// This member contains a string representation of the
// current service state (i.e. "Paused"). We keep this
// around so that we don't have to look it up in the string
// table everytime our listbox refreshes.
//
const TCHAR * _pszCurrentState;
//
// This member contains a bit mask specifying which
// control operations are valid on the target service.
//
ULONG _ControlsAccepted;
//
// This is the start type (i.e. SERVER_AUTO_START).
//
ULONG _StartType;
const TCHAR * _pszStartType;
//
// This string holds the name of the target service
// (i.e. "SERVER").
//
NLS_STR _nlsServiceName;
//
// This holds the display name.
//
NLS_STR _nlsDisplayName;
protected:
//
// This method paints a single item into the listbox.
//
virtual VOID Paint( LISTBOX * plb,
HDC hdc,
const RECT * prect,
GUILTT_INFO * pGUILTT ) const;
//
// This method compares two listbox items. This
// is used for sorting the listbox.
//
virtual INT Compare( const LBI * plbi ) const;
//
// This method returns the first character in
// the displayed listbox item. This is used for
// the keyboard interface.
//
virtual WCHAR QueryLeadingChar( VOID ) const;
public:
//
// Usual constructor/destructor goodies.
//
SVC_LBI( const TCHAR * pszServiceName,
const TCHAR * pszDisplayName,
ULONG CurrentState,
const TCHAR * pszStateName,
ULONG ControlsAccepted,
ULONG StartType,
const TCHAR * pszStartType );
virtual ~SVC_LBI( VOID );
//
// Accessors for the fields this LBI maintains.
//
const TCHAR * QueryServiceName( VOID ) const
{ return _nlsServiceName.QueryPch(); }
const TCHAR * QueryDisplayName( VOID ) const
{ return _nlsDisplayName.QueryPch(); }
ULONG QueryCurrentState( VOID ) const
{ return _CurrentState; }
ULONG QueryControlsAccepted( VOID ) const
{ return _ControlsAccepted; }
ULONG QueryStartType( VOID ) const
{ return _StartType; }
VOID SetStartType( ULONG StartType,
const TCHAR * pszStartType );
}; // class SVC_LBI
/*************************************************************************
NAME: SVC_LISTBOX
SYNOPSIS: This listbox displays the services available on the
target server.
INTERFACE: SVC_LISTBOX - Class constructor.
~SVC_LISTBOX - Class destructor.
Refresh - Refresh the list of services &
their states.
Fill - Fills the listbox with the
services available on the server.
QueryColumnWidths - Called by SVC_LBI::Paint(),
this is the column width table
used for painting the listbox
items.
PARENT: BLT_LISTBOX
USES: NLS_STR
HISTORY:
KeithMo 15-Jan-1992 Created for the Server Manager.
KeithMo 22-Dec-1992 Split off from svccntl.hxx.
**************************************************************************/
class SVC_LISTBOX : public BLT_LISTBOX
{
private:
//
// The target server's API name and server type bitmask.
//
const TCHAR * _pszServerName;
ULONG _nServerType;
//
// This array contains the column widths used
// while painting the listbox item. This array
// is generated by the BuildColumnWidthTable()
// function.
//
UINT _adx[NUM_SVC_LISTBOX_COLUMNS];
//
// These strings hold the displayable service states.
// Note that "Continued" is not really a state, and
// "Stopped" is never displayed.
//
RESOURCE_STR _nlsStarted;
RESOURCE_STR _nlsPaused;
//
// These strings hold the displayable form of the
// start type.
//
RESOURCE_STR _nlsBoot;
RESOURCE_STR _nlsSystem;
RESOURCE_STR _nlsAutomatic;
RESOURCE_STR _nlsManual;
RESOURCE_STR _nlsDisabled;
//
// Type "type" of services to enumerate.
//
UINT _nServiceTypes;
public:
//
// Usual constructor/destructor goodies.
//
SVC_LISTBOX( OWNER_WINDOW * powOwner,
CID cid,
const TCHAR * pszServerName,
ULONG nServerType,
UINT nServiceTypes );
~SVC_LISTBOX( VOID );
//
// Methods to fill & refresh the listbox.
//
APIERR Fill( VOID );
APIERR Refresh( VOID );
//
// This method is called by the SVC_LBI::Paint()
// method for retrieving the column width table.
//
const UINT * QueryColumnWidths( VOID ) const
{ return _adx; }
//
// This method will map a service state (such as SERVICE_PAUSED)
// to a string representation (such as "Paused").
//
const TCHAR * MapStateToName( ULONG State ) const;
//
// This method maps a service start type (such as SERVICE_AUTO_START)
// to a displayable form (such as "Automatic").
//
const TCHAR * MapStartTypeToName( ULONG nStartType ) const;
//
// The following macro will declare (& define) a new
// QueryItem() method which will return an SVC_LBI *.
//
DECLARE_LB_QUERY_ITEM( SVC_LBI )
}; // class SVC_LISTBOX
#endif // _SVCLB_HXX_