void fsInternetFileListMgr::FolderToUrl(LPCSTR pszFolder, fsString &strUrl) { strUrl = ""; char* pszRes; GetCurrentUrl (strUrl); fsUrlToFullUrl (strUrl, pszFolder, &pszRes); strUrl = pszRes; delete [] pszRes; int len = strUrl.Length (); if (len > 0 && strUrl [len - 1] != '\\' && strUrl [len - 1] != '/') strUrl += '/'; }
fsInternetResult fsInternetFileListMgr::GetFullUrl(LPCSTR pszRelOrNotUrl, fsString &strUrl) { fsURL url; if (m_files == NULL) return IR_S_FALSE; fsString strUrlCurrent; GetCurrentUrl (strUrlCurrent); char* pszRes; fsUrlToFullUrl (strUrlCurrent, pszRelOrNotUrl, &pszRes); strUrl = pszRes; delete [] pszRes; return IR_SUCCESS; }
STDMETHODIMP CWgUrlListReceiver::GetUrlListFromDocumentSelection(IDispatch *pDispatch) { USES_CONVERSION; CComQIPtr<IHTMLDocument2> doc = pDispatch; if (doc == NULL) return E_FAIL; BSTR bstr = NULL; doc->get_cookie (&bstr); if (bstr) { put_Cookies (bstr); SysFreeString (bstr); } else put_Cookies (L""); CComQIPtr <IHTMLSelectionObject> sel; if (FAILED (doc->get_selection (&sel))) return E_FAIL; CComBSTR str; sel->get_type (&str); if (stricmp (W2A (str), "none") == 0) return S_FALSE; IDispatch *pDisp = NULL; if (FAILED (sel->createRange (&pDisp))) return E_FAIL; CComQIPtr <IHTMLTxtRange> text = pDisp; if (text == NULL) return E_FAIL; CComBSTR htmlText; if (FAILED (text->get_htmlText (&htmlText))) return E_FAIL; fsHTMLParser parser; parser.SetKillDupes (TRUE); parser.ParseHTML ((LPSTR) W2A (htmlText)); m_bstrComment = m_bstrReferer = L""; CComBSTR bstrRootURL; if (FAILED (doc->get_URL (&bstrRootURL))) return E_FAIL; LPCSTR pszRootURL = W2A (bstrRootURL); for (int i = 0; i < parser.GetUrlCount (); i ++) { LPCSTR pszUrl = parser.GetUrl (i); if (*pszUrl == '#') continue; LPSTR pszFullUrl; fsUrlToFullUrl (pszRootURL, pszUrl, &pszFullUrl); if (pszFullUrl == NULL) continue; fsURL url; if (IR_SUCCESS != url.Crack (pszFullUrl, TRUE)) { delete [] pszFullUrl; continue; } if (*url.GetHostName () == 0) { delete [] pszFullUrl; continue; } put_Url (A2W (pszFullUrl)); AddUrlToList (); delete [] pszFullUrl; } return S_OK; }