|
|
/**********************************************************************/ /** Microsoft Windows NT **/ /** Copyright(c) Microsoft Corp., 1992 **/ /**********************************************************************/
/*
openfile.hxx Class declarations for the OPEN_DIALOG_BASE, OPEN_LBOX_BASE, and OPEN_LBI_BASE classes.
The OPEN_DIALOG_BASE is used to show the remotely open files on a particular server. This listbox contains a [Close] button to allow the admin to close selected files.
FILE HISTORY: KeithMo 01-Aug-1991 Created for the Server Manager. KeithMo 26-Aug-1991 Changes from code review attended by RustanL and EricCh. ChuckC 06-Oct-1991 Moved to applib. beng 05-Mar-1992 Use strnumer.hxx */
#ifndef _OPENFILE_HXX
#define _OPENFILE_HXX
#include "strnumer.hxx"
/*************************************************************************
NAME: OPEN_LBI_BASE
SYNOPSIS: This class represents one item in the OPEN_LBOX_BASE.
INTERFACE: OPEN_LBI_BASE - Class constructor.
~OPEN_LBI_BASE - Class destructor.
Paint - Draw an item.
QueryLeadingChar - Query the first character for the keyboard interface.
Compare - Compare two items.
QueryUserName - Query the user name for this item.
QueryFileID - Returns the file ID for this item.
PARENT: LBI
USES: NLS_STR, DEC_STR
HISTORY: ChuckC 10/6/91 Created beng 05-Mar-1992 use DEC_STR
**************************************************************************/
DLL_CLASS OPEN_LBI_BASE : public LBI { protected:
/*
* These data members represent the various * columns to be displayed in the listbox. */ NLS_STR _nlsUserName; NLS_STR _nlsAccess; DEC_STR _nlsLocks; NLS_STR _nlsPath;
/*
* This is the file ID of the remote * file which this LBI represents. */ ULONG _ulFileID;
/*
* The permissions bitmask. */ ULONG _uPermissions;
/*
* This method returns the first character in the * listbox item. This is used for the listbox * keyboard interface. */ virtual WCHAR QueryLeadingChar() const;
public:
OPEN_LBI_BASE( const TCHAR *pszUserName, const TCHAR *pszPath, ULONG uPermissions, ULONG cLocks, ULONG ulFileID) ; virtual ~OPEN_LBI_BASE() ;
const TCHAR * QueryUserName() const { return _nlsUserName.QueryPch(); }
const TCHAR * QueryPath() const { return _nlsPath.QueryPch(); }
ULONG QueryFileID() const { return _ulFileID; }
const TCHAR * QueryAccessName( VOID ) const { return _nlsAccess; }
ULONG QueryPermissions( VOID ) const { return _uPermissions; } };
/*************************************************************************
NAME: OPEN_LBOX_BASE
SYNOPSIS: This listbox displays the files open on a server.
INTERFACE: OPEN_LBOX_BASE - Class constructor.
~OPEN_LBOX_BASE - Class destructor.
Refresh - Refresh the list of open files.
Fill - Fills the listbox with the files open on the target server.
QueryColumnWidths - Called by OPEN_LBI_BASE::Paint(), this is the column width table used for painting the listbox items.
PARENT: BLT_LISTBOX
USES: NLS_STR
HISTORY: ChuckC 10/6/91 Created
**************************************************************************/
DLL_CLASS OPEN_LBOX_BASE : public BLT_LISTBOX { private:
//
// Server and qualifying path
//
NLS_STR _nlsServer ; NLS_STR _nlsBasePath ;
protected: /*
APIERR BuildColumnWidthTable( HWND hwndDialog, CID cidListbox, UINT cColumns, UINT *adx, BOOL bHaveIcon = FALSE) ; */
virtual OPEN_LBI_BASE *CreateFileEntry(const FILE3_ENUM_OBJ *pfi3) = 0 ;
//
// This array contains the column widths used
// while painting the listbox item. This array
// is generated by the BuildColumnWidthTable()
// function.
//
UINT _adx[5];
public:
OPEN_LBOX_BASE( OWNER_WINDOW *powOwner, CID cid, const NLS_STR &nlsServer, const NLS_STR &nlsBasePath );
~OPEN_LBOX_BASE();
/*
* Methods that fill and refresh the listbox. */ APIERR Fill(); APIERR Refresh();
//
// This method is called by the OPEN_LBI_BASE::Paint()
// method for retrieving the column width table.
//
const UINT * QueryColumnWidths() const { return _adx; }
//
// The following macro will declare (& define) a new
// QueryItem() method which will return an OPEN_LBI_BASE *.
//
DECLARE_LB_QUERY_ITEM( OPEN_LBI_BASE ) };
/*************************************************************************
NAME: OPEN_DIALOG_BASE
SYNOPSIS: This class represents the Open Resources dialog which is invoked from the Shared Files subproperty dialog.
INTERFACE: OPEN_DIALOG_BASE - Class constructor.
~OPEN_DIALOG_BASE - Class destructor.
OnCommand - Called when the user presses one of the Close buttons.
QueryHelpContext - Called when the user presses "F1" or the "Help" button. Used for selecting the appropriate help text for display.
Refresh - Refreshes the dialog.
CloseFile - Worker function to close a single file.
PARENT: DIALOG_WINDOW
USES: OPEN_LBOX_BASE NLS_STR SLT PUSH_BUTTON
HISTORY: KeithMo 01-Aug-1991 Created for the Server Manager. KeithMo 20-Aug-1991 Now inherits from PSEUDOSERVICE_DIALOG. KeithMo 20-Aug-1991 Now inherits from SRVPROP_OTHER_DIALOG. ChuckC 06-Oct-1991 Moved to applib as common dialog KeithMo 20-May-1992 Removed _nlsNotAvailable, uses "??" instead. beng 04-Aug-1992 Load dialogs by ordinal
**************************************************************************/
DLL_CLASS OPEN_DIALOG_BASE : public DIALOG_WINDOW { private:
//
// These two methods warn the user before closing resource(s).
//
BOOL WarnCloseSingle( OPEN_LBI_BASE * plbi );
BOOL WarnCloseMulti( VOID );
protected:
//
// These two data members are used to display the
// open resources & file locks statistics.
//
SLT _sltOpenCount; // CODEWORK - NUMSLT
SLT _sltLockCount; // CODEWORK - NUMSLT
//
// These push buttons are used to close selected/all
// open resources. The IDs are also kept so the base class
// knows how to deal with them duriong OnCommand().
//
PUSH_BUTTON _pbClose; PUSH_BUTTON _pbCloseAll; CID _idClose; CID _idCloseAll;
//
// We need an explicit OK button member so we can set the focus when
// the close buttons are disabled.
//
PUSH_BUTTON _pbOK ;
//
// This method refreshes the dialog.
//
VOID Refresh();
//
// This method closes a specific remote file.
// It is called once when the Close button is pressed,
// and multiple times when the Close All button
// is pressed.
//
VOID CloseFile( OPEN_LBI_BASE * polbi );
//
// This method is called whenever a control
// is sending us a command. This is where
// we handle the Close & Close All buttons.
//
virtual BOOL OnCommand( const CONTROL_EVENT & event );
//
// Called during help processing to select the appropriate
// help text for display.
//
virtual ULONG QueryHelpContext();
/*
* remember the server and base path */ NLS_STR _nlsServer ; NLS_STR _nlsBasePath ;
/*
* pointer to access the files listbox */ OPEN_LBOX_BASE *_plbFiles ;
public:
//
// Usual constructor/destructor goodies.
//
OPEN_DIALOG_BASE( HWND hwndOwner, UINT idDialog, CID sltOpenCount, CID sltLockCount, CID pbClose, CID pbCloseAll, const TCHAR *pszServer, const TCHAR *pszBasePath, OPEN_LBOX_BASE *plbFiles) ;
~OPEN_DIALOG_BASE();
const TCHAR * QueryServer() const { return _nlsServer.QueryPch() ; } };
#endif // _OPENFILE_HXX
|