GdiPlusFontFamily.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:4k
- /**************************************************************************
- *
- * Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved.
- *
- * Module Name:
- *
- * GdiplusFontFamily.h
- *
- * Abstract:
- *
- * GDI+ Font Family class
- *
- **************************************************************************/
- #ifndef _GDIPLUS_FONT_FAMILY_H
- #define _GDIPLUS_FONT_FAMILY_H
- inline
- FontFamily::FontFamily() :
- nativeFamily (NULL),
- lastResult (Ok)
- {
- }
- inline
- FontFamily::FontFamily(
- IN const WCHAR* name,
- IN const FontCollection* fontCollection
- )
- {
- nativeFamily = NULL;
- lastResult = DllExports::GdipCreateFontFamilyFromName(
- name,
- fontCollection ? fontCollection->nativeFontCollection : NULL,
- &nativeFamily
- );
- }
- inline
- FontFamily::FontFamily(
- IN GpFontFamily *nativeOrig,
- IN Status status
- )
- {
- lastResult = status;
- nativeFamily = nativeOrig;
- }
- inline const FontFamily *
- FontFamily::GenericSansSerif()
- {
- if (GenericSansSerifFontFamily != NULL)
- {
- return GenericSansSerifFontFamily;
- }
- GenericSansSerifFontFamily =
- (FontFamily*) GenericSansSerifFontFamilyBuffer;
- GenericSansSerifFontFamily->lastResult =
- DllExports::GdipGetGenericFontFamilySansSerif(
- &(GenericSansSerifFontFamily->nativeFamily)
- );
- return GenericSansSerifFontFamily;
- }
- inline const FontFamily *
- FontFamily::GenericSerif()
- {
- if (GenericSerifFontFamily != NULL)
- {
- return GenericSerifFontFamily;
- }
- GenericSerifFontFamily =
- (FontFamily*) GenericSerifFontFamilyBuffer;
- GenericSerifFontFamily->lastResult =
- DllExports::GdipGetGenericFontFamilySerif(
- &(GenericSerifFontFamily->nativeFamily)
- );
- return GenericSerifFontFamily;
- }
- inline const FontFamily *
- FontFamily::GenericMonospace()
- {
- if (GenericMonospaceFontFamily != NULL)
- {
- return GenericMonospaceFontFamily;
- }
- GenericMonospaceFontFamily =
- (FontFamily*) GenericMonospaceFontFamilyBuffer;
- GenericMonospaceFontFamily->lastResult =
- DllExports::GdipGetGenericFontFamilyMonospace(
- &(GenericMonospaceFontFamily->nativeFamily)
- );
- return GenericMonospaceFontFamily;
- }
- inline FontFamily::~FontFamily()
- {
- DllExports::GdipDeleteFontFamily (nativeFamily);
- }
- inline FontFamily *
- FontFamily::Clone() const
- {
- GpFontFamily * clonedFamily = NULL;
- SetStatus(DllExports::GdipCloneFontFamily (nativeFamily, &clonedFamily));
- return new FontFamily(clonedFamily, lastResult);
- }
- inline Status
- FontFamily::GetFamilyName(
- IN WCHAR name[LF_FACESIZE],
- IN LANGID language
- ) const
- {
- return SetStatus(DllExports::GdipGetFamilyName(nativeFamily,
- name,
- language));
- }
- inline BOOL
- FontFamily::IsStyleAvailable(IN INT style) const
- {
- BOOL StyleAvailable;
- Status status;
- status = SetStatus(DllExports::GdipIsStyleAvailable(nativeFamily, style, &StyleAvailable));
- if (status != Ok)
- StyleAvailable = FALSE;
- return StyleAvailable;
- }
- inline UINT16
- FontFamily::GetEmHeight(IN INT style) const
- {
- UINT16 EmHeight;
- SetStatus(DllExports::GdipGetEmHeight(nativeFamily, style, &EmHeight));
- return EmHeight;
- }
- inline UINT16
- FontFamily::GetCellAscent(IN INT style) const
- {
- UINT16 CellAscent;
- SetStatus(DllExports::GdipGetCellAscent(nativeFamily, style, &CellAscent));
- return CellAscent;
- }
- inline UINT16
- FontFamily::GetCellDescent(IN INT style) const
- {
- UINT16 CellDescent;
- SetStatus(DllExports::GdipGetCellDescent(nativeFamily, style, &CellDescent));
- return CellDescent;
- }
- inline UINT16
- FontFamily::GetLineSpacing(IN INT style) const
- {
- UINT16 LineSpacing;
- SetStatus(DllExports::GdipGetLineSpacing(nativeFamily, style, &LineSpacing));
- return LineSpacing;
- }
- inline Status
- FontFamily::GetLastStatus() const
- {
- Status lastStatus = lastResult;
- lastResult = Ok;
- return lastStatus;
- }
- inline Status
- FontFamily::SetStatus(Status status) const
- {
- if (status != Ok)
- return (lastResult = status);
- else
- return status;
- }
- #endif