// 真登录 void CLoginDlg::Login(BOOL prompt) { HRESULT result = GetCookie(m_cookie); TRACE(_T("0x%08X %s\n"), result, (LPCTSTR)m_cookie); if (FAILED(result)) { if (prompt) { CString tmp; if (result == ERROR_INVALID_DATA) tmp.Format(_T("无效的Cookie:\r\n%s"), (LPCTSTR)m_cookie); else tmp.Format(_T("获取Cookie失败!\r\n错误代码0x%08X\r\n"), result); AfxMessageBox(tmp, MB_ICONERROR); } return; } GetLoginUserName(); if (m_userName == _T("")) { AfxMessageBox(_T("获取用户名失败!"), MB_ICONERROR); return; } EndDialog(IDOK); }
HRESULT CSinaSvr::CheckLoginStatus(CString URL) { if(m_ActionStatus != SINA_LOGINING) return S_FALSE; /* check login pwd //http://login.sina.com.cn/sso/login.php */ long ulen = 0; IHTMLDocument3 *pDoc3 = GetDocument3(); HRESULT hr = E_FAIL; if (URL.Find(_T("http://login.sina.com.cn/sso/login.php"),0) >= 0) { CComBSTR strName = _T("retcode"); CComQIPtr<IHTMLElementCollection> i_Collect; CComQIPtr<IDispatch> i_Dispath; CComQIPtr<IHTMLInputElement> iInput; pDoc3->getElementsByName(strName,&i_Collect); i_Collect->get_length(&ulen); for (long i=0;i<ulen;i++){ i_Dispath = getElementInCollection(i_Collect,i); hr = i_Dispath-> QueryInterface(IID_IHTMLInputElement,(void **)&iInput); CComBSTR str; iInput->get_value(&str); m_ActionStatus = SINA_PWD_ERROR; return S_OK; } } pDoc3->Release(); //http://weibo.com/signup/full_info.php?uid=2452258262&type=2&r=/2452258262 not regist for weibo. if (URL.Find(_T("http://weibo.com/signup/full_info.php?uid="),0) >= 0) { m_ActionStatus = SINA_NO_WEIBO; return S_OK; } CString strHtml; IHTMLDocument2 *pDoc = GetDocument(); GetCookie(pDoc,m_strCookie); GetSource(pDoc,strHtml); pDoc->Release(); FILE *f = _tfopen(_T("cookie.txt"),_T("w")); fwrite(m_strCookie.GetBuffer(),1,m_strCookie.GetLength()*2,f); fclose(f); f = _tfopen(_T("html.txt"),_T("w")); fwrite(strHtml.GetBuffer(),1,strHtml.GetLength(),f); fclose(f); return S_OK; }
void CpeepmBrowser::OnThreadBrowser(const char* url, char* cookie) { wchar_t* u = CpeepmUtil::CharToWideChar(url, strlen(url)); if (u == NULL) return; char* o = GetCookie(); SaveCookie(cookie); m_Browser.Navigate(u, NULL, NULL, NULL, NULL); Sleep(1000); SaveCookie(o); ReleaseArray(o); ReleaseArray(u); }
void TWebPgFetchEvent::OnConnect(const uint64& SockId){ TChA RqChA; if (CurUrl->IsHttpRqStr()){ RqChA=CurUrl->GetHttpRqStr(); } else { // get http components TStr HostNm=CurUrl->GetHostNm(); TStr AbsPath=CurUrl->GetPathStr()+CurUrl->GetSearchStr(); // compose http request RqChA+="GET "; RqChA+=AbsPath; RqChA+=" HTTP/1.0\r\n"; RqChA+="Host: "; RqChA+=HostNm; RqChA+="\r\n"; if (!UserAgentStr.Empty()){ RqChA+="User-Agent: "; RqChA+=UserAgentStr; RqChA+="\r\n";} // add cookies if (GetCookies()>0){ RqChA+="Cookie: "; for (int CookieN=0; CookieN<GetCookies(); CookieN++){ TStr KeyNm; TStr ValStr; TStr DmNm; TStr PathStr; GetCookie(CookieN, KeyNm, ValStr, DmNm, PathStr); if (HostNm.EndsWith(DmNm)){ if (CookieN>0){RqChA+="; ";} RqChA+=KeyNm; RqChA+='='; RqChA+=ValStr; } } RqChA+="\r\n"; } // finish request RqChA+="\r\n"; } // send http request PSIn RqSIn=TMIn::New(RqChA); bool Ok; TStr ErrMsg; Sock->Send(RqSIn, Ok, ErrMsg); if (Ok){ Sock->PutTimeOut(TimeOutMSecs); } else { OnFetchError("Unable to send the data: " + ErrMsg); } }
void CAutoSliderDlg::CMyAutoSliderCtrl::OnNewPos() { CAutoSliderDlg *asp = (CAutoSliderDlg *)GetCookie(); asp->OnPosChange(); }