Интерфейс IFont (ocidl.h)
Предоставляет оболочку вокруг объекта шрифта Windows. Объект com-шрифта поддерживает ряд свойств чтения и записи, а также набор методов через интерфейс IFont . Он поддерживает тот же набор свойств (но не методы) через интерфейс диспетчеризации IFontDisp, производный от IDispatch для предоставления доступа к свойствам шрифта через автоматизацию. Система обеспечивает стандартную реализацию объекта шрифта с обоими интерфейсами.
Объект font также поддерживает исходящий интерфейс IPropertyNotifySink , поэтому клиент может определить, когда изменяются свойства шрифта. Так как объект font поддерживает по крайней мере один исходящий интерфейс, он также реализует IConnectionPointContainer и связанные интерфейсы для этой цели.
Объект font предоставляет свойство hFont, которое представляет собой дескриптор шрифта Windows, соответствующий другим атрибутам, указанным для шрифта. Объект шрифта задерживает реализацию этого объекта hFont, когда это возможно, поэтому последовательное задание двух свойств шрифта не приведет к реализации промежуточного шрифта. Кроме того, в качестве оптимизации объект шрифта, реализованный в системе, поддерживает кэш дескрипторов шрифтов. Два объекта шрифта в одном процессе с одинаковыми свойствами будут возвращать один и тот же дескриптор шрифта. Объект font может удалять дескрипторы шрифтов из этого кэша по мере необходимости, что приводит к особым замечаниям для клиентов, использующих свойство hFont.
Объект шрифта также поддерживает IPersistStream , что позволяет сохранять и загружать данные из экземпляра IStream. Объект, использующий объект шрифта для внутреннего использования, обычно сохраняет и загружает шрифт в рамках собственной обработки сохраняемости объекта.
Кроме того, объект font поддерживает IDataObject, который может отображать набор свойств, содержащий атрибуты шрифта, что позволяет клиенту сохранять эти свойства в виде текста.
Наследование
Интерфейс IFont наследуется от интерфейса IUnknown . IFont также имеет следующие типы элементов:
Методы
Интерфейс IFont содержит следующие методы.
IFont::AddRefHfont Уведомляет объект шрифта о том, что ранее реализованный шрифт, идентифицируемый с помощью hFont, должен оставаться действительным до тех пор, пока не будет вызван метод ReleaseHfont или не будет полностью освобожден сам объект шрифта. |
IFont::Clone Создает повторяющийся объект шрифта. |
IFont::get_Bold Возвращает текущее свойство шрифта Bold. |
IFont::get_Charset Извлекает набор символов, используемый в шрифте. |
IFont::get_hFont Извлекает дескриптор шрифта, описанный этим объектом шрифта. |
IFont::get_Italic Возвращает текущее свойство italic шрифта. |
IFont::get_Name Извлекает имя семейства шрифтов. |
IFont::get_Size Извлекает размер шрифта в точках. |
IFont::get_Strikethrough Возвращает текущее свойство шрифта Strikethrough. |
IFont::get_Underline Возвращает текущее свойство подчеркивания шрифта. |
IFont::get_Weight Возвращает текущее свойство Weight шрифта. |
IFont::IsEqual Сравнивает этот объект шрифта с другим для эквивалентности. |
IFont::p ut_Bold Задает свойство шрифта Bold. |
IFont::p ut_Charset Задает кодировку шрифта. |
IFont::p ut_Italic Задает свойство Italic шрифта. |
IFont::p ut_Name Задает новое имя семейства шрифтов. |
IFont::p ut_Size Задает размер шрифта в точках. |
IFont::p ut_Strikethrough Задает свойство Strikethrough шрифта. |
IFont::p ut_Подчеркивание Задает свойство Подчеркивание шрифта. |
IFont::p ut_Weight Задает свойство Weight шрифта. |
IFont::QueryTextMetrics Заполняет структуру, выделенную вызывающим объектом, сведениями о шрифте. |
IFont::ReleaseHfont Уведомляет объект шрифта о том, что вызывающий объект, который ранее блокировал этот шрифт в кэше с помощью IFont::AddRefHfont, больше не требует блокировки. |
IFont::SetHdc Предоставляет контекст устройства для шрифта, описывающего режим логического сопоставления. |
IFont::SetRatio Преобразует коэффициент масштабирования для этого шрифта между логическими единицами и единицами HIMETRIC. |
Комментарии
Каждое свойство в интерфейсе IFont включает метод get_PropertyName , если свойство поддерживает доступ на чтение, и метод put_PropertyName , если свойство поддерживает доступ на запись. Большинство этих свойств поддерживают доступ как для чтения, так и для записи.
Свойство | Тип | Метод доступа на чтение | Метод доступа на запись | Описание |
---|---|---|---|---|
имя; | BSTR | get_Name | put_Name | Имя шрифта, например Arial. |
Размер | CY | get_Size | put_Size | Размер шрифта в точках, выраженный в типе CY для обеспечения размеров дробных точек. |
Полужирный | BOOL | get_Bold | put_Bold | Указывает, выделен ли шрифт полужирным шрифтом. |
Наклонный | BOOL | get_Italic | put_Italic | Указывает, является ли шрифт курсивом. |
Подчеркнуть | BOOL | get_Underline | put_Underline | Указывает, подчеркнут ли шрифт. |
Зачеркнутый | BOOL | get_Strikethrough | put_Strikethrough | Указывает, является ли шрифт зачеркивным. |
Weight | short | get_Weight | put_Weight | Смелость шрифта. |
Charset | short | get_Charset | put_Charset | Набор символов, используемый в шрифте, например ANSI_CHARSET, DEFAULT_CHARSET или SYMBOL_CHARSET. |
hFont | HFONT | get_hFont | Дескриптор шрифта Windows, который можно выбрать в контексте устройства для отрисовки. |
Реализация OLE
Система обеспечивает стандартную реализацию объекта шрифта с интерфейсом IFont поверх базовой системной поддержки шрифтов. Объект шрифта создается с помощью функции OleCreateFontIndirect. Объект шрифта поддерживает ряд свойств чтения и записи, а также набор методов через интерфейс IFont и поддерживает тот же набор свойств (но не методы) через интерфейс диспетчеризации IFontDisp , производный от IDispatch для предоставления доступа к свойствам шрифта через автоматизацию. Системная реализация объекта шрифта предоставляет оба интерфейса.Требования
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | ocidl.h |