135 lines
2.8 KiB
C
135 lines
2.8 KiB
C
|
/**************************************************************************\
|
||
|
*
|
||
|
* Copyright (c) 2000, Microsoft Corp. All Rights Reserved.
|
||
|
*
|
||
|
* Module Name:
|
||
|
*
|
||
|
* GdiplusFontCollection.h
|
||
|
*
|
||
|
* Abstract:
|
||
|
*
|
||
|
* Font collections (Installed and Private)
|
||
|
*
|
||
|
\**************************************************************************/
|
||
|
|
||
|
#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);
|
||
|
}
|
||
|
*numFound = 0;
|
||
|
GpFontFamily **nativeFamilyList = new GpFontFamily*[numSought];
|
||
|
|
||
|
if (nativeFamilyList == NULL)
|
||
|
{
|
||
|
return SetStatus(OutOfMemory);
|
||
|
}
|
||
|
|
||
|
Status status = SetStatus(DllExports::GdipGetFontCollectionFamilyList(
|
||
|
nativeFontCollection,
|
||
|
numSought,
|
||
|
nativeFamilyList,
|
||
|
numFound
|
||
|
));
|
||
|
if (status == Ok)
|
||
|
{
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
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
|
||
|
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
|