diff options
Diffstat (limited to '')
-rw-r--r-- | private/nw/convert/nwconv/userdlg.c | 1266 |
1 files changed, 1266 insertions, 0 deletions
diff --git a/private/nw/convert/nwconv/userdlg.c b/private/nw/convert/nwconv/userdlg.c new file mode 100644 index 000000000..5ceb86465 --- /dev/null +++ b/private/nw/convert/nwconv/userdlg.c @@ -0,0 +1,1266 @@ +/* + +-------------------------------------------------------------------------+ + | User Options Dialog | + +-------------------------------------------------------------------------+ + | (c) Copyright 1993-1994 | + | Microsoft Corp. | + | All rights reserved | + | | + | Program : [UserDlg.c] | + | Programmer : Arthur Hanson | + | Original Program Date : [Feb 15, 1993] | + | Last Update : [Jun 16, 1994] | + | | + | Version: 1.00 | + | | + | Description: | + | | + | History: | + | arth Jun 16, 1994 1.00 Original Version. | + | | + +-------------------------------------------------------------------------+ +*/ + + +#include "globals.h" + +#include <limits.h> + +#include "nwconv.h" +#include "convapi.h" +#include "userdlg.h" +#include "transfer.h" +#include "ntnetapi.h" +#include "map.h" + +#define togmap 1 + +// Utility Macros for Advanced >> button +#define SetStyleOn(hWnd, Style) SetWindowLong(hWnd, GWL_STYLE, Style | GetWindowLong(hWnd, GWL_STYLE)); + +#define SetStyleOff(hWnd, Style) SetWindowLong(hWnd, GWL_STYLE, ~Style & GetWindowLong(hWnd, GWL_STYLE)); + + +static CONVERT_OPTIONS cvoDefault; +static CONVERT_OPTIONS *CurrentConvertOptions; +static LPTSTR SourceServ; +static LPTSTR DestServ; +static SOURCE_SERVER_BUFFER *SServ; +static DEST_SERVER_BUFFER *DServ; +static BOOL FPNWChk; +static short TabSelection; + +/*+-------------------------------------------------------------------------+ + | UserOptionsDefaultsSet() + | + +-------------------------------------------------------------------------+*/ +void UserOptionsDefaultsSet(void *cvto) { + memcpy((void *) &cvoDefault, cvto, sizeof(CONVERT_OPTIONS)); + +} // UserOptionsDefaultsSet + + +/*+-------------------------------------------------------------------------+ + | UserOptionsDefaultsReset() + | + +-------------------------------------------------------------------------+*/ +void UserOptionsDefaultsReset() { + memset(&cvoDefault, 0, sizeof(CONVERT_OPTIONS)); + + cvoDefault.TransferUserInfo = TRUE; + cvoDefault.ForcePasswordChange = TRUE; + cvoDefault.SupervisorDefaults = TRUE; + cvoDefault.AdminAccounts = FALSE; + cvoDefault.NetWareInfo = FALSE; + cvoDefault.GroupNameOption = 1; + +} // UserOptionsDefaultsReset + + +/*+-------------------------------------------------------------------------+ + | UserOptionsInit() + | + +-------------------------------------------------------------------------+*/ +void UserOptionsInit(void **lpcvto) { + CONVERT_OPTIONS *cvto; + + cvto = (CONVERT_OPTIONS *) *lpcvto; + + // if we need to allocate space, do so + if (cvto == NULL) + cvto = AllocMemory(sizeof(CONVERT_OPTIONS)); + + // make sure it was allocated + if (cvto == NULL) + return; + + memcpy(cvto, (void *) &cvoDefault, sizeof(CONVERT_OPTIONS)); + *lpcvto = (void *) cvto; + +} // UserOptionsInit + + +/*+-------------------------------------------------------------------------+ + | UserOptionsLoad() + | + +-------------------------------------------------------------------------+*/ +void UserOptionsLoad(HANDLE hFile, void **lpcvto) { + CONVERT_OPTIONS *cvto; + DWORD wrote; + + cvto = (CONVERT_OPTIONS *) *lpcvto; + + // if we need to allocate space, do so + if (cvto == NULL) + cvto = AllocMemory(sizeof(CONVERT_OPTIONS)); + + // make sure it was allocated + if (cvto == NULL) + return; + + ReadFile(hFile, cvto, sizeof(CONVERT_OPTIONS), &wrote, NULL); + *lpcvto = (void *) cvto; + +} // UserOptionsLoad + + +/*+-------------------------------------------------------------------------+ + | UserOptionsSave() + | + +-------------------------------------------------------------------------+*/ +void UserOptionsSave(HANDLE hFile, void *pcvto) { + CONVERT_OPTIONS *cvto; + DWORD wrote; + DOMAIN_BUFFER *Trusted; + + cvto = (CONVERT_OPTIONS *) pcvto; + + // if trusted domain then index the domain list and save off the old + // domain pointer so that we save the index instead. + if (cvto->UseTrustedDomain && (cvto->TrustedDomain != NULL)) { + DomainListIndex(); + Trusted = cvto->TrustedDomain; + cvto->TrustedDomain = (DOMAIN_BUFFER *) cvto->TrustedDomain->Index; + } else + cvto->UseTrustedDomain = FALSE; + + WriteFile(hFile, pcvto, sizeof(CONVERT_OPTIONS), &wrote, NULL); + + // if we replaced the domain pointer, then restore it + if (cvto->UseTrustedDomain) + cvto->TrustedDomain = Trusted; + +} // UserOptionsSave + + +/*+-------------------------------------------------------------------------+ + | Passwords_Toggle() + | + +-------------------------------------------------------------------------+*/ +void Passwords_Toggle(HWND hDlg, BOOL Toggle) { + HWND hCtrl; + BOOL MainToggle = Toggle; + + hCtrl = GetDlgItem(hDlg, IDC_CHKUSERS); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 0) + MainToggle = FALSE; + + hCtrl = GetDlgItem(hDlg, IDC_CHKPWFORCE); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + +#ifdef togmap + hCtrl = GetDlgItem(hDlg, IDC_CHKMAPPING); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + MainToggle = FALSE; +#endif + + hCtrl = GetDlgItem(hDlg, IDC_RADIO1); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + + hCtrl = GetDlgItem(hDlg, IDC_RADIO2); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + + hCtrl = GetDlgItem(hDlg, IDC_RADIO3); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + + hCtrl = GetDlgItem(hDlg, IDC_PWCONST); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + +} // Passwords_Toggle + + +/*+-------------------------------------------------------------------------+ + | DuplicateUsers_Toggle() + | + +-------------------------------------------------------------------------+*/ +void DuplicateUsers_Toggle(HWND hDlg, BOOL Toggle) { + HWND hCtrl; + BOOL MainToggle = Toggle; + + hCtrl = GetDlgItem(hDlg, IDC_CHKUSERS); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 0) + MainToggle = FALSE; + +#ifdef togmap + hCtrl = GetDlgItem(hDlg, IDC_CHKMAPPING); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + MainToggle = FALSE; +#endif + + hCtrl = GetDlgItem(hDlg, IDC_STATDUP); + ShowWindow(hCtrl, Toggle); + + hCtrl = GetDlgItem(hDlg, IDC_RADIO4); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + + hCtrl = GetDlgItem(hDlg, IDC_RADIO5); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + + hCtrl = GetDlgItem(hDlg, IDC_RADIO6); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + + hCtrl = GetDlgItem(hDlg, IDC_RADIO7); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + + hCtrl = GetDlgItem(hDlg, IDC_USERCONST); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + +} // DuplicateUsers_Toggle + + +/*+-------------------------------------------------------------------------+ + | DuplicateGroups_Toggle() + | + +-------------------------------------------------------------------------+*/ +void DuplicateGroups_Toggle(HWND hDlg, BOOL Toggle) { + HWND hCtrl; + BOOL MainToggle = Toggle; + + hCtrl = GetDlgItem(hDlg, IDC_CHKUSERS); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 0) + MainToggle = FALSE; + +#ifdef togmap + hCtrl = GetDlgItem(hDlg, IDC_CHKMAPPING); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + MainToggle = FALSE; +#endif + + hCtrl = GetDlgItem(hDlg, IDC_STATDUP); + ShowWindow(hCtrl, Toggle); + + hCtrl = GetDlgItem(hDlg, IDC_RADIO8); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + + hCtrl = GetDlgItem(hDlg, IDC_RADIO9); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + + hCtrl = GetDlgItem(hDlg, IDC_RADIO10); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + + hCtrl = GetDlgItem(hDlg, IDC_GROUPCONST); + ShowWindow(hCtrl, Toggle); + EnableWindow(hCtrl, MainToggle); + +} // DuplicateGroups_Toggle + + +/*+-------------------------------------------------------------------------+ + | Defaults_Toggle() + | + +-------------------------------------------------------------------------+*/ +void Defaults_Toggle(HWND hDlg, BOOL Toggle) { + HWND hCtrl; + BOOL MainToggle = Toggle; + + hCtrl = GetDlgItem(hDlg, IDC_CHKUSERS); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 0) + MainToggle = FALSE; + + hCtrl = GetDlgItem(hDlg, IDC_CHKSUPER); + EnableWindow(hCtrl, MainToggle); + ShowWindow(hCtrl, Toggle); + + hCtrl = GetDlgItem(hDlg, IDC_CHKADMIN); + EnableWindow(hCtrl, MainToggle); + ShowWindow(hCtrl, Toggle); + + hCtrl = GetDlgItem(hDlg, IDC_CHKFPNW); + if (FPNWChk) + EnableWindow(hCtrl, MainToggle); + else + EnableWindow(hCtrl, FALSE); + + ShowWindow(hCtrl, Toggle); +} // Defaults_Toggle + + +/*+-------------------------------------------------------------------------+ + | Mapping_Toggle() + | + +-------------------------------------------------------------------------+*/ +void Mapping_Toggle(HWND hDlg, BOOL Toggle) { + HWND hCtrl; + + // These two are the reverse of the others... + hCtrl = GetDlgItem(hDlg, IDC_MAPPINGFILE); + EnableWindow(hCtrl, !Toggle); + hCtrl = GetDlgItem(hDlg, IDC_BTNMAPPINGFILE); + EnableWindow(hCtrl, !Toggle); + hCtrl = GetDlgItem(hDlg, IDC_BTNMAPPINGEDIT); + EnableWindow(hCtrl, !Toggle); + +#ifdef togmap + hCtrl = GetDlgItem(hDlg, IDC_RADIO1); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_RADIO2); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_RADIO3); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_RADIO4); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_RADIO5); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_RADIO6); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_RADIO7); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_RADIO8); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_RADIO9); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_RADIO10); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_CHKPWFORCE); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_PWCONST); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_USERCONST); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_GROUPCONST); + EnableWindow(hCtrl, Toggle); +#endif + +} // Mapping_Toggle + + +/*+-------------------------------------------------------------------------+ + | UserDialogToggle() + | + +-------------------------------------------------------------------------+*/ +void UserDialogToggle(HWND hDlg, BOOL Toggle) { + HWND hCtrl; + + hCtrl = GetDlgItem(hDlg, IDC_CHKMAPPING); + EnableWindow(hCtrl, Toggle); + + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + Mapping_Toggle(hDlg, FALSE); + else + Mapping_Toggle(hDlg, Toggle); + + if (!Toggle) { + hCtrl = GetDlgItem(hDlg, IDC_MAPPINGFILE); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_BTNMAPPINGFILE); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_BTNMAPPINGEDIT); + EnableWindow(hCtrl, Toggle); + } + + hCtrl = GetDlgItem(hDlg, IDC_CHKSUPER); + EnableWindow(hCtrl, Toggle); + hCtrl = GetDlgItem(hDlg, IDC_CHKADMIN); + EnableWindow(hCtrl, Toggle); + + hCtrl = GetDlgItem(hDlg, IDC_CHKFPNW); + if (FPNWChk) + EnableWindow(hCtrl, Toggle); + else + EnableWindow(hCtrl, FALSE); + + // Check the Advanced Trusted domain check and toggle controls appropriatly + hCtrl = GetDlgItem(hDlg, IDC_CHKTRUSTED); + + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) { + hCtrl = GetDlgItem(hDlg, IDC_TRUSTED); + EnableWindow(hCtrl, Toggle); + + } else { + hCtrl = GetDlgItem(hDlg, IDC_TRUSTED); + EnableWindow(hCtrl, FALSE); + + } + + // Now toggle the checkbox itself + hCtrl = GetDlgItem(hDlg, IDC_CHKTRUSTED); + EnableWindow(hCtrl, Toggle); + +} // UserDialogToggle + + +/*+-------------------------------------------------------------------------+ + | UserDialogSave() + | + +-------------------------------------------------------------------------+*/ +void UserDialogSave(HWND hDlg) { + HWND hCtrl; + DWORD dwIndex; + TCHAR TrustedDomain[MAX_PATH + 1]; + + hCtrl = GetDlgItem(hDlg, IDC_CHKUSERS); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->TransferUserInfo = TRUE; + else + CurrentConvertOptions->TransferUserInfo = FALSE; + + hCtrl = GetDlgItem(hDlg, IDC_CHKMAPPING); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->UseMappingFile = TRUE; + else + CurrentConvertOptions->UseMappingFile = FALSE; + + // Mapping file is handled in Verify + + // Password stuff-------------------------------------------------------- + hCtrl = GetDlgItem(hDlg, IDC_RADIO1); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->PasswordOption = 0; + + hCtrl = GetDlgItem(hDlg, IDC_RADIO2); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->PasswordOption = 1; + + hCtrl = GetDlgItem(hDlg, IDC_RADIO3); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->PasswordOption = 2; + + hCtrl = GetDlgItem(hDlg, IDC_PWCONST); + * (WORD *)CurrentConvertOptions->PasswordConstant = sizeof(CurrentConvertOptions->PasswordConstant); + SendMessage(hCtrl, EM_GETLINE, 0, (LPARAM) CurrentConvertOptions->PasswordConstant); + + hCtrl = GetDlgItem(hDlg, IDC_CHKPWFORCE); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->ForcePasswordChange = TRUE; + else + CurrentConvertOptions->ForcePasswordChange = FALSE; + + // Username stuff-------------------------------------------------------- + hCtrl = GetDlgItem(hDlg, IDC_RADIO4); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->UserNameOption = 0; + + hCtrl = GetDlgItem(hDlg, IDC_RADIO5); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->UserNameOption = 1; + + hCtrl = GetDlgItem(hDlg, IDC_RADIO6); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->UserNameOption = 2; + + hCtrl = GetDlgItem(hDlg, IDC_RADIO7); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->UserNameOption = 3; + + hCtrl = GetDlgItem(hDlg, IDC_USERCONST); + * (WORD *)CurrentConvertOptions->UserConstant = sizeof(CurrentConvertOptions->UserConstant); + SendMessage(hCtrl, EM_GETLINE, 0, (LPARAM) CurrentConvertOptions->UserConstant); + + // Group-name stuff-------------------------------------------------------- + hCtrl = GetDlgItem(hDlg, IDC_RADIO8); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->GroupNameOption = 0; + + hCtrl = GetDlgItem(hDlg, IDC_RADIO9); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->GroupNameOption = 1; + + hCtrl = GetDlgItem(hDlg, IDC_RADIO10); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->GroupNameOption = 2; + + hCtrl = GetDlgItem(hDlg, IDC_GROUPCONST); + * (WORD *)CurrentConvertOptions->GroupConstant = sizeof(CurrentConvertOptions->GroupConstant); + SendMessage(hCtrl, EM_GETLINE, 0, (LPARAM) CurrentConvertOptions->GroupConstant); + + + // Defaults page stuff------------------------------------------------------ + hCtrl = GetDlgItem(hDlg, IDC_CHKSUPER); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->SupervisorDefaults = TRUE; + else + CurrentConvertOptions->SupervisorDefaults = FALSE; + + hCtrl = GetDlgItem(hDlg, IDC_CHKADMIN); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->AdminAccounts = TRUE; + else + CurrentConvertOptions->AdminAccounts = FALSE; + + if (FPNWChk) { + hCtrl = GetDlgItem(hDlg, IDC_CHKFPNW); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + CurrentConvertOptions->NetWareInfo = TRUE; + else + CurrentConvertOptions->NetWareInfo = FALSE; + } else + CurrentConvertOptions->NetWareInfo = FALSE; + + + // Advanced >> button stuff------------------------------------------------- + hCtrl = GetDlgItem(hDlg, IDC_CHKTRUSTED); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) { + CurrentConvertOptions->UseTrustedDomain = TRUE; + + // if there is already a trusted domain selected - clear it out + if (CurrentConvertOptions->TrustedDomain != NULL) { + DomainListDelete(CurrentConvertOptions->TrustedDomain); + CurrentConvertOptions->TrustedDomain = NULL; + } + + hCtrl = GetDlgItem(hDlg, IDC_TRUSTED); + dwIndex = SendMessage(hCtrl, CB_GETCURSEL, 0, 0); + + if (dwIndex != CB_ERR) { + // Get the domain name and then try to add it to our lists + SendMessage(hCtrl, CB_GETLBTEXT, (WPARAM) dwIndex, (LPARAM) TrustedDomain); + CurrentConvertOptions->TrustedDomain = NTTrustedDomainSet(hDlg, DestServ, TrustedDomain); + } + + } else + CurrentConvertOptions->UseTrustedDomain = FALSE; + + // Set default values to new selections + UserOptionsDefaultsSet(CurrentConvertOptions); + +} // UserDialogSave + + +/*+-------------------------------------------------------------------------+ + | UserDialogVerify() + | + +-------------------------------------------------------------------------+*/ +BOOL UserDialogVerify(HWND hDlg) { + HWND hCtrl; + static TCHAR MappingFile[MAX_PATH + 1]; + static char FileNameA[MAX_PATH + 1]; + static char CmdLine[MAX_PATH + 1 + 12]; // Editor + file + TCHAR drive[MAX_DRIVE + 1]; + TCHAR dir[MAX_PATH + 1]; + TCHAR fname[MAX_PATH + 1]; + TCHAR ext[_MAX_EXT + 1]; + HANDLE hFile; + + // Check trusted domain... + + // Check mapping file + hCtrl = GetDlgItem(hDlg, IDC_CHKUSERS); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) { + hCtrl = GetDlgItem(hDlg, IDC_CHKMAPPING); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) { + hCtrl = GetDlgItem(hDlg, IDC_MAPPINGFILE); + * (WORD *)MappingFile = sizeof(MappingFile); + SendMessage(hCtrl, EM_GETLINE, 0, (LPARAM) MappingFile); + lsplitpath(MappingFile, drive, dir, fname, ext); + + // Make sure a file name is specified + if (lstrlen(fname) == 0) { + MessageBox(hDlg, Lids(IDS_NOREADMAP), Lids(IDS_TXTWARNING), MB_OK | MB_ICONEXCLAMATION); + hCtrl = GetDlgItem(hDlg, IDC_MAPPINGFILE); + SetFocus(hCtrl); + return FALSE; + } + + if ((drive[0] == TEXT('\0')) && (dir[0] == TEXT('\0'))) + lstrcpy(dir, ProgPath); + + if (ext[0] == TEXT('\0')) + lstrcpy(ext, Lids(IDS_S_36)); + + lmakepath(MappingFile, drive, dir, fname, ext); + + lstrcpy(CurrentConvertOptions->MappingFile, MappingFile); + + WideCharToMultiByte(CP_ACP, 0, MappingFile, -1, FileNameA, sizeof(FileNameA), NULL, NULL); + hFile = CreateFileA( FileNameA, GENERIC_READ, 0, + NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); + + if (hFile == INVALID_HANDLE_VALUE) { + MessageBox(hDlg, Lids(IDS_NOREADMAP), Lids(IDS_TXTWARNING), MB_OK | MB_ICONEXCLAMATION); + hCtrl = GetDlgItem(hDlg, IDC_MAPPINGFILE); + SetFocus(hCtrl); + return FALSE; + } else + CloseHandle(hFile); + + } + } // mapping file + + return TRUE; + +} // UserDialogVerify + + +/*+-------------------------------------------------------------------------+ + | UserDialogSetup() + | + +-------------------------------------------------------------------------+*/ +void UserDialogSetup(HWND hDlg) { + HWND hCtrl; + + // Main TransferUserCheckbox + hCtrl = GetDlgItem(hDlg, IDC_CHKUSERS); + if (CurrentConvertOptions->TransferUserInfo) + SendMessage(hCtrl, BM_SETCHECK, 1, 0); + else + SendMessage(hCtrl, BM_SETCHECK, 0, 0); + + // Mapping file checkbox + hCtrl = GetDlgItem(hDlg, IDC_CHKMAPPING); + if (CurrentConvertOptions->UseMappingFile) + SendMessage(hCtrl, BM_SETCHECK, 1, 0); + else + SendMessage(hCtrl, BM_SETCHECK, 0, 0); + + + hCtrl = GetDlgItem(hDlg, IDC_MAPPINGFILE); + PostMessage(hCtrl, EM_LIMITTEXT, (WPARAM) MAX_PATH, 0); + SendMessage(hCtrl, WM_SETTEXT, 0, (LPARAM) CurrentConvertOptions->MappingFile); + + // Force Password checkbox + hCtrl = GetDlgItem(hDlg, IDC_CHKPWFORCE); + if (CurrentConvertOptions->ForcePasswordChange) + SendMessage(hCtrl, BM_SETCHECK, 1, 0); + else + SendMessage(hCtrl, BM_SETCHECK, 0, 0); + + // Set the text and limit the lengths of the edit fields... + hCtrl = GetDlgItem(hDlg, IDC_PWCONST); + PostMessage(hCtrl, EM_LIMITTEXT, (WPARAM) MAX_PW_LEN, 0); + SendMessage(hCtrl, WM_SETTEXT, 0, (LPARAM) CurrentConvertOptions->PasswordConstant); + + hCtrl = GetDlgItem(hDlg, IDC_USERCONST); + PostMessage(hCtrl, EM_LIMITTEXT, (WPARAM) MAX_UCONST_LEN, 0); + SendMessage(hCtrl, WM_SETTEXT, 0, (LPARAM) CurrentConvertOptions->UserConstant); + + hCtrl = GetDlgItem(hDlg, IDC_GROUPCONST); + PostMessage(hCtrl, EM_LIMITTEXT, (WPARAM) MAX_UCONST_LEN, 0); + SendMessage(hCtrl, WM_SETTEXT, 0, (LPARAM) CurrentConvertOptions->GroupConstant); + + // Now init the radio buttons correctly + CheckRadioButton(hDlg, IDC_RADIO1, IDC_RADIO3, IDC_RADIO1 + CurrentConvertOptions->PasswordOption); + CheckRadioButton(hDlg, IDC_RADIO4, IDC_RADIO7, IDC_RADIO4 + CurrentConvertOptions->UserNameOption); + CheckRadioButton(hDlg, IDC_RADIO8, IDC_RADIO10, IDC_RADIO8 + CurrentConvertOptions->GroupNameOption); + + // Do the controls in the defaults section + hCtrl = GetDlgItem(hDlg, IDC_CHKSUPER); + if (CurrentConvertOptions->SupervisorDefaults) + SendMessage(hCtrl, BM_SETCHECK, 1, 0); + else + SendMessage(hCtrl, BM_SETCHECK, 0, 0); + + hCtrl = GetDlgItem(hDlg, IDC_CHKADMIN); + if (CurrentConvertOptions->AdminAccounts) + SendMessage(hCtrl, BM_SETCHECK, 1, 0); + else + SendMessage(hCtrl, BM_SETCHECK, 0, 0); + + if (FPNWChk) { + hCtrl = GetDlgItem(hDlg, IDC_CHKFPNW); + if (CurrentConvertOptions->NetWareInfo) + SendMessage(hCtrl, BM_SETCHECK, 1, 0); + else + SendMessage(hCtrl, BM_SETCHECK, 0, 0); + } else + SendMessage(hCtrl, BM_SETCHECK, 0, 0); + + // Now for the Advanced >> area.. + hCtrl = GetDlgItem(hDlg, IDC_CHKTRUSTED); + if (CurrentConvertOptions->UseTrustedDomain) + SendMessage(hCtrl, BM_SETCHECK, 1, 0); + else + SendMessage(hCtrl, BM_SETCHECK, 0, 0); + +} // UserDialogSetup + + + +/*+-------------------------------------------------------------------------+ + | ShowArea() + | + +-------------------------------------------------------------------------+*/ +void ShowArea(BOOL fShowDefAreaOnly, HWND hDlg, HWND hWndDefArea) { + RECT rcDlg, rcDefArea; + TCHAR szDlgDims[25]; + char szaDlgDims[25]; + HWND hWndChild; + RECT rc; + + // Save original width and height of dialog box + GetWindowRect(hDlg, &rcDlg); + + // Retrieve coordinates for default area window. + GetWindowRect(hWndDefArea, &rcDefArea); + + hWndChild = GetFirstChild(hDlg); + + for (; hWndChild != NULL; hWndChild = GetNextSibling(hWndChild)) { + // Calculate rectangle occupied by child window in sreen coordinates + GetWindowRect(hWndChild, &rc); + + // Enable/Disable child if its: + // right edge is >= the right edge of hWndDefArea. + // bottom edge is >= the bottom edge of hWndDefArea. + if ((rc.right >= rcDefArea.right) || (rc.bottom >= rcDefArea.bottom)) + EnableWindow(hWndChild, !fShowDefAreaOnly); + } + + if (fShowDefAreaOnly) { + wsprintf(szDlgDims, TEXT("%05u %05u"), rcDlg.right - rcDlg.left, rcDlg.bottom - rcDlg.top); + + SetStyleOff(hWndDefArea, SS_BLACKRECT); + SetStyleOn(hWndDefArea, SS_LEFT); + SetWindowText(hWndDefArea, szDlgDims); + + // Resize dialog box to fit only default area. + SetWindowPos(hDlg, NULL, 0, 0, rcDefArea.right - rcDlg.left, + rcDefArea.bottom - rcDlg.top, SWP_NOZORDER | SWP_NOMOVE); + + // Make sure that the Default area box is hidden. + ShowWindow(hWndDefArea, SW_HIDE); + } else { + GetWindowText(hWndDefArea, szDlgDims, sizeof(szDlgDims)); + + WideCharToMultiByte( CP_ACP, 0, szDlgDims, -1, szaDlgDims, sizeof(szDlgDims), NULL, NULL ); + + // Restore dialog box to its original size. + SetWindowPos(hDlg, NULL, 0, 0, atoi(szaDlgDims), atoi(szaDlgDims + 6), + SWP_NOZORDER | SWP_NOMOVE); + } + + +} // ShowArea + + +/*+-------------------------------------------------------------------------+ + | UserFileGet() + | + +-------------------------------------------------------------------------+*/ +DWORD UserFileGet(HWND hwnd, LPTSTR FilePath) { + OPENFILENAME ofn; + TCHAR szDirName[MAX_PATH + 1]; + TCHAR szFile[MAX_PATH + 1], szFileTitle[MAX_PATH + 1]; + UINT i, cbString; + TCHAR chReplace; + TCHAR szFilter[256]; + BOOL Found = FALSE; + LPTSTR szExt; + + szExt = Lids(IDS_S_37); + + lstrcpy(szDirName, ProgPath); + lstrcpy(szFile, TEXT("")); + + if ((cbString = LoadString(hInst, IDS_USERFILTERSTRING, szFilter, sizeof(szFilter))) == 0) { + // Error occured + return 1L; + } + + chReplace = szFilter[cbString - 1]; // Retrieve wild character + + for (i = 0; szFilter[i] != TEXT('\0'); i++) { + if (szFilter[i] == chReplace) + szFilter[i] = TEXT('\0'); + } + + // Set all structure members to zero + memset(&ofn, 0, sizeof(OPENFILENAME)); + + ofn.lStructSize = sizeof(OPENFILENAME); + ofn.hwndOwner = hwnd; + ofn.lpstrFilter = szFilter; + ofn.nFilterIndex = 1; + ofn.lpstrFile = szFile; + ofn.nMaxFile = sizeof(szFile); + ofn.lpstrFileTitle = szFileTitle; + ofn.nMaxFileTitle = sizeof(szFileTitle); + ofn.lpstrInitialDir = szDirName; + ofn.lpstrDefExt = szExt; + ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST; + + if (GetOpenFileName(&ofn)) { + // Don't really need to open it yet - just copy the data + + // If no path then append . + i = 0; + while (!Found && (ofn.lpstrFile[i] != TEXT('\0'))) { + if ((ofn.lpstrFile[i] == TEXT(':')) || (ofn.lpstrFile[i] == TEXT('\\'))) + Found = TRUE; + i++; + } + + lstrcpy(FilePath, TEXT("")); + + if (!Found) + lstrcpy(FilePath, TEXT(".\\")); + + lstrcat(FilePath, ofn.lpstrFile); + return 0L; + } else { + // Couldn't open the dang file + return 1L; + } + +} // UserFileGet + + +/*+-------------------------------------------------------------------------+ + | DlgUsers_TrustedSetup() + | + +-------------------------------------------------------------------------+*/ +void DlgUsers_TrustedSetup(HWND hDlg) { + HWND hCtrl; + ULONG i; + static TRUSTED_DOMAIN_LIST *TList = NULL; + + NTTrustedDomainsEnum(DestServ, &TList); + + if (TList != NULL) { + hCtrl = GetDlgItem(hDlg, IDC_TRUSTED); + + for (i = 0; i < TList->Count; i++) + SendMessage(hCtrl, CB_ADDSTRING, (WPARAM) 0, (LPARAM) TList->Name[i]); + + } + + EnableWindow(GetDlgItem(hDlg, IDC_ADVANCED), FALSE); + ShowArea(FALSE, hDlg, GetDlgItem(hDlg, IDC_DEFAULTBOX)); + + // Toggle the advanced controls based on the main user toggle + hCtrl = GetDlgItem(hDlg, IDC_CHKUSERS); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) { + hCtrl = GetDlgItem(hDlg, IDC_CHKTRUSTED); + EnableWindow(hCtrl, TRUE); + + hCtrl = GetDlgItem(hDlg, IDC_TRUSTED); + EnableWindow(hCtrl, TRUE); + SetFocus(GetDlgItem(hDlg, IDC_CHKTRUSTED)); + } else { + hCtrl = GetDlgItem(hDlg, IDC_CHKTRUSTED); + EnableWindow(hCtrl, FALSE); + + hCtrl = GetDlgItem(hDlg, IDC_TRUSTED); + EnableWindow(hCtrl, FALSE); + SetFocus(GetDlgItem(hDlg, IDHELP)); + } + + + if ((TList == NULL) || (TList->Count = 0)) { + EnableWindow(GetDlgItem(hDlg, IDC_CHKTRUSTED), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_TRUSTED), FALSE); + SetFocus(GetDlgItem(hDlg, IDHELP)); + } else { + // Select the trusted domain (or first one if none currently selected) + if (CurrentConvertOptions->TrustedDomain != NULL) + SendMessage(GetDlgItem(hDlg, IDC_TRUSTED), CB_SELECTSTRING, (WPARAM) -1, (LPARAM) CurrentConvertOptions->TrustedDomain->Name); + else + SendMessage(GetDlgItem(hDlg, IDC_TRUSTED), CB_SETCURSEL, 0, 0); + + // if the checkbox is set then enable the edit field + if (!CurrentConvertOptions->UseTrustedDomain) + EnableWindow(GetDlgItem(hDlg, IDC_TRUSTED), FALSE); + + } + + // Free up the list as we don't need it anymore (it is in the combo-box) + if (TList) { + FreeMemory(TList); + TList = NULL; + } + +} // DlgUsers_TrustedSetup + + +/*+-------------------------------------------------------------------------+ + | MappingFileEdit() + | + +-------------------------------------------------------------------------+*/ +BOOL MappingFileEdit(HWND hDlg) { + HWND hCtrl; + static TCHAR MappingFile[MAX_PATH + 1]; + static char FileNameA[MAX_PATH + 1]; + static char CmdLine[MAX_PATH + 1 + 12]; // Editor + file + TCHAR drive[MAX_DRIVE + 1]; + TCHAR dir[MAX_PATH + 1]; + TCHAR fname[MAX_PATH + 1]; + TCHAR ext[_MAX_EXT + 1]; + HANDLE hFile; + UINT uReturn; + BOOL ret = TRUE; + BOOL Browse = FALSE; + + do { + // First check filename + hCtrl = GetDlgItem(hDlg, IDC_MAPPINGFILE); + * (WORD *)MappingFile = sizeof(MappingFile); + SendMessage(hCtrl, EM_GETLINE, 0, (LPARAM) MappingFile); + lsplitpath(MappingFile, drive, dir, fname, ext); + + // Make sure a file name is specified + if (Browse || (lstrlen(fname) == 0)) { + // No name was specified, so let the user browse for a file + if (!UserFileGet(hDlg, MappingFile)) { + hCtrl = GetDlgItem(hDlg, IDC_MAPPINGFILE); + SendMessage(hCtrl, WM_SETTEXT, 0, (LPARAM) MappingFile); + SetFocus(hCtrl); + lsplitpath(MappingFile, drive, dir, fname, ext); + } else + return FALSE; + } + + Browse = FALSE; + + // remake path so it is fully qualified + if ((drive[0] == TEXT('\0')) && (dir[0] == TEXT('\0'))) + lstrcpy(dir, ProgPath); + + if (ext[0] == TEXT('\0')) + lstrcpy(ext, Lids(IDS_S_36)); + + lmakepath(MappingFile, drive, dir, fname, ext); + + // Now make sure the file exists and is accessible + + WideCharToMultiByte(CP_ACP, 0, MappingFile, -1, FileNameA, sizeof(FileNameA), NULL, NULL); + + hFile = CreateFileA( FileNameA, GENERIC_READ, 0, + NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); + + if (hFile == INVALID_HANDLE_VALUE) { + // Couldn't open the file, report to user + if (MessageBox(hDlg, Lids(IDS_NOEDITMAP), Lids(IDS_TXTWARNING), MB_YESNO | MB_ICONQUESTION) == IDYES) + Browse = TRUE; + else { + // get out of loop as nothing more to do + hCtrl = GetDlgItem(hDlg, IDC_MAPPINGFILE); + SetFocus(hCtrl); + ret = FALSE; + } + } else { + // Could create a new file so make the mapping file... + CloseHandle(hFile); + CursorHourGlass(); + wsprintfA(CmdLine, "Notepad %s", FileNameA); + uReturn = WinExec(CmdLine, SW_SHOW); + CursorNormal(); + } + + } while (Browse); + + // Check mapping file check-box, if it's not check'd then do so + if (ret) { + hCtrl = GetDlgItem(hDlg, IDC_CHKMAPPING); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) != 1) + SendMessage(hCtrl, BM_SETCHECK, 1, 0); + } + + return ret; + +} // MappingFileEdit + + +/*+-------------------------------------------------------------------------+ + | DlgUsers() + | + +-------------------------------------------------------------------------+*/ +LRESULT CALLBACK DlgUsers(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { + HWND hCtrl; + int wmId, wmEvent; + static short UserNameTab, GroupNameTab, PasswordsTab, DefaultsTab; + static BOOL TrustedEnabled; + TCHAR TrustedDomain[MAX_PATH + 1]; + static TCHAR MappingFile[MAX_PATH + 1]; + DWORD dwIndex; + + switch (message) { + + case WM_INITDIALOG: + // Center the dialog over the application window + CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER)); + + // Setup for Advanced >> button + ShowArea(TRUE, hDlg, GetDlgItem(hDlg, IDC_DEFAULTBOX)); + TrustedEnabled = FALSE; + + // Need to set the check and radio buttons to correct state... + UserDialogSetup(hDlg); + + hCtrl = GetDlgItem( hDlg, IDC_TABUSERS ); + + PasswordsTab = BookTab_AddItem( hCtrl, Lids(IDS_S_38) ); + BookTab_SetItemData( hCtrl, PasswordsTab, 1001 ); + + UserNameTab = BookTab_AddItem( hCtrl, Lids(IDS_S_39) ); + BookTab_SetItemData( hCtrl, UserNameTab, 1002 ); + + GroupNameTab = BookTab_AddItem( hCtrl, Lids(IDS_S_40) ); + BookTab_SetItemData( hCtrl, GroupNameTab, 1003 ); + + DefaultsTab = BookTab_AddItem( hCtrl, Lids(IDS_S_41) ); + BookTab_SetItemData( hCtrl, DefaultsTab, 1004 ); + + BookTab_SetCurSel(hCtrl, PasswordsTab); + + // now need to reset the Advanced button to the correct state and also the + // Advanced display area... + if (CurrentConvertOptions->UseTrustedDomain) { + TrustedEnabled = TRUE; + DlgUsers_TrustedSetup(hDlg); + } + + // Weirdness to initially enable controls on the tab control - + // looks like a bug in the tab control. + SetFocus(hCtrl); + hCtrl = GetDlgItem( hDlg, IDOK ); + SetFocus(hCtrl); + PostMessage(hDlg, BTN_SELCHANGE, 0, 0); + + return (TRUE); + + case BTN_SELCHANGE: + + hCtrl = GetDlgItem( hDlg, IDC_TABUSERS ); + TabSelection = BookTab_GetCurSel(hCtrl); + + if (TabSelection == UserNameTab) { + Passwords_Toggle(hDlg, FALSE); + Defaults_Toggle(hDlg, FALSE); + DuplicateGroups_Toggle(hDlg, FALSE); + DuplicateUsers_Toggle(hDlg, TRUE); + } + + if (TabSelection == GroupNameTab) { + Passwords_Toggle(hDlg, FALSE); + Defaults_Toggle(hDlg, FALSE); + DuplicateUsers_Toggle(hDlg, FALSE); + DuplicateGroups_Toggle(hDlg, TRUE); + } + + if (TabSelection == PasswordsTab) { + DuplicateUsers_Toggle(hDlg, FALSE); + Defaults_Toggle(hDlg, FALSE); + DuplicateGroups_Toggle(hDlg, FALSE); + Passwords_Toggle(hDlg, TRUE); + } + + if (TabSelection == DefaultsTab) { + Passwords_Toggle(hDlg, FALSE); + DuplicateUsers_Toggle(hDlg, FALSE); + DuplicateGroups_Toggle(hDlg, FALSE); + Defaults_Toggle(hDlg, TRUE); + } + + return (TRUE); + + case WM_COMMAND: + wmId = LOWORD(wParam); + wmEvent = HIWORD(wParam); + + switch (wmId) { + case IDOK: + if (UserDialogVerify(hDlg)) { + UserDialogSave(hDlg); + EndDialog(hDlg, 0); + } + + return (TRUE); + break; + + case IDCANCEL: + EndDialog(hDlg, 0); + return (TRUE); + break; + + case IDHELP: + if (TrustedEnabled) + WinHelp(hDlg, HELP_FILE, HELP_CONTEXT, (DWORD) IDC_HELP_USERADV); + else + WinHelp(hDlg, HELP_FILE, HELP_CONTEXT, (DWORD) IDC_HELP_USER); + + return (TRUE); + break; + + case IDC_ADVANCED: + TrustedEnabled = TRUE; + DlgUsers_TrustedSetup(hDlg); + return (TRUE); + break; + + case IDC_CHKUSERS: + hCtrl = GetDlgItem(hDlg, IDC_CHKUSERS); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + UserDialogToggle(hDlg, TRUE); + else + UserDialogToggle(hDlg, FALSE); + + PostMessage(hDlg, BTN_SELCHANGE, 0, 0); + return (TRUE); + break; + + case IDC_CHKMAPPING: + hCtrl = GetDlgItem(hDlg, IDC_CHKMAPPING); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) + Mapping_Toggle(hDlg, FALSE); + else + Mapping_Toggle(hDlg, TRUE); + + return (TRUE); + break; + + case IDC_CHKTRUSTED: + hCtrl = GetDlgItem(hDlg, IDC_CHKTRUSTED); + if (SendMessage(hCtrl, BM_GETCHECK, 0, 0) == 1) { + hCtrl = GetDlgItem(hDlg, IDC_TRUSTED); + EnableWindow(hCtrl, TRUE); + + // Get trusted domain + dwIndex = SendMessage(hCtrl, CB_GETCURSEL, 0, 0); + if (dwIndex != CB_ERR) { + // Get the domain name and then try to add it to our lists + SendMessage(hCtrl, CB_GETLBTEXT, (WPARAM) dwIndex, (LPARAM) TrustedDomain); + CurrentConvertOptions->TrustedDomain = NTTrustedDomainSet(hDlg, DestServ, TrustedDomain); + CurrentConvertOptions->UseTrustedDomain = TRUE; + } else + CurrentConvertOptions->UseTrustedDomain = FALSE; + + } else { + hCtrl = GetDlgItem(hDlg, IDC_TRUSTED); + EnableWindow(hCtrl, FALSE); + CurrentConvertOptions->UseTrustedDomain = FALSE; + } + + // Toggled trust relationship so setup FPNW info accordingly + FPNWChk = IsFPNW(UserServerNameGet(DServ, CurrentConvertOptions)); + if (TabSelection == DefaultsTab) + Defaults_Toggle(hDlg, TRUE); + + return (TRUE); + break; + + case IDC_TRUSTED: + if (wmEvent == CBN_SELCHANGE) { + // A new trusted domain was selected, update FPNW flag + hCtrl = GetDlgItem(hDlg, IDC_TRUSTED); + EnableWindow(hCtrl, TRUE); + + // Get trusted domain + dwIndex = SendMessage(hCtrl, CB_GETCURSEL, 0, 0); + if (dwIndex != CB_ERR) { + // Get the domain name and then try to add it to our lists + SendMessage(hCtrl, CB_GETLBTEXT, (WPARAM) dwIndex, (LPARAM) TrustedDomain); + CurrentConvertOptions->TrustedDomain = NTTrustedDomainSet(hDlg, DestServ, TrustedDomain); + CurrentConvertOptions->UseTrustedDomain = TRUE; + } else + CurrentConvertOptions->UseTrustedDomain = FALSE; + + FPNWChk = IsFPNW(UserServerNameGet(DServ, CurrentConvertOptions)); + CurrentConvertOptions->NetWareInfo = FPNWChk; + + if (TabSelection == DefaultsTab) + Defaults_Toggle(hDlg, TRUE); + + } + break; + + case IDC_BTNMAPPINGFILE: + // Get anything in the text box + hCtrl = GetDlgItem(hDlg, IDC_MAPPINGFILE); + * (WORD *)MappingFile = sizeof(MappingFile); + SendMessage(hCtrl, EM_GETLINE, 0, (LPARAM) MappingFile); + + // invoke the creation routine + MapFileCreate(hDlg, MappingFile, SourceServ); + + // reset edit-box to whatever the returned filename is + SendMessage(hCtrl, WM_SETTEXT, 0, (LPARAM) MappingFile); + + if (SendMessage(hCtrl, EM_LINELENGTH, 0, 0)) { + hCtrl = GetDlgItem(hDlg, IDC_CHKMAPPING); + SendMessage(hCtrl, BM_SETCHECK, 1, 0); + } else { + hCtrl = GetDlgItem(hDlg, IDC_CHKMAPPING); + SendMessage(hCtrl, BM_SETCHECK, 0, 0); + } + + return (TRUE); + break; + + case IDC_BTNMAPPINGEDIT: + MappingFileEdit(hDlg); + return (TRUE); + break; + + case IDC_PWCONST: + + if (wmEvent == EN_CHANGE) + CheckRadioButton(hDlg, IDC_RADIO1, IDC_RADIO3, IDC_RADIO3); + + break; + + case IDC_USERCONST: + + if (wmEvent == EN_CHANGE) + CheckRadioButton(hDlg, IDC_RADIO4, IDC_RADIO7, IDC_RADIO7); + + break; + + case IDC_GROUPCONST: + + if (wmEvent == EN_CHANGE) + CheckRadioButton(hDlg, IDC_RADIO8, IDC_RADIO10, IDC_RADIO10); + + break; + + } + break; + } + + return (FALSE); // Didn't process the message + + lParam; +} // DlgUsers + + + +/*+-------------------------------------------------------------------------+ + | UserOptions_Do() + | + +-------------------------------------------------------------------------+*/ +void UserOptions_Do(HWND hDlg, void *ConvOptions, SOURCE_SERVER_BUFFER *SourceServer, DEST_SERVER_BUFFER *DestServer) { + DLGPROC lpfnDlg; + + SServ = SourceServer; + DServ = DestServer; + SourceServ = SourceServer->Name; + DestServ = DestServer->Name; + + FPNWChk = DServ->IsFPNW; + CurrentConvertOptions = (CONVERT_OPTIONS *) ConvOptions; + lpfnDlg = MakeProcInstance((DLGPROC)DlgUsers, hInst); + DialogBox(hInst, TEXT("DlgNewUsers"), hDlg, lpfnDlg) ; + FreeProcInstance(lpfnDlg); +} // UserOptions_Do + |