Вы должны использовать функцию Win32 API EnumFontFamiliesEx . Вы вызываете эту функцию, передавая функцию обратного вызова, соответствующую типу EnumFontFamExProc . Функция обратного вызова вызывается один раз для каждого шрифта, найденного EnumFontFamiliesEx.
Я бы рекомендовал использовать версию Unicode (EnumFontFamiliesExW), так как я видел, что версия ascii (EnumFontFamiliesExA) отображает очень странное поведение для восточноазиатских языковых шрифтов.
Связанные статьи имеют пример кода.