/*++ Copyright (c) 1996 Microsoft Corporation Module Name: dlgexchg.c Abstract: This file implements the dialog proc for the exchange install page. Environment: WIN32 User Mode Author: Wesley Witt (wesw) 7-Aug-1996 --*/ #include "wizard.h" #pragma hdrstop LRESULT ExchangeDlgProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_INITDIALOG: if (InstallMode == INSTALL_NEW) { GetMapiProfiles( hwnd, IDC_DEST_PROFILENAME ); } CheckDlgButton( hwnd, IDC_ANS_YES, BST_UNCHECKED ); CheckDlgButton( hwnd, IDC_ANS_NO, BST_CHECKED ); EnableWindow( GetDlgItem( hwnd, IDC_DEST_PROFILENAME ), FALSE ); SendDlgItemMessage( hwnd, IDC_DEST_PROFILENAME, CB_SETCURSEL, 0, 0 ); 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_USE_EXCHANGE, (LPBYTE) &WizData.UseExchange, sizeof(WizData.UseExchange) ); if (WizData.UseExchange) { UnAttendGetAnswer( UAA_DEST_PROFILENAME, (LPBYTE) WizData.MapiProfile, sizeof(WizData.MapiProfile) ); if (_wcsicmp( WizData.MapiProfile, L"" ) == 0) { if (!GetDefaultMapiProfile( WizData.MapiProfile )) { DWORD Size = sizeof(WizData.MapiProfile); GetUserName( WizData.MapiProfile, &Size ); } } } SetWindowLong( hwnd, DWL_MSGRESULT, -1 ); return TRUE; } if (InstallMode != INSTALL_NEW) { SetWindowLong( hwnd, DWL_MSGRESULT, -1 ); return TRUE; } break; case PSN_WIZNEXT: WizData.UseExchange = IsDlgButtonChecked( hwnd, IDC_ANS_YES ); if (WizData.UseExchange) { LONG idx = SendDlgItemMessage( hwnd, IDC_DEST_PROFILENAME, CB_GETCURSEL, 0, 0 ); if (idx != CB_ERR) { if (idx == 0) { if (MapiAvail) { if (!GetDefaultMapiProfile( WizData.MapiProfile )) { DWORD Size = sizeof(WizData.MapiProfile); GetUserName( WizData.MapiProfile, &Size ); } } else { DWORD Size = sizeof(WizData.MapiProfile); GetUserName( WizData.MapiProfile, &Size ); } } else { SendDlgItemMessage( hwnd, IDC_DEST_PROFILENAME, CB_GETLBTEXT, (WPARAM) idx, (LPARAM) WizData.MapiProfile ); } } } break; } break; } return FALSE; }