Здравствуйте!
Есть такие функции —
AddFontMemResourceEx и
RemoveFontMemResourceEx.
Позволяют загрузить и выгрузить шрифты, вроде ttf и otf. В файле может быть несколько шрифтов, о чем функция загрузки вроде как умеет рассказывать. Ещё она какой-то хэндл возвращает, и не понятно, что с ним делать.
Эти шрифты приватные для процесса и при перечислении шрифтов они не будут участвовать. Вопрос — как узнать имена загруженных шрифтов, чтобы их использовать?
На худой конец пойдёт просто какая-то готовая утилита, которая умеет в эти форматы и может выдать список имен шрифтов в файле
Здравствуйте, Marty, Вы писали:
M>Позволяют загрузить и выгрузить шрифты, вроде ttf и otf. В файле может быть несколько шрифтов, о чем функция загрузки вроде как умеет рассказывать. Ещё она какой-то хэндл возвращает, и не понятно, что с ним делать.
Единственное, что с ним можно делать — скармливать в RemoveFontMemResourceEx. Ни для чего больше этот хэндл непригоден.
M>Эти шрифты приватные для процесса и при перечислении шрифтов они не будут участвовать. Вопрос — как узнать имена загруженных шрифтов, чтобы их использовать?
Авторы API ожидали, что основной сценарий использования такого шрифта — "я поставляю его вместе со своим приложением, в ресурсах, и даю ему экзотическое имя при компоновке шрифта".
M>На худой конец пойдёт просто какая-то готовая утилита, которая умеет в эти форматы и может выдать список имен шрифтов в файле
Вам может помочь ответ на вот такой вопрос на SO:
https://stackoverflow.com/questions/55978791/how-to-prefer-font-that-is-loaded-by-addfontmemresourceex-than-system
Правда, там шрифт
переименовывается (потому что если его имя совпадает с одним из установленных в системе шрифтов, то использовать его будет невозможно), но, надо полагать,
прочитать имя шрифта так тоже можно.