| /**************************************************************************\ |
| * |
| * 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; |
| } |
| |
| // 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() |
| { |
| } |
| |
| #ifndef DCR_USE_NEW_235072 |
| 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)); |
| } |
| #endif |
| |
| 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 |