|
|
// NKDNcpp : implementation file
//
#include "stdafx.h"
#include "keyring.h"
#include "NKChseCA.h"
#include "NKDN.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
/////////////////////////////////////////////////////////////////////////////
// CNKDistinguishedName dialog
CNKDistinguishedName::CNKDistinguishedName(CWnd* pParent /*=NULL*/) : CNKPages(CNKDistinguishedName::IDD) { //{{AFX_DATA_INIT(CNKDistinguishedName)
m_nkdn_sz_CN = _T(""); m_nkdn_sz_O = _T(""); m_nkdn_sz_OU = _T(""); //}}AFX_DATA_INIT
}
void CNKDistinguishedName::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CNKDistinguishedName)
DDX_Control(pDX, IDC_NEWKEY_COMMONNAME, m_control_CN); DDX_Control(pDX, IDC_NEWKEY_ORGUNIT, m_control_OU); DDX_Control(pDX, IDC_NEWKEY_ORG, m_control_O); DDX_Text(pDX, IDC_NEWKEY_COMMONNAME, m_nkdn_sz_CN); DDV_MaxChars(pDX, m_nkdn_sz_CN, 64); DDX_Text(pDX, IDC_NEWKEY_ORG, m_nkdn_sz_O); DDV_MaxChars(pDX, m_nkdn_sz_O, 64); DDX_Text(pDX, IDC_NEWKEY_ORGUNIT, m_nkdn_sz_OU); DDV_MaxChars(pDX, m_nkdn_sz_OU, 64); //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CNKDistinguishedName, CDialog) //{{AFX_MSG_MAP(CNKDistinguishedName)
ON_EN_CHANGE(IDC_NEWKEY_COMMONNAME, OnChangeNewkeyCommonname) ON_EN_CHANGE(IDC_NEWKEY_ORG, OnChangeNewkeyOrg) ON_EN_CHANGE(IDC_NEWKEY_ORGUNIT, OnChangeNewkeyOrgunit) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
#define SZ_DN_CN "DN_COMMON_NAME"
#define SZ_DN_O "DN_ORGANIZATION"
#define SZ_DN_OU "DN_ORG_UNIT"
//----------------------------------------------------------------
void CNKDistinguishedName::OnFinish() { // store the user entries
SetStoredString( m_nkdn_sz_CN, SZ_DN_CN ); SetStoredString( m_nkdn_sz_O, SZ_DN_O ); SetStoredString( m_nkdn_sz_OU, SZ_DN_OU ); }
//----------------------------------------------------------------
BOOL CNKDistinguishedName::OnInitDialog( ) { // if the entries from last time are available, use them
try { FGetStoredString( m_nkdn_sz_CN, SZ_DN_CN ); FGetStoredString( m_nkdn_sz_O, SZ_DN_O ); FGetStoredString( m_nkdn_sz_OU, SZ_DN_OU ); } catch( CException e ) { }
// call superclass
CPropertyPage::OnInitDialog();
// return 0 to say we set the default item
// return 1 to just select the default default item
return 1; }
//----------------------------------------------------------------
BOOL CNKDistinguishedName::OnSetActive() { ActivateButtons(); return CPropertyPage::OnSetActive(); }
//----------------------------------------------------------------
void CNKDistinguishedName::ActivateButtons() { DWORD flags = PSWIZB_BACK; BOOL fCanGoOn = TRUE;
UpdateData(TRUE);
//now make sure there is something in each of the required fields
fCanGoOn &= !m_nkdn_sz_CN.IsEmpty(); fCanGoOn &= !m_nkdn_sz_O.IsEmpty(); fCanGoOn &= !m_nkdn_sz_OU.IsEmpty();
// if we can go on, hilite the button
if ( fCanGoOn ) { flags |= PSWIZB_NEXT; }
// update the property sheet buttons
m_pPropSheet->SetWizardButtons( flags ); }
/////////////////////////////////////////////////////////////////////////////
// CNKDistinguishedName message handlers
//----------------------------------------------------------------
void CNKDistinguishedName::OnChangeNewkeyCommonname() { ActivateButtons(); }
//----------------------------------------------------------------
void CNKDistinguishedName::OnChangeNewkeyOrg() { ActivateButtons(); }
//----------------------------------------------------------------
void CNKDistinguishedName::OnChangeNewkeyOrgunit() { ActivateButtons(); }
/////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------
CDNEdit::CDNEdit() { szExclude.LoadString( IDS_ILLEGAL_DN_CHARS ); szTotallyExclude.LoadString( IDS_TOTALLY_ILLEGAL_CHARS ); }
//----------------------------------------------------------------
BOOL CDNEdit::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult) { // if it is a character
if ( message == WM_CHAR ) { TCHAR chCharCode = (TCHAR)wParam;
// first test the totally bad characters
if ( strchr(szTotallyExclude, chCharCode) ) { MessageBeep(0); return 1; }
// now test the potentially bad characters
if ( strchr(szExclude, chCharCode) ) switch( AfxMessageBox(IDS_BADCHARMSG, MB_YESNO|MB_ICONQUESTION) ) { case IDYES: break; case IDNO: // reject the character
MessageBeep(0); return 1; } }
// return the default answer
return CEdit::OnWndMsg( message, wParam, lParam, pResult); }
|