windows-nt/Source/XPSP1/NT/shell/ext/ftp/account.h
2020-09-26 16:20:57 +08:00

65 lines
2.9 KiB
C++

/*****************************************************************************
* account.h
*****************************************************************************/
#ifndef _ACCOUNT_H
#define _ACCOUNT_H
/*****************************************************************************\
CLASS: CAccounts
\*****************************************************************************/
#define LOGINFLAGS_DEFAULT 0x00000000 // Default to Anonymous when dialog is displayed
#define LOGINFLAGS_ANON_ISDEFAULT 0x00000001 // Default to Anonymous when dialog is displayed
#define LOGINFLAGS_ANON_LOGINJUSTFAILED 0x00000002 // The attempt to login anonymously just failed
#define LOGINFLAGS_USER_LOGINJUSTFAILED 0x00000004 // The attempt to login as a user just failed
class CAccounts
{
public:
CAccounts();
~CAccounts();
// Public Member Functions
HRESULT DisplayLoginDialog(HWND hwnd, DWORD dwLoginFlags, LPCTSTR pszServer, LPTSTR pszUserName, DWORD cchUserNameSize, LPTSTR pszPassword, DWORD cchPasswordSize);
HRESULT GetUserName(LPCTSTR pszServer, LPTSTR pszUserName, DWORD cchUserName);
HRESULT GetPassword(LPCTSTR pszServer, LPCTSTR pszUserName, LPTSTR pszPassword, DWORD cchPassword);
protected:
// Private Member Functions
HRESULT _GetAccountKey(LPCTSTR pszServer, LPTSTR pszKey, DWORD cchKeySize);
HRESULT _GetUserAccountKey(LPCTSTR pszServer, LPCTSTR pszUserName, LPTSTR pszKey, DWORD cchKeySize);
HRESULT _LoadLoginAttributes(DWORD * pdwLoginAttribs);
HRESULT _SaveLoginAttributes(LPCTSTR pszServer, DWORD dwLoginAttribs);
HRESULT _SetLoginType(HWND hDlg, BOOL fLoginAnnonymously);
HRESULT _LoadEMailName(HWND hDlg);
HRESULT _SaveEMailName(HWND hDlg);
BOOL _SaveDialogData(HWND hDlg);
HRESULT _LoadMessage(HWND hDlg);
HRESULT _PopulateUserNameDropDown(HWND hDlg, LPCTSTR pszServer);
HRESULT _LoadDefaultPassword(BOOL fLoadPersisted);
HRESULT _SaveUserName(HWND hDlg);
HRESULT _UserChangeSelect(HWND hDlg, BOOL fSelectChange);
HRESULT _SavePassword(HWND hDlg, LPCTSTR pszUser, BOOL fPersist);
HRESULT _GetPassword(LPCTSTR pszServer, LPCTSTR pszUserName, LPTSTR pszPassword, DWORD cchPassword);
BOOL _InitDialog(HWND hdlg);
LRESULT _OnCommand(HWND hdlg, WPARAM wParam, LPARAM lParam);
LRESULT _OnNotify(HWND hDlg, NMHDR * pNMHdr, int idControl);
static INT_PTR CALLBACK _LoginDialogProc(HWND hdlg, UINT wm, WPARAM wParam, LPARAM lParam);
// Private Variables Functions
LPCTSTR m_pszServer; // What is the server name?
LPCTSTR m_pszUser; // What is the user name?
LPCTSTR m_pszPassword; // What is the password?
UINT m_uiMessageID; // What is the String ID of the message for the dialog?
BOOL m_dwLoginFlags; // How should we behave?
HWND m_hDlg;
};
#endif // _ACCOUNT_H