569 lines
19 KiB
C
569 lines
19 KiB
C
/*
|
|
+-------------------------------------------------------------------------+
|
|
| Status Dialog box routines - Used during Conversion |
|
|
+-------------------------------------------------------------------------+
|
|
| (c) Copyright 1993-1994 |
|
|
| Microsoft Corp. |
|
|
| All rights reserved |
|
|
| |
|
|
| Program : [StatBox.c] |
|
|
| Programmer : Arthur Hanson |
|
|
| Original Program Date : [Feb 08, 1994] |
|
|
| Last Update : [Feb 08, 1994] |
|
|
| |
|
|
| Version: 1.00 |
|
|
| |
|
|
| Description: |
|
|
| |
|
|
| History: |
|
|
| arth Feb 08, 1994 1.00 Original Version. |
|
|
| |
|
|
+-------------------------------------------------------------------------+
|
|
*/
|
|
|
|
|
|
#include "globals.h"
|
|
#include "convapi.h"
|
|
|
|
static TCHAR tmpStr[1024];
|
|
static TCHAR PanelTitle[80];
|
|
static HANDLE hStatus = NULL;
|
|
static HANDLE hPanel = NULL;
|
|
static BOOL DoCancel = FALSE;
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Routines for status dialog put up during conversion. |
|
|
+-------------------------------------------------------------------------+*/
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| DrainPump()
|
|
+-------------------------------------------------------------------------+*/
|
|
void DrainPump() {
|
|
MSG msg;
|
|
|
|
while (PeekMessage(&msg, hStatus, 0, 0xfff, PM_REMOVE)) {
|
|
if ((IsDialogMessage(hStatus, &msg) == FALSE) &&
|
|
(IsDialogMessage(hPanel, &msg) == FALSE)) {
|
|
TranslateMessage(&msg);
|
|
DispatchMessage(&msg);
|
|
}
|
|
}
|
|
|
|
} // DrainPump
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_CurConv()
|
|
+-------------------------------------------------------------------------+*/
|
|
// Current server pair being converted
|
|
void Status_CurConv(UINT Num) {
|
|
wsprintf(tmpStr, TEXT("%5u"), Num);
|
|
SendDlgItemMessage(hStatus, IDC_S_CUR_CONV, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_CurConv
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_TotConv()
|
|
+-------------------------------------------------------------------------+*/
|
|
// Total number of server pairs to convert
|
|
void Status_TotConv(UINT Num) {
|
|
wsprintf(tmpStr, TEXT("%5u"), Num);
|
|
SendDlgItemMessage(hStatus, IDC_S_TOT_CONV, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_TotConv
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_SrcServ()
|
|
+-------------------------------------------------------------------------+*/
|
|
// Current source server of server pair being converted
|
|
void Status_SrcServ(LPTSTR Server) {
|
|
wsprintf(tmpStr, TEXT("%-15s"), Server);
|
|
SendDlgItemMessage(hStatus, IDC_S_SRCSERV, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_SrcServ
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_DestServ()
|
|
+-------------------------------------------------------------------------+*/
|
|
// Current destination server of server pair being converted
|
|
void Status_DestServ(LPTSTR Server) {
|
|
wsprintf(tmpStr, TEXT("%-15s"), Server);
|
|
SendDlgItemMessage(hStatus, IDC_S_DESTSERV, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_DestServ
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_ConvTxt()
|
|
+-------------------------------------------------------------------------+*/
|
|
// Text describing what is being converted (Groups, Users Files)
|
|
void Status_ConvTxt(LPTSTR Text) {
|
|
wsprintf(tmpStr, TEXT("%-20s"), Text);
|
|
SendDlgItemMessage(hStatus, IDC_S_CONVTXT, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_ConvTxt
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_CurNum()
|
|
+-------------------------------------------------------------------------+*/
|
|
// Current item number being converted (current group # or User # or file #)...
|
|
void Status_CurNum(UINT Num) {
|
|
wsprintf(tmpStr, TEXT("%7s"), lToStr(Num));
|
|
SendDlgItemMessage(hStatus, IDC_S_CUR_NUM, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_CurNum
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_CurTot()
|
|
+-------------------------------------------------------------------------+*/
|
|
// Total items in set being converted (user, group, files...)
|
|
void Status_CurTot(UINT Num) {
|
|
wsprintf(tmpStr, TEXT("%7s"), lToStr(Num));
|
|
SendDlgItemMessage(hStatus, IDC_S_CUR_TOT, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_CurTot
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_ItemLabel()
|
|
+-------------------------------------------------------------------------+*/
|
|
// Label for set being converted ("Group:", "User:")
|
|
void Status_ItemLabel(LPTSTR Text, ...) {
|
|
va_list marker;
|
|
|
|
va_start(marker, Text);
|
|
|
|
wvsprintf(tmpStr, Text, marker);
|
|
SendDlgItemMessage(hStatus, IDC_S_ITEMLABEL, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
|
|
va_end(marker);
|
|
|
|
} // Status_ItemLabel
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_Item()
|
|
+-------------------------------------------------------------------------+*/
|
|
// Name of current thing being converted (actual user or group name)
|
|
void Status_Item(LPTSTR Text) {
|
|
wsprintf(tmpStr, TEXT("%-15s"), Text);
|
|
SendDlgItemMessage(hStatus, IDC_S_STATUSITEM, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_Item
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_TotComplete()
|
|
+-------------------------------------------------------------------------+*/
|
|
// Total #server pairs converted so far
|
|
void Status_TotComplete(UINT Num) {
|
|
wsprintf(tmpStr, TEXT("%7s"), lToStr(Num));
|
|
SendDlgItemMessage(hStatus, IDC_S_TOT_COMP, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_TotComplete
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_TotGroups()
|
|
+-------------------------------------------------------------------------+*/
|
|
void Status_TotGroups(UINT Num) {
|
|
wsprintf(tmpStr, TEXT("%7s"), lToStr(Num));
|
|
SendDlgItemMessage(hStatus, IDC_S_TOT_GROUPS, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_TotGroup
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_TotUsers()
|
|
+-------------------------------------------------------------------------+*/
|
|
void Status_TotUsers(UINT Num) {
|
|
wsprintf(tmpStr, TEXT("%7s"), lToStr(Num));
|
|
SendDlgItemMessage(hStatus, IDC_S_TOT_USERS, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_TotUsers
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_TotFiles()
|
|
+-------------------------------------------------------------------------+*/
|
|
void Status_TotFiles(UINT Num) {
|
|
wsprintf(tmpStr, TEXT("%7s"), lToStr(Num));
|
|
SendDlgItemMessage(hStatus, IDC_S_TOT_FILES, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_TotFiles
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_TotErrors()
|
|
+-------------------------------------------------------------------------+*/
|
|
void Status_TotErrors(UINT Num) {
|
|
wsprintf(tmpStr, TEXT("%7s"), lToStr(Num));
|
|
SendDlgItemMessage(hStatus, IDC_S_TOT_ERRORS, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_TotErrors
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_BytesTxt()
|
|
+-------------------------------------------------------------------------+*/
|
|
void Status_BytesTxt(LPTSTR Text) {
|
|
wsprintf(tmpStr, TEXT("%-15s"), Text);
|
|
SendDlgItemMessage(hStatus, IDC_PANEL1, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_BytesTxt
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_Bytes()
|
|
+-------------------------------------------------------------------------+*/
|
|
void Status_Bytes(LPTSTR Text) {
|
|
wsprintf(tmpStr, TEXT("%s"), Text);
|
|
SendDlgItemMessage(hStatus, IDC_PANEL2, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_Bytes
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_TotBytes()
|
|
+-------------------------------------------------------------------------+*/
|
|
void Status_TotBytes(LPTSTR Text) {
|
|
wsprintf(tmpStr, TEXT("%s"), Text);
|
|
SendDlgItemMessage(hStatus, IDC_PANEL3, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_TotBytes
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Status_BytesSep()
|
|
+-------------------------------------------------------------------------+*/
|
|
void Status_BytesSep(LPTSTR Text) {
|
|
wsprintf(tmpStr, TEXT("%s"), Text);
|
|
SendDlgItemMessage(hStatus, IDC_PANEL4, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
} // Status_BytesSep
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| DlgStatus()
|
|
+-------------------------------------------------------------------------+*/
|
|
LRESULT CALLBACK DlgStatus(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {
|
|
RECT rc;
|
|
|
|
switch (message) {
|
|
case WM_INITDIALOG:
|
|
// Center the dialog over the application window
|
|
CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));
|
|
return (TRUE);
|
|
|
|
case WM_SETFOCUS:
|
|
GetWindowRect(hDlg, &rc);
|
|
InvalidateRect(hDlg, &rc, FALSE);
|
|
SendMessage(hStatus, WM_PAINT, 0, 0L);
|
|
break;
|
|
}
|
|
|
|
return (FALSE); // Didn't process the message
|
|
|
|
lParam;
|
|
} // DlgStatus
|
|
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| DoStatusDlg()
|
|
+-------------------------------------------------------------------------+*/
|
|
void DoStatusDlg(HWND hDlg) {
|
|
DLGPROC lpfnDlg;
|
|
|
|
lpfnDlg = MakeProcInstance((DLGPROC)DlgStatus, hInst);
|
|
hStatus = CreateDialog(hInst, TEXT("StatusDlg"), hDlg, lpfnDlg) ;
|
|
FreeProcInstance(lpfnDlg);
|
|
|
|
} // DoStatusDlg
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| StatusDlgKill()
|
|
+-------------------------------------------------------------------------+*/
|
|
void StatusDlgKill() {
|
|
DestroyWindow(hStatus);
|
|
hStatus = NULL;
|
|
|
|
} // StatusDlgKill
|
|
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Information (Panel) Dialog Routines |
|
|
+-------------------------------------------------------------------------+*/
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Panel_Line()
|
|
+-------------------------------------------------------------------------+*/
|
|
void Panel_Line(int Line, LPTSTR szFormat, ...) {
|
|
va_list marker;
|
|
|
|
if (hPanel == NULL)
|
|
return;
|
|
|
|
va_start(marker, szFormat);
|
|
|
|
wvsprintf(tmpStr, szFormat, marker);
|
|
tmpStr[60] = TEXT('\0');
|
|
SendDlgItemMessage(hPanel, IDC_PANEL1 - 1 + Line, WM_SETTEXT, 0, (LPARAM) tmpStr);
|
|
SendMessage(hPanel, WM_PAINT, 0, 0L);
|
|
DrainPump();
|
|
|
|
va_end(marker);
|
|
|
|
} // Panel_ConvTxt
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Panel_Cancel()
|
|
+-------------------------------------------------------------------------+*/
|
|
BOOL Panel_Cancel() {
|
|
|
|
if ((hPanel == NULL) || !DoCancel)
|
|
return FALSE;
|
|
|
|
return TRUE;
|
|
|
|
} // Panel_Cancel
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| DlgPanel()
|
|
+-------------------------------------------------------------------------+*/
|
|
LRESULT CALLBACK DlgPanel(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {
|
|
int wmId, wmEvent;
|
|
RECT rc;
|
|
|
|
switch (message) {
|
|
case WM_INITDIALOG:
|
|
// Center the dialog over the application window
|
|
DoCancel = FALSE;
|
|
CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));
|
|
SendMessage(hDlg, WM_SETTEXT, (WPARAM) 0, (LPARAM) PanelTitle);
|
|
return (TRUE);
|
|
|
|
case WM_SETFOCUS:
|
|
GetWindowRect(hDlg, &rc);
|
|
InvalidateRect(hDlg, &rc, FALSE);
|
|
SendMessage(hPanel, WM_PAINT, 0, 0L);
|
|
break;
|
|
|
|
case WM_COMMAND:
|
|
wmId = LOWORD(wParam);
|
|
wmEvent = HIWORD(wParam);
|
|
|
|
switch (wmId) {
|
|
case IDCANCEL:
|
|
DoCancel = TRUE;
|
|
return (TRUE);
|
|
|
|
break;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
return (FALSE); // Didn't process the message
|
|
|
|
lParam;
|
|
} // DlgPanel
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| PanelDlg_Do()
|
|
+-------------------------------------------------------------------------+*/
|
|
void PanelDlg_Do(HWND hDlg, LPTSTR Title) {
|
|
DLGPROC lpfnDlg;
|
|
|
|
lstrcpy(PanelTitle, Title);
|
|
lpfnDlg = MakeProcInstance((DLGPROC)DlgPanel, hInst);
|
|
hPanel = CreateDialog(hInst, TEXT("PanelDLG"), hDlg, lpfnDlg) ;
|
|
FreeProcInstance(lpfnDlg);
|
|
|
|
} // PanelDlg_Do
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| PanelDlgKill()
|
|
+-------------------------------------------------------------------------+*/
|
|
void PanelDlgKill() {
|
|
|
|
if (hPanel == NULL)
|
|
return;
|
|
|
|
DestroyWindow(hPanel);
|
|
hPanel = NULL;
|
|
DoCancel = FALSE;
|
|
|
|
} // PanelDlgKill
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| Name Error Dialog (User and Group) |
|
|
+-------------------------------------------------------------------------+*/
|
|
|
|
static TCHAR OldName[60];
|
|
static TCHAR NewName[60];
|
|
static LPTSTR DlgTitle;
|
|
static LPTSTR NameErrorProblem;
|
|
static ULONG RetType;
|
|
static ULONG MaxNameLen;
|
|
/*+-------------------------------------------------------------------------+
|
|
| NameErrorDlg()
|
|
|
|
|
+-------------------------------------------------------------------------+*/
|
|
LRESULT CALLBACK NameErrorDlg(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {
|
|
int wmId, wmEvent;
|
|
|
|
switch (message) {
|
|
case WM_INITDIALOG:
|
|
// Center the dialog over the application window
|
|
CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));
|
|
|
|
// Init all the display fields
|
|
SendMessage(hDlg, WM_SETTEXT, (WPARAM) 0, (LPARAM) DlgTitle);
|
|
SendMessage(GetDlgItem(hDlg, IDC_OLDNAME), WM_SETTEXT, (WPARAM) 0, (LPARAM) OldName);
|
|
SendMessage(GetDlgItem(hDlg, IDC_NEWNAME), WM_SETTEXT, (WPARAM) 0, (LPARAM) NewName);
|
|
SendMessage(GetDlgItem(hDlg, IDC_PANEL1), WM_SETTEXT, (WPARAM) 0, (LPARAM) NameErrorProblem);
|
|
|
|
// limit the name length
|
|
PostMessage(GetDlgItem(hDlg, IDC_NEWNAME), EM_LIMITTEXT, (WPARAM) MaxNameLen, 0);
|
|
return (TRUE);
|
|
|
|
case WM_COMMAND:
|
|
wmId = LOWORD(wParam);
|
|
wmEvent = HIWORD(wParam);
|
|
|
|
switch (wmId) {
|
|
case IDABORT:
|
|
// This will cancel the conversion - but need to check with the user
|
|
// if this is what they really want to do
|
|
if (MessageBox(hDlg, Lids(IDS_E_15), Lids(IDS_E_16), MB_YESNO) == IDYES) {
|
|
RetType = (ULONG) IDABORT;
|
|
EndDialog(hDlg, 0);
|
|
}
|
|
|
|
return (TRUE);
|
|
break;
|
|
|
|
case IDRETRY:
|
|
* (WORD *)NewName = (WORD) MaxNameLen + 1;
|
|
SendMessage(GetDlgItem(hDlg, IDC_NEWNAME), EM_GETLINE, 0, (LPARAM) NewName);
|
|
RetType = (ULONG) IDRETRY;
|
|
EndDialog(hDlg, 0);
|
|
return (TRUE);
|
|
break;
|
|
|
|
case IDIGNORE:
|
|
RetType = (ULONG) IDCANCEL;
|
|
EndDialog(hDlg, 0);
|
|
return (TRUE);
|
|
break;
|
|
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
return (FALSE); // Didn't process the message
|
|
|
|
lParam;
|
|
} // NameErrorDlg
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| UserNameErrorDlg_Do()
|
|
|
|
|
+-------------------------------------------------------------------------+*/
|
|
ULONG UserNameErrorDlg_Do(LPTSTR Title, LPTSTR Problem, USER_BUFFER *User) {
|
|
DLGPROC lpfnDlg;
|
|
|
|
lstrcpy(OldName, User->Name);
|
|
lstrcpy(NewName, User->NewName);
|
|
MaxNameLen = MAX_USER_NAME_LEN;
|
|
|
|
DlgTitle = Title;
|
|
NameErrorProblem = Problem;
|
|
lpfnDlg = MakeProcInstance((DLGPROC) NameErrorDlg, hInst);
|
|
CursorNormal();
|
|
DialogBox(hInst, TEXT("NameError"), hStatus, lpfnDlg) ;
|
|
CursorHourGlass();
|
|
FreeProcInstance(lpfnDlg);
|
|
|
|
if (RetType == IDRETRY) {
|
|
User->err = 0;
|
|
lstrcpy(User->NewName, NewName);
|
|
|
|
// if the name is different then flag that it is a new name
|
|
if (lstrcmpi(User->NewName, User->Name))
|
|
User->IsNewName = TRUE;
|
|
}
|
|
|
|
return RetType;
|
|
|
|
} // UserNameErrorDlg_Do
|
|
|
|
|
|
/*+-------------------------------------------------------------------------+
|
|
| GroupNameErrorDlg_Do()
|
|
|
|
|
+-------------------------------------------------------------------------+*/
|
|
ULONG GroupNameErrorDlg_Do(LPTSTR Title, LPTSTR Problem, GROUP_BUFFER *Group) {
|
|
DLGPROC lpfnDlg;
|
|
|
|
lstrcpy(OldName, Group->Name);
|
|
lstrcpy(NewName, Group->NewName);
|
|
MaxNameLen = MAX_NT_GROUP_NAME_LEN;
|
|
|
|
DlgTitle = Title;
|
|
NameErrorProblem = Problem;
|
|
lpfnDlg = MakeProcInstance((DLGPROC) NameErrorDlg, hInst);
|
|
CursorNormal();
|
|
DialogBox(hInst, TEXT("NameError"), hStatus, lpfnDlg) ;
|
|
CursorHourGlass();
|
|
FreeProcInstance(lpfnDlg);
|
|
|
|
if (RetType == IDRETRY) {
|
|
Group->err = 0;
|
|
lstrcpy(Group->NewName, NewName);
|
|
|
|
// if the name is different then flag that it is a new name
|
|
if (lstrcmpi(Group->NewName, Group->Name))
|
|
Group->IsNewName = TRUE;
|
|
}
|
|
|
|
return RetType;
|
|
|
|
} // GroupNameErrorDlg_Do
|
|
|
|
|