OSDN Git Service

IEコンポーネントでマイリスト登録機能は無理な感じ?
[nlite/nlite.git] / nlite / nlite_addTomylistWindow.cpp
index d1479a3..781e9cb 100644 (file)
@@ -5,8 +5,8 @@
 namespace nlite{
 
        static const LPCTSTR ADDMYLIST_URL = TEXT("MSHTML:<HTML><BODY><SCRIPT TYPE=\"text/javascript\">window.open('http://www.nicovideo.jp/mylist_add/video/{1}', 'nicomylistadd', 'width=500,height=360');</SCRIPT></BODY></HTML>");
-       
-       
+       static const LPCTSTR ADDMYLISTAPI_URL = TEXT("http://www.nicovideo.jp/mylist_add/video/{1}");
+       /*
        VOID WINAPI CAddToMyListWindow::OnDocumentComplete(IDispatch* pDisp, VARIANT* URL){
 
                CComPtr<IDispatch> idp;
@@ -29,6 +29,13 @@ namespace nlite{
                return (BOOL)SendMessage(WM_FORWARDMSG, 0, (LPARAM)pMsg);
        }
 
+       VOID WINAPI CAddToMyListWindow::OnBeforeNavigate2(IDispatch** dispatch, VARIANT* url, VARIANT* flags,VARIANT* frameName, VARIANT* postData, VARIANT* headers, VARIANT_BOOL* cancel){
+
+               dumpln(TEXT("veforeNavigate"));
+
+               return;
+       }
+
 
        VOID CAddToMyListWindow::ShowAddWindow(CNicoVideoAuth &refAuth,LPCTSTR lvNo){
                liveNo = ADDMYLIST_URL;
@@ -90,6 +97,109 @@ cleanup:;
 
                SetMsgHandled(false);
        }
+       */
+
+       VOID WINAPI CAddToMyListWindow::OnDocumentComplete(IDispatch* pDisp, VARIANT* URL){
+               /*
+               CComPtr<IDispatch> idp;
+               this->m_pWB2->get_Document(&idp);
+//             this->m_pDoc2 = idp;
+*/
+               return;
+       }
+
+       VOID WINAPI CAddToMyListWindow::OnNewWindow2(LPDISPATCH* ppDisp,BOOL* Cancel ){
+
+               dumpln(TEXT("newwindow"));
+               return;
+       }
+
+       BOOL CAddToMyListWindow::PreTranslateMessage(MSG* pMsg){
+               if((pMsg->message < WM_KEYFIRST || pMsg->message > WM_KEYLAST) &&
+                       (pMsg->message < WM_MOUSEFIRST || pMsg->message > WM_MOUSELAST))
+                       return FALSE;
+
+               return (BOOL)SendMessage(WM_FORWARDMSG, 0, (LPARAM)pMsg);
+       }
+
+       VOID WINAPI CAddToMyListWindow::OnBeforeNavigate2(IDispatch** dispatch, VARIANT* url, VARIANT* flags,VARIANT* frameName, VARIANT* postData, VARIANT* headers, VARIANT_BOOL* cancel){
+
+               
+               dumpln(TEXT("veforeNavigate"));
+
+               return;
+       }
+
+
+       VOID CAddToMyListWindow::ShowAddWindow(CNicoVideoAuth &refAuth,LPCTSTR lvNo){
+               
+               this->CenterWindow();
+               this->ShowWindow(SW_SHOW);
+               liveNo = ADDMYLISTAPI_URL;
+               liveNo.Replace(TEXT("{1}"), lvNo);
+
+               if(m_pWB2){
+                       VARIANT v;
+                       
+                       m_pWB2->Navigate(CComBSTR(liveNo),&v,&v,&v,&v);
+                       
+                       /*
+                       // Creates a new one-dimensional array
+                       SAFEARRAY *psaStrings = SafeArrayCreateVector(VT_VARIANT, 0, 1);
+                       if (psaStrings == NULL) {
+                               goto cleanup;
+                       }
 
+                       VARIANT *param;
+                       HRESULT hr = SafeArrayAccessData(psaStrings, (LPVOID*)&param);
+                       param->vt = VT_BSTR;
+                       param->bstrVal = CComBSTR(liveNo);
+                       hr = SafeArrayUnaccessData(psaStrings);
+                       m_pDoc2->write(psaStrings);
+                       */
+cleanup:;
+                       
+                       //CComPtr<IUnknown> iup;
+                       //HRESULT rslt = this->CreateControlEx(liveNo,(IStream*)NULL,(IUnknown**)NULL,&iup,GUID_NULL,(IUnknown*)NULL);
+                       //CComPtr<IDispatch> idp = (IDispatch*)&iup;
+                       //iup->QueryInterface(DIID_DWebBrowserEvents2,(LPVOID*)&idp);
+                       
+                       
+               }
+       }
+
+
+       INT_PTR CAddToMyListWindow::OnCreate(LPCREATESTRUCT lpCreateStruct){
+               LRESULT lRet = DefWindowProc();
+
+               HRESULT hRet = QueryControl(&m_pWB2);
+               if(SUCCEEDED(hRet)){
+                       DispEventAdvise(m_pWB2, &DIID_DWebBrowserEvents2);
+               }
+               /*
+               VARIANT v;
+               //m_pWB2->Navigate(TEXT("url"),&v,&v,&v,&v);
+               m_pWB2->Navigate(TEXT("about:brank"),&v,&v,&v,&v);
+               */
+               return lRet;
+       }
+
+
+       VOID CAddToMyListWindow::OnDestroy(){
+               
+               
+               
+               if(m_pWB2){
+                       if(DispEventUnadvise(m_pWB2, &DIID_DWebBrowserEvents2) == S_OK){
+                               m_pWB2 = NULL;
+                       }
+               }
+
+               SetMsgHandled(false);
+       }
        
+       VOID CAddToMyListWindow::OnClose(){
+
+               this->ShowWindow(SW_HIDE);
+       }
 }