379 lines
9.2 KiB
C++
379 lines
9.2 KiB
C++
|
/**********************************************************************/
|
||
|
/** Microsoft Windows/NT **/
|
||
|
/** Copyright(c) Microsoft Corp., 1991 **/
|
||
|
/**********************************************************************/
|
||
|
|
||
|
/*
|
||
|
openfile.hxx
|
||
|
Class declarations for the OPENS_DIALOG, OPENS_LISTBOX, and
|
||
|
OPENS_LBI classes.
|
||
|
|
||
|
The OPENS_DIALOG 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:
|
||
|
NarenG 2-Oct-1992 Stole from server manager.
|
||
|
Merged OPEN_DIALOG_BASE with OPENS_DIALIG
|
||
|
*/
|
||
|
|
||
|
|
||
|
#ifndef _OPENFILE_HXX
|
||
|
#define _OPENFILE_HXX
|
||
|
|
||
|
|
||
|
#include <lmobj.hxx>
|
||
|
#include <lmofile.hxx>
|
||
|
#include <lmoersm.hxx>
|
||
|
#include <lmoefile.hxx>
|
||
|
|
||
|
#include <bltnslt.hxx>
|
||
|
#include <strnumer.hxx>
|
||
|
|
||
|
//
|
||
|
// Number of columns in the OPEN FILES listbox
|
||
|
//
|
||
|
|
||
|
#define COLS_OF_LB_FILES 5
|
||
|
|
||
|
|
||
|
/*************************************************************************
|
||
|
|
||
|
NAME: OPENS_LBI
|
||
|
|
||
|
SYNOPSIS: This class represents one item in the OPENS_LISTBOX.
|
||
|
|
||
|
INTERFACE: OPENS_LBI - Class constructor.
|
||
|
|
||
|
~OPENS_LBI - 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.
|
||
|
|
||
|
QueryPath - Returns the pathname for this
|
||
|
item.
|
||
|
|
||
|
QueryFileID - Returns the file ID for this
|
||
|
item.
|
||
|
|
||
|
PARENT: LBI
|
||
|
|
||
|
USES: DEC_STR
|
||
|
NLS_STR
|
||
|
DMID_DTE
|
||
|
|
||
|
HISTORY:
|
||
|
NarenG 2-Oct-1992 Stole from server manager.
|
||
|
Merged OPEN_DIALOG_BASE with OPENS_DIALIG
|
||
|
|
||
|
**************************************************************************/
|
||
|
class OPENS_LBI : public LBI
|
||
|
{
|
||
|
private:
|
||
|
|
||
|
//
|
||
|
// These data members represent the various
|
||
|
// columns to be displayed in the listbox.
|
||
|
//
|
||
|
|
||
|
NLS_STR _nlsUserName;
|
||
|
NLS_STR _nlsOpenMode;
|
||
|
DEC_STR _nlsNumLocks;
|
||
|
NLS_STR _nlsPath;
|
||
|
DWORD _dwForkType;
|
||
|
|
||
|
|
||
|
//
|
||
|
// This is the file ID of the remote
|
||
|
// file which this LBI represents.
|
||
|
//
|
||
|
|
||
|
DWORD _dwFileID;
|
||
|
|
||
|
//
|
||
|
// The Open Mode bitmask.
|
||
|
//
|
||
|
|
||
|
DWORD _dwOpenMode;
|
||
|
|
||
|
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
|
||
|
// listbox item. This is used for the listbox
|
||
|
// keyboard interface.
|
||
|
//
|
||
|
virtual WCHAR QueryLeadingChar() const;
|
||
|
|
||
|
public:
|
||
|
|
||
|
//
|
||
|
// Usual constructor/destructor goodies.
|
||
|
//
|
||
|
OPENS_LBI( DWORD dwFileId,
|
||
|
const TCHAR * pszUserName,
|
||
|
DWORD dwOpenMode,
|
||
|
DWORD dwForkType,
|
||
|
DWORD dwNumLocks,
|
||
|
const TCHAR * pszPath );
|
||
|
|
||
|
virtual ~OPENS_LBI();
|
||
|
|
||
|
const TCHAR * QueryUserName() const
|
||
|
{ return _nlsUserName.QueryPch(); }
|
||
|
|
||
|
const TCHAR * QueryPath() const
|
||
|
{ return _nlsPath.QueryPch(); }
|
||
|
|
||
|
BOOL IsOpenForWrite() const;
|
||
|
|
||
|
ULONG QueryFileID() const
|
||
|
{ return _dwFileID; }
|
||
|
|
||
|
}; //OPENS_LBI
|
||
|
|
||
|
|
||
|
/*************************************************************************
|
||
|
|
||
|
NAME: OPENS_LISTBOX
|
||
|
|
||
|
SYNOPSIS: This listbox displays the files open on a server.
|
||
|
|
||
|
INTERFACE: OPENS_LISTBOX - Class constructor.
|
||
|
|
||
|
~OPENS_LISTBOX - Class destructor.
|
||
|
|
||
|
Refresh - Refresh the list of open files.
|
||
|
|
||
|
Fill - Fills the listbox with the
|
||
|
files open on the target server.
|
||
|
|
||
|
QueryColumnWidths - Called by OPENS_LBI::Paint(),
|
||
|
this is the column width table
|
||
|
used for painting the listbox
|
||
|
items.
|
||
|
|
||
|
PARENT: BLT_LISTBOX
|
||
|
|
||
|
USES: NLS_STR
|
||
|
DMID_DTE
|
||
|
|
||
|
HISTORY:
|
||
|
NarenG 2-Oct-1992 Stole from server manager.
|
||
|
Merged OPEN_DIALOG_BASE with OPENS_DIALIG
|
||
|
|
||
|
**************************************************************************/
|
||
|
class OPENS_LISTBOX : public BLT_LISTBOX
|
||
|
{
|
||
|
|
||
|
private:
|
||
|
|
||
|
//
|
||
|
// Represents the target server
|
||
|
//
|
||
|
AFP_SERVER_HANDLE _hServer;
|
||
|
|
||
|
//
|
||
|
// Cumulative number of locks
|
||
|
//
|
||
|
DWORD _dwNumLocks;
|
||
|
|
||
|
//
|
||
|
// Fork type bitmaps
|
||
|
//
|
||
|
DMID_DTE _dmdteDataFork;
|
||
|
DMID_DTE _dmdteResourceFork;
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//
|
||
|
// This array contains the column widths used
|
||
|
// while painting the listbox item.
|
||
|
//
|
||
|
UINT _adx[COLS_OF_LB_FILES];
|
||
|
|
||
|
public:
|
||
|
|
||
|
//
|
||
|
// Usual constructor/destructor goodies.
|
||
|
//
|
||
|
OPENS_LISTBOX( OWNER_WINDOW * powOwner,
|
||
|
CID cid,
|
||
|
AFP_SERVER_HANDLE hServer );
|
||
|
|
||
|
~OPENS_LISTBOX();
|
||
|
|
||
|
//
|
||
|
// The following macro will declare (& define) a new
|
||
|
// QueryItem() method which will return an OPENS_LBI *.
|
||
|
//
|
||
|
DECLARE_LB_QUERY_ITEM( OPENS_LBI )
|
||
|
|
||
|
//
|
||
|
// Methods that fill and refresh the listbox.
|
||
|
//
|
||
|
DWORD Fill( VOID );
|
||
|
DWORD Refresh( VOID );
|
||
|
|
||
|
//
|
||
|
// This method is called by the OPENS_LBI::Paint()
|
||
|
// method for retrieving the column width table.
|
||
|
//
|
||
|
const UINT * QueryColumnWidths() const
|
||
|
{ return _adx; }
|
||
|
|
||
|
DWORD QueryLockCount() const
|
||
|
{ return _dwNumLocks; }
|
||
|
|
||
|
DMID_DTE *QueryDataForkBitmap( VOID ) { return &_dmdteDataFork; }
|
||
|
|
||
|
DMID_DTE *QueryResourceForkBitmap( VOID ) { return &_dmdteResourceFork; }
|
||
|
|
||
|
}; // class OPENS_LISTBOX
|
||
|
|
||
|
|
||
|
|
||
|
/*************************************************************************
|
||
|
|
||
|
NAME: OPENS_DIALOG
|
||
|
|
||
|
SYNOPSIS: This class represents the Open Resources dialog which is
|
||
|
invoked from the Shared Files subproperty dialog.
|
||
|
|
||
|
INTERFACE: OPENS_DIALOG - Class constructor.
|
||
|
|
||
|
~OPENS_DIALOG - 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: OPENS_LISTBOX
|
||
|
NLS_STR
|
||
|
SLT
|
||
|
PUSH_BUTTON
|
||
|
|
||
|
HISTORY:
|
||
|
NarenG 2-Oct-1992 Stole from server manager.
|
||
|
Merged OPEN_DIALOG_BASE with OPENS_DIALIG
|
||
|
|
||
|
**************************************************************************/
|
||
|
class OPENS_DIALOG : public DIALOG_WINDOW
|
||
|
{
|
||
|
|
||
|
private:
|
||
|
|
||
|
//
|
||
|
// This listbox contains the open resource from the
|
||
|
// target server.
|
||
|
//
|
||
|
OPENS_LISTBOX _lbFiles;
|
||
|
|
||
|
//
|
||
|
// remember the server and base path
|
||
|
//
|
||
|
NLS_STR _nlsServer;
|
||
|
|
||
|
//
|
||
|
// These two data members are used to display the
|
||
|
// open resources & file locks statistics.
|
||
|
//
|
||
|
DEC_SLT _sltOpenCount;
|
||
|
DEC_SLT _sltLockCount;
|
||
|
|
||
|
PUSH_BUTTON _pbOk;
|
||
|
|
||
|
//
|
||
|
// 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;
|
||
|
|
||
|
//
|
||
|
// This push button is used to refresh the dialog.
|
||
|
//
|
||
|
PUSH_BUTTON _pbRefresh;
|
||
|
|
||
|
AFP_SERVER_HANDLE _hServer;
|
||
|
|
||
|
//
|
||
|
// This method is to warn the user before closing resources.
|
||
|
//
|
||
|
|
||
|
BOOL WarnCloseMulti( VOID );
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//
|
||
|
// 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( VOID );
|
||
|
|
||
|
//
|
||
|
// This method refreshes the dialog.
|
||
|
//
|
||
|
DWORD Refresh( VOID );
|
||
|
|
||
|
|
||
|
public:
|
||
|
|
||
|
//
|
||
|
// Usual constructor/destructor goodies.
|
||
|
//
|
||
|
|
||
|
OPENS_DIALOG( HWND hwndOwner,
|
||
|
AFP_SERVER_HANDLE hServer,
|
||
|
const TCHAR * pszServerName );
|
||
|
|
||
|
~OPENS_DIALOG();
|
||
|
|
||
|
const TCHAR * QuerySeverName() const
|
||
|
{ return _nlsServer.QueryPch(); }
|
||
|
|
||
|
}; // class OPENS_DIALOG
|
||
|
|
||
|
#endif // _OPENFILE_HXX
|