/**************************************************************************\ * * 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