From 430792cc47fec70ee6c00c71c20ca6797f7bc4aa Mon Sep 17 00:00:00 2001 From: qwerty2501 Date: Fri, 2 Mar 2012 00:41:46 +0900 Subject: [PATCH] =?utf8?q?=E3=83=90=E3=82=B0=E3=83=AC=E3=83=9D=E3=83=BC?= =?utf8?q?=E3=83=88=E6=A9=9F=E8=83=BD=E5=AE=9F=E8=A3=85=E9=80=94=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- nlite.suo | Bin 197120 -> 198656 bytes nlite/nlite.cpp | 122 ++++++++++++++--------------------------- nlite/nlite.h | 2 +- nlite/nlite.vcxproj | 6 +- nlite/nlite.vcxproj.filters | 6 ++ nlite/nlite_bugreport.cpp | 98 +++++++++++++++++++++++++++++++++ nlite/nlite_bugreport.h | 44 +++++++++++++++ nlite/nlite_common.cpp | 130 +++++++++++++++++++++++++++++++++++++++++++- nlite/nlite_common.h | 11 +++- nlite/nlite_include.h | 1 + nlite/nlite_mainframe.cpp | 15 +---- nlite/stdafx.h | 3 + 12 files changed, 338 insertions(+), 100 deletions(-) create mode 100644 nlite/nlite_bugreport.cpp create mode 100644 nlite/nlite_bugreport.h diff --git a/nlite.suo b/nlite.suo index 7c80bdedf962643931a965c03c3abb014b0d51b0..eb5c166d19552759ac151266a1553a8fb79b6de0 100644 GIT binary patch delta 8172 zcma)B3tW`dw*S^*W*7)?KqN$jVM0Yy93J@~(*g03nj+$(@_{D4A|S+PiUWFlq71Wj zmKrLOVWJ@dG3Dv#sHA4)L9nb0s&BxXgG$p;Bgn4w%1D`yUvkdH*?%PpOluq0txD6Mt;9jqx{4|W4Z*6CfF`#Rj z=ixf`i^$cS6DKq=!s@FLi?t)Y;68tlr-|_V2w~QE);4QDL6Mj?oEkTRx4-G>ij}M5 zyIuP^DFPz@bzQ$+ygIFexas9tYw^;fM&EX2-eU&TMsd$%+VufM(7oTmNTCxUk~WP+ zy?5H+gvsOQXXMVGZ1+pn%X358tk(JQ%Zzqnso%3+Fc1`_eVf7BWY@ zSwDa<;c1PmwHg{c^g5pD+je$dpjD%*(J&z(?gWp}d-0%TPU{_YgL(hG{l(Ib&uW!+ za=_)&Q#5z{97@HNgbkuDBtTpk5K6ZraG9uC)013RAiz^mF7nhOk@(#bGDMpBDa^W5akjIL?Cs^qo*ukzDvy*>#AEO$G1(Xjd&Hqh1;X}BfN+He ziK}x$DJ2zisId#`g&{mtTz<;B4w=}Y~pgvE=gs+u=X<~ECB8gUFfL&c-SK(%S$~g!WW&L&V7TwCk5^AgmgZQbR4_QCKA~LN;lQ5KIw(3g|-FOYW;edFR zUL#u-MAP>g2o^UJ%=Q-+V^58^qcMrn7bfXK`R?bPwRc`P+eyQeKd^?{=7k^Y$=?^k z#RzL(3a>!3ICLpNl$ZvJ^r!vEm5K%m^MT0n0<9>VFj{0iZDMsgccZT;vvnn#mWSWg zqk-)WK~zmTLXrI;-?5i3QCS*9W`D5paY0l(6Bdc769ZYlH;KjxA*vk|lkpS;!E$kQ z?Hg2M!c?~!4rBV#*-YYuZLLw{e5+$+_7Sn6Ru0C97TPSmZggsrSkE5-KJA!5e5 z%~ZG(mXhH2yq+>hfuE2a|oJM#% zLWFV49M~)hx)zJZ^OEZW#FaVW57~R5$lt7&-eRdJ6Mf(;8_Wsex6{B^N|w4lQ1sgt zAOg3RlV&6?C1W%A*jJipj}1a=2W~&^0dXR6O-Etas-ct|Tu*1FqKQS}#Rl;0Qns>I zJ6=ZZcEL)r1fhZH_)U!2y^`Wnv4}+>I~EHlJIJC5ttmh4rJ3}Qe(e7h0&D!c9zI>P z{~tTQ98>zI-Xj+Di2m5u@ zjFtOIC!2SAj5y&PBbraA=qGY#x*TW?J$WA%Y3Oz;E)=%K261nf4%SjhIAl}K>k!Pm zuII_@oHB7ASu#`PeqxsC~IF9w|7>iF({li}{q}_d4FK&I@q4v)C5g-~gW|4OxO`Ja0 zv$pxdU-epcRV|lj{mA@jfE` zx}Kxrp-FS?h0NmSCZODGG*e?cHkn0~*nrz8Ya;||5A$ZN1#UkZ$Fz=U4SH6b= zvR+f;Sco{ZdR#q1gHAMfo2gk3Df&gcQ$Dv=4Wv9TDB6PX0vR8J?NCn<%Q(Ka#?n_M zuf|bLDuy}PA8r6p7!3u|5no6m{2V4p-xWw{b68eZb~8*uE{oymRyP?$=_}ArG|kZ< z`;db1X=L!@;FcZ$MeaqeK-D(yP-lO5TdI$!zP6OC_rQ-X4g|fnE0bz}peR&17XzV= zt~B!{tJ^^o9Olc{(#@?ZH-D4^EA799h@3DzIA~BHydmApWcx)EMec)8=fEKF)=I0S zyiPF23l{SBOWJV5+1v?yP+&r=R4kK-9U#@hKxd|55bL21$gm3v84Iz(ZoZaNVPwyn z77hc%H!-WJDFl7Uwwk*xh4Cd#QBcQ9TF`ZVMOQ$Po6(Q$IhGIGLlJ)iAujz{vTG!V zftAAgj}UT2@*;b8$P(sldYJ3H-yHxSdxfEb8(s92ve-}g-8sq}U(2?!5<~-*Kl35WMT*gfcJ>60LeilSm1Z;gYMP+)|0hqLq$I1B zI$oKtWQao($1^Sqq614Iif(R1opWmf+|&5aJ{`90z22uEzo~gSXV{1X3qZOR=ixyx z)Z+mF?nNJELr0o77=k=9vhv8X6f&JZ42Fp)VL0Utg)v&CTr!>I;A|cWn=~Tn&BZFf ztRDp~otDRx=V|N?Op*>ZicY11zr(`VfbZ@nrd4=Xq=BAdBQc7eY6J=K{zfsWSWH5&hwHvcHO1baN*JP*8u?r@}1EV;ADX8=lL6ZBQrehEmqBPdb|+SwE9CxiBAw zJBO#kyB=iggfmE=!Lhf+tEo^!`w|nE!iKe+T$$LD1yVc}_Hh(p&-Jm9NjXAe=fE~{ z&4$e?2qo)lDv2P&pfGRE6Sj;H)&vRPRj5df^BCMpiCW`Tvt1y4%yMB&2qeEs2w}ZD zqmVTV2Rep9q%$%TN|C1Tz@B7qVmtD!M{jY-w}Uez8=^fmZ}7H%*!Du;*uzY3<_9h8 zmSd{&FOtgtCco}!Gu_#|2z-2~dOb2 zYrI^)8fKzl-nX+*nHwG&-m7%t-#ZTa!kM=giaf+OVO=Gd3cyVY8D54WIPAuIqqaaa z1LZ3TOGIjy07|I_qce6BoYjh?fw5Gy8KP0mE7X+CK#fK0m;#I7eRdnmJ7EN^C&+n7 zEX06D56c*$&8JES(>{}-Jq2vUV6m@Tl+&^mTv~BEW}a%z>+_g-W(Qv`U>Cayjx;tX z6vv+GWzUSH$TEo3eA0$3lvf6Sb*t`f$+iX_JK1L3*}NMrcxX;N)b%F#XqiO~9Icj% z<6Tpnjr*Y*Dc6MkJQp(JU##Rfk5)mVR^)zfq39|I1mtP8a11PdqO6x1^$V7thNu1xGsKBL-gv^pcd@aFON-G!D_Sqgp&P0jugV^Xf z>bxc~Yp7RT3u7YG1XNh>28+h`BrYFI2S0Gq(Fk;1p&W5OY3}9uf1Jr^gc>!<_v!GHIuN8VEOzvOxDrsA243y z(n@FA@hPLC@jGxJ9r+!mko7L(4wDzIqS4K)FwGHIPh~%Yo)ZZ*Eec_O!D#x4%~-9u z$JLj2>d=Ln1uQ>W?17O6S&_-)H~D>+8y(a+%<6+~+M09rpEr8L_CE$xJM$d`_90cCY!+uzD^DHewF(t@91?w69k9oLX0 z1Y0spVe<*3pCb71tKY*aGDl#bLx;@HFuVvXOh39Cjt4n)TSYfIV-QC#tAtaL+F#nr zGEfz-!Z%&Te)T2FS;43$;id%SvlXf~;T*~FBQQrq6hB2TL}EWGe*z0-vMV$75Y{OS zv@hplyYjIjDazWK*XudLsAgp-NoT+x%_OanYV#Vs+Z_YQ9)*#Pfl%qJ?12sqz5X~_ z$l4oSl+zI&xKCPP#$%cf+uc7QA~eAwaF8KzM?dHO^TTsTSdBBX4!r0;weWAV7Vovj zAW-a4jA~o{h&cA3LIH~N$vFH>BTO^%s7H5|8*b1yViX4RUHx0iGC!Kt%9IC%_s5ZL z?M%Rn?7&0J!t$+wD*K~}to^WD8a-fY}|D6;;m1D7sM2^cA+jI8;2)>Gtqjw$*5IZQ?YReimZUP_pplbby|m#itw zR8}g^%J;NNIe>m2fqFFwS>#B=QJQy| zWt5VJ$>R_5(_U_GaofjD+RA?ZKEUnmmUr&DU(L^lTHb5(T(Pde|lB%fF8GWst_0G7t$W`3i#y~FCgn^xY%*6MgT-u^AWVJ`7 z9hHp3Y+-xCA~R{dR9#g{$t@s1?6E&8aX|v&myOs;OMw7F!s|1!Rv#IF| znCaY^i!;1L&AJ}svkU_XUqzcNOVr4!$R=r}EVgd+bw2w?wzHO+Um2Q9F#cxAr$)XT8{Bu_;i;) z=(I&Vy7`Z!$x@)Ai(0Pla53Z?#=~WWEXA2?u#{3h2X7hseYAh)MXRNg8L9VHcK25l zqe6-Q#0_3E7R=7g$jQ#lqumEtAvSM)s4u++d%y|0Qq5WMN zMTnyCY5?7w$rZ~{YuGD9uEx6mET;9U0U4{#F%6~CW5>{XfoV>#;eCMnbV*<+S5hT7 zk%*XYf0m29>!kAv&~D&GW$vPhxfIMi=#;!9GeIz=6!VF!ubeKqKvr{4^Xx(@`4eP| zoM&a(t0RXa(Sm3-BEqqT4n%U6k$zpHl|^)^K_!ex*?lW?ZVUFN#Dh4U?(M_wv}Px6 zpsy?0UdEO(NIqD_YBjwEyTd6e*^BEv7tYOCl#!c4yS8IrYQG&%fKwgd+KE=3DA)Z3 z-ut8Tjor+_@#}e8h9llIcPl>W9^Qo6S)}s1R?c3fo1Zsx`mDujm)v^8gF1tb$`A4; zQcRvLz)ck#r_H=@om+@3qzzQI0n_>6W%^+~)BKLQuV-q;{Okp}FVVD`)}z<+S-Eqw zX1mWiyBode#clYmq&(+17Czkj3ouh-+J61gDZg_`fy8bt97OU^z4#-&Q}dsSYw`DK*;Rg-xOvg&O8hT+{--wLOnam_`9Kqy_oEjalZ>0_m@eJ> zySN85@ocHBDVUFgomO4TDO8dTagt^ING{jPvQ9fXRKuC8DsEP)K|xnrCd)4wj^&R; z$q(yInk4Ykpl*DQ`=fCUW9QCLpe+6tHksF7^Rnzq&~;- zQw;wlD`tL5RL2te$;^L=+y*QC`TtP$Z?Fay7G9O2y2bUt%-xJ_z=k9MY92^a3 z@yg|2HRQE`1~p&-rI@*JW(Y=I{RfO|=*k&JZn7%&hf@*Nmpah%zR-;`b>`@0uG={+ zrx>QmN@r`$i&mV(V~#UeCtRcK-5wn(JL}&r{_UHo*>SJ`{a%-n(Fe4$t{Io1Oj8~` z|I-owE;bHd5&iYL|N8vyMCc@|4l){5iesZno_y3AH~#isH|Y-cigjlgGnhJu5hkLY&Tc_J zuWTlI9+wEb)to5eQPez`BKbrGq1a`w>l!=TTv|(Ju9(wT4H(+451UFd3%Vayo>1!X-fFy_o(8KRlr&LbUP2qr9cM_TZL$ zRJxxQ5^ikcs3dQ~z=uzzNz#wCx@ZeH-K5mG13~aRXz38_rbGQNo#EqhOSc>6ec~x; zKOUjpmB_`QDt4rE_qo0LRAR6GojfYsIlmq^GDuy^=)?E}dOABD#vzDGJn_$dW9iO) TJSl2yJ^s%hG#6A{L*4%Xq+_~d delta 7345 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 WP4Tr{F{*RK>c+Et|NFO**8c%MPt8UE diff --git a/nlite/nlite.cpp b/nlite/nlite.cpp index 8f33502..432b86f 100644 --- a/nlite/nlite.cpp +++ b/nlite/nlite.cpp @@ -11,12 +11,9 @@ CAppModule _Module; -static WSAData wsaData; //winsockdata -static HINTERNET hInternet = NULL; -static BOOL InitializeNlite(); //ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‰Šú‰» -static VOID FinalizeNlite(); //ƒAƒvƒŠƒP[ƒVƒ‡ƒ“I—¹ˆ— -static CNliteMainFrame wnd; //ƒƒCƒ“ƒtƒŒ[ƒ€ƒEƒBƒ“ƒhƒE + +#ifndef NLITE_TEST //ƒƒCƒ“ŠÖ” int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE, @@ -76,125 +73,88 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE, UnexpectedErrorMessageShow(TEXT("ƒnƒ“ƒhƒ‹‚³‚ê‚Ä‚¢‚È‚¢ƒGƒ‰["),e.what(),e.getLineNo(),e.getFileName(),e.getFunctionName()); - goto nlitefinally; + goto nliteexception; } catch(nlib::Exception &e){ UnexpectedErrorMessageShow(TEXT("nlib‚Ńnƒ“ƒhƒ‹‚³‚ê‚Ä‚¢‚È‚¢ƒGƒ‰["),e.what(),e.getLineNo(),e.getFileName(),e.getFunctionName()); - goto nlitefinally; + goto nliteexception; }catch(std::exception &e){ UnexpectedErrorMessageShow(TEXT("ƒnƒ“ƒhƒ‹‚³‚ê‚Ä‚¢‚È‚¢ƒGƒ‰["),CComBSTR(e.what()),-1,TEXT("”­¶ƒtƒ@ƒCƒ‹‚ª“Á’èo—ˆ‚Ü‚¹‚ñ"),TEXT("”­¶ŠÖ”‚ª“Á’è‚Å‚«‚Ü‚¹‚ñ")); - goto nlitefinally; + goto nliteexception; } -nlitefinally: - wnd.OnException(); - wnd.DestroyWindow(); - FreeLibrary(hRich); -nliteend: + +nliteend: + FreeLibrary(hRich); _Module.RemoveMessageLoop(); FinalizeNlite(); _Module.Term(); ::CoUninitialize(); return nRet; -} - -static BOOL InitializeNlite(){ - - BOOL rslt = FALSE; - - try{ - - nlite::appInfo = &CApplicationInfo::getInstance(); - INT_PTR err; - INT_PTR count = 0; - - //WSAData‚ð‰Šú‰» - while((err = WSAStartup(MAKEWORD(2,0),&wsaData)) == WSASYSNOTREADY){ - - count++; - if(count >= 5)break; - Sleep(500); +nliteexception: + wnd.OnException(); + wnd.DestroyWindow(); + goto nliteend; +} - } +#else +#ifdef NLITE_TEST - if(err != ERROR_SUCCESS){ - throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); - } +//ƒƒCƒ“ŠÖ” +int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE, + LPTSTR lpCmdLine, int nCmdShow) +{ + HINSTANCE hRich = LoadLibrary(CRichEditCtrl::GetLibraryName()); + int nRet = -1; - //ƒAƒvƒŠƒP[ƒVƒ‡ƒ“î•ñƒCƒ“ƒXƒ^ƒ“ƒX¶¬ - const CApplicationInfo &appInfo = CApplicationInfo::getInstance(); - CNLiteString userAgent; - userAgent = appInfo.getProcuctName(); - userAgent += TEXT("/"); - userAgent += appInfo.getProductVersion(); + // + //ƒAƒvƒŠƒPƒP[ƒVƒ‡ƒ“‰Šú‰»ˆ— + // + HRESULT hRes = ::CoInitialize(NULL); + ATLASSERT(SUCCEEDED(hRes)); + AtlInitCommonControls(ICC_COOL_CLASSES | ICC_WIN95_CLASSES); + GUID guid; + _Module.Init(NULL, hInstance,&guid); + AtlAxWinInit(); + InitializeNlite(); - //HTTPƒIƒuƒWƒFƒNƒg¶¬ - hInternet = WinHttpOpen(userAgent,WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,(LPCWSTR)WINHTTP_NO_PROXY_NAME,(LPCWSTR)WINHTTP_NO_PROXY_BYPASS,0); + - if(hInternet == NULL){ - throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); - } - //nlib‚̏‰Šú‰» - InitializeNLIB(hInternet); - //ƒ[ƒJƒ‹ƒAƒvƒŠƒP[ƒVƒ‡ƒ“ƒtƒHƒ‹ƒ_ŒŸõ - if(SHGetFolderPathW(0,CSIDL_LOCAL_APPDATA,0,SHGFP_TYPE_CURRENT,localAppDataPath) != S_OK){ - throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); - } + //I—¹Œãƒƒ‚ƒŠƒ`ƒFƒbƒN + vcassert(_heapchk() == _HEAPOK,TEXT("ƒq[ƒvƒGƒ‰[‚Å‚·")); - SystemParametersInfo (SPI_SETLISTBOXSMOOTHSCROLLING,FALSE,FALSE,0); + nRet = 0; + FreeLibrary(hRich); - if(SHGetFolderPathW(0,CSIDL_APPDATA,0,SHGFP_TYPE_CURRENT,appFolderPath) != S_OK){ - throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); - } - ncvAppSettingPath = appFolderPath; - ncvAppSettingPath += TEXT("\\posite-c\\NiconamaCommentViewer\\AppSetting.xml"); - rslt = TRUE; - }catch (AppInitException e){ - rslt = FALSE; - } - + FinalizeNlite(); + ::CoUninitialize(); - return rslt; + return nRet; } +#endif -VOID FinalizeNlite(){ - - //ƒƒCƒ“ƒtƒŒ[ƒ€ƒEƒBƒ“ƒhƒEŒãˆ— - wnd.Finalaize(); - - //nlibŒãˆ— - FinalizeNLIB(); - - //HTTPƒIƒuƒWƒFƒNƒgŠJ•ú - WinHttpCloseHandle(hInternet); - - //winsockŠJ•ú - WSACleanup(); - - return; -} - +#endif diff --git a/nlite/nlite.h b/nlite/nlite.h index e8555e6..8a0adaf 100644 --- a/nlite/nlite.h +++ b/nlite/nlite.h @@ -10,7 +10,7 @@ namespace nlite{ class CProperty; class CGeneralProperty; class CListenerData; - + class CNliteMainFrame; diff --git a/nlite/nlite.vcxproj b/nlite/nlite.vcxproj index 0bd9f02..4d84a60 100644 --- a/nlite/nlite.vcxproj +++ b/nlite/nlite.vcxproj @@ -165,7 +165,7 @@ xcopy "$(ProjectDir)libs" "$(targetdir)libs" /e /y - mkdir "$(targetdir)nlite\libs" /y + mkdir "$(targetdir)nlite\libs" xcopy "$(ProjectDir)libs" "$(targetdir)nlite\libs" /e /y copy "$(targetdir)nlite.exe" "$(targetdir)nlite\" /y @@ -195,7 +195,7 @@ copy "$(targetdir)nlite.exe" "$(targetdir)nlite\" /y - mkdir "$(targetdir)nlite_preview\libs" /y + mkdir "$(targetdir)nlite_preview\libs" xcopy "$(ProjectDir)libs" "$(targetdir)nlite_preview\libs" /e /y copy "$(targetdir)nlite.exe" "$(targetdir)nlite_preview\" /y @@ -211,6 +211,7 @@ copy "$(targetdir)nlite.exe" "$(targetdir)nlite_preview\" /y + @@ -231,6 +232,7 @@ copy "$(targetdir)nlite.exe" "$(targetdir)nlite_preview\" /y + diff --git a/nlite/nlite.vcxproj.filters b/nlite/nlite.vcxproj.filters index 885ff9e..cca32ed 100644 --- a/nlite/nlite.vcxproj.filters +++ b/nlite/nlite.vcxproj.filters @@ -80,6 +80,9 @@ ヘッダー ファイル + + ヘッダー ファイル + @@ -121,6 +124,9 @@ ソース ファイル + + ソース ファイル + diff --git a/nlite/nlite_bugreport.cpp b/nlite/nlite_bugreport.cpp new file mode 100644 index 0000000..c4b9486 --- /dev/null +++ b/nlite/nlite_bugreport.cpp @@ -0,0 +1,98 @@ +#include "stdafx.h" +#include "nlite_include.h" + +namespace nlite{ + + + BugTrail::BugTrail(): + headMessage(), + summary(), + line(), + fileName(), + function() + {} + + + HINTERNET CBugReport::hInternet = NULL; + CString CBugReport::outputDir; + const CString CBugReport::szHostName(TEXT("http://localhost")); + const CString CBugReport::szUrlPath(TEXT("bugreport.rb")); + const UINT_PTR CBugReport::portNo(8080); + VOID CBugReport::OutBugFile(){ + + + + return; + } + + BOOL CBugReport::SendBugReport(const BugTrail& bugtrail){ + + BOOL result = FALSE; + + HINTERNET hConnect = NULL; + HINTERNET hRequest = NULL; + TCHAR szHeader[] = TEXT("Content-Type: application/x-www-form-urlencoded\r\n"); + DWORD dwHeaderLength = _tcslen(szHeader); + DWORD dwTotalLength; + DWORD dwStatusCode; + DWORD dwDataLength; + hConnect = WinHttpConnect(CBugReport::hInternet, CBugReport::szHostName, CBugReport::portNo, 0); + if (hConnect == NULL) { + goto networderr; + } + + hRequest = WinHttpOpenRequest(hConnect, TEXT("POST"), CBugReport::szUrlPath, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0); + if (hRequest == NULL) { + goto networderr; + } + + CString postData; + postData = TEXT("sourcefile="); + postData += bugtrail.fileName; + postData += TEXT("\r\n"); + + + + + std::vector body; + body.reserve(GetLenToMB(CP_UTF8,postData)); + WideToMB(CP_UTF8,postData,&body[0],body.capacity()); + dwDataLength = body.size(); + dwTotalLength = dwDataLength; + WinHttpSendRequest(hRequest, szHeader, dwHeaderLength, WINHTTP_NO_REQUEST_DATA, 0, dwTotalLength, 0); + WinHttpWriteData(hRequest,&body[0],dwTotalLength ,&dwDataLength); + WinHttpReceiveResponse(hRequest, NULL); + + DWORD dwSize = sizeof(DWORD); + WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER, WINHTTP_HEADER_NAME_BY_INDEX, &dwStatusCode, &dwSize, WINHTTP_NO_HEADER_INDEX); + + +end: + + + WinHttpCloseHandle(hRequest); + WinHttpCloseHandle(hConnect); + + + + return result; + +networderr: + result = FALSE; + + goto end; + } + + VOID CBugReport::TakeBugFiles(){ + + return; + } + + VOID CBugReport::Initalize(HINTERNET hInternet,const CString &outputDir){ + + CBugReport::hInternet = hInternet; + CBugReport::outputDir = outputDir; + return; + } + +} \ No newline at end of file diff --git a/nlite/nlite_bugreport.h b/nlite/nlite_bugreport.h new file mode 100644 index 0000000..40b6437 --- /dev/null +++ b/nlite/nlite_bugreport.h @@ -0,0 +1,44 @@ +#pragma once + + +namespace nlite{ + + + struct BugTrail{ + + CString headMessage; + CString summary; + CString line; + CString fileName; + CString function; + + + BugTrail(); + }; + + class CBugReport{ + + private: + //ƒCƒ“ƒ^[ƒlƒbƒgƒnƒ“ƒhƒ‹ + static HINTERNET hInternet; + static CString outputDir; + const static CString szHostName; + const static CString szUrlPath; + const static UINT_PTR portNo; + private: + /// + ///ƒoƒOî•ñ‚ðƒtƒ@ƒCƒ‹‚ɏo—Í + /// + VOID OutBugFile(); + + public: + BOOL SendBugReport(const BugTrail& bugtrail); + + VOID TakeBugFiles(); + + + static VOID Initalize(HINTERNET hInternet,const CString &outputDir); + + }; + +} \ No newline at end of file diff --git a/nlite/nlite_common.cpp b/nlite/nlite_common.cpp index 201133a..c1434d7 100644 --- a/nlite/nlite_common.cpp +++ b/nlite/nlite_common.cpp @@ -4,7 +4,7 @@ namespace nlite{ - + namespace nliteregex{ namespace text{ const CString URL_TEXT = TEXT("(https?|ftp)(://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)"); @@ -28,6 +28,10 @@ namespace nlite{ CString ncvAppSettingPath; TCHAR localAppDataPath[_MAX_PATH]; speaker::ISpeaker &g_speaker = speaker::ISpeaker::GetMeiNormal(TEXT("libs\\Voice\\mei_normal\\"),TEXT("libs\\open_jtalk_dic\\")); + WSAData wsaData; //winsockdata + HINTERNET hInternet = NULL; + CNliteMainFrame wnd; //ƒƒCƒ“ƒtƒŒ[ƒ€ƒEƒBƒ“ƒhƒE + VOID nlite::UnexpectedErrorMessageShow(LPCTSTR headMessage,LPCTSTR summary,UINT line,LPCTSTR fileName,LPCTSTR function){ CString errLogFilePath(nliteProperty.GetPropertySaveFolderPath()); @@ -243,5 +247,129 @@ err: const CApplicationInfo * appInfo = NULL; + + + + + BOOL InitializeNlite(){ + + BOOL rslt = FALSE; + + try{ + + nlite::appInfo = &CApplicationInfo::getInstance(); + INT_PTR err; + INT_PTR count = 0; + + //WSAData‚ð‰Šú‰» + while((err = WSAStartup(MAKEWORD(2,0),&wsaData)) == WSASYSNOTREADY){ + + count++; + if(count >= 5)break; + Sleep(500); + + + + } + + if(err != ERROR_SUCCESS){ + + throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); + } + + //ƒAƒvƒŠƒP[ƒVƒ‡ƒ“î•ñƒCƒ“ƒXƒ^ƒ“ƒX¶¬ + const CApplicationInfo &appInfo = CApplicationInfo::getInstance(); + CNLiteString userAgent; + userAgent = appInfo.getProcuctName(); + userAgent += TEXT("/"); + userAgent += appInfo.getProductVersion(); + + + + //HTTPƒIƒuƒWƒFƒNƒg¶¬ + hInternet = WinHttpOpen(userAgent,WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,(LPCWSTR)WINHTTP_NO_PROXY_NAME,(LPCWSTR)WINHTTP_NO_PROXY_BYPASS,0); + + if(hInternet == NULL){ + + throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); + + } + + //nlib‚̏‰Šú‰» + InitializeNLIB(hInternet); + + //ƒ[ƒJƒ‹ƒAƒvƒŠƒP[ƒVƒ‡ƒ“ƒtƒHƒ‹ƒ_ŒŸõ + if(SHGetFolderPathW(0,CSIDL_LOCAL_APPDATA,0,SHGFP_TYPE_CURRENT,localAppDataPath) != S_OK){ + + throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); + } + + + + + + + if(SHGetFolderPathW(0,CSIDL_APPDATA,0,SHGFP_TYPE_CURRENT,appFolderPath) != S_OK){ + + throw AppInitException(__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__)); + } + ncvAppSettingPath = appFolderPath; + ncvAppSettingPath += TEXT("\\posite-c\\NiconamaCommentViewer\\AppSetting.xml"); + + nliteProperty.ReadProperty(); + + if((nliteProperty.GetGeneralProperty().IsNCVUserSettingReaded() == FALSE)){ + + ReadNCVListenerData(); + } + + listenerList.ReadProperty(nliteProperty.GetListenerDataPath()); + + CBugReport::Initalize(hInternet,CString(nliteProperty.GetPropertySaveFolderPath()) + TEXT("bugReport\\")); + rslt = TRUE; + }catch (AppInitException e){ + + rslt = FALSE; + + } + + + return rslt; + } + + + VOID FinalizeNlite(){ + + //ƒƒCƒ“ƒtƒŒ[ƒ€ƒEƒBƒ“ƒhƒEŒãˆ— + wnd.Finalaize(); + + //nlibŒãˆ— + FinalizeNLIB(); + + //HTTPƒIƒuƒWƒFƒNƒgŠJ•ú + WinHttpCloseHandle(hInternet); + + //winsockŠJ•ú + WSACleanup(); + + return; + } + + + BOOL ReadNCVListenerData(){ + + BOOL rslt = FALSE; + + if((PathFileExists(ncvAppSettingPath) && (!::PathIsDirectory( ncvAppSettingPath )))){ + + if((::MessageBox(NULL,TEXT("NCV‚̃ŠƒXƒi[î•ñ‚Æ“¯Šú‚µ‚Ü‚·‚©H"),TEXT("ƒŠƒXƒi[î•ñ“ǂݍž‚Ý"),MB_OK | MB_OKCANCEL) == IDOK)){ + listenerList.ReadProperty(GetNCVListenerInfoFilePath()); + } + nliteProperty.GetGeneralProperty().SetNCVUSerSettingReaded(TRUE); + rslt = TRUE; + } + + return rslt; + } } diff --git a/nlite/nlite_common.h b/nlite/nlite_common.h index 255a456..cd3e959 100644 --- a/nlite/nlite_common.h +++ b/nlite/nlite_common.h @@ -9,7 +9,11 @@ namespace nlite{ extern TCHAR localAppDataPath[]; extern TCHAR appFolderPath[]; extern CString ncvAppSettingPath; - + extern WSAData wsaData; //winsockdata + extern HINTERNET hInternet; + extern BOOL InitializeNlite(); //ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‰Šú‰» + extern VOID FinalizeNlite(); //ƒAƒvƒŠƒP[ƒVƒ‡ƒ“I—¹ˆ— + extern CNliteMainFrame wnd; //ƒƒCƒ“ƒtƒŒ[ƒ€ƒEƒBƒ“ƒhƒE //ƒOƒ[ƒoƒ‹ŠÖ” extern VOID UnexpectedErrorMessageShow(LPCTSTR headMessage,LPCTSTR summary,UINT line,LPCTSTR fileName,LPCTSTR function); @@ -23,6 +27,11 @@ namespace nlite{ /// + ///NCV‚̃ŠƒXƒi[ƒf[ƒ^‚ð“Ç‚ÝŽæ‚è + /// + extern BOOL ReadNCVListenerData(); + + /// ///ncv‚̃ŠƒXƒi[î•ñƒtƒ@ƒCƒ‹ƒpƒX‚ðŽæ“¾ /// extern CString GetNCVListenerInfoFilePath(); diff --git a/nlite/nlite_include.h b/nlite/nlite_include.h index 7eed2e3..aa51920 100644 --- a/nlite/nlite_include.h +++ b/nlite/nlite_include.h @@ -23,6 +23,7 @@ #include "nlite_appinfo.h" #include "nlite_propertyWindow.h" #include "nlite_mainframe.h" +#include "nlite_bugreport.h" diff --git a/nlite/nlite_mainframe.cpp b/nlite/nlite_mainframe.cpp index e3aab74..1594829 100644 --- a/nlite/nlite_mainframe.cpp +++ b/nlite/nlite_mainframe.cpp @@ -187,24 +187,11 @@ LRESULT CNliteMainFrame::OnCreate(LPCREATESTRUCT lpcs){ VOID CNliteMainFrame::Initialize(LPCTSTR localAppDataPath){ try{ - nliteProperty.ReadProperty(); + - if((nliteProperty.GetGeneralProperty().IsNCVUserSettingReaded() == FALSE) && - ((PathFileExists(ncvAppSettingPath) && (!::PathIsDirectory( ncvAppSettingPath ))))){ - - if((::MessageBox(NULL,TEXT("NCV‚̃ŠƒXƒi[î•ñ‚Æ“¯Šú‚µ‚Ü‚·‚©H"),TEXT("ƒŠƒXƒi[î•ñ“ǂݍž‚Ý"),MB_OK | MB_OKCANCEL) == IDOK)){ - listenerList.ReadProperty(GetNCVListenerInfoFilePath()); - } - nliteProperty.GetGeneralProperty().SetNCVUSerSettingReaded(TRUE); - - - } - - listenerList.ReadProperty(nliteProperty.GetListenerDataPath()); - commentView.SetProperty(nliteProperty.GetCommentViewProperty(),nliteProperty.GetGeneralProperty()); if(nliteProperty.GetGeneralProperty().GetBrowserType() == BT_NOSETTING){ nliteProperty.CookieSetting(); diff --git a/nlite/stdafx.h b/nlite/stdafx.h index a09444e..8ec1680 100644 --- a/nlite/stdafx.h +++ b/nlite/stdafx.h @@ -15,6 +15,9 @@ #define WINDEBUGER_NOPRINTING //ƒfƒoƒbƒOo—Í‚ðƒRƒ“ƒ\[ƒ‹‚É•\Ž¦‚µ‚½‚­‚È‚¢ê‡’è‹`‚·‚é #define _WTL_NO_CSTRING + +//#define NLITE_TEST + // Windows ƒwƒbƒ_[ ƒtƒ@ƒCƒ‹: #include #include -- 2.11.0