/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corp., 1991 **/ /**********************************************************************/ /* volumes.hxx Class declarations for the VOLUMES_DIALOG, VOLUMES_LISTBOX, and VOLUMES_LBI classes. These classes implement the Server Manager Shared Volumes subproperty sheet. The VOLUMES_LISTBOX/VOLUMES_LBI classes implement the listbox which shows the available sharepoints. VOLUMES_DIALOG implements the actual dialog box. FILE HISTORY: NarenG 02-Oct-1993 Stole from Server Manager and folded BASE_RES_DIALOG and FILES_DIALOG into one. */ #ifndef _VOLUMES_HXX #define _VOLUMES_HXX #include #include #include // // Number of columns in USERS and volumes listboxes // #define COLS_SV_LB_USERS 4 #define COLS_SV_LB_VOLUMES 4 /************************************************************************* NAME: USERS_LBI SYNOPSIS: This class represents one item in the USERS_LISTBOX. INTERFACE: USERS_LBI - Class constructor. ~USERS_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. QueryComputerName - Returns the computer name associated with this item. PARENT: LBI HISTORY: NarenG 02-Oct-1993 Stole from Server Manager and folded BASE_RES_DIALOG and FILES_DIALOG into one. **************************************************************************/ class USERS_LBI : public LBI { private: // // These data members represent the various // columns to be displayed in the listbox. // DMID_DTE * _pdte; NLS_STR _nlsUserName; NLS_STR _nlsInUse; ELAPSED_TIME_STR _nlsTime; DWORD _cOpens; DWORD _dwConnectionId; 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 returns the first character in the // listbox item. This is used for the listbox // keyboard interface. // virtual WCHAR QueryLeadingChar( VOID ) const; // // This method compares two listbox items. This // is used for sorting the listbox. // virtual INT Compare( const LBI * plbi ) const; public: // // Usual constructor/destructor goodies. // USERS_LBI( DWORD dwConnectionId, const TCHAR * pszUserName, ULONG ulTime, DWORD cOpens, TCHAR chTimeSep, DMID_DTE * pdte ); virtual ~USERS_LBI(); // // Retrieve the user name associated with // this listbox item. // const TCHAR * QueryUserName( VOID ) const { return _nlsUserName.QueryPch(); } // // Retrieve the Id of this connection. // DWORD QueryConnectionId( VOID ) const { return _dwConnectionId; } DWORD QueryNumOpens( VOID ) const { return _cOpens; } }; // class USERS_LBI /************************************************************************* NAME: USERS_LISTBOX SYNOPSIS: This listbox displays the users connected to a particular sharepoint. INTERFACE: USERS_LISTBOX - Class constructor. ~USERS_LISTBOX - Class destructor. Fill - Fill the user list. Refresh - Refresh the user list. QueryColumnWidths - Called by USERS_LBI::Paint(), this is the column width table used for painting the listbox items. PARENT: BLT_LISTBOX USES: SERVER_2 HISTORY: NarenG 02-Oct-1993 Stole from Server Manager and folded BASE_RES_DIALOG and FILES_DIALOG into one. **************************************************************************/ class USERS_LISTBOX : public BLT_LISTBOX { private: // // This array contains the column widths used // while painting the listbox item. This array // is generated by the BuildColumnWidthTable() // function. // UINT _adx[COLS_SV_LB_USERS]; // // This represents the target server. // AFP_SERVER_HANDLE _hServer; // // This is the cute little icon which is displayed // in each of the USERS_LBI listbox items. // DMID_DTE _dteIcon; // // This is the time separator. It is retrieved from // WIN.INI (section=intl, key=sTime). If this // cannot be retrieved from WIN.INI, then ':' is // used by default. // TCHAR _chTimeSep; // BUGBUG: Unicode? public: // // Usual constructor/destructor goodies. // USERS_LISTBOX( OWNER_WINDOW * powOwner, CID cid, AFP_SERVER_HANDLE hServer ); ~USERS_LISTBOX(); // // This method fills the listbox with the connected // users. // DWORD Fill( DWORD dwVolumeId ); // // This method refreshes the listbox. It is responsible // for maintaining the selection & appearance of the // listbox. // DWORD Refresh( DWORD dwVolumeId ); // // This method is called by the USERS_LBI::Paint() // method for retrieving the column width table. // const UINT * QueryColumnWidths( VOID ) const { return _adx; } // // This method will return TRUE if any user in the // listbox has any resource open. // BOOL AreResourcesOpen( VOID ) const; // // The following macro will declare (& define) a new // QueryItem() method which will return an USERS_LBI *. // DECLARE_LB_QUERY_ITEM( USERS_LBI ) }; // class USERS_LISTBOX /************************************************************************* NAME: VOLUMES_LBI SYNOPSIS: A single item to be displayed in VOLUMES_LISTBOX. INTERFACE: VOLUMES_LBI - Constructor. Takes a sharepoint name, a path, and a count of the number of users using the share. ~VOLUMES_LBI - Destructor. Paint - Paints the listbox item. QueryResourceName - Query the resource name from the listbox. SetResourceName - Sets the resource name for this listbox item. QueryLeadingChar - Query the item's first character (for the keyboard interface). Compare - Compare two items. PARENT: LBI USES: NLS_STR HISTORY: NarenG 02-Oct-1993 Stole from Server Manager and folded BASE_RES_DIALOG and FILES_DIALOG into one. **************************************************************************/ class VOLUMES_LBI : public LBI { private: // // The target resource id. // DWORD _dwVolumeId; // // The following data members represent the // various columns of the listbox. // DMID_DTE * _pdte; NLS_STR _nlsVolumeName; DEC_STR _nlsUses; NLS_STR _nlsPath; protected: // // This method paints a single item into the listbox. // virtual VOID Paint( LISTBOX * plb, HDC hdc, const RECT * prect, GUILTT_INFO * pGUILTT ) const; public: DWORD QueryVolumeId( VOID ) const { return _dwVolumeId; } const TCHAR * QueryVolumeName( VOID ) const { return _nlsVolumeName.QueryPch(); } const TCHAR * QueryPath( VOID ) const { return _nlsPath.QueryPch(); } // // The next two methods are used for listbox management. // virtual WCHAR QueryLeadingChar( VOID ) const; virtual INT Compare( const LBI * plbi ) const; // // This method is used to notify the LBI of a new "use" count. // virtual APIERR NotifyNewUseCount( DWORD cUses ); // // Usual constructor/destructor goodies. // VOLUMES_LBI( DWORD dwVolumeId, const TCHAR * pszVolName, const TCHAR * pszPath, DWORD cUses, DMID_DTE * pdte ); virtual ~VOLUMES_LBI(); }; // class VOLUMES_LBI /************************************************************************* NAME: VOLUMES_LISTBOX SYNOPSIS: This listbox shows the sharepoints available on a target server. INTERFACE: VOLUMES_LISTBOX - Class constructor. Takes a pointer to the "owning" window, a CID, and a handle to the server being admiunistered. ~VOLUMES_LISTBOX - Class destructor. Fill - Fills the listbox with the available sharepoints. Refresh - Refresh listbox contents. QueryColumnWidths - Returns pointer to col width table. QueryServer - Query the target server name. PARENT: BLT_LISTBOX USES: DMID_DTE HISTORY: NarenG 02-Oct-1993 Stole from Server Manager and folded BASE_RES_DIALOG and FILES_DIALOG into one. **************************************************************************/ class VOLUMES_LISTBOX : public BLT_LISTBOX { private: // // This s the cute little icon displayed in the VOLUMES // listbox. // DMID_DTE _dteDisk; // // This data member represents the target server. // const AFP_SERVER_HANDLE _hServer; // // The column width table. // UINT _adx[COLS_SV_LB_VOLUMES]; public: // // The following method is called whenever the listbox needs // to be refreshed (i.e. while the dialog is active). This // method is responsible for maintaining (as much as possible) // the current state of any selected item. // DWORD Refresh( VOID ); // // This method returns a pointer to the column width table. // const UINT * QueryColumnWidths( VOID ) const { return _adx; } // // Usual constructor\destructor goodies. // // VOLUMES_LISTBOX( OWNER_WINDOW * powner, CID cid, AFP_SERVER_HANDLE hServer ); ~VOLUMES_LISTBOX(); // // This method fills the listbox with the available sharepoints. // virtual DWORD Fill( VOID ); // // The following macro will declare (& define) a new // QueryItem() method which will return a VOLUMES_LBI *. // DECLARE_LB_QUERY_ITEM( VOLUMES_LBI ) }; // class VOLUMES_LISTBOX /************************************************************************* NAME: VOLUMES_DIALOG SYNOPSIS: The class represents the Shared Volumes subproperty dialog of the Server Manager. INTERFACE: VOLUMES_DIALOG - Class constructor. ~VOLUMES_DIALOG - Class destructor. QueryHelpContext - Called when the user presses "F1" or the "Help" button. Used for selecting the appropriate help text for display. OnCommand - Called during command processing. Refresh - Refreshes the dialog window, including all contained listboxes. PARENT: SRV_BASE_DIALOG USES: VOLUMES_LISTBOX USERS_LISTBOX PUSH_BUTTON DEC_SLT HISTORY: NarenG 02-Oct-1993 Stole from Server Manager and folded BASE_RES_DIALOG and FILES_DIALOG into one. **************************************************************************/ class VOLUMES_DIALOG : public DIALOG_WINDOW { private: // // This listbox contains the available sharepoints. // VOLUMES_LISTBOX _lbVolumes; // // This listbox contains the users connected to the // resource selected. // USERS_LISTBOX _lbUsers; // // The "Disconnect" and "Disconnect All" push buttons. // PUSH_BUTTON _pbDisconnect; PUSH_BUTTON _pbDisconnectAll; PUSH_BUTTON _pbOK; // // This member represents the display of the number of // connected users. // DEC_SLT _sltUsersCount; // // This represents the target server. // AFP_SERVER_HANDLE _hServer; protected: // // Called during help processing to select the appropriate // help text for display. // virtual ULONG QueryHelpContext( VOID ); // Called during command processing, mainly to handle // commands from the graphical button bar. // virtual BOOL OnCommand( const CONTROL_EVENT & event ); // // The following method is called to refresh the // dialog. It is responsible for refreshing all // of the associated listboxes and text fields. // virtual DWORD Refresh( VOID ); public: // // Usual constructor\destructor goodies. // VOLUMES_DIALOG( HWND hWndOwner, AFP_SERVER_HANDLE hServer, const TCHAR * pszServerName ); ~VOLUMES_DIALOG(); }; // class VOLUMES_DIALOG #endif // _VOLUMES_HXX