mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@59062 954022d7-b5bf-4e40-9824-e11837661b57
52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
//#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<PPTX::HyperLink> p = pRels->hyperlink(rid);
|
|
if (p.is_init())
|
|
sLink = p->Uri().m_strFilename;
|
|
}
|
|
if(sLink.IsEmpty())
|
|
{
|
|
if(parentFileIs<Slide>())
|
|
sLink = parentFileAs<Slide>().GetFullHyperlinkNameFromRId(rid);
|
|
else if(parentFileIs<SlideLayout>())
|
|
sLink = parentFileAs<SlideLayout>().GetFullHyperlinkNameFromRId(rid);
|
|
else if(parentFileIs<SlideMaster>())
|
|
sLink = parentFileAs<SlideMaster>().GetFullHyperlinkNameFromRId(rid);
|
|
else if(parentFileIs<Theme>())
|
|
sLink = parentFileAs<Theme>().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
|
|
|