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"
9 SIZE nlite::commentWriteWindowSize;
10 const RECT nlite::COMMENTWRITEWINDOW_SEPARATEFSIZE = {5,5,5,5};
11 const CApplicationInfo* nlite::appInfo = NULL;
12 static TCHAR localAppDataPath[_MAX_PATH];
14 static WSAData wsaData; //winsockdata
15 static HINTERNET hInternet = NULL;
17 static BOOL InitializeNlite(); //
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\8f\89\8aú
\89»
18 static VOID FinalizeNlite(); //
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\8fI
\97¹
\8f\88\97\9d
19 static CNliteMainFrame wnd; //
\83\81\83C
\83\93\83t
\83\8c\81[
\83\80\83E
\83B
\83\93\83h
\83E
20 int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE,
21 LPTSTR lpCmdLine, int nCmdShow)
28 if(_Module.Init(NULL, hInstance) != S_OK){
29 throw AppInitException(__LINE__,TEXT(__FILE__));
32 if(InitializeNlite() != TRUE){
33 throw AppInitException(__LINE__,TEXT(__FILE__));
41 _Module.AddMessageLoop(&theLoop);
44 wnd.Initialize(localAppDataPath);
45 wnd.CreateEx(0,0,WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN);
46 wnd.ShowWindow(nCmdShow);
55 vcassert(_heapchk() == _HEAPOK,TEXT("
\83q
\81[
\83v
\83G
\83\89\81[
\82Å
\82·"));
59 } catch(nlite::Exception &e){
60 CNLiteString errMessage(TEXT("
\83G
\83\89\81[
\83\81\83b
\83Z
\81[
\83W:"));
61 errMessage += e.what();
62 errMessage += TEXT("\r\n
\8ds
\94Ô
\8d\86:");
63 std::wostringstream num;
65 errMessage += num.str().c_str();
66 errMessage += TEXT("\r\n
\83t
\83@
\83C
\83\8b\96¼:");
67 errMessage += e.getFileName();
69 MessageBox(NULL,errMessage,TEXT("
\83n
\83\93\83h
\83\8b\82³
\82ê
\82Ä
\82È
\82¢
\83G
\83\89\81["),MB_ICONERROR | MB_OK);
70 errprint(TEXT("
\83n
\83\93\83h
\83\8b\82³
\82ê
\82Ä
\82¢
\82È
\82¢
\83G
\83\89\81[:%s"),errMessage);
73 }catch(std::exception &e){
75 MessageBoxA(NULL,e.what(),"
\83n
\83\93\83h
\83\8b\82³
\82ê
\82Ä
\82È
\82¢
\95s
\96¾
\82Ì
\83G
\83\89\81[",MB_ICONERROR | MB_OK);
76 errprint_mb(CP_THREAD_ACP,"
\83n
\83\93\83h
\83\8b\82³
\82ê
\82Ä
\82¢
\82È
\82¢
\95s
\96¾
\82È
\83G
\83\89\81[:%s",e.what());
88 _Module.RemoveMessageLoop();
96 static BOOL InitializeNlite(){
102 font = AtlGetDefaultGuiFont();
103 LOGFONT defaultFontLog;
104 font.GetLogFont(&defaultFontLog);
105 nlite::commentWriteWindowSize.cx = 0;
106 nlite::commentWriteWindowSize.cy = defaultFontLog.lfHeight == 0 ? 30 : defaultFontLog.lfHeight < 0 ? (( -1 * defaultFontLog.lfHeight) * 2) + nlite::COMMENTWRITEWINDOW_SEPARATEFSIZE.bottom + nlite::COMMENTWRITEWINDOW_SEPARATEFSIZE.top : (defaultFontLog.lfHeight * 2) + nlite::COMMENTWRITEWINDOW_SEPARATEFSIZE.bottom + nlite::COMMENTWRITEWINDOW_SEPARATEFSIZE.top;
107 nlite::appInfo = &CApplicationInfo::getInstance();
111 //WSAData
\82ð
\8f\89\8aú
\89»
112 while((err = WSAStartup(MAKEWORD(2,0),&wsaData)) == WSASYSNOTREADY){
122 if(err != ERROR_SUCCESS){
124 throw AppInitException(__LINE__,TEXT(__FILE__));
127 const CApplicationInfo &appInfo = CApplicationInfo::getInstance();
128 CNLiteString userAgent;
129 userAgent = appInfo.getProcuctName();
130 userAgent += TEXT("/");
131 userAgent += appInfo.getProductVersion();
134 hInternet = WinHttpOpen(userAgent,WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,(LPCWSTR)WINHTTP_NO_PROXY_NAME,(LPCWSTR)WINHTTP_NO_PROXY_BYPASS,0);
136 if(hInternet == NULL){
138 throw AppInitException(__LINE__,TEXT(__FILE__));
142 InitializeNLIB(hInternet);
144 if(SHGetFolderPathW(0,CSIDL_LOCAL_APPDATA,0,SHGFP_TYPE_CURRENT,localAppDataPath) != S_OK){
146 throw AppInitException(__LINE__,TEXT(__FILE__));
150 SystemParametersInfo (SPI_SETLISTBOXSMOOTHSCROLLING,FALSE,FALSE,0);
153 }catch (AppInitException e){
168 VOID FinalizeNlite(){
172 WinHttpCloseHandle(hInternet);