You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
428 lines
14 KiB
428 lines
14 KiB
//Copyright (c) 1998 - 2001 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;
|
|
CString sCountryDesc;
|
|
CString sProgramName;
|
|
|
|
switch (uMsg)
|
|
{
|
|
case WM_INITDIALOG:
|
|
SendDlgItemMessage (hwnd , IDC_TXT_COMPANYNAME, EM_SETLIMITTEXT, CA_COMPANY_NAME_LEN,0);
|
|
SendDlgItemMessage (hwnd , IDC_TXT_LNAME, EM_SETLIMITTEXT, CA_NAME_LEN,0);
|
|
SendDlgItemMessage (hwnd , IDC_TXT_FNAME, EM_SETLIMITTEXT, CA_NAME_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_COMPANYNAME, GetGlobalContext()->GetContactDataObject()->sCompanyName);
|
|
|
|
//Set up the country/region combo box
|
|
PopulateCountryComboBox(GetDlgItem(hwnd,IDC_COUNTRY_REGION));
|
|
|
|
GetCountryDesc(GetGlobalContext()->GetContactDataObject()->sCountryCode,
|
|
sCountryDesc.GetBuffer(LR_COUNTRY_DESC_LEN+1));
|
|
sCountryDesc.ReleaseBuffer();
|
|
|
|
ComboBox_SetCurSel(GetDlgItem(hwnd,IDC_COUNTRY_REGION),
|
|
ComboBox_FindStringExact(GetDlgItem(hwnd, IDC_COUNTRY_REGION), 0, sCountryDesc));
|
|
|
|
AddHyperLinkToStaticCtl(hwnd, IDC_PRIVACY);
|
|
|
|
break;
|
|
|
|
case WM_DESTROY:
|
|
LRW_SETWINDOWLONG( hwnd, LRW_GWL_USERDATA, NULL );
|
|
break;
|
|
|
|
case WM_NOTIFY:
|
|
{
|
|
LPNMHDR pnmh = (LPNMHDR)lParam;
|
|
|
|
switch( pnmh->code )
|
|
{
|
|
//Trap keystokes/clicks on the hyperlink
|
|
case NM_CHAR:
|
|
|
|
if( ( ( LPNMCHAR )lParam )->ch != VK_SPACE )
|
|
break;
|
|
|
|
// else fall through
|
|
|
|
case NM_RETURN:
|
|
case NM_CLICK:
|
|
DisplayPrivacyHelp();
|
|
break;
|
|
|
|
case PSN_SETACTIVE:
|
|
{
|
|
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_NEXT|PSWIZB_BACK );
|
|
|
|
AddHyperLinkToStaticCtl(hwnd, IDC_PRIVACY);
|
|
}
|
|
|
|
break;
|
|
|
|
case PSN_WIZNEXT:
|
|
{
|
|
CString sCompanyName;
|
|
CString sLastName;
|
|
CString sFirstName;
|
|
CString sCountryDesc;
|
|
CString sCountryCode;
|
|
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 = 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);
|
|
|
|
int nCurSel = -1;
|
|
nCurSel = ComboBox_GetCurSel(GetDlgItem(hwnd,IDC_COUNTRY_REGION));
|
|
|
|
lpVal = sCountryDesc.GetBuffer(LR_COUNTRY_DESC_LEN+1);
|
|
ComboBox_GetLBText(GetDlgItem(hwnd, IDC_COUNTRY_REGION), nCurSel, lpVal);
|
|
sCountryDesc.ReleaseBuffer(-1);
|
|
|
|
sFirstName.TrimLeft(); sFirstName.TrimRight();
|
|
sLastName.TrimLeft(); sLastName.TrimRight();
|
|
sCompanyName.TrimLeft(); sCompanyName.TrimRight();
|
|
sCountryDesc.TrimLeft();sCountryDesc.TrimRight();
|
|
|
|
if(sLastName.IsEmpty() || sFirstName.IsEmpty() || sCompanyName.IsEmpty())
|
|
{
|
|
LRMessageBox(hwnd,IDS_ERR_FIELD_EMPTY,IDS_WIZARD_MESSAGE_TITLE);
|
|
dwNextPage = IDD_CONTACTINFO1;
|
|
goto NextDone;
|
|
}
|
|
|
|
// Check for the Invalid Characters
|
|
if( !ValidateLRString(sFirstName) ||
|
|
!ValidateLRString(sLastName) ||
|
|
!ValidateLRString(sCountryDesc)
|
|
)
|
|
{
|
|
LRMessageBox(hwnd,IDS_ERR_INVALID_CHAR,IDS_WIZARD_MESSAGE_TITLE);
|
|
dwNextPage = IDD_CONTACTINFO1;
|
|
goto NextDone;
|
|
}
|
|
|
|
dwNextPage = IDD_CONTACTINFO2;
|
|
|
|
//Check for unselected country/region
|
|
if(sCountryDesc.IsEmpty())
|
|
{
|
|
LRMessageBox(hwnd,IDS_ERR_FIELD_EMPTY,IDS_WIZARD_MESSAGE_TITLE);
|
|
dwNextPage = IDD_CONTACTINFO1;
|
|
goto NextDone;
|
|
}
|
|
|
|
//Get the country code assicated with the selected country
|
|
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()->sContactFName = sFirstName;
|
|
GetGlobalContext()->GetContactDataObject()->sContactLName = sLastName;
|
|
GetGlobalContext()->GetContactDataObject()->sCompanyName = sCompanyName;
|
|
GetGlobalContext()->GetContactDataObject()->sCountryDesc = sCountryDesc;
|
|
GetGlobalContext()->GetContactDataObject()->sCountryCode = sCountryCode;
|
|
|
|
//
|
|
// IMPORTANT:
|
|
// The activation wizard flow used to ask for license type.
|
|
// It doesn't anymore but to minimize changes we pre-select a program
|
|
// type. The user gets to change it when they run the CAL wizard
|
|
//
|
|
//
|
|
sProgramName = PROGRAM_LICENSE_PAK;
|
|
GetGlobalContext()->GetContactDataObject()->sProgramName = sProgramName;
|
|
GetGlobalContext()->SetInRegistry(szOID_BUSINESS_CATEGORY,
|
|
GetGlobalContext()->GetContactDataObject()->sProgramName);
|
|
|
|
|
|
// Put into regsitery too
|
|
GetGlobalContext()->SetInRegistry(szOID_COMMON_NAME, sFirstName);
|
|
GetGlobalContext()->SetInRegistry(szOID_SUR_NAME, sLastName);
|
|
GetGlobalContext()->SetInRegistry(szOID_ORGANIZATION_NAME, sCompanyName);
|
|
GetGlobalContext()->SetInRegistry(szOID_COUNTRY_NAME, sCountryDesc);
|
|
GetGlobalContext()->SetInRegistry(szOID_DESCRIPTION, sCountryCode);
|
|
|
|
//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;
|
|
//CString sCountryDesc;
|
|
|
|
switch (uMsg)
|
|
{
|
|
case WM_INITDIALOG:
|
|
SendDlgItemMessage (hwnd , IDC_TXT_EMAIL, EM_SETLIMITTEXT, CA_EMAIL_LEN,0);
|
|
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);
|
|
SendDlgItemMessage (hwnd , IDC_COMPANY_DIV, EM_SETLIMITTEXT, CA_ORG_UNIT_LEN,0);
|
|
|
|
|
|
//Populate the values which were read from the Registry during Global Init
|
|
SetDlgItemText(hwnd,IDC_TXT_EMAIL, GetGlobalContext()->GetContactDataObject()->sContactEmail);
|
|
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);
|
|
SetDlgItemText(hwnd,IDC_COMPANY_DIV , GetGlobalContext()->GetContactDataObject()->sOrgUnit);
|
|
|
|
AddHyperLinkToStaticCtl(hwnd, IDC_PRIVACY);
|
|
|
|
break;
|
|
|
|
case WM_DESTROY:
|
|
LRW_SETWINDOWLONG( hwnd, LRW_GWL_USERDATA, NULL );
|
|
break;
|
|
|
|
case WM_NOTIFY:
|
|
{
|
|
LPNMHDR pnmh = (LPNMHDR)lParam;
|
|
|
|
switch( pnmh->code )
|
|
{
|
|
//Trap keystokes/clicks on the hyperlink
|
|
case NM_CHAR:
|
|
|
|
if( ( ( LPNMCHAR )lParam )->ch != VK_SPACE )
|
|
break;
|
|
|
|
// else fall through
|
|
|
|
case NM_RETURN:
|
|
case NM_CLICK:
|
|
DisplayPrivacyHelp();
|
|
break;
|
|
|
|
case PSN_SETACTIVE:
|
|
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_NEXT | PSWIZB_BACK);
|
|
AddHyperLinkToStaticCtl(hwnd, IDC_PRIVACY);
|
|
break;
|
|
|
|
case PSN_WIZNEXT:
|
|
{
|
|
CString sEmail;
|
|
CString sAddress1;
|
|
CString sCity;
|
|
CString sState;
|
|
LPTSTR lpVal = NULL;
|
|
CString sZip;
|
|
CString sOrgUnit;
|
|
DWORD dwRetCode;
|
|
int nCurSel = -1;
|
|
|
|
//Read all the fields
|
|
lpVal = sEmail.GetBuffer(CA_EMAIL_LEN+1);
|
|
GetDlgItemText(hwnd,IDC_TXT_EMAIL,lpVal,CA_EMAIL_LEN+1);
|
|
sEmail.ReleaseBuffer(-1);
|
|
|
|
|
|
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);
|
|
|
|
|
|
lpVal = sOrgUnit.GetBuffer(CA_ORG_UNIT_LEN+1);
|
|
GetDlgItemText(hwnd,IDC_COMPANY_DIV,lpVal,CA_ORG_UNIT_LEN+1);
|
|
sOrgUnit.ReleaseBuffer(-1);
|
|
|
|
sEmail.TrimLeft(); sEmail.TrimRight();
|
|
sAddress1.TrimLeft(); sAddress1.TrimRight();
|
|
sCity.TrimLeft(); sCity.TrimRight();
|
|
sState.TrimLeft(); sState.TrimRight();
|
|
sZip.TrimLeft(); sZip.TrimRight();
|
|
sOrgUnit.TrimLeft(); sOrgUnit.TrimRight();
|
|
|
|
if(
|
|
!ValidateLRString(sAddress1) ||
|
|
!ValidateLRString(sCity) ||
|
|
!ValidateLRString(sState) ||
|
|
!ValidateLRString(sZip) ||
|
|
!ValidateLRString(sOrgUnit) ||
|
|
!ValidateLRString(sEmail)
|
|
)
|
|
{
|
|
LRMessageBox(hwnd,IDS_ERR_INVALID_CHAR);
|
|
dwNextPage = IDD_CONTACTINFO2;
|
|
goto NextDone;
|
|
}
|
|
|
|
// Validate email address if not empty
|
|
if(!sEmail.IsEmpty())
|
|
{
|
|
if(!ValidateEmailId(sEmail))
|
|
{
|
|
LRMessageBox(hwnd,IDS_ERR_INVALID_EMAIL,IDS_WIZARD_MESSAGE_TITLE);
|
|
dwNextPage = IDD_CONTACTINFO2;
|
|
goto NextDone;
|
|
}
|
|
}
|
|
|
|
//Finally update CHData object
|
|
GetGlobalContext()->GetContactDataObject()->sContactEmail = sEmail;
|
|
GetGlobalContext()->GetContactDataObject()->sCity = sCity;
|
|
GetGlobalContext()->GetContactDataObject()->sContactAddress = sAddress1;
|
|
GetGlobalContext()->GetContactDataObject()->sZip = sZip;
|
|
GetGlobalContext()->GetContactDataObject()->sState = sState;
|
|
GetGlobalContext()->GetContactDataObject()->sOrgUnit = sOrgUnit;
|
|
|
|
GetGlobalContext()->SetInRegistry(szOID_RSA_emailAddr, (LPCTSTR) sEmail);
|
|
GetGlobalContext()->SetInRegistry(szOID_LOCALITY_NAME, sCity);
|
|
GetGlobalContext()->SetInRegistry(szOID_STREET_ADDRESS, sAddress1);
|
|
GetGlobalContext()->SetInRegistry(szOID_POSTAL_CODE, sZip);
|
|
GetGlobalContext()->SetInRegistry(szOID_STATE_OR_PROVINCE_NAME, sState);
|
|
GetGlobalContext()->SetInRegistry(szOID_ORGANIZATIONAL_UNIT_NAME, sOrgUnit);
|
|
|
|
dwRetCode = ShowProgressBox(hwnd, ProcessThread, 0, 0, 0);
|
|
|
|
if (dwRetCode != ERROR_SUCCESS)
|
|
{
|
|
LRMessageBox(hwnd, dwRetCode,IDS_WIZARD_MESSAGE_TITLE);
|
|
dwNextPage = IDD_CONTACTINFO2;
|
|
}
|
|
else
|
|
{
|
|
LRPush(IDD_WELCOME_CLIENT_LICENSING);
|
|
dwNextPage = IDD_PROGRESS;
|
|
}
|
|
|
|
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;
|
|
}
|