windows-nt/Source/XPSP1/NT/net/sfm/afp/ui/afpmgr/vvolbase.hxx
2020-09-26 16:20:57 +08:00

293 lines
6.6 KiB
C++

/*****************************************************************/
/** Microsoft Windows NT **/
/** Copyright(c) Microsoft Corp., 1991 **/
/*****************************************************************/
/*
vvolbase.hxx
Contains the following classes used by the delete volume dialog
and the volume management dialog.
VIEW_VOLUMES_LBI
VIEW_VOLUMES_LISTBOX
VIEW_VOLUMES_DIALOG_BASE
History:
NarenG 11/11/92 Stole and modified sharestp.hxx
*/
#ifndef _VVOLBASE_HXX
#define _VVOLBASE_HXX
//
// Number of columns in VOLUME listbox
//
#define COLS_VV_LB_VOLUMES 3
/*************************************************************************
NAME: VIEW_VOLUMES_LBI
SYNOPSIS: Items in the VIEW_VOLUMES_LISTBOX in VIEW_VOLUMES_DIALOG_BASE
to display the volume name and path of the volume
on the selected computer.
INTERFACE: VIEW_VOLUMES_LBI() - Constructor
~VIEW_VOLUMES_LBI() - Destructor
QueryVolumeName() - Query the volume name contained in the LBI
QueryVolumePath() - Query the volume path contained in the LBI
QueryVolumeId() - Query the volume Id.
PARENT: LBI
USES: NLS_STR
CAVEATS:
NOTES:
HISTORY:
NarenG 11/11/92 Modified for afpmgr.
**************************************************************************/
class VIEW_VOLUMES_LBI: public LBI
{
private:
//
// Id of the volume
//
DWORD _dwVolumeId;
//
// Name of the volume
//
NLS_STR _nlsVolumeName;
//
// Path that the volume represents
//
NLS_STR _nlsVolumePath;
//
// Indicated if this is a good or bad volume
//
BOOL _fGoodVolume;
protected:
virtual VOID Paint( LISTBOX *plb,
HDC hdc,
const RECT *prect,
GUILTT_INFO *pGUILTT ) const;
virtual INT Compare( const LBI *plbi ) const;
public:
VIEW_VOLUMES_LBI::VIEW_VOLUMES_LBI( DWORD dwVolumeId,
const TCHAR * pszVolumeName,
const TCHAR * pszVolumePath,
BOOL fGoodVolume );
~VIEW_VOLUMES_LBI();
virtual WCHAR QueryLeadingChar( VOID ) const;
const TCHAR * QueryVolumeName( VOID ) const
{ return _nlsVolumeName.QueryPch(); }
const TCHAR * QueryVolumePath( VOID ) const
{ return _nlsVolumePath.QueryPch(); }
DWORD QueryVolumeId( VOID ) const { return _dwVolumeId; }
BOOL IsVolumeValid( VOID ) const { return _fGoodVolume; }
};
/*************************************************************************
NAME: VIEW_VOLUMES_LISTBOX
SYNOPSIS: Listbox used in VIEW_VOLUMES_DIALOG_BASE to display the
volume name and the path of the volume on the
selected computer.
INTERFACE: VIEW_VOLUMES_LISTBOX() - Constructor
~VIEW_VOLUME_LISTBOX() - Destructor
QueryItem() - Query the VIEW_VOLUMES_LBI
QueryColumnWidths() - Query the array of column widths
QueryVolumeBitmap() - Query the volume bitmap
Refresh() - Refresh the listbox
PARENT: BLT_LISTBOX
USES: DMID_DTE
CAVEATS:
NOTES:
HISTORY:
NarenG 11/11/92 Modified for afpmgr.
**************************************************************************/
class VIEW_VOLUMES_LISTBOX: public BLT_LISTBOX
{
private:
//
// Array storing the calculated column widths
//
UINT _adx[COLS_VV_LB_VOLUMES];
//
// Volume listbox bitmaps.
//
DMID_DTE _dmdteGoodVolume;
DMID_DTE _dmdteBadVolume;
AFP_SERVER_HANDLE _hServer;
BOOL _fDisplayBadVolumes;
public:
VIEW_VOLUMES_LISTBOX::VIEW_VOLUMES_LISTBOX(
OWNER_WINDOW *powin,
BOOL fDisplayBadVolumes,
CID cid,
AFP_SERVER_HANDLE hServer );
~VIEW_VOLUMES_LISTBOX();
DECLARE_LB_QUERY_ITEM( VIEW_VOLUMES_LBI );
const UINT *QueryColumnWidths( VOID ) const { return _adx; }
DMID_DTE *QueryGoodVolumeBitmap( VOID ) { return &_dmdteGoodVolume; }
DMID_DTE *QueryBadVolumeBitmap( VOID ) { return &_dmdteBadVolume; }
DWORD Refresh( VOID );
};
/*************************************************************************
NAME: VIEW_VOLUMES_DIALOG_BASE
SYNOPSIS: This is the base dialog for CLOSE_VOLUME_DIALOG in the
file manager and VOLUME_MANAGEMENT_DIALOG in the
server manager.
INTERFACE:
PARENT: DIALOG_WINDOW
USES: SLT, VIEW_VOLUMES_LISTBOX
CAVEATS:
NOTES: This class contains all common routines called used
by the volume management dialog and close volume dialog.
HISTORY:
NarenG 11/11/92 Modified for afpmgr.
**************************************************************************/
class VIEW_VOLUMES_DIALOG_BASE : public DIALOG_WINDOW
{
private:
//
// The title of the volumes listbox
//
SLT _sltVolumeTitle;
//
// Listbox for displaying the shares on the selected computer
//
VIEW_VOLUMES_LISTBOX _lbVolumes;
//
// Represents the target server.
//
AFP_SERVER_HANDLE _hServer;
const TCHAR * _pszServerName;
//
// CID of the volumes listbox
//
DWORD _cidVolumesLb;
protected:
VIEW_VOLUMES_DIALOG_BASE::VIEW_VOLUMES_DIALOG_BASE(
const IDRESOURCE &idrsrcDialog,
const PWND2HWND &hwndOwner,
AFP_SERVER_HANDLE hServer,
const TCHAR *pszServerName,
BOOL fDisplayBadVolumes,
DWORD cidVolumeTitle,
DWORD cidVolumesLb );
~VIEW_VOLUMES_DIALOG_BASE();
virtual BOOL OnCommand( const CONTROL_EVENT & event );
//
// Virtual methods that are called when the user double clicks
// on a volume in the listbox
//
virtual BOOL OnVolumeLbDblClk( VOID ) = 0;
//
// Refresh the listbox
//
DWORD Refresh( VOID );
//
// Return a pointer to the listbox
//
VIEW_VOLUMES_LISTBOX *QueryLBVolumes( VOID ) { return &_lbVolumes; }
//
// Query the computer name
//
const TCHAR *QueryComputerName( VOID ) const { return _pszServerName; }
DWORD VolumeDelete( VIEW_VOLUMES_LBI * pvlbi, BOOL* pfCancel );
APIERR SelectVolumeItem( const TCHAR * pszPath );
BOOL IsFocusOnGoodVolume( VOID ) const;
};
#endif