//#include "stdafx.h" #include "Hyperlink.h" #include "./../Slide.h" #include "./../SlideMaster.h" #include "./../SlideLayout.h" #include "./../Theme.h" namespace PPTX { namespace Logic { CString Hyperlink::GetFullHyperlinkName(FileContainer* pRels)const { if(id.IsInit() && *id != _T("")) { PPTX::RId rid(*id); CString sLink = _T(""); if (pRels != NULL) { smart_ptr p = pRels->hyperlink(rid); if (p.is_init()) sLink = p->Uri().m_strFilename; } if(sLink.IsEmpty()) { if(parentFileIs()) sLink = parentFileAs().GetFullHyperlinkNameFromRId(rid); else if(parentFileIs()) sLink = parentFileAs().GetFullHyperlinkNameFromRId(rid); else if(parentFileIs()) sLink = parentFileAs().GetFullHyperlinkNameFromRId(rid); else if(parentFileIs()) sLink = parentFileAs().GetFullHyperlinkNameFromRId(rid); } sLink.Replace(TCHAR('\\'), TCHAR('/')); sLink.Replace(_T("//"), _T("/")); sLink.Replace(_T("http:/"), _T("http://")); sLink.Replace(_T("https:/"), _T("https://")); sLink.Replace(_T("ftp:/"), _T("ftp://")); sLink.Replace(_T("file:/"), _T("file://")); return sLink; } return _T(""); } } // namespace Logic } // namespace PPTX