1 // nlite.cpp :
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\82Ì
\83G
\83\93\83g
\83\8a \83|
\83C
\83\93\83g
\82ð
\92è
\8b`
\82µ
\82Ü
\82·
\81B
5 #include "nlite_include.h"
13 Property nliteProperty;
15 const CApplicationInfo * appInfo = NULL;
18 static TCHAR localAppDataPath[_MAX_PATH];
20 static WSAData wsaData; //winsockdata
21 static HINTERNET hInternet = NULL;
23 static BOOL InitializeNlite(); //
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\8f\89\8aú
\89»
24 static VOID FinalizeNlite(); //
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\8fI
\97¹
\8f\88\97\9d
25 static CNliteMainFrame wnd; //
\83\81\83C
\83\93\83t
\83\8c\81[
\83\80\83E
\83B
\83\93\83h
\83E
26 int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE,
27 LPTSTR lpCmdLine, int nCmdShow)
34 if(_Module.Init(NULL, hInstance) != S_OK){
35 throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
38 if(InitializeNlite() != TRUE){
39 throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
47 _Module.AddMessageLoop(&theLoop);
50 wnd.Initialize(localAppDataPath);
51 wnd.CreateEx(0,0,WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN);
53 wnd.ShowWindow(nCmdShow);
62 vcassert(_heapchk() == _HEAPOK,TEXT("
\83q
\81[
\83v
\83G
\83\89\81[
\82Å
\82·"));
66 } catch(nlite::Exception &e){
68 UnexpectedErrorMessageShow(TEXT("
\83n
\83\93\83h
\83\8b\82³
\82ê
\82Ä
\82¢
\82È
\82¢
\83G
\83\89\81["),e.what(),e.getLineNo(),e.getFileName(),e.getFunctionName());
72 }catch(std::exception &e){
73 UnexpectedErrorMessageShow(TEXT("
\83n
\83\93\83h
\83\8b\82³
\82ê
\82Ä
\82¢
\82È
\82¢
\83G
\83\89\81["),CComBSTR(e.what()),-1,TEXT("
\94
\90¶
\83t
\83@
\83C
\83\8b\82ª
\93Á
\92è
\8fo
\97\88\82Ü
\82¹
\82ñ"),TEXT("
\94
\90¶
\8aÖ
\90\94\82ª
\93Á
\92è
\82Å
\82«
\82Ü
\82¹
\82ñ"));
87 _Module.RemoveMessageLoop();
95 static BOOL InitializeNlite(){
101 nlite::appInfo = &CApplicationInfo::getInstance();
105 //WSAData
\82ð
\8f\89\8aú
\89»
106 while((err = WSAStartup(MAKEWORD(2,0),&wsaData)) == WSASYSNOTREADY){
116 if(err != ERROR_SUCCESS){
118 throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
121 const CApplicationInfo &appInfo = CApplicationInfo::getInstance();
122 CNLiteString userAgent;
123 userAgent = appInfo.getProcuctName();
124 userAgent += TEXT("/");
125 userAgent += appInfo.getProductVersion();
128 hInternet = WinHttpOpen(userAgent,WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,(LPCWSTR)WINHTTP_NO_PROXY_NAME,(LPCWSTR)WINHTTP_NO_PROXY_BYPASS,0);
130 if(hInternet == NULL){
132 throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
136 InitializeNLIB(hInternet);
138 if(SHGetFolderPathW(0,CSIDL_LOCAL_APPDATA,0,SHGFP_TYPE_CURRENT,localAppDataPath) != S_OK){
140 throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
144 SystemParametersInfo (SPI_SETLISTBOXSMOOTHSCROLLING,FALSE,FALSE,0);
147 }catch (AppInitException e){
162 VOID FinalizeNlite(){
166 WinHttpCloseHandle(hInternet);
172 VOID nlite::UnexpectedErrorMessageShow(LPCTSTR headMessage,LPCTSTR summary,UINT line,LPCTSTR fileName,LPCTSTR function){
174 errMessage = headMessage;
175 errMessage += TEXT("
\91z
\92è
\82³
\82ê
\82Ä
\82¢
\82È
\82¢
\83G
\83\89\81[
\82ª
\94
\90¶
\82µ
\82Ü
\82µ
\82½
\81B
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\94z
\92u
\83t
\83H
\83\8b\83_
\82É
\8dì
\90¬
\82³
\82ê
\82½
\83\8d\83O
\83t
\83@
\83C
\83\8b\82ð
\93n
\82µ
\82Ä
\82à
\82ç
\82¦
\82é
\82Æ
\8aJ
\94
\8eÒ
\82ª
\94ñ
\8fí
\82É
\8aì
\82Ñ
\82Ü
\82·");
176 errMessage += TEXT("\r\n
\83G
\83\89\81[
\83\81\83b
\83Z
\81[
\83W:");
177 errMessage += summary;
178 DebugOutW(fileName,function,line,DUMPING__DEBUGER__ | LINEFEAD__DEBUGER__ ,ERRORMODE__DEBUGER__,TEXT("%s"),errMessage);
179 ::MessageBox(NULL,errMessage.c_str(),TEXT("
\91z
\92è
\82³
\82ê
\82Ä
\82¢
\82È
\82¢
\83G
\83\89\81["),MB_ICONERROR | MB_OK);