/**********************************************************************/ /** Microsoft Windows NT **/ /** Copyright(c) Microsoft Corp., 1993 **/ /**********************************************************************/ /* ftpmgr.hxx Class declarations for the FTP_SVCMGR_DIALOG FILE HISTORY: YiHsinS 17-Mar-1992 Created */ #ifndef _FTPMGR_HXX_ #define _FTPMGR_HXX_ #include // for WIN_TIME #include // for INTL_PROF /************************************************************************* NAME: FTP_USER_LBI SYNOPSIS: This LBI contains the information about a user connected to the FTP service. INTERFACE: FTP_USER_LBI() - Class constructor. ~FTP_USER_LBI() - Class destructor. Paint() - Draw an item. Compare() - Compare two items. QueryLeadingChar() - Query the first character for the keyboard interface. QueryUserName() - Query the user name for this item. QueryUserID() - Returns the User ID for this item. IsAnonymous() - TRUE if the user logs on as anonymous, FALSE otherwise. QueryInternetAddressString() - Get the internet address where this user is connected from QueryConnectTimeString() - Get the duration of time this user is connected PARENT: LBI USES: NLS_STR HISTORY: Yi-HsinS 17-Mar-1992 Created **************************************************************************/ class FTP_USER_LBI : public LBI { protected: // // These data members represent the various // columns to be displayed in the listbox. // NLS_STR _nlsUserName; ULONG _ulUserID; BOOL _fAnonymous; NLS_STR _nlsInternetAddress; NLS_STR _nlsConnectTimeString; public: FTP_USER_LBI( const TCHAR *pszUserName, ULONG ulUserID, BOOL fAnonymous, const TCHAR *pszInternetAddress, const TCHAR *pszConnectTimeString ); virtual ~FTP_USER_LBI() ; virtual VOID Paint( LISTBOX *plb, HDC hdc, const RECT *prect, GUILTT_INFO *pGUILTT ) const; virtual INT Compare( const LBI *plbi ) const; virtual WCHAR QueryLeadingChar( VOID ) const; const NLS_STR *QueryUserName( VOID ) const { return &_nlsUserName; } ULONG QueryUserID( VOID ) const { return _ulUserID; } BOOL IsAnonymousUser( VOID ) const { return _fAnonymous; } const NLS_STR *QueryInternetAddressString( VOID ) const { return &_nlsInternetAddress; } const NLS_STR *QueryConnectTimeString( VOID ) const { return &_nlsConnectTimeString; } }; /************************************************************************* NAME: FTP_USER_LISTBOX SYNOPSIS: This listbox displays the users connected to the FTP service INTERFACE: FTP_USER_LISTBOX() - Class constructor. ~FTP_USER_LISTBOX() - Class destructor. QueryColumnWidths() - Called by FTP_USER_LBI::Paint(), this is the column width table used for painting the listbox items. QueryUserBitmap() - Returns the normal user bitmap QueryAnonymousBitmap() - Returns the anonymous user bitmap Refresh() - Refresh the listbox PARENT: BLT_LISTBOX USES: NLS_STR, INTL_PROFILE, DMID_DTE HISTORY: YiHsinS 17-Mar-1993 Created **************************************************************************/ class FTP_USER_LISTBOX : public BLT_LISTBOX { private: // // This array stores the calculated column widths // for use while painting the listbox item. // UINT _adx[4]; // // Stores the server name // NLS_STR _nlsServer; // // Stores the "unknown" string // RESOURCE_STR _nlsUnknown; // // Pointer to the user bitmaps // DMID_DTE *_pdmdteUser; DMID_DTE *_pdmdteAnonymous; // // For use in printing out the connection time in the right format // INTL_PROFILE _intlProf; // // Format the given time to a displayable string. // APIERR QueryTimeString( ULONG ulTime, NLS_STR *pnlsTime ); // // This method actually does the enumeration of users // and adds them to the listbox. // APIERR Fill( VOID ); public: FTP_USER_LISTBOX( OWNER_WINDOW *powOwner, CID cid, const TCHAR *pszServer ); ~FTP_USER_LISTBOX(); DECLARE_LB_QUERY_ITEM( FTP_USER_LBI ) // // This method is called by the FTP_USER_LBI::Paint() // method for retrieving the column width table. // const UINT *QueryColumnWidths() const { return _adx; } // // The following two methods returns the user bitmaps // const DMID_DTE *QueryUserBitmap( VOID ) const { return _pdmdteUser; } const DMID_DTE *QueryAnonymousBitmap( VOID ) const { return _pdmdteAnonymous; } // // Method that refresh the contents of the listbox. // APIERR Refresh( VOID ); }; /************************************************************************* NAME: FTP_SVCMGR_DIALOG SYNOPSIS: This is the FTP User Sessions dialog. INTERFACE: FTP_SVCMGR_DIALOG() - Class constructor. ~FTP_SVCMGR_DIALOG() - Class destructor. PARENT: DIALOG_WINDOW USES: FTP_USER_LISTBOX, PUSH_BUTTON HISTORY: YiHsinS 17-Mar-1992 Created **************************************************************************/ class FTP_SVCMGR_DIALOG: public DIALOG_WINDOW { private: FTP_USER_LISTBOX _lbUser; PUSH_BUTTON _pbuttonDisconnect; PUSH_BUTTON _pbuttonDisconnectAll; // // Store the server name we are focusing on // NLS_STR _nlsServer; // // This method is used to refresh the contents of the user listbox // APIERR Refresh( VOID ); protected: virtual BOOL OnCommand( const CONTROL_EVENT & event ); virtual ULONG QueryHelpContext( VOID ); public: FTP_SVCMGR_DIALOG( HWND hwndOwner, const TCHAR *pszServer ); ~FTP_SVCMGR_DIALOG(); }; /************************************************************************* NAME: FTP_SECURITY_DIALOG SYNOPSIS: This dialog manages the security on the drives for the FTP service. INTERFACE: FTP_SECURITY_DIALOG() - Class constructor. ~FTP_SECURITY_DIALOG() - Class destructor. PARENT: DIALOG_WINDOW USES: COMBOBOX, SLT, CHECKBOX, NLS_STR HISTORY: YiHsinS 17-Mar-1992 Created **************************************************************************/ class FTP_SECURITY_DIALOG: public DIALOG_WINDOW { private: COMBOBOX _cbPartition; SLT _sltFileSysInfo; CHECKBOX _checkbReadAccess; CHECKBOX _checkbWriteAccess; // // Keep the server name we are focusing on // NLS_STR _nlsServer; // // Flag indicating whether we are focusing on the local computer or not. // TRUE if we are, FALSE otherwise. // BOOL _fLocal; // // Place to store the security read mask and write mask // ULONG _ulReadAccess; ULONG _ulWriteAccess; // // Store the index for the current selected partition // 0 for A:, 1 for B:, ..., and 25 for Z: // INT _nCurrentDiskIndex; // // Method to get all available drives on the given server // and then add them to the combo. // APIERR AddDrives( VOID ); // // Get the file system information about the given device. // e.g. FAT, NTFS // APIERR GetFileSystemInfo( const TCHAR *pszDevice, NLS_STR *pnlsFileSysInfo ); // // Show the file system info, read/write access of the // currently selected partition in the combo // APIERR ShowCurrentPartitionInfo( VOID ); // // Save the read/write access for the previous selected partition // VOID SaveDriveSecurity( VOID ); protected: virtual BOOL OnOK( VOID ); virtual BOOL OnCommand( const CONTROL_EVENT &event ); virtual ULONG QueryHelpContext( VOID ); public: FTP_SECURITY_DIALOG( HWND hwndOwner, const TCHAR *pszServer ); ~FTP_SECURITY_DIALOG(); }; #endif // _FTPMGR_HXX_