From: qwerty2501 Date: Sun, 5 Feb 2012 16:13:22 +0000 (+0900) Subject: マイリスト登録機能追加まだIEとのクッキー競合問題が残っている X-Git-Tag: v0.002~2^2~29 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ecd9c0870d8d0dabb07d18f61d9770d69ca8fc2f;p=nlite%2Fnlite.git マイリスト登録機能追加まだIEとのクッキー競合問題が残っている --- diff --git a/nlite.suo b/nlite.suo index e22331e..ebcdd76 100644 Binary files a/nlite.suo and b/nlite.suo differ diff --git a/nlite/nlite.h b/nlite/nlite.h index ecc9cf8..11447d9 100644 --- a/nlite/nlite.h +++ b/nlite/nlite.h @@ -30,18 +30,18 @@ namespace nlite{ namespace nliteregex{ typedef std::tr1::basic_regex tregex; namespace text{ - const static CString URL_TEXT = TEXT("(https?|ftp)(://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)"); - const static CString TAG_TEXT = TEXT("<[\"_;!?,\\:.'$%#/a-zA-Z0-9= ]*>"); - const static CString VIDEOID_TEXT = TEXT("(sm|nm)([0-9])+"); - const static CString LIVEID_TEXT = TEXT("(lv)([0-9])+"); - const static CString LINK_TEXT = TEXT("(") + URL_TEXT + TEXT(")|(") + VIDEOID_TEXT + TEXT(")|(") + LIVEID_TEXT + TEXT(")"); + extern const CString URL_TEXT; + extern const CString TAG_TEXT; + extern const CString VIDEOID_TEXT; + extern const CString LIVEID_TEXT; + extern const CString LINK_TEXT; } - const static tregex URL(text::URL_TEXT); - const static tregex TAGSTRING(text::TAG_TEXT); - const static tregex VIDEOID(text::VIDEOID_TEXT); - const static tregex LIVEID(text::LIVEID_TEXT); - const static tregex LILNKREGEX(text::LINK_TEXT); - const static tstring NUTHINGSTRING(TEXT("")); + extern const tregex URL; + extern const tregex TAGSTRING; + extern const tregex VIDEOID; + extern const tregex LIVEID; + extern const tregex LILNKREGEX; + extern const tstring NUTHINGSTRING; } /// diff --git a/nlite/nlite.rc b/nlite/nlite.rc index 016a366..82323cd 100644 --- a/nlite/nlite.rc +++ b/nlite/nlite.rc @@ -61,7 +61,7 @@ IDC_NLITE MENU // Dialog resources // LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -IDD_ADDMYLISTDIALOG DIALOG 0, 0, 500, 360 +IDD_ADDMYLISTDIALOG DIALOG 0, 0, 360, 240 STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU CAPTION "ƒ}ƒCƒŠƒXƒg“o˜^" FONT 8, "Ms Shell Dlg" diff --git a/nlite/nlite_addTomylistWindow.cpp b/nlite/nlite_addTomylistWindow.cpp index af55f4d..544bb34 100644 --- a/nlite/nlite_addTomylistWindow.cpp +++ b/nlite/nlite_addTomylistWindow.cpp @@ -4,9 +4,9 @@ namespace nlite{ - static const LPCTSTR ADDMYLIST_URL = TEXT("http://www.nicovideo.jp/mylist_add/video/"); + static const LPCTSTR ADDMYLIST_URL = TEXT("MSHTML:"); - CAddToMyListWindow::CAddToMyListWindow(CNicoVideoAuth &in_auth):refAuth(in_auth){} + BOOL CAddToMyListWindow::PreTranslateMessage(MSG* pMsg){ @@ -18,110 +18,50 @@ namespace nlite{ } - INT_PTR CAddToMyListWindow::OnCreate(LPCREATESTRUCT lpCreateStruct){ - LRESULT lRet = DefWindowProc(); - - HRESULT hRet = QueryControl(&m_pWB2); - if(SUCCEEDED(hRet)){ - DispEventAdvise(m_pWB2, &DIID_DWebBrowserEvents2); - } - - - - return lRet; - } - - - VOID CAddToMyListWindow::OnDestroy(){ - if(m_pWB2){ - DispEventUnadvise(m_pWB2, &DIID_DWebBrowserEvents2); - } - - SetMsgHandled(false); - } - - VOID WINAPI CAddToMyListWindow::OnBeforeNavigate2(IDispatch** dispatch, VARIANT* url, VARIANT* flags,VARIANT* frameName, VARIANT* postData, VARIANT* headers, VARIANT_BOOL* cancel){ - - - - - return; + VOID CAddToMyListWindow::ShowAddWindow(LPCTSTR lvNo){ + liveNo = ADDMYLIST_URL; + liveNo.Replace(TEXT("{1}"), lvNo); - } - - VOID CAddToMyListWindow::Navigate(LPCTSTR lpszUrl){ if(m_pWB2){ CComVariant v; - - //header.SetByRef((BSTR)userSession); - - m_pWB2->Navigate(CNLiteString(lpszUrl), &v, &v, &v, &v); + + HRESULT rslt = this->CreateControlEx(liveNo); + } } - - CAddToMyListDialog::CAddToMyListDialog(CNicoVideoAuth &in_auth):refAuth(in_auth),addToMyListWindow(in_auth){ - } - VOID CAddToMyListDialog::SetLiveNo(LPCTSTR lvNo){ - liveNo = ADDMYLIST_URL; - liveNo += lvNo; - } + INT_PTR CAddToMyListWindow::OnCreate(LPCREATESTRUCT lpCreateStruct){ + LRESULT lRet = DefWindowProc(); - VOID CAddToMyListDialog::OnEndDialog(){ + HRESULT hRet = QueryControl(&m_pWB2); + if(SUCCEEDED(hRet)){ + DispEventAdvise(m_pWB2, &DIID_DWebBrowserEvents2); + } + + - addToMyListWindow.DestroyWindow(); + return lRet; } - BOOL CAddToMyListDialog::OnInitDialog(CWindow wndFocus, LPARAM lInitParam){ - + VOID CAddToMyListWindow::OnDestroy(){ - // ƒXƒNƒŠ[ƒ“‚Ì’†‰›‚É”z’u - CenterWindow(); - - /* - // ‘å‚«‚¢ƒAƒCƒRƒ“Ý’è - HICON hIcon = AtlLoadIconImage(IDD_ADDMYLISTDIALOG, LR_DEFAULTCOLOR, - ::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON)); - SetIcon(hIcon, TRUE); - - // ¬‚³‚¢ƒAƒCƒRƒ“Ý’è - HICON hIconSmall = AtlLoadIconImage(IDD_ADDMYLISTDIALOG, LR_DEFAULTCOLOR, - ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON)); - SetIcon(hIconSmall, FALSE); - */ - RECT selfRc; - this->GetClientRect(&selfRc); - - addToMyListWindow.Create(m_hWnd, selfRc,_T("Shell.Explorer.2"),WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE, IDC_IE); - - - - - - - addToMyListWindow.Navigate(liveNo); - - return TRUE; - } - - VOID CAddToMyListDialog::OnOK(UINT uNotifyCode, int nID, CWindow wndCtl){ - OnEndDialog(); - EndDialog(nID); - } + if(m_pWB2){ + if(DispEventUnadvise(m_pWB2, &DIID_DWebBrowserEvents2) == S_OK){ + m_pWB2 = NULL; + } + } - VOID CAddToMyListDialog::OnCancel(UINT uNotifyCode, int nID, CWindow wndCtl){ - OnEndDialog(); - EndDialog(nID); + SetMsgHandled(false); } - -} \ No newline at end of file + +} diff --git a/nlite/nlite_addTomylistWindow.h b/nlite/nlite_addTomylistWindow.h index c75f5aa..8316dbb 100644 --- a/nlite/nlite_addTomylistWindow.h +++ b/nlite/nlite_addTomylistWindow.h @@ -4,18 +4,19 @@ namespace nlite{ - class CAddToMyListDialog; + //class CAddToMyListDialog; class CAddToMyListWindow : public CWindowImpl, public IDispEventImpl { - friend CAddToMyListDialog; + //friend CAddToMyListDialog; public: DECLARE_WND_SUPERCLASS(NULL, CAxWindow::GetWndClassName()) CComPtr m_pWB2; - CNicoVideoAuth &refAuth; +// CComPtr m_pDoc2; + CString liveNo; BOOL PreTranslateMessage(MSG* pMsg); @@ -26,14 +27,19 @@ namespace nlite{ END_MSG_MAP() BEGIN_SINK_MAP(CAddToMyListWindow) - SINK_ENTRY_EX(IDC_IE, - DIID_DWebBrowserEvents2, DISPID_BEFORENAVIGATE2, OnBeforeNavigate2) + //SINK_ENTRY_EX(IDC_IE, + //DIID_DWebBrowserEvents2, DISPID_BEFORENAVIGATE2, OnBeforeNavigate2) END_SINK_MAP() public: - CAddToMyListWindow(CNicoVideoAuth &in_auth); + + + /// + ///ƒ}ƒCƒŠƒXƒg“o˜^‰æ–Ê•\Ž¦ + /// + VOID ShowAddWindow(LPCTSTR lvNo); private: /// @@ -47,45 +53,11 @@ namespace nlite{ VOID OnDestroy(); + - VOID WINAPI OnBeforeNavigate2(IDispatch** dispatch, VARIANT* url, VARIANT* flags,VARIANT* frameName, VARIANT* postData, VARIANT* headers, VARIANT_BOOL* cancel); - VOID Navigate(LPCTSTR lpszUrl); - + }; - class CAddToMyListDialog:public CDialogImpl - { - - CAddToMyListWindow addToMyListWindow; - - CNLiteString liveNo; - CNicoVideoAuth &refAuth; - - public: - enum {IDD = IDD_ADDMYLISTDIALOG}; - - BEGIN_MSG_MAP(CAddToMyListDialog) - MSG_WM_INITDIALOG(OnInitDialog) - COMMAND_ID_HANDLER_EX(IDOK, OnOK) - COMMAND_ID_HANDLER_EX(IDCANCEL, OnCancel) - END_MSG_MAP() - - - CAddToMyListDialog(CNicoVideoAuth &in_auth); - - VOID SetLiveNo(LPCTSTR lvNo); - - - private: - - VOID OnEndDialog(); - private: - BOOL OnInitDialog(CWindow wndFocus, LPARAM lInitParam); - VOID OnOK(UINT uNotifyCode, int nID, CWindow wndCtl); - - VOID OnCancel(UINT uNotifyCode,INT nID,CWindow wndCtl); - - }; } \ No newline at end of file diff --git a/nlite/nlite_commentview.cpp b/nlite/nlite_commentview.cpp index 9542bfe..7a307ad 100644 --- a/nlite/nlite_commentview.cpp +++ b/nlite/nlite_commentview.cpp @@ -1276,6 +1276,8 @@ end: LRESULT CCommentListWindow::OnCreate(LPCREATESTRUCT lpCreateStruct){ + addToMyListWindow.Create(m_hWnd, 0,_T("Shell.Explorer.2"),WS_CHILD | WS_VISIBLE, 0, IDC_IE); + return 0; } @@ -1354,6 +1356,12 @@ end: } + VOID CCommentListWindow::OnDestroy(){ + + this->addToMyListWindow.DestroyWindow(); + + } + VOID CCommentListWindow::OnLButtonDown(UINT wParam, _WTYPES_NS::CPoint &point){ @@ -1529,10 +1537,9 @@ end: } else if(regex_match((LPCTSTR)selTextBuf,nliteregex::VIDEOID) == TRUE){ - CAddToMyListDialog addToMyListDialog(self.refAuth); - addToMyListDialog.SetLiveNo(selTextBuf); - addToMyListDialog.DoModal(); + + addToMyListWindow.ShowAddWindow(selTextBuf); ::SetFocus(lParam->hwndFrom); diff --git a/nlite/nlite_commentview.h b/nlite/nlite_commentview.h index eaa3954..981b5c0 100644 --- a/nlite/nlite_commentview.h +++ b/nlite/nlite_commentview.h @@ -155,7 +155,7 @@ namespace nlite{ CPen selectSellLinePen; //˜gü•`‰æ—pƒyƒ“ CBrush selectBkBrush; //”wŒi•`‰æ—pƒuƒ‰ƒV CFont linkFont; - + CAddToMyListWindow addToMyListWindow; //ƒ}ƒCƒŠƒXƒg“o˜^—pƒEƒBƒ“ƒhƒE //ƒŠƒ“ƒN•¶Žš—ñ—p‚̃tƒHƒ“ƒg enum { @@ -178,6 +178,7 @@ namespace nlite{ MSG_WM_CREATE(OnCreate) MSG_WM_ERASEBKGND(OnEraseBkGnd) MSG_WM_MOUSEWHEEL(OnMouseWheel) +// MSG_WM_DESTROY(OnDestroy) MSG_WM_PAINT(OnPaint) MSG_WM_SIZE(OnSize) MSG_WM_KEYDOWN(OnKeyDown) @@ -239,6 +240,8 @@ namespace nlite{ VOID ResetViewSellHeight(); + + /// ///ƒNƒŠƒbƒN‚µ‚½s‚ðŒvŽZ /// @@ -263,6 +266,11 @@ namespace nlite{ VOID OnLButtonDown(UINT wParam, _WTYPES_NS::CPoint &point); /// + ///”jŠüŽž‚̏ˆ— + /// + VOID OnDestroy(); + + /// ///•`‰æˆ— /// VOID OnPaint(HDC hdc); diff --git a/nlite/nlite_common.cpp b/nlite/nlite_common.cpp index 4af570e..1ce9e4a 100644 --- a/nlite/nlite_common.cpp +++ b/nlite/nlite_common.cpp @@ -5,6 +5,21 @@ namespace nlite{ +namespace nliteregex{ + namespace text{ + const CString URL_TEXT = TEXT("(https?|ftp)(://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)"); + const CString TAG_TEXT = TEXT("<[\"_;!?,\\:.'$%&#/a-zA-Z0-9= ]*>"); + const CString VIDEOID_TEXT = TEXT("(sm|nm)([0-9])+"); + const CString LIVEID_TEXT = TEXT("(lv)([0-9])+"); + const CString LINK_TEXT = TEXT("(") + URL_TEXT + TEXT(")|(") + VIDEOID_TEXT + TEXT(")|(") + LIVEID_TEXT + TEXT(")"); + } + const tregex URL(text::URL_TEXT); + const tregex TAGSTRING(text::TAG_TEXT); + const tregex VIDEOID(text::VIDEOID_TEXT); + const tregex LIVEID(text::LIVEID_TEXT); + const tregex LILNKREGEX(text::LINK_TEXT); + const tstring NUTHINGSTRING(TEXT("")); +} Property nliteProperty; diff --git a/nlite/nlite_nlib.cpp b/nlite/nlite_nlib.cpp index b1d4f44..f1f4b65 100644 --- a/nlite/nlite_nlib.cpp +++ b/nlite/nlite_nlib.cpp @@ -36,11 +36,13 @@ VOID CNicoVideoAuth::SetBrowserType(BROWSERTYPE bt){ _tcscpy(&userSession[0],this->GetUserSession()); LPTSTR name = &userSession[0]; LPTSTR val =_tcsstr(&userSession[0],TEXT("=")); - *(val) = TEXT('\0'); - val++; - //dumpln(TEXT("left:%s,right:%s"),userSession.Left(sertchEquol),userSession.Right(sertchEquol)); - InternetSetCookie(domein,name,val); - + + if(val != NULL){ + *(val) = TEXT('\0'); + val++; + //dumpln(TEXT("left:%s,right:%s"),userSession.Left(sertchEquol),userSession.Right(sertchEquol)); + ::InternetSetCookieEx(domein,name,val,INTERNET_COOKIE_IS_SESSION,NULL); + } } diff --git a/nlite/stdafx.h b/nlite/stdafx.h index 9ca4bf1..4954d9e 100644 --- a/nlite/stdafx.h +++ b/nlite/stdafx.h @@ -11,7 +11,7 @@ #define WIN32_LEAN_AND_MEAN // Windows ƒwƒbƒ_[‚©‚çŽg—p‚³‚ê‚Ä‚¢‚È‚¢•”•ª‚ðœŠO‚µ‚Ü‚·B #define _CRT_SECURE_NO_WARNINGS 1 //vc++‚Ì‚¨‚¹‚Á‚©‚¢‚ÈŒx‚ðÁ‚· #define _CRT_NON_CONFORMING_SWPRINTFS 1 //vc++‚Ì‚¨‚¹‚Á‚©‚¢‚ÈŒx‚ðÁ‚· -//#define USE_STUB //ƒXƒ^ƒu‚ðŽg—p‚·‚éê‡‚̓Rƒƒ“ƒgƒAƒEƒg‚ð‰ðœ‚·‚é +#define USE_STUB //ƒXƒ^ƒu‚ðŽg—p‚·‚éê‡‚̓Rƒƒ“ƒgƒAƒEƒg‚ð‰ðœ‚·‚é #define WINDEBUGER_NOPRINTING //ƒfƒoƒbƒOo—Í‚ðƒRƒ“ƒ\[ƒ‹‚É•\Ž¦‚µ‚½‚­‚È‚¢ê‡’è‹`‚·‚é #define _WTL_NO_CSTRING