147 lines
3.1 KiB
C
147 lines
3.1 KiB
C
/**************************************************************************\
|
|
*
|
|
* Copyright (c) 2000, Microsoft Corp. All Rights Reserved.
|
|
*
|
|
* Abstract:
|
|
*
|
|
* Font collections (Installed and Private)
|
|
*
|
|
* Revision History:
|
|
*
|
|
* 03/07/2000 DChinn
|
|
* Created it.
|
|
*
|
|
\**************************************************************************/
|
|
|
|
#ifndef _GDIPLUSFONTCOLL_H
|
|
#define _GDIPLUSFONTCOLL_H
|
|
|
|
inline
|
|
FontCollection::FontCollection()
|
|
{
|
|
nativeFontCollection = NULL;
|
|
}
|
|
|
|
inline
|
|
FontCollection::~FontCollection()
|
|
{
|
|
}
|
|
|
|
inline INT
|
|
FontCollection::GetFamilyCount() const
|
|
{
|
|
INT numFound = 0;
|
|
|
|
lastResult = DllExports::GdipGetFontCollectionFamilyCount(
|
|
nativeFontCollection, &numFound);
|
|
|
|
|
|
|
|
return numFound;
|
|
}
|
|
|
|
inline Status
|
|
FontCollection::GetFamilies(
|
|
IN INT numSought,
|
|
OUT FontFamily * gpfamilies,
|
|
OUT INT * numFound
|
|
) const
|
|
{
|
|
if (numSought <= 0 || gpfamilies == NULL || numFound == NULL)
|
|
{
|
|
return SetStatus(InvalidParameter);
|
|
}
|
|
|
|
GpFontFamily **nativeFamilyList = new GpFontFamily*[numSought];
|
|
|
|
if (nativeFamilyList == NULL)
|
|
{
|
|
return SetStatus(OutOfMemory);
|
|
}
|
|
|
|
Status status = SetStatus(DllExports::GdipGetFontCollectionFamilyList(
|
|
nativeFontCollection,
|
|
numSought,
|
|
nativeFamilyList,
|
|
numFound
|
|
));
|
|
|
|
for (INT i = 0; i < *numFound; i++)
|
|
{
|
|
DllExports::GdipCloneFontFamily(nativeFamilyList[i],
|
|
&gpfamilies[i].nativeFamily);
|
|
}
|
|
|
|
delete [] nativeFamilyList;
|
|
|
|
return status;
|
|
}
|
|
|
|
inline Status FontCollection::GetLastStatus () const
|
|
{
|
|
return lastResult;
|
|
}
|
|
|
|
// protected method
|
|
inline Status
|
|
FontCollection::SetStatus(IN Status status) const
|
|
{
|
|
lastResult = status;
|
|
return lastResult;
|
|
}
|
|
|
|
inline
|
|
InstalledFontCollection::InstalledFontCollection()
|
|
{
|
|
nativeFontCollection = NULL;
|
|
lastResult = DllExports::GdipNewInstalledFontCollection(&nativeFontCollection);
|
|
}
|
|
|
|
inline
|
|
InstalledFontCollection::~InstalledFontCollection()
|
|
{
|
|
}
|
|
|
|
inline Status
|
|
InstalledFontCollection::InstallFontFile(IN const WCHAR* filename)
|
|
{
|
|
return SetStatus(DllExports::GdipInstallFontFile(nativeFontCollection, filename));
|
|
}
|
|
|
|
inline Status
|
|
InstalledFontCollection::UninstallFontFile(IN const WCHAR* filename)
|
|
{
|
|
return SetStatus(DllExports::GdipUninstallFontFile(nativeFontCollection, filename));
|
|
}
|
|
|
|
inline
|
|
PrivateFontCollection::PrivateFontCollection()
|
|
{
|
|
nativeFontCollection = NULL;
|
|
lastResult = DllExports::GdipNewPrivateFontCollection(&nativeFontCollection);
|
|
}
|
|
|
|
inline
|
|
PrivateFontCollection::~PrivateFontCollection()
|
|
{
|
|
DllExports::GdipDeletePrivateFontCollection(&nativeFontCollection);
|
|
}
|
|
|
|
inline Status
|
|
PrivateFontCollection::AddFontFile(IN const WCHAR* filename)
|
|
{
|
|
return SetStatus(DllExports::GdipPrivateAddFontFile(nativeFontCollection, filename));
|
|
}
|
|
|
|
inline Status
|
|
PrivateFontCollection::AddMemoryFont(IN const void* memory,
|
|
IN INT length)
|
|
{
|
|
return SetStatus(DllExports::GdipPrivateAddMemoryFont(
|
|
nativeFontCollection,
|
|
memory,
|
|
length));
|
|
}
|
|
|
|
#endif // _GDIPLUSFONTCOLL_H
|