#ifndef _KRDLG_H_ #define _KRDLG_H_ /*++ Copyright (c) 2000 Microsoft Corporation Module Name: krdlg.h Abstract: keyring dialog class definitions Author: johnhaw 991118 created georgema 000310 modified Environment: Revision History: --*/ // keymgr does not currently handle generic credentials. This means that the maximum // string length for a name is greatly contstrained, to 337 chars from a generic max // value of 32767. //#define TARGETNAMEMAXLENGTH (CRED_MAX_GENERIC_TARGET_NAME_LENGTH + MAXSUFFIXSIZE + 1) #define FULLNAMEMAXLENGTH (UNLEN + UNLEN + 1) #define TARGETNAMEMAXLENGTH (CRED_MAX_DOMAIN_TARGET_NAME_LENGTH + MAXSUFFIXSIZE + 1) #define MAX_STRING_SIZE (256) // misc text buffers #define MAXSUFFIXSIZE (64) // suffix in main dialog display mex length chars // implemented in krdlg.cpp DWORD GetPersistenceOptions(DWORD); #ifdef KRDLG_CPP #define dllvar #else #define dllvar extern #endif dllvar HINSTANCE g_hInstance; dllvar CREDENTIAL *g_pExistingCred; // current cred under edit dllvar DWORD g_dwPersist; dllvar DWORD g_dwType; dllvar TCHAR* g_szTargetName; // suffix strings used in the UI to mark special credential types #ifdef SHOWPASSPORT dllvar TCHAR g_rgcPassport[MAXSUFFIXSIZE]; #endif dllvar TCHAR g_rgcCert[MAXSUFFIXSIZE]; // Hold suffix read in from resources //=================================== ////////////////////////////////////////////////////////////////////////////// // // C_ChangePasswordDlg // class C_ChangePasswordDlg : public C_Dlg { public: // operations C_ChangePasswordDlg( HWND hwndParent, HINSTANCE hInstance, LONG lIDD, DLGPROC pfnDlgProc = NULL ); ~C_ChangePasswordDlg( ) { } // ~C_ChangePasswordDlg virtual BOOL OnInitDialog( HWND hwndDlg, HWND hwndFocus ); virtual BOOL OnCommand( WORD wNotifyCode, WORD wSenderId, HWND hwndSender ); virtual void AssertValid( ) const { C_Dlg::AssertValid( ); } // AssertValid protected: // operations public: // data HINSTANCE m_hInst; HWND m_hDlg; TCHAR m_szFullUsername[FULLNAMEMAXLENGTH + 1 ]; TCHAR m_szUsername[UNLEN + 1]; TCHAR m_szDomain[UNLEN + 1]; TCHAR m_szOldPassword[PWLEN]; TCHAR m_szNewPassword[PWLEN]; TCHAR m_szConfirmPassword[PWLEN]; BOOL m_bIsDefault; private: // operations virtual void OnOK( ); // Explicitly disallow copy constructor and assignment operator. // C_ChangePasswordDlg( const C_ChangePasswordDlg& rhs ); C_ChangePasswordDlg& operator=( const C_ChangePasswordDlg& rhs ); private: // data }; // C_ChangePasswordDlg ////////////////////////////////////////////////////////////////////////////// // // C_KeyringDlg // class C_KeyringDlg : public C_Dlg { public: // operations C_KeyringDlg( HWND hwndParent, HINSTANCE hInstance, LONG lIDD, DLGPROC pfnDlgProc = NULL ); // Perform miscellaneous cleanups required as the dialog is // destroyed ~C_KeyringDlg( ) { } // ~C_KeyringDlg virtual BOOL OnInitDialog( HWND hwndDlg, HWND hwndFocus ); virtual BOOL OnDestroyDialog(void); virtual BOOL OnCommand( WORD wNotifyCode, WORD wSenderId, HWND hwndSender ); // TOOL TIP functions virtual BOOL InitTooltips(void); // HELP functions virtual BOOL OnHelpInfo( LPARAM lp ); virtual UINT MapID(UINT uid); virtual void AssertValid( ) const { C_Dlg::AssertValid( ); } // AssertValid virtual BOOL OnAppMessage( UINT uMessage, WPARAM wparam, LPARAM lparam ); // Register the windows messages expected from the smartcard // subsystem BOOL RegisterMessages(void); protected: HINSTANCE m_hInst; HWND m_hDlg; BOOL fInit; private: // operations virtual void OnOK( ); BOOL DoEdit(void); void BuildList(); void SetCurrentKey(LONG_PTR iKey); void DeleteKey(); void OnChangePassword(); BOOL OnHelpButton(void); // Explicitly disallow copy constructor and assignment operator. // C_KeyringDlg( const C_KeyringDlg& rhs ); C_KeyringDlg& operator=( const C_KeyringDlg& rhs ); private: // data DWORD m_cCredCount; }; // C_KeyringDlg ////////////////////////////////////////////////////////////////////////////// // // C_AddKeyDlg // class C_AddKeyDlg : public C_Dlg { public: // operations C_AddKeyDlg( HWND hwndParent, HINSTANCE hInstance, LONG lIDD, DLGPROC pfnDlgProc = NULL ); ~C_AddKeyDlg( ) { } // ~C_AddKeyDlg virtual BOOL OnInitDialog( HWND hwndDlg, HWND hwndFocus ); virtual BOOL OnDestroyDialog(void); virtual BOOL OnCommand( WORD wNotifyCode, WORD wSenderId, HWND hwndSender ); virtual BOOL OnHelpInfo( LPARAM lp ); virtual UINT MapID( UINT uid ); virtual void AssertValid( ) const { C_Dlg::AssertValid( ); } // AssertValid virtual BOOL OnAppMessage( UINT uMessage, WPARAM wparam, LPARAM lparam ); void AdviseUser(void); BOOL AddItem(TCHAR *psz,INT iImageIndex,INT *pIndexOut); BOOL SetItemData(INT_PTR iIndex,LPARAM dwData); BOOL GetItemData(INT_PTR iIndex,LPARAM *dwData); BOOL SetItemIcon(INT iIndex,INT iWhich); void UpdateSCard(INT,CERT_ENUM *pCE); void SaveName(void); void RestoreName(void); void ShowDescriptionText(DWORD,DWORD); public: // Public data members BOOL m_bEdit; // set outside the class HWND m_hDlg; // used by C_KeyringDlg for g_wmUpdate private: void EditFillDialog(void); HWND m_hwndTName; HWND m_hwndCred; HWND m_hwndDomain; HWND m_hwndChgPsw; HWND m_hwndPswLbl; HWND m_hwndDescription; INT m_iUNCount; TCHAR *pUNList; HINSTANCE m_hInst; DWORD m_dwOldType; TCHAR m_szUsername[CRED_MAX_USERNAME_LENGTH + 1]; TCHAR m_szPassword[PWLEN + 1]; TCHAR m_szDomain[UNLEN + 1]; private: // operations void OnChangePassword(); DWORD SetPersistenceOptions(void); virtual void OnOK( ); // Explicitly disallow copy constructor and assignment operator. // C_AddKeyDlg( const C_AddKeyDlg& rhs ); C_AddKeyDlg& operator=( const C_AddKeyDlg& rhs ); }; // C_AddKeyDlg #endif // _KRDLG_H_ // ///// End of file: KrDlg.h ///////////////////////////////////////