You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			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
 |