|
|
//Copyright (c) 1998 - 1999 Microsoft Corporation
#include "precomp.h"
LRW_DLG_INT CALLBACK ConfirmEMailDlgProc(IN HWND hwndDlg, // handle to dialog box
IN UINT uMsg, // message
IN WPARAM wParam, // first message parameter
IN LPARAM lParam // second message parameter
) { BOOL bRetCode = FALSE; LPTSTR lpVal = NULL; CString sEmailConf; switch ( uMsg ) { case WM_INITDIALOG: bRetCode = TRUE; break; case WM_COMMAND: switch ( LOWORD(wParam) ) //from which control
{ case IDOK: //Get the ITem text and store it in the global structure
lpVal = sEmailConf.GetBuffer(CA_EMAIL_LEN+1); GetDlgItemText(hwndDlg,IDC_TXT_CONF_EMAIL,lpVal,CA_EMAIL_LEN+1); sEmailConf.ReleaseBuffer(-1); sEmailConf.TrimLeft(); sEmailConf.TrimRight(); GetGlobalContext()->GetContactDataObject()->sEmailAddressConf = sEmailConf; EndDialog(hwndDlg, IDOK); bRetCode = TRUE; break; default: break; } break; default: break;
} return bRetCode; }
LRW_DLG_INT CALLBACK ContactInfo1DlgProc( IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam ) { DWORD dwNextPage = 0; BOOL bStatus = TRUE; PageInfo *pi = (PageInfo *)LRW_GETWINDOWLONG( hwnd, LRW_GWL_USERDATA );
switch (uMsg) { case WM_INITDIALOG: pi = (PageInfo *)((LPPROPSHEETPAGE)lParam)->lParam; LRW_SETWINDOWLONG( hwnd, LRW_GWL_USERDATA, (LRW_LONG_PTR)pi );
SendDlgItemMessage (hwnd , IDC_TXT_COMPANYNAME, EM_SETLIMITTEXT, CA_COMPANY_NAME_LEN,0); SendDlgItemMessage (hwnd , IDC_TXT_ORGUNIT , EM_SETLIMITTEXT, CA_ORG_UNIT_LEN,0); SendDlgItemMessage (hwnd , IDC_TXT_LNAME, EM_SETLIMITTEXT, CA_NAME_LEN,0); SendDlgItemMessage (hwnd , IDC_TXT_FNAME, EM_SETLIMITTEXT, CA_NAME_LEN,0); SendDlgItemMessage (hwnd , IDC_TXT_PHONE, EM_SETLIMITTEXT, CA_PHONE_LEN,0); SendDlgItemMessage (hwnd , IDC_TXT_FAX, EM_SETLIMITTEXT, CA_FAX_LEN,0); SendDlgItemMessage (hwnd , IDC_TXT_EMAIL, EM_SETLIMITTEXT, CA_EMAIL_LEN,0);
//
//Populate the values which were read from the Registry during Global Init
//
SetDlgItemText(hwnd,IDC_TXT_LNAME, GetGlobalContext()->GetContactDataObject()->sContactLName); SetDlgItemText(hwnd,IDC_TXT_FNAME, GetGlobalContext()->GetContactDataObject()->sContactFName); SetDlgItemText(hwnd,IDC_TXT_PHONE, GetGlobalContext()->GetContactDataObject()->sContactPhone); SetDlgItemText(hwnd,IDC_TXT_FAX, GetGlobalContext()->GetContactDataObject()->sContactFax); SetDlgItemText(hwnd,IDC_TXT_EMAIL, GetGlobalContext()->GetContactDataObject()->sContactEmail); SetDlgItemText(hwnd,IDC_TXT_COMPANYNAME, GetGlobalContext()->GetContactDataObject()->sCompanyName); SetDlgItemText(hwnd,IDC_TXT_ORGUNIT, GetGlobalContext()->GetContactDataObject()->sOrgUnit); break;
case WM_DESTROY: LRW_SETWINDOWLONG( hwnd, LRW_GWL_USERDATA, NULL ); break;
case WM_NOTIFY: { LPNMHDR pnmh = (LPNMHDR)lParam;
switch( pnmh->code ) { case PSN_SETACTIVE: { //TCHAR szEmailLabel[64];
//TCHAR szCapLabel[255];
TCHAR szBuf[ 255];
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_NEXT|PSWIZB_BACK );
LoadString(GetInstanceHandle(),IDS_FAXOPTION_LABEL,szBuf,sizeof(szBuf)/sizeof(TCHAR));
SetDlgItemText(hwnd, IDC_LBL_FAX, szBuf);
if (GetGlobalContext()->GetActivationMethod() == CONNECTION_INTERNET) { LoadString(GetInstanceHandle(),IDS_EMAIL_LABEL,szBuf,sizeof(szBuf)/sizeof(TCHAR)); } else { LoadString(GetInstanceHandle(),IDS_EMAILOPTION_LABEL,szBuf,sizeof(szBuf)/sizeof(TCHAR)); } SetDlgItemText(hwnd, IDC_LBL_EMAIL, szBuf);
/* Email is optional now.
//Change the lable of Caption & Email fields if it's Online Mode
if(GetLRMode() == LRMODE_CH_REQUEST ) { LoadString(GetInstanceHandle(),IDS_LBL_CONTACT_ONLINE,szCapLabel,255); SetDlgItemText(hwnd,IDC_LBL_CAPTION,szCapLabel);
LoadString(GetInstanceHandle(),IDS_LBL_EMAIL_ONLINE,szEmailLabel,64); SetDlgItemText(hwnd,IDC_LBL_EMAIL,szEmailLabel); } else { LoadString(GetInstanceHandle(),IDS_LBL_CONTACT_OFFLINE,szCapLabel,255); SetDlgItemText(hwnd,IDC_LBL_CAPTION,szCapLabel);
LoadString(GetInstanceHandle(),IDS_LBL_EMAIL_OFFLINE,szEmailLabel,64); SetDlgItemText(hwnd,IDC_LBL_EMAIL,szEmailLabel); } */ } break;
case PSN_WIZNEXT: { CString sCompanyName; CString sOrgUnit; CString sLastName; CString sFirstName; CString sPhone; CString sFax; CString sEmail; LPTSTR lpVal = NULL;
//Read all the fields
lpVal = sCompanyName.GetBuffer(CA_COMPANY_NAME_LEN+1); GetDlgItemText(hwnd,IDC_TXT_COMPANYNAME,lpVal,CA_COMPANY_NAME_LEN+1); sCompanyName.ReleaseBuffer(-1);
lpVal = sOrgUnit.GetBuffer(CA_ORG_UNIT_LEN+1); GetDlgItemText(hwnd,IDC_TXT_ORGUNIT,lpVal,CA_ORG_UNIT_LEN+1); sOrgUnit.ReleaseBuffer(-1);
lpVal = sLastName.GetBuffer(CA_NAME_LEN+1); GetDlgItemText(hwnd,IDC_TXT_LNAME,lpVal,CA_NAME_LEN+1); sLastName.ReleaseBuffer(-1); lpVal = sFirstName.GetBuffer(CA_NAME_LEN+1); GetDlgItemText(hwnd,IDC_TXT_FNAME,lpVal,CA_NAME_LEN+1); sFirstName.ReleaseBuffer(-1);
lpVal = sPhone.GetBuffer(CA_PHONE_LEN+1); GetDlgItemText(hwnd,IDC_TXT_PHONE,lpVal,CA_PHONE_LEN+1); sPhone.ReleaseBuffer(-1);
lpVal = sFax.GetBuffer(CA_FAX_LEN+1); GetDlgItemText(hwnd,IDC_TXT_FAX,lpVal,CA_FAX_LEN+1); sFax.ReleaseBuffer(-1);
lpVal = sEmail.GetBuffer(CA_EMAIL_LEN+1); GetDlgItemText(hwnd,IDC_TXT_EMAIL,lpVal,CA_EMAIL_LEN+1); sEmail.ReleaseBuffer(-1);
sFirstName.TrimLeft(); sFirstName.TrimRight(); sLastName.TrimLeft(); sLastName.TrimRight(); sPhone.TrimLeft(); sPhone.TrimRight(); sFax.TrimLeft(); sFax.TrimRight(); sEmail.TrimLeft(); sEmail.TrimRight(); sCompanyName.TrimLeft(); sCompanyName.TrimRight(); sOrgUnit.TrimLeft(); sOrgUnit.TrimRight(); if(sLastName.IsEmpty() || sFirstName.IsEmpty() || sCompanyName.IsEmpty() || (sEmail.IsEmpty() && GetGlobalContext()->GetActivationMethod() == CONNECTION_INTERNET)) { LRMessageBox(hwnd,IDS_ERR_FIELD_EMPTY); dwNextPage = IDD_CONTACTINFO1; goto NextDone; } //
// Check for the Invalid Characters
//
if( !ValidateLRString(sFirstName) || !ValidateLRString(sLastName) || !ValidateLRString(sPhone) || !ValidateLRString(sEmail) ) { LRMessageBox(hwnd,IDS_ERR_INVALID_CHAR); dwNextPage = IDD_CONTACTINFO1; goto NextDone; } dwNextPage = IDD_CONTACTINFO2; //
// Validate email address if not empty
//
if(!sEmail.IsEmpty()) { if(!ValidateEmailId(sEmail)) { LRMessageBox(hwnd,IDS_ERR_INVALID_EMAIL); dwNextPage = IDD_CONTACTINFO1; goto NextDone; }
if (GetGlobalContext()->GetActivationMethod() == CONNECTION_INTERNET) { //Show dialog box to confirm the e-mail alias put in the dialog box
if ( DialogBox ( GetInstanceHandle(), MAKEINTRESOURCE(IDD_CONFIRM_EMAIL), hwnd, ConfirmEMailDlgProc ) == IDOK ) { //Check to see if e-mail aliases match
//if they match - proceed else stay right here
if ( GetGlobalContext()->GetContactDataObject()->sEmailAddressConf.CompareNoCase(sEmail) != 0) { LRMessageBox(hwnd,IDS_EMAIL_MISMATCH); dwNextPage = IDD_CONTACTINFO1; goto NextDone; } } else { //user hit cancel. So stay right where you are.
LRMessageBox(hwnd,IDS_EMAIL_MISMATCH); dwNextPage = IDD_CONTACTINFO1; goto NextDone; } } }
//
//Finally update CHData object
//
GetGlobalContext()->GetContactDataObject()->sContactEmail = sEmail; GetGlobalContext()->GetContactDataObject()->sContactFName = sFirstName; GetGlobalContext()->GetContactDataObject()->sContactLName = sLastName; GetGlobalContext()->GetContactDataObject()->sContactPhone = sPhone; GetGlobalContext()->GetContactDataObject()->sContactFax = sFax; GetGlobalContext()->GetContactDataObject()->sCompanyName = sCompanyName; GetGlobalContext()->GetContactDataObject()->sOrgUnit = sOrgUnit;
// Put into regsitery too
GetGlobalContext()->SetInRegistery(szOID_RSA_emailAddr, (LPCTSTR) sEmail); GetGlobalContext()->SetInRegistery(szOID_COMMON_NAME, sFirstName); GetGlobalContext()->SetInRegistery(szOID_SUR_NAME, sLastName); GetGlobalContext()->SetInRegistery(szOID_TELEPHONE_NUMBER, sPhone); GetGlobalContext()->SetInRegistery(szOID_FACSIMILE_TELEPHONE_NUMBER, sFax); GetGlobalContext()->SetInRegistery(szOID_ORGANIZATION_NAME, sCompanyName); GetGlobalContext()->SetInRegistery(szOID_ORGANIZATIONAL_UNIT_NAME, sOrgUnit);
//If no Error , go to the next page
LRPush(IDD_CONTACTINFO1); NextDone: LRW_SETWINDOWLONG(hwnd, LRW_DWL_MSGRESULT, dwNextPage); bStatus = -1; } break;
case PSN_WIZBACK: dwNextPage = LRPop(); LRW_SETWINDOWLONG(hwnd, LRW_DWL_MSGRESULT, dwNextPage); bStatus = -1; break;
default: bStatus = FALSE; break; } } break;
default: bStatus = FALSE; break; } return bStatus; }
LRW_DLG_INT CALLBACK ContactInfo2DlgProc( IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam ) { DWORD dwNextPage = 0; BOOL bStatus = TRUE; PageInfo *pi = (PageInfo *)LRW_GETWINDOWLONG( hwnd, LRW_GWL_USERDATA ); CString sCountryDesc;
switch (uMsg) { case WM_INITDIALOG: pi = (PageInfo *)((LPPROPSHEETPAGE)lParam)->lParam; LRW_SETWINDOWLONG( hwnd, LRW_GWL_USERDATA, (LRW_LONG_PTR)pi );
SendDlgItemMessage (hwnd , IDC_TXT_ADDRESS1, EM_SETLIMITTEXT, CA_ADDRESS_LEN,0); SendDlgItemMessage (hwnd , IDC_TXT_CITY, EM_SETLIMITTEXT, CA_CITY_LEN,0); SendDlgItemMessage (hwnd , IDC_TXT_STATE, EM_SETLIMITTEXT, CA_STATE_LEN,0); SendDlgItemMessage (hwnd , IDC_TXT_ZIP, EM_SETLIMITTEXT, CA_ZIP_LEN,0); PopulateCountryComboBox(GetDlgItem(hwnd,IDC_COMBO1));
//
//Populate the values which were read from the Registry during Global Init
//
SetDlgItemText(hwnd,IDC_TXT_ADDRESS1, GetGlobalContext()->GetContactDataObject()->sContactAddress); SetDlgItemText(hwnd,IDC_TXT_CITY , GetGlobalContext()->GetContactDataObject()->sCity); SetDlgItemText(hwnd,IDC_TXT_STATE , GetGlobalContext()->GetContactDataObject()->sState); SetDlgItemText(hwnd,IDC_TXT_ZIP , GetGlobalContext()->GetContactDataObject()->sZip);
GetCountryDesc( GetGlobalContext()->GetContactDataObject()->sCountryCode, sCountryDesc.GetBuffer(LR_COUNTRY_DESC_LEN+1)); sCountryDesc.ReleaseBuffer();
ComboBox_SetCurSel( GetDlgItem(hwnd,IDC_COMBO1), ComboBox_FindStringExact( GetDlgItem(hwnd,IDC_COMBO1), 0, sCountryDesc));
break;
case WM_DESTROY: LRW_SETWINDOWLONG( hwnd, LRW_GWL_USERDATA, NULL ); break;
case WM_NOTIFY: { LPNMHDR pnmh = (LPNMHDR)lParam;
switch( pnmh->code ) { case PSN_SETACTIVE: PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_NEXT | PSWIZB_BACK); break;
case PSN_WIZNEXT: { CString sAddress1; CString sCity; CString sState; LPTSTR lpVal = NULL; CString sZip; CString sCountryDesc; CString sCountryCode; DWORD dwRetCode; int nCurSel = -1;
//
//Read all the fields
//
lpVal = sAddress1.GetBuffer(CA_ADDRESS_LEN+1); GetDlgItemText(hwnd,IDC_TXT_ADDRESS1,lpVal,CA_ADDRESS_LEN+1); sAddress1.ReleaseBuffer(-1); lpVal = sCity.GetBuffer(CA_CITY_LEN+1); GetDlgItemText(hwnd,IDC_TXT_CITY,lpVal,CA_CITY_LEN+1); sCity.ReleaseBuffer(-1);
lpVal = sState.GetBuffer(CA_STATE_LEN+1); GetDlgItemText(hwnd,IDC_TXT_STATE,lpVal,CA_STATE_LEN+1); sState.ReleaseBuffer(-1);
lpVal = sZip.GetBuffer(CA_ZIP_LEN+1); GetDlgItemText(hwnd,IDC_TXT_ZIP,lpVal,CA_ZIP_LEN+1); sZip.ReleaseBuffer(-1);
nCurSel = ComboBox_GetCurSel(GetDlgItem(hwnd,IDC_COMBO1));
lpVal = sCountryDesc.GetBuffer(LR_COUNTRY_DESC_LEN+1); ComboBox_GetLBText(GetDlgItem(hwnd,IDC_COMBO1), nCurSel, lpVal); sCountryDesc.ReleaseBuffer(-1); sAddress1.TrimLeft(); sAddress1.TrimRight(); sCity.TrimLeft(); sCity.TrimRight(); sState.TrimLeft(); sState.TrimRight(); sZip.TrimLeft(); sZip.TrimRight(); sCountryDesc.TrimLeft();sCountryDesc.TrimRight();
if(sCountryDesc.IsEmpty()) // if(sAddress1.IsEmpty() || sCity.IsEmpty() ||
// sState.IsEmpty() || sZip.IsEmpty() || sCountryDesc.IsEmpty())
{ LRMessageBox(hwnd,IDS_ERR_FIELD_EMPTY); dwNextPage = IDD_CONTACTINFO2; goto NextDone; }
if( !ValidateLRString(sAddress1) || !ValidateLRString(sCity) || !ValidateLRString(sState) || !ValidateLRString(sZip) || !ValidateLRString(sCountryDesc) ) { LRMessageBox(hwnd,IDS_ERR_INVALID_CHAR); dwNextPage = IDD_CONTACTINFO2; goto NextDone; }
lpVal = sCountryCode.GetBuffer(LR_COUNTRY_CODE_LEN+1); if (sCountryDesc.IsEmpty()) { lstrcpy(lpVal, _TEXT("")); } else { GetCountryCode(sCountryDesc,lpVal); } sCountryCode.ReleaseBuffer(-1);
//
//Finally update CHData object
//
GetGlobalContext()->GetContactDataObject()->sCity = sCity; GetGlobalContext()->GetContactDataObject()->sCountryDesc = sCountryDesc; GetGlobalContext()->GetContactDataObject()->sCountryCode = sCountryCode; GetGlobalContext()->GetContactDataObject()->sContactAddress = sAddress1; GetGlobalContext()->GetContactDataObject()->sZip = sZip; GetGlobalContext()->GetContactDataObject()->sState = sState;
GetGlobalContext()->SetInRegistery(szOID_LOCALITY_NAME, sCity); GetGlobalContext()->SetInRegistery(szOID_COUNTRY_NAME, sCountryDesc); GetGlobalContext()->SetInRegistery(szOID_DESCRIPTION, sCountryCode); GetGlobalContext()->SetInRegistery(szOID_STREET_ADDRESS, sAddress1); GetGlobalContext()->SetInRegistery(szOID_POSTAL_CODE, sZip); GetGlobalContext()->SetInRegistery(szOID_STATE_OR_PROVINCE_NAME, sState);
dwRetCode = ShowProgressBox(hwnd, ProcessThread, 0, 0, 0); if (dwRetCode == ERROR_SUCCESS) { dwRetCode = LRGetLastRetCode(); }
if (dwRetCode != ERROR_SUCCESS) { LRMessageBox(hwnd, dwRetCode); dwNextPage = IDD_CONTACTINFO2; } else { GetGlobalContext()->ClearWizStack(); LRPush(IDD_WELCOME); dwNextPage = IDD_CONTINUEREG; }
NextDone: LRW_SETWINDOWLONG(hwnd, LRW_DWL_MSGRESULT, dwNextPage); bStatus = -1; } break;
case PSN_WIZBACK: dwNextPage = LRPop(); LRW_SETWINDOWLONG(hwnd, LRW_DWL_MSGRESULT, dwNextPage); bStatus = -1; break;
default: bStatus = FALSE; break; } } break;
default: bStatus = FALSE; break; } return bStatus; }
|