1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**************************************************************************\ 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Copyright (c) 2000, Microsoft Corp. All Rights Reserved. 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Module Name: 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* GdiplusFontCollection.h 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Abstract: 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Font collections (Installed and Private) 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov\**************************************************************************/ 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef _GDIPLUSFONTCOLL_H 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _GDIPLUSFONTCOLL_H 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFontCollection::FontCollection() 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nativeFontCollection = NULL; 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFontCollection::~FontCollection() 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline INT 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFontCollection::GetFamilyCount() const 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov INT numFound = 0; 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipGetFontCollectionFamilyCount( 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nativeFontCollection, &numFound); 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return numFound; 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFontCollection::GetFamilies( 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN INT numSought, 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov OUT FontFamily * gpfamilies, 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov OUT INT * numFound 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov) const 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (numSought <= 0 || gpfamilies == NULL || numFound == NULL) 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(InvalidParameter); 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *numFound = 0; 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpFontFamily **nativeFamilyList = new GpFontFamily*[numSought]; 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (nativeFamilyList == NULL) 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(OutOfMemory); 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov Status status = SetStatus(DllExports::GdipGetFontCollectionFamilyList( 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nativeFontCollection, 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov numSought, 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nativeFamilyList, 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov numFound 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov )); 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (status == Ok) 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov for (INT i = 0; i < *numFound; i++) 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov DllExports::GdipCloneFontFamily(nativeFamilyList[i], 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &gpfamilies[i].nativeFamily); 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov delete [] nativeFamilyList; 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return status; 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status FontCollection::GetLastStatus () const 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return lastResult; 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// protected method 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 88ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFontCollection::SetStatus(IN Status status) const 89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = status; 91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return lastResult; 92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 95ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovInstalledFontCollection::InstalledFontCollection() 96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nativeFontCollection = NULL; 98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipNewInstalledFontCollection(&nativeFontCollection); 99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 102ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovInstalledFontCollection::~InstalledFontCollection() 103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef DCR_USE_NEW_235072 107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 108ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovInstalledFontCollection::InstallFontFile(IN const WCHAR* filename) 109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipInstallFontFile(nativeFontCollection, filename)); 111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 114ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovInstalledFontCollection::UninstallFontFile(IN const WCHAR* filename) 115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipUninstallFontFile(nativeFontCollection, filename)); 117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 121ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovPrivateFontCollection::PrivateFontCollection() 122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nativeFontCollection = NULL; 124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipNewPrivateFontCollection(&nativeFontCollection); 125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 128ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovPrivateFontCollection::~PrivateFontCollection() 129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov DllExports::GdipDeletePrivateFontCollection(&nativeFontCollection); 131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 134ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovPrivateFontCollection::AddFontFile(IN const WCHAR* filename) 135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipPrivateAddFontFile(nativeFontCollection, filename)); 137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 140ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovPrivateFontCollection::AddMemoryFont(IN const void* memory, 141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN INT length) 142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipPrivateAddMemoryFont( 144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nativeFontCollection, 145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov memory, 146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov length)); 147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 149ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif // _GDIPLUSFONTCOLL_H 150