289 lines
5.8 KiB
C++
Executable File
289 lines
5.8 KiB
C++
Executable File
// EBook.cpp : Defines the class behaviors for the application.
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "EBook.h"
|
||
#include "EBookDlg.h"
|
||
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#undef THIS_FILE
|
||
static char THIS_FILE[] = __FILE__;
|
||
#endif
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CEBookApp
|
||
|
||
BEGIN_MESSAGE_MAP(CEBookApp, CWinApp)
|
||
//{{AFX_MSG_MAP(CEBookApp)
|
||
// NOTE - the ClassWizard will add and remove mapping macros here.
|
||
// DO NOT EDIT what you see in these blocks of generated code!
|
||
//}}AFX_MSG
|
||
END_MESSAGE_MAP()
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CEBookApp construction
|
||
|
||
CEBookApp::CEBookApp()
|
||
: CWinApp()
|
||
{
|
||
// TODO: add construction code here,
|
||
// Place all significant initialization in InitInstance
|
||
m_Language = GetRegLanguage();//LANG_CHINESE;
|
||
m_IsBeep = GetRegBeep();
|
||
}
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// The one and only CEBookApp object
|
||
|
||
CEBookApp theApp;
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CEBookApp initialization
|
||
|
||
BOOL CEBookApp::InitInstance()
|
||
{
|
||
// Standard initialization
|
||
// If you are not using these features and wish to reduce the size
|
||
// of your final executable, you should remove from the following
|
||
// the specific initialization routines you do not need.
|
||
|
||
CEBookDlg dlg;
|
||
m_pMainWnd = &dlg;
|
||
int nResponse = dlg.DoModal();
|
||
if (nResponse == IDOK)
|
||
{
|
||
// TODO: Place code here to handle when the dialog is
|
||
// dismissed with OK
|
||
}
|
||
else if (nResponse == IDCANCEL)
|
||
{
|
||
// TODO: Place code here to handle when the dialog is
|
||
// dismissed with Cancel
|
||
}
|
||
|
||
// Since the dialog has been closed, return FALSE so that we exit the
|
||
// application, rather than start the application's message pump.
|
||
return FALSE;
|
||
}
|
||
|
||
int CEBookApp::ExitInstance()
|
||
{
|
||
// TODO: Add your specialized code here and/or call the base class
|
||
if(m_ResourceLib)
|
||
{
|
||
FreeLibrary(m_ResourceLib);
|
||
}
|
||
return CWinApp::ExitInstance();
|
||
}
|
||
|
||
int CEBookApp::GetLanguage()
|
||
{
|
||
return m_Language;
|
||
}
|
||
|
||
bool CEBookApp::GetBeep()
|
||
{
|
||
return m_IsBeep;
|
||
}
|
||
|
||
void CEBookApp::PlayMsgSound(int iSound)
|
||
{
|
||
// <20><><EFBFBD><EFBFBD>wav<61>ļ<EFBFBD>
|
||
if (iSound == -1)
|
||
{
|
||
//PlaySound(L"default.wav",NULL,SND_FILENAME);
|
||
//MessageBeep(MB_OK);
|
||
}
|
||
else
|
||
{
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դwav
|
||
//PlaySound(MAKEINTRESOURCE(iSound),AfxGetResourceHandle(),SND_RESOURCE);
|
||
//MessageBeep(MB_ICONEXCLAMATION);
|
||
}
|
||
}
|
||
|
||
HINSTANCE CEBookApp::GetResourceLib()
|
||
{
|
||
return m_ResourceLib;
|
||
}
|
||
|
||
HINSTANCE CEBookApp::LoadLanguageRes(int iLanguage)
|
||
{
|
||
if (m_ResourceLib)
|
||
{
|
||
FreeLibrary(m_ResourceLib);
|
||
}
|
||
|
||
if (iLanguage == LANG_ENGLISH)
|
||
{
|
||
m_ResourceLib = LoadLibrary(L"LanguageENU.dll");
|
||
}
|
||
else if(iLanguage == LANG_CHINESE)
|
||
{
|
||
m_ResourceLib = LoadLibrary(L"LanguageCHS.dll");
|
||
}
|
||
|
||
return m_ResourceLib;
|
||
}
|
||
|
||
bool CEBookApp::GetRegBeep()
|
||
{
|
||
HKEY hKey;
|
||
DWORD hResult,hType;
|
||
|
||
// <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||
hResult = RegCreateKeyEx(HKEY_LOCAL_MACHINE,
|
||
_T("SOFTWARE\\PDA")
|
||
,0,0,0,0,0,&hKey,&hType);
|
||
|
||
if (hResult == ERROR_SUCCESS)
|
||
{
|
||
// <20><><EFBFBD>ݴ<EFBFBD>С
|
||
DWORD dwSize = 4;
|
||
DWORD dwType = REG_DWORD;
|
||
|
||
// <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ǵü<F2BFAAB8>
|
||
if (hType == REG_CREATED_NEW_KEY)
|
||
{
|
||
// Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
int lpData = 0;
|
||
// <20><>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5><EFBFBD>ӵ<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||
hResult = RegSetValueEx(hKey,L"Beep",NULL,REG_DWORD,(CONST BYTE*)&lpData,sizeof(REG_DWORD));
|
||
|
||
// <20>ر<EFBFBD>
|
||
RegCloseKey(hKey);
|
||
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
// <20><>Ҫ<EFBFBD><D2AA>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
BYTE lpData;
|
||
// <20><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||
hResult = RegQueryValueEx(hKey,L"Beep",NULL,&dwType,(BYTE*)&lpData,&dwSize);
|
||
|
||
// <20>ж϶<D0B6>ȡ<EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD>
|
||
if (hResult == ERROR_SUCCESS)
|
||
{
|
||
// <20>ر<EFBFBD>
|
||
RegCloseKey(hKey);
|
||
|
||
if (lpData == 0)
|
||
{
|
||
return false;
|
||
}
|
||
else
|
||
{
|
||
return true;
|
||
}
|
||
}
|
||
else if (hResult == ERROR_FILE_NOT_FOUND)
|
||
{
|
||
// Ĭ<>Ͻ<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
int lpData = 0;
|
||
// <20><>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5><EFBFBD>ӵ<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||
hResult = RegSetValueEx(hKey,L"Beep",NULL,REG_DWORD,(CONST BYTE*)&lpData,sizeof(REG_DWORD));
|
||
|
||
// <20>ر<EFBFBD>
|
||
RegCloseKey(hKey);
|
||
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
// <20>ر<EFBFBD>
|
||
RegCloseKey(hKey);
|
||
// <20><>ȡʧ<C8A1>ܷ<EFBFBD><DCB7><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
||
return true;
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
// <20>ر<EFBFBD>
|
||
RegCloseKey(hKey);
|
||
|
||
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
||
return false;
|
||
}
|
||
}
|
||
|
||
int CEBookApp::GetRegLanguage()
|
||
{
|
||
HKEY hKey;
|
||
DWORD hResult,hType;
|
||
|
||
// <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||
hResult = RegCreateKeyEx(HKEY_LOCAL_MACHINE,
|
||
_T("SOFTWARE\\PDA")
|
||
,0,0,0,0,0,&hKey,&hType);
|
||
|
||
if (hResult == ERROR_SUCCESS)
|
||
{
|
||
// <20><><EFBFBD>ݴ<EFBFBD>С
|
||
DWORD dwSize = 4;
|
||
DWORD dwType = REG_DWORD;
|
||
|
||
// <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>Ǵü<F2BFAAB8>
|
||
if (hType == REG_CREATED_NEW_KEY)
|
||
{
|
||
// Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
int lpData = LANG_CHINESE;
|
||
// <20><>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5><EFBFBD>ӵ<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||
hResult = RegSetValueEx(hKey,L"DefaultLanguage",NULL,REG_DWORD,(CONST BYTE*)&lpData,sizeof(REG_DWORD));
|
||
|
||
// <20>ر<EFBFBD>
|
||
RegCloseKey(hKey);
|
||
|
||
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
return lpData;
|
||
}
|
||
else
|
||
{
|
||
// <20><>Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
BYTE lpData;
|
||
// <20><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||
hResult = RegQueryValueEx(hKey,L"DefaultLanguage",NULL,&dwType,(BYTE*)&lpData,&dwSize);
|
||
|
||
// <20>ж϶<D0B6>ȡ<EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD>
|
||
if (hResult == ERROR_SUCCESS)
|
||
{
|
||
// <20>ر<EFBFBD>
|
||
RegCloseKey(hKey);
|
||
|
||
return lpData;
|
||
}
|
||
else if (hResult == ERROR_FILE_NOT_FOUND)
|
||
{
|
||
// Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
int lpData = LANG_CHINESE;
|
||
// <20><>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5><EFBFBD>ӵ<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||
hResult = RegSetValueEx(hKey,L"DefaultLanguage",NULL,REG_DWORD,(CONST BYTE*)&lpData,sizeof(REG_DWORD));
|
||
|
||
// <20>ر<EFBFBD>
|
||
RegCloseKey(hKey);
|
||
|
||
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
return lpData;
|
||
}
|
||
else
|
||
{
|
||
// <20>ر<EFBFBD>
|
||
RegCloseKey(hKey);
|
||
|
||
// <20><>ȡʧ<C8A1>ܷ<EFBFBD><DCB7><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
||
return LANG_CHINESE;
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
// <20>ر<EFBFBD>
|
||
RegCloseKey(hKey);
|
||
|
||
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
|
||
return LANG_CHINESE;
|
||
}
|
||
}
|