Пример #1
0
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 += '/';
}
Пример #2
0
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;
}
Пример #3
0
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;
}