346 lines
9.6 KiB
C++
346 lines
9.6 KiB
C++
|
/**********************************************************************/
|
||
|
/** 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
|