// // configdlg.h : definition of TSConfigDlg // the class defines the User Configuration Property page for Termainl Server // #if !defined(_TSCONFIGDLG_) #define _TSCONFIGDLG_ #include "resource.h" #include typedef LONG APIERR; // err #define SIZE_MAX_SERVERNAME 256 #define SIZE_MAX_USERNAME 256 #define SIZE_SMALL_STRING_BUFFER 256 #define MAX_INIT_DIR_SIZE 256 #define MAX_INIT_PROGRAM_SIZE 256 #define MAX_PHONENO_SIZE 256 class TSConfigDlg { public: enum { IDD = IDD_TS_USER_CONFIG_EDIT }; static BOOL CALLBACK PropertyPageDlgProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); static UINT CALLBACK PropSheetPageProc( HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp ); static BOOL m_sbWindowLogSet; private: // dialog data. struct TDialogData { BOOL _fDirty; TCHAR _nlsUserName[MAX_PATH]; TCHAR _nlsServerName[MAX_PATH]; BOOL _fAllowLogon; ULONG _ulConnection; ULONG _ulDisconnection; ULONG _ulIdle; TCHAR _nlsInitialProgram[MAX_INIT_PROGRAM_SIZE+1]; TCHAR _nlsWorkingDirectory[MAX_INIT_DIR_SIZE+1]; BOOL _fClientSpecified; BOOL _fAutoClientDrives; BOOL _fAutoClientLpts; BOOL _fForceClientLptDef; INT _iEncryption; BOOL _fDisableEncryption; BOOL _fHomeDirectoryMapRoot; INT _iBroken; INT _iReconnect; INT _iCallback; TCHAR _nlsPhoneNumber[MAX_PHONENO_SIZE]; INT _iShadow; TCHAR _nlsNWLogonServer[MAX_PATH]; TCHAR _nlsWFProfilePath[MAX_PATH]; TCHAR _nlsWFHomeDir[MAX_PATH]; TCHAR _nlsWFHomeDirDrive[MAX_PATH]; BOOL _fWFHomeDirDirty; } tDialogData; public: TSConfigDlg (LPWSTR wMachineName, LPWSTR wUserName); virtual ~TSConfigDlg (); BOOL AssertClass() const; BOOL OnCommand (WPARAM wParam, LPARAM lParam); BOOL OnNotify (WPARAM wParam, LPARAM lParam); BOOL OnInitDialog (HWND hwndDlg, WPARAM wParam, LPARAM lParam); APIERR GetUserInfo (); APIERR SetUserInfo (); void UCStructToMembers( PUSERCONFIG pUCStruct ); void MembersToUCStruct( PUSERCONFIG pUCStruct ) const; BOOL MembersToControls (); BOOL ControlsToMembers (TDialogData *); BOOL InitControls (); BOOL VerifyChanges (); BOOL ApplyChanges (); public: // control helpers. inline BOOL IsChecked (UINT controlId); inline void SetCheck (UINT controlId, BOOL bCheck); inline void EnableControl(UINT controlId, BOOL bEnable); inline int GetComboCurrentSel(UINT controlId); inline void SetComboCurrentSel(UINT controlId, int iSel); public : // access class members inline PROPSHEETPAGE *GetPSP () {return &m_tPropSheetPage;} inline HWND GetDlgHandle () const {return m_hDlg;} inline LPTSTR GetServername () {return m_Username;} inline LPTSTR GetUsername () {return m_Servername;} private: UINT m_id; PROPSHEETPAGE m_tPropSheetPage; HWND m_hDlg; TCHAR m_Username[SIZE_MAX_USERNAME]; TCHAR m_Servername[SIZE_MAX_SERVERNAME]; public: // get/set data to/from dialog box controls. BOOL GetAllowLogon (BOOL *pbAllowLogon); BOOL SetAllowLogon (BOOL bAllowLogon); BOOL GetConnectionTimeOut(ULONG *pValue); BOOL SetConnectionTimeOut(ULONG iValue); BOOL GetDisConnectionTimeOut(ULONG *pValue); BOOL SetDisConnectionTimeOut(ULONG iValue); BOOL GetIdleTimeOut(ULONG *pValue); BOOL SetIdleTimeOut(ULONG iValue); BOOL SetCommandLineAndWorkingDirectory(BOOL bUseInherited, LPCTSTR dir, LPCTSTR cmd); BOOL GetCommandLineAndWorkingDirectory(BOOL *pbUseInherited, LPTSTR dir, LPTSTR cmd); BOOL SetSecurity(int iLevel, BOOL bDisableAfterLogon); BOOL GetSecurity(int *piLevel, BOOL *pbDisableAfterLogon); BOOL SetBrokenConnectionOption(int iLevel); BOOL GetBrokenConnectionOption(int *piLevel); BOOL SetReconnectDisconnection(int iLevel); BOOL GetReconnectDisconnection(int *piLevel); BOOL SetCallBackOptonAndPhoneNumber(int iCallBack, LPCTSTR PhoneNo); BOOL GetCallBackOptonAndPhoneNumber(int *piCallBack, LPTSTR PhoneNo); BOOL SetShadowing(int iLevel); BOOL GetShadowing(int *piLevel); public: BOOL ALLOWLOGONEvent (WORD wNotifyCode); BOOL CONNECTION_NONEEvent (WORD wNotifyCode); BOOL IDLE_NONEEvent (WORD wNotifyCode); BOOL DISCONNECTION_NONEEvent (WORD wNotifyCode); BOOL INITIALPROGRAM_INHERITEvent (WORD wNotifyCode); BOOL SECURITY_DISABLEAFTERLOGONEvent (WORD wNotifyCode); /* inline void SetUserName( const TCHAR * pszUserName ) { ASSERT(pszUserName); ASSERT(_tcslen(pszUserName) < MAX_PATH); _tcscpy(_nlsUserName, pszUserName); } inline VOID SetDirty() { _fDirty = TRUE; } // member data functions inline BOOL QueryAllowLogon() const { return _fAllowLogon; } inline VOID SetAllowLogon( BOOL fAllowLogon ) { _fAllowLogon = fAllowLogon; } inline ULONG QueryConnection() const { return _ulConnection; } inline VOID SetConnection( ULONG ulConnection ) { _ulConnection = ulConnection; } inline ULONG QueryDisconnection() const { return _ulDisconnection; } inline VOID SetDisconnection( ULONG ulDisconnection ) { _ulDisconnection = ulDisconnection; } inline ULONG QueryIdle() const { return _ulIdle; } inline VOID SetIdle( ULONG ulIdle ) { _ulIdle = ulIdle; } inline const TCHAR * QueryInitialProgram() const { return (LPCTSTR)_nlsInitialProgram;} inline void SetInitialProgram( const TCHAR * pszInitialProgram ) { ASSERT(pszInitialProgram); ASSERT(_tcslen(pszInitialProgram) < MAX_PATH); _tcscpy(_nlsInitialProgram, pszInitialProgram); } inline const TCHAR * QueryWorkingDirectory() const { return (LPCTSTR) _nlsWorkingDirectory; } inline void SetWorkingDirectory( const TCHAR * pszWorkingDirectory ) { ASSERT(pszWorkingDirectory); ASSERT(_tcslen(pszWorkingDirectory) < MAX_PATH); _tcscpy(_nlsWorkingDirectory, pszWorkingDirectory); } inline BOOL QueryClientSpecified() const { return _fClientSpecified; } inline VOID SetClientSpecified( BOOL fClientSpecified ) { _fClientSpecified = fClientSpecified; } inline BOOL QueryAutoClientDrives() const { return _fAutoClientDrives; } inline VOID SetAutoClientDrives( BOOL fAutoClientDrives ) { _fAutoClientDrives = fAutoClientDrives; } inline BOOL QueryAutoClientLpts() const { return _fAutoClientLpts; } inline VOID SetAutoClientLpts( BOOL fAutoClientLpts ) { _fAutoClientLpts = fAutoClientLpts; } inline BOOL QueryForceClientLptDef() const { return _fForceClientLptDef; } inline VOID SetForceClientLptDef( BOOL fForceClientLptDef ) { _fForceClientLptDef = fForceClientLptDef; } inline INT QueryEncryption() const { return _iEncryption; } inline VOID SetEncryption( INT iEncryption ) { _iEncryption = iEncryption; } inline BOOL QueryDisableEncryption() const { return _fDisableEncryption; } inline VOID SetDisableEncryption( BOOL fDisableEncryption ) { _fDisableEncryption = fDisableEncryption; } inline BOOL QueryHomeDirectoryMapRoot() const { return _fHomeDirectoryMapRoot; } inline VOID SetHomeDirectoryMapRoot( BOOL fHomeDirectoryMapRoot ) { _fHomeDirectoryMapRoot = fHomeDirectoryMapRoot; } inline INT QueryBroken() const { return _iBroken; } inline VOID SetBroken( INT iBroken ) { _iBroken = iBroken; } inline INT QueryReconnect() const { return _iReconnect; } inline VOID SetReconnect( INT iReconnect ) { _iReconnect = iReconnect; } inline INT QueryCallback() const { return _iCallback; } inline VOID SetCallback( INT iCallback ) { _iCallback = iCallback; } inline const TCHAR * QueryPhoneNumber() const { return (LPCTSTR)_nlsPhoneNumber; } inline void SetPhoneNumber( const TCHAR * pszPhoneNumber ) { ASSERT(pszPhoneNumber); ASSERT(_tcslen(pszPhoneNumber) < MAX_PATH); _tcscpy(_nlsPhoneNumber, pszPhoneNumber); } inline INT QueryShadow() const { return _iShadow; } inline VOID SetShadow( INT iShadow ) { _iShadow = iShadow; } inline const TCHAR * QueryNWLogonServer() const { return (LPCTSTR)_nlsNWLogonServer; } inline void SetNWLogonServer( const TCHAR * pszNWLogonServer ) { ASSERT(pszNWLogonServer); ASSERT(_tcslen(pszNWLogonServer) < MAX_PATH); _tcscpy(_nlsNWLogonServer, pszNWLogonServer); } inline const TCHAR * QueryServerName() const { return (LPCTSTR)_nlsServerName; } inline const TCHAR * QueryWFProfilePath() const { return (LPCTSTR)_nlsWFProfilePath; } inline void SetWFProfilePath( const TCHAR * pszWFProfilePath ) { ASSERT(pszWFProfilePath); ASSERT(_tcslen(pszWFProfilePath) < MAX_PATH); _tcscpy(_nlsWFProfilePath, pszWFProfilePath); } inline const TCHAR * QueryWFHomeDir() const { return (LPCTSTR)_nlsWFHomeDir; } inline void SetWFHomeDir( const TCHAR * pszWFHomeDir ) { ASSERT(pszWFHomeDir); ASSERT(_tcslen(pszWFHomeDir) < MAX_PATH); _tcscpy(_nlsWFHomeDir, pszWFHomeDir); } inline const TCHAR * QueryWFHomeDirDrive() const { return (LPCTSTR)_nlsWFHomeDirDrive; } inline void SetWFHomeDirDrive( const TCHAR * pszWFHomeDirDrive ) { ASSERT(pszWFHomeDirDrive); ASSERT(_tcslen(pszWFHomeDirDrive) < MAX_PATH); _tcscpy(_nlsWFHomeDirDrive, pszWFHomeDirDrive); } inline VOID SetWFHomeDirDirty() { _fWFHomeDirDirty = TRUE; } inline BOOL QueryWFHomeDirDirty() const { return _fWFHomeDirDirty; } */ }; #endif // EOF