OSDN Git Service

IHTMLDocument2使えるようになった
authorqwerty2501 <riot313@gmail.com>
Tue, 7 Feb 2012 11:57:39 +0000 (20:57 +0900)
committerqwerty2501 <riot313@gmail.com>
Tue, 7 Feb 2012 11:57:39 +0000 (20:57 +0900)
nlite.suo
nlite/nlite_addTomylistWindow.cpp
nlite/nlite_addTomylistWindow.h

index 20685cf..2731503 100644 (file)
Binary files a/nlite.suo and b/nlite.suo differ
index 8919460..d1479a3 100644 (file)
@@ -5,7 +5,15 @@
 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>");
+       
+       
+       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 ){
 
@@ -28,10 +36,25 @@ namespace nlite{
 
                if(m_pWB2){
                        CComVariant 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);
+                       //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);
                        
@@ -47,13 +70,9 @@ namespace nlite{
                if(SUCCEEDED(hRet)){
                        DispEventAdvise(m_pWB2, &DIID_DWebBrowserEvents2);
                }
-
-               
-               
-               CComPtr<IDispatch> pDisp; 
-               HRESULT dRet = m_pWB2->get_Document(&pDisp);    //<-S_FAILE\82É\82È\82é
-               CComQIPtr<IHTMLDocument2> spDocument(pDisp); 
-               
+               VARIANT v;
+               //m_pWB2->Navigate(TEXT("url"),&v,&v,&v,&v);
+               m_pWB2->Navigate(TEXT("about:brank"),&v,&v,&v,&v);
 
                return lRet;
        }
index 661c21c..1154c74 100644 (file)
@@ -26,8 +26,9 @@ namespace nlite{
                        MSG_WM_CREATE(OnCreate)
                        MSG_WM_DESTROY(OnDestroy)
                END_MSG_MAP()
-
+               
                BEGIN_SINK_MAP(CAddToMyListWindow)
+                       SINK_ENTRY_EX(IDC_NLITE_ADDMYLIST, DIID_DWebBrowserEvents2, DISPID_DOCUMENTCOMPLETE, OnDocumentComplete)
                        SINK_ENTRY_EX(IDC_NLITE_ADDMYLIST, DIID_DWebBrowserEvents2, DISPID_NEWWINDOW2, OnNewWindow2)
                        //SINK_ENTRY_EX(IDC_NLITE_ADDMYLIST, 
                        //DIID_DWebBrowserEvents2, DISPID_BEFORENAVIGATE2, OnBeforeNavigate2)
@@ -36,6 +37,10 @@ namespace nlite{
 
        public:
 
+               ///
+               ///\83h\83L\83\85\83\81\83\93\83g\93Ç\82Ý\8d\9e\82Ý\89Â\94\\82É\82È\82Á\82½\82Æ\82«
+               ///
+               VOID WINAPI OnDocumentComplete(IDispatch* pDisp, VARIANT* URL);
 
                ///
                ///\90V\82µ\82¢\83E\83B\83\93\83h\83E\8dì\90¬\8e\9e\82Ì\8f\88\97\9d