mirror of https://github.com/tongzx/nt5src
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.
684 lines
23 KiB
684 lines
23 KiB
#include "stdafx.h"
|
|
#include "reginfo.h"
|
|
|
|
int CRegInfo::Valid()
|
|
{
|
|
DWORD dwRes;
|
|
DWORD dwType;
|
|
|
|
if (ERROR_SUCCESS != RegCreateKeyEx(HKEY_CURRENT_USER,
|
|
TEXT("Software\\Microsoft\\Handwriting\\Collection"),
|
|
0, TEXT("REG_SZ"), REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &m_hkRoot, &dwRes))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return REGINFO_FATAL_ERROR;
|
|
}
|
|
|
|
dwRes = sizeof(m_szLang);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Language"), NULL, &dwType, (BYTE *) &m_szLang, &dwRes)) || (dwType != REG_SZ))
|
|
return REGINFO_FAILURE;
|
|
|
|
return REGINFO_SUCCESS;
|
|
}
|
|
|
|
void CRegInfo::Clean()
|
|
{
|
|
if (m_pusers != (USERNAME *) NULL)
|
|
{
|
|
free(m_pusers);
|
|
m_pusers = (USERNAME *) NULL;
|
|
}
|
|
|
|
if (m_pquest != (QUESTION *) NULL)
|
|
{
|
|
int iQuest = 0;
|
|
|
|
while (m_pquest[iQuest].pszQuestion)
|
|
{
|
|
free(m_pquest[iQuest].pszQuestion);
|
|
iQuest++;
|
|
}
|
|
|
|
free(m_pquest);
|
|
m_pquest = (QUESTION *) NULL;
|
|
}
|
|
|
|
RegCloseKey(m_hkRoot);
|
|
}
|
|
|
|
int CountLines(FILE *fp)
|
|
{
|
|
int cLines = 0;
|
|
char ach[256];
|
|
|
|
while (!feof(fp))
|
|
{
|
|
fgets(ach, 256, fp);
|
|
cLines++;
|
|
}
|
|
|
|
fseek(fp, 0, SEEK_SET);
|
|
|
|
return cLines;
|
|
}
|
|
|
|
void CRegInfo::ReadUserList()
|
|
{
|
|
// Open the file and count the lines
|
|
|
|
FILE *fp = _tfopen(m_szUser, TEXT("r"));
|
|
|
|
if (fp == (FILE *) NULL)
|
|
return;
|
|
|
|
int cUser = CountLines(fp);
|
|
|
|
if ((m_pusers = (USERNAME *) malloc(sizeof(USERNAME) * cUser)) == (USERNAME *) NULL)
|
|
return;
|
|
|
|
cUser--;
|
|
|
|
// Note: the USERS.TXT file is stored in ANSI, convert to UNICODE while reading it into memory
|
|
|
|
char ach[256];
|
|
int iUser;
|
|
int cch;
|
|
int ich;
|
|
|
|
for (iUser = 0; iUser < cUser; iUser++)
|
|
{
|
|
fgets(ach, 256, fp);
|
|
cch = strlen(ach) - 1; // Trim the NEWLINE
|
|
|
|
for (ich = 0; ich < cch; ich++)
|
|
m_pusers[iUser][ich] = (TCHAR) ach[ich];
|
|
|
|
m_pusers[iUser][cch] = (TCHAR) 0;
|
|
}
|
|
|
|
m_pusers[cUser][0] = 0; // Terminates the list
|
|
fclose(fp);
|
|
}
|
|
|
|
void CRegInfo::ReadQuestionList()
|
|
{
|
|
|
|
// Open the file and count the lines
|
|
FILE *fp = _tfopen(m_szQuest, TEXT("r"));
|
|
|
|
if (fp == (FILE *) NULL)
|
|
return;
|
|
|
|
int cQuest = CountLines(fp);
|
|
|
|
if ((m_pquest = (QUESTION *) malloc(sizeof(QUESTION) * cQuest)) == (QUESTION *) NULL)
|
|
return ;
|
|
|
|
cQuest--;
|
|
|
|
// Note: the QUEST.TXT file is stored in ANSI, convert to UNICODE while reading it into memory
|
|
|
|
char ach[256];
|
|
char *pch;
|
|
int iQuest;
|
|
int cch;
|
|
int ich;
|
|
int jch;
|
|
|
|
for (iQuest = 0; iQuest < cQuest; iQuest++)
|
|
{
|
|
// Set the index
|
|
|
|
m_pquest[iQuest].nIndex = iQuest;
|
|
|
|
// Read the question from the file
|
|
|
|
fgets(ach, 256, fp);
|
|
cch = strlen(ach) - 1;
|
|
ach[cch] = '\0'; // Trim the NEWLINE
|
|
|
|
// The question is stored in the form LONG FORM OF QUESTION TEXT%SHORT FORM%BOOLEAN
|
|
// Find the first % character
|
|
|
|
pch = strchr(ach, '%');
|
|
|
|
// Added 11/17/97 by JCG a-jglen
|
|
// added code to catch a corrupt or invalid question file
|
|
|
|
if(pch == NULL) {
|
|
//this question file is corrupt or invalid
|
|
m_pquest = NULL;
|
|
fclose(fp);
|
|
return;
|
|
}
|
|
|
|
jch = pch - &ach[0];
|
|
|
|
m_pquest[iQuest].pszQuestion = (TCHAR *) malloc(sizeof(TCHAR) * (jch + 2));
|
|
|
|
for (ich = 0; ich < jch; ich++)
|
|
m_pquest[iQuest].pszQuestion[ich] = (TCHAR) ach[ich];
|
|
|
|
m_pquest[iQuest].pszQuestion[jch] = (TCHAR) 0;
|
|
|
|
// Now, point to the beginning of the short form of the question and copy it into the question array
|
|
|
|
jch++;
|
|
for (ich = 0; ich < 5; ich++)
|
|
m_pquest[iQuest].szShort[ich] = (TCHAR) ach[jch++];
|
|
|
|
m_pquest[iQuest].szShort[5] = (TCHAR) 0;
|
|
|
|
// Finally, point to the boolean and look at the first character
|
|
|
|
jch++;
|
|
m_pquest[iQuest].bYesDefault = ach[jch] == 'T';
|
|
}
|
|
|
|
m_pquest[cQuest].pszQuestion = (TCHAR *) NULL;
|
|
fclose(fp);
|
|
|
|
return;
|
|
}
|
|
|
|
BOOL CRegInfo::Fetch()
|
|
{
|
|
if (m_hkRoot == (HKEY) NULL)
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to fetch registry"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
DWORD dwRes;
|
|
DWORD dwType;
|
|
|
|
dwRes = sizeof(m_szInstall);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Install Root"), NULL, &dwType, (BYTE *) &m_szInstall, &dwRes)) || (dwType != REG_SZ))
|
|
_tcscpy(m_szInstall, TEXT("c:\\unitools\\"));
|
|
|
|
dwRes = sizeof(m_szLang);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Language"), NULL, &dwType, (BYTE *) &m_szLang, &dwRes)) || (dwType != REG_SZ))
|
|
_tcscpy(m_szLang, TEXT("English (USA)"));
|
|
|
|
dwRes = sizeof(m_szRecog);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Recognizer"), NULL, &dwType, (BYTE *) &m_szRecog, &dwRes)) || (dwType != REG_SZ))
|
|
_tcscpy(m_szRecog, TEXT("HWXUSA.DLL"));
|
|
|
|
dwRes = sizeof(m_szFont);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Font"), NULL, &dwType, (BYTE *) &m_szFont, &dwRes)) || (dwType != REG_SZ))
|
|
_tcscpy(m_szFont, TEXT("Arial"));
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Character Set"), NULL, &dwType, (BYTE *) &m_cset, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cset = 0;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("HWX Codepage"), NULL, &dwType, (BYTE *) &m_cpRecog, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cpRecog = 0;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("FFF Input"), NULL, &dwType, (BYTE *) &m_cpIn, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cpIn = 0;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("FFF Output"), NULL, &dwType, (BYTE *) &m_cpOut, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cpOut = m_cpIn;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Keyboard"), NULL, &dwType, (BYTE *) &m_cpKbd, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cpKbd = 0;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Display"), NULL, &dwType, (BYTE *) &m_cpScr, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cpScr = 0;
|
|
|
|
dwRes = sizeof(m_szUser);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("User File"), NULL, &dwType, (BYTE *) &m_szUser, &dwRes)) || (dwType != REG_SZ))
|
|
_tcscpy(m_szUser, TEXT("users.txt"));
|
|
|
|
dwRes = sizeof(m_szQuest);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Question File"), NULL, &dwType, (BYTE *) &m_szQuest, &dwRes)) || (dwType != REG_SZ))
|
|
_tcscpy(m_szQuest, TEXT("quest.txt"));
|
|
|
|
dwRes = sizeof(m_szLocal);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Local Root"), NULL, &dwType, (BYTE *) &m_szLocal, &dwRes)) || (dwType != REG_SZ))
|
|
_tcscpy(m_szLocal, TEXT("\\"));
|
|
|
|
dwRes = sizeof(m_szNetwork);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Network Root"), NULL, &dwType, (BYTE *) &m_szNetwork, &dwRes)) || (dwType != REG_SZ))
|
|
_tcscpy(m_szNetwork, TEXT("\\\\"));
|
|
|
|
dwRes = sizeof(m_szScript);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Current Script"), NULL, &dwType, (BYTE *) &m_szScript, &dwRes)) || (dwType != REG_SZ))
|
|
_tcscpy(m_szScript, TEXT("scrip000.sct"));
|
|
|
|
dwRes = sizeof(m_szStation);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Station"), NULL, &dwType, (BYTE *) &m_szStation, &dwRes)) || (dwType != REG_SZ))
|
|
_tcscpy(m_szStation, TEXT("RD"));
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Remove Spaces"), NULL, &dwType, (BYTE *) &m_bRemove, &dwRes)) || (dwType != REG_DWORD))
|
|
m_bRemove = FALSE;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Use Context"), NULL, &dwType, (BYTE *) &m_bContext, &dwRes)) || (dwType != REG_DWORD))
|
|
m_bContext = FALSE;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("ALC"), NULL, &dwType, (BYTE *) &m_dwALC, &dwRes)) || (dwType != REG_DWORD))
|
|
m_dwALC = 0;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Verify (safe)"), NULL, &dwType, (BYTE *) &m_bVerifySafe, &dwRes)) || (dwType != REG_DWORD))
|
|
m_bVerifySafe = FALSE;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Verify (unsafe)"), NULL, &dwType, (BYTE *) &m_bVerifyUnsafe, &dwRes)) || (dwType != REG_DWORD))
|
|
m_bVerifyUnsafe = FALSE;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Verify 2"), NULL, &dwType, (BYTE *) &m_bVerify2, &dwRes)) || (dwType != REG_DWORD))
|
|
m_bVerify2 = FALSE;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Reconcile"), NULL, &dwType, (BYTE *) &m_bReconcile, &dwRes)) || (dwType != REG_DWORD))
|
|
m_bReconcile = FALSE;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Special"), NULL, &dwType, (BYTE *) &m_bSpecial, &dwRes)) || (dwType != REG_DWORD))
|
|
m_bSpecial = FALSE;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Batch"), NULL, &dwType, (BYTE *) &m_bBatch, &dwRes)) || (dwType != REG_DWORD))
|
|
m_bBatch = FALSE;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Vertical Margin"), NULL, &dwType, (BYTE *) &m_cyMargin, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cyMargin = 1;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Horizontal Margin"), NULL, &dwType, (BYTE *) &m_cxMargin, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cxMargin = 4;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Vertical Guides"), NULL, &dwType, (BYTE *) &m_cyGuides, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cyGuides = 3;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Horizontal Guides"), NULL, &dwType, (BYTE *) &m_cxGuides, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cxGuides = 8;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Vertical Gap"), NULL, &dwType, (BYTE *) &m_cyGap, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cyGap = 1;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Horizontal Gap"), NULL, &dwType, (BYTE *) &m_cxGap, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cxGap = 1;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Interval"), NULL, &dwType, (BYTE *) &m_cInterval, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cInterval = 10;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Allowance"), NULL, &dwType, (BYTE *) &m_cAllow, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cAllow = 0;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Alternate"), NULL, &dwType, (BYTE *) &m_cAlts, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cAlts = 1;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Retry Limit"), NULL, &dwType, (BYTE *) &m_cRetry, &dwRes)) || (dwType != REG_DWORD))
|
|
m_cRetry = 1;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Midline"), NULL, &dwType, (BYTE *) &m_bMidline, &dwRes)) || (dwType != REG_DWORD))
|
|
m_bMidline = FALSE;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Baseline"), NULL, &dwType, (BYTE *) &m_bBaseline, &dwRes)) || (dwType != REG_DWORD))
|
|
m_bBaseline = FALSE;
|
|
|
|
dwRes = sizeof(DWORD);
|
|
if ((ERROR_SUCCESS != RegQueryValueEx(m_hkRoot, TEXT("Word Wrap"), NULL, &dwType, (BYTE *) &m_bWrap, &dwRes)) || (dwType != REG_DWORD))
|
|
m_bWrap = FALSE;
|
|
|
|
// Now, load the user and questions lists into memory
|
|
|
|
ReadUserList();
|
|
ReadQuestionList();
|
|
|
|
// Added 12/09.97 JCG a-jglen
|
|
// Make sure all the codepages are installed in the system
|
|
|
|
TCHAR szWarningString[256];
|
|
|
|
if(m_cpIn)
|
|
{
|
|
if(!IsValidCodePage(m_cpIn))
|
|
{
|
|
wsprintf(szWarningString, TEXT("CodePage %d is not installed on your system."), m_cpIn);
|
|
MessageBox(NULL, szWarningString, TEXT("Warning..."), MB_ICONEXCLAMATION | MB_OK);
|
|
return TRUE;
|
|
|
|
}
|
|
}
|
|
|
|
if(m_cpOut)
|
|
{
|
|
if(!IsValidCodePage(m_cpOut))
|
|
{
|
|
wsprintf(szWarningString, TEXT("CodePage %d is not installed on your system."), m_cpOut);
|
|
MessageBox(NULL, szWarningString, TEXT("Warning..."), MB_ICONEXCLAMATION | MB_OK);
|
|
return TRUE;
|
|
|
|
}
|
|
}
|
|
|
|
if(m_cpRecog)
|
|
{
|
|
if(!IsValidCodePage(m_cpRecog))
|
|
{
|
|
wsprintf(szWarningString, TEXT("CodePage %d is not installed on your system."), m_cpRecog);
|
|
MessageBox(NULL, szWarningString, TEXT("Warning..."), MB_ICONEXCLAMATION | MB_OK);
|
|
return TRUE;
|
|
|
|
}
|
|
}
|
|
|
|
if(m_cpKbd)
|
|
{
|
|
if(!IsValidCodePage(m_cpKbd))
|
|
{
|
|
wsprintf(szWarningString, TEXT("CodePage %d is not installed on your system."), m_cpKbd);
|
|
MessageBox(NULL, szWarningString, TEXT("Warning..."), MB_ICONEXCLAMATION | MB_OK);
|
|
return TRUE;
|
|
|
|
}
|
|
}
|
|
|
|
if(m_cpScr)
|
|
{
|
|
if(!IsValidCodePage(m_cpScr))
|
|
{
|
|
wsprintf(szWarningString, TEXT("CodePage %d is not installed on your system."), m_cpScr);
|
|
MessageBox(NULL, szWarningString, TEXT("Warning..."), MB_ICONEXCLAMATION | MB_OK);
|
|
return TRUE;
|
|
|
|
}
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CRegInfo::Store(int nMask)
|
|
{
|
|
DWORD dwRes;
|
|
|
|
if (nMask & REGINFO_STORE_INSTALL)
|
|
{
|
|
dwRes = sizeof(TCHAR) * (_tcslen(m_szInstall) + 1);
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Install Root"), NULL, REG_SZ, (BYTE *) m_szInstall, dwRes))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
if (nMask & REGINFO_STORE_COMMON)
|
|
{
|
|
dwRes = sizeof(TCHAR) * (_tcslen(m_szLocal) + 1);
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Local Root"), NULL, REG_SZ, (BYTE *) m_szLocal, dwRes))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = sizeof(TCHAR) * (_tcslen(m_szNetwork) + 1);
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Network Root"), NULL, REG_SZ, (BYTE *) m_szNetwork, dwRes))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = sizeof(TCHAR) * (_tcslen(m_szLang) + 1);
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Language"), NULL, REG_SZ, (BYTE *) m_szLang, dwRes))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = sizeof(TCHAR) * (_tcslen(m_szRecog) + 1);
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Recognizer"), NULL, REG_SZ, (BYTE *) m_szRecog, dwRes))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = sizeof(TCHAR) * (_tcslen(m_szFont) + 1);
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Font"), NULL, REG_SZ, (BYTE *) m_szFont, dwRes))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cset;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Character Set"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cpRecog;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("HWX Codepage"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cpIn;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("FFF Input"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cpOut;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("FFF Output"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cpKbd;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Keyboard"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cpScr;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Display"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
if (nMask & REGINFO_STORE_SEPARATOR)
|
|
{
|
|
dwRes = sizeof(TCHAR) * (_tcslen(m_szUser) + 1);
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("User File"), NULL, REG_SZ, (BYTE *) m_szUser, dwRes))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = sizeof(TCHAR) * (_tcslen(m_szQuest) + 1);
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Question File"), NULL, REG_SZ, (BYTE *) m_szQuest, dwRes))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_bVerifySafe;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Verify (safe)"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_bVerifyUnsafe;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Verify (unsafe)"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_bVerify2;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Verify 2"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_bReconcile;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Reconcile"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_bBatch;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Batch"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_bSpecial;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Special"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_bRemove;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Remove Spaces"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
if (nMask & REGINFO_STORE_COLLECTOR)
|
|
{
|
|
dwRes = sizeof(TCHAR) * (_tcslen(m_szScript) + 1);
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Current Script"), NULL, REG_SZ, (BYTE *) m_szScript, dwRes))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = sizeof(TCHAR) * (_tcslen(m_szStation) + 1);
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Station"), NULL, REG_SZ, (BYTE *) m_szStation, dwRes))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cxMargin;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Horizontal Margin"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cyMargin;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Vertical Margin"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cxGuides;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Horizontal Guides"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cyGuides;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Vertical Guides"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cxGap;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Horizontal Gap"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cyGap;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Vertical Gap"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cInterval;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Interval"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cAllow;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Allowance"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cAlts;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Alternate"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_cRetry;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Retry Limit"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_bMidline;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Midline"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_bBaseline;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Baseline"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
|
|
dwRes = m_bWrap;
|
|
if (ERROR_SUCCESS != RegSetValueEx(m_hkRoot, TEXT("Word Wrap"), NULL, REG_DWORD, (BYTE *) &dwRes, sizeof(DWORD)))
|
|
{
|
|
MessageBox((HWND) NULL, TEXT("Unable to create registry key"), TEXT("Fatal Application Error"), MB_ICONSTOP | MB_OK);
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
return TRUE;
|
|
}
|