Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.10. Загрузка и сохранение данных блока
А.5.10.3. rdsStructToFontText – формирование описания шрифта
Функция rdsStructToFontText возвращает динамическую строку, представляющую собой описание указанного в параметрах шрифта, пригодное для разбора функциями rdsFontTextToStruct и rdsReadFontText.
RDSSTR RDSCALL rdsStructToFontTextA( // UTF8 RDS_PSERVFONTPARAMS pStr, // Описание шрифта int *pLength // Длина строки ); RDSWSTR RDSCALL rdsStructToFontTextW( // UTF16 RDS_PSERVFONTPARAMS pStr, // Описание шрифта int *pLength // Длина строки ); // Функция-псевдоним RDSXSTR RDSCALL rdsStructToFontText( // Кодировка по умолчанию RDS_PSERVFONTPARAMS pStr, // Описание шрифта int *pLength // Длина строки );
Тип указателя на эту функцию
RDS_SpFspI (для UTF8) или RDS_WspFspI (для UTF16)
Параметры
- pStr (RDS_PSERVFONTPARAMS)
- Указатель на структуру описания шрифта RDS_SERVFONTPARAMS, по данным которой формируется строка.
- pLength (int*)
- Указатель на целую переменную, в которую функция должна записать длину получившейся строки. Если вызывающей программе не нужна длина строки, в этом параметре можно передать NULL.
Возвращаемое значение
Указатель на созданную в динамической памяти строку, содержащую описание шрифта из структуры pStr, или NULL, если значение поля структуры servSize не соответствует ее размеру.
Примечания
Строка, формируемая функцией, состоит из тех же ключевых слов, которые используются при сохранении схемы в текстовом формате для описания шрифтов окна подсистемы. Эти же слова используются при записи параметров шрифта функцией rdsWriteFontText. Чаще всего эта функция используется при сохранении данных блока в текстовом формате или для перевода описания шрифта в строку, которую можно где-нибудь хранить с тем, чтобы потом расшифровать ее с помощью функции rdsFontTextToStruct.
Если в структуре RDS_SERVFONTPARAMS заполнены оба поля имени шрифта NameA и NameW, будет считано поле с тем же суффиксом, что и у вызванной функции. Таким образом, при вызове rdsStructToFontTextA будет считано поле NameA, при вызове rdsStructToFontTextW – NameW. Если заполнено только одно поле, а другое содержит пустую строку, то, независимо от суффикса фуункции, будет считано заполненное поле.
Динамическая строка, созданная этой функцией, должна быть обязательно освобождена вызовом rdsFree.
Пример
Пример использования функции rdsStructToFontText приведен в §2.10.1 руководства программиста.
См. также
RDS_SERVFONTPARAMS, rdsWriteFontText, rdsFree, rdsFontTextToStruct, rdsReadFontText.