windows-nt/Source/XPSP1/NT/printscan/fax/setup/wizdll/dlgmail.c
2020-09-26 16:20:57 +08:00

163 lines
5.4 KiB
C

/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
digmail.c
Abstract:
This file implements the dialog proc for the exchange
routing profile page.
Environment:
WIN32 User Mode
Author:
Wesley Witt (wesw) 17-Feb-1996
--*/
#include "wizard.h"
#pragma hdrstop
LRESULT
RouteMailDlgProc(
HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam
)
{
LONG idx;
switch( msg ) {
case WM_INITDIALOG:
if (InstallMode == INSTALL_NEW) {
GetMapiProfiles( hwnd, IDC_DEST_PROFILENAME );
if (WizData.UseExchange) {
//
// if the user wants to use exchange for
// addressing fax messages then lets
// default this profile selection to the
// same profile that the user chose for
// addressing
//
idx = SendDlgItemMessage(
hwnd,
IDC_DEST_PROFILENAME,
CB_FINDSTRING,
(WPARAM) -1,
(LPARAM) WizData.MapiProfile
);
}
else{
idx = 0;
}
}
SendDlgItemMessage(
hwnd,
IDC_DEST_PROFILENAME,
CB_SETCURSEL,
idx == CB_ERR ? 0 : (WPARAM) idx,
0
);
CheckDlgButton( hwnd, IDC_ANS_YES, BST_UNCHECKED );
CheckDlgButton( hwnd, IDC_ANS_NO, BST_CHECKED );
EnableWindow( GetDlgItem( hwnd, IDC_DEST_PROFILENAME ), FALSE );
break;
case WM_COMMAND:
if (HIWORD(wParam) == BN_CLICKED) {
switch (LOWORD(wParam)) {
case IDC_ANS_YES:
EnableWindow( GetDlgItem( hwnd, IDC_DEST_PROFILENAME ), TRUE );
SetFocus( GetDlgItem( hwnd, IDC_DEST_PROFILENAME ));
break;
case IDC_ANS_NO:
EnableWindow( GetDlgItem( hwnd, IDC_DEST_PROFILENAME ), FALSE );
}
}
break;
case WM_NOTIFY:
switch( ((LPNMHDR)lParam)->code ) {
case PSN_SETACTIVE:
if (Unattended) {
UnAttendGetAnswer(
UAA_ROUTE_MAIL,
(LPBYTE) &WizData.RouteMail,
sizeof(WizData.RouteMail)
);
if (WizData.RouteMail) {
WizData.UseExchange = TRUE;
UnAttendGetAnswer(
UAA_ROUTE_PROFILENAME,
(LPBYTE) WizData.RouteProfile,
sizeof(WizData.RouteProfile)
);
if (_wcsicmp( WizData.RouteProfile, L"<default>" ) == 0) {
if (!GetDefaultMapiProfile( WizData.RouteProfile )) {
DWORD Size = sizeof(WizData.RouteProfile);
GetUserName( WizData.RouteProfile, &Size );
}
}
}
SetWindowLong( hwnd, DWL_MSGRESULT, -1 );
return TRUE;
}
if (InstallMode != INSTALL_NEW) {
SetWindowLong( hwnd, DWL_MSGRESULT, -1 );
return TRUE;
}
break;
case PSN_WIZNEXT:
WizData.RouteMail = IsDlgButtonChecked( hwnd, IDC_ANS_YES );
if (WizData.RouteMail) {
LONG idx = SendDlgItemMessage(
hwnd,
IDC_DEST_PROFILENAME,
CB_GETCURSEL,
0,
0
);
WizData.UseExchange = TRUE;
if (idx != CB_ERR) {
if (idx == 0) {
if (!GetDefaultMapiProfile( WizData.RouteProfile )) {
DWORD Size = sizeof(WizData.RouteProfile);
GetUserName( WizData.RouteProfile, &Size );
}
} else {
SendDlgItemMessage(
hwnd,
IDC_DEST_PROFILENAME,
CB_GETLBTEXT,
(WPARAM) idx,
(LPARAM) WizData.RouteProfile
);
}
}
}
if ((!WizData.RoutePrint) && (!WizData.RouteStore) && (!WizData.RouteMail)) {
PopUpMsg( hwnd, IDS_ROUTING_REQUIRED, TRUE, 0 );
SetWindowLong( hwnd, DWL_MSGRESULT, IDD_ROUTE_STOREDIR_PAGE );
return TRUE;
}
break;
}
break;
}
return FALSE;
}