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;
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;
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*)¶m);
+ 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);
+ }
}
//class CAddToMyListDialog;
-
+ /*
class CAddToMyListWindow : public CWindowImpl<CAddToMyListWindow, CAxWindow>,
public IDispEventImpl<IDC_NLITE_ADDMYLIST, CAddToMyListWindow, &DIID_DWebBrowserEvents2, &LIBID_SHDocVw, 1, 1>
{
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)
+ SINK_ENTRY_EX(IDC_NLITE_ADDMYLIST,
+ DIID_DWebBrowserEvents2, DISPID_BEFORENAVIGATE2, OnBeforeNavigate2)
END_SINK_MAP()
///\90V\82µ\82¢\83E\83B\83\93\83h\83E\8dì\90¬\8e\9e\82Ì\8f\88\97\9d
///
VOID WINAPI OnNewWindow2(LPDISPATCH* ppDisp,BOOL* Cancel );
-
+
+ ///
+ ///\83i\83r\83Q\81[\83V\83\87\83\93\91O
+ ///
+ VOID WINAPI OnBeforeNavigate2(IDispatch** dispatch, VARIANT* url, VARIANT* flags,VARIANT* frameName, VARIANT* postData, VARIANT* headers, VARIANT_BOOL* cancel);
///
///\83}\83C\83\8a\83X\83g\93o\98^\89æ\96Ê\95\\8e¦
};
+ */
+
+
+ class CAddToMyListWindow : public CWindowImpl<CAddToMyListWindow, CAxWindow>,
+ public IDispEventImpl<IDC_NLITE_ADDMYLIST, CAddToMyListWindow, &DIID_DWebBrowserEvents2, &LIBID_SHDocVw, 1, 1>
+ {
+ //friend CAddToMyListDialog;
+ public:
+ DECLARE_WND_SUPERCLASS(NULL, CAxWindow::GetWndClassName())
+
+ CComPtr<IWebBrowser2> m_pWB2;
+// CComPtr<IHTMLDocument2> m_pDoc2;
+
+ CString liveNo;
+
+ BOOL PreTranslateMessage(MSG* pMsg);
+ BEGIN_MSG_MAP(CAddToMyListWindow)
+ MSG_WM_CREATE(OnCreate)
+ MSG_WM_CLOSE(OnClose)
+ 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)
+ END_SINK_MAP()
+
+
+ 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
+ ///
+ VOID WINAPI OnNewWindow2(LPDISPATCH* ppDisp,BOOL* Cancel );
+
+ ///
+ ///\83i\83r\83Q\81[\83V\83\87\83\93\91O
+ ///
+ VOID WINAPI OnBeforeNavigate2(IDispatch** dispatch, VARIANT* url, VARIANT* flags,VARIANT* frameName, VARIANT* postData, VARIANT* headers, VARIANT_BOOL* cancel);
+
+ ///
+ ///\83}\83C\83\8a\83X\83g\93o\98^\89æ\96Ê\95\\8e¦
+ ///
+ VOID ShowAddWindow(CNicoVideoAuth &refAuth,LPCTSTR lvNo);
+ private:
+
+ ///
+ ///\8dì\90¬\8e\9e\82Ì\8f\88\97\9d
+ ///
+ INT_PTR OnCreate(LPCREATESTRUCT lpCreateStruct);
+
+ ///
+ ///\94j\8aü\8e\9e\82Ì\8f\88\97\9d
+ ///
+ VOID OnDestroy();
+
+ ///
+ ///\95Â\82¶\82ç\82ê\82é\82Æ\82«\82Ì\8f\88\97\9d
+ ///
+ VOID OnClose();
+
+
+
+
+ };
+
}
\ No newline at end of file
//::AtlAxCreateControlEx(TEXT("MSHTML:<HTML><BODY></BODY></HTML>"),*this,(IStream*)NULL,(IUnknown**)NULL,&iu,GUID_NULL);
//iu->QueryInterface(DIID_DWebBrowserEvents2,&addToMyListWindow);
- addToMyListWindow.Create(m_hWnd, 0,_T("Shell.Explorer.2"),WS_CHILD | WS_VISIBLE, 0, IDC_NLITE_ADDMYLIST);
+ RECT rc = {0,0,300,200};
+ addToMyListWindow.Create(m_hWnd, &rc,_T("Shell.Explorer.2"),WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN , 0);
return 0;
}
throw NLIBException(TEXT("\83j\83R\83j\83R\93®\89æ\94F\8fØ\8fî\95ñ\8eæ\93¾\82É\8e¸\94s\82µ\82Ü\82µ\82½"),rslt,__LINE__,TEXT(__FILE__),TEXT(__FUNCTION__));
}
+ InternetSetOption(0, INTERNET_OPTION_END_BROWSER_SESSION, NULL, 0);
}