Shown is code for For v1.3. Petzold has had a nice series on fonts in PC MAG from about Nov 92-June 93.
#define INCL_DEV #define INCL_DOSMEMMGR #define INCL_GPILCIDS #define INCL_WINWINDOWMGR #define INCL_WINLISTBOXES #include <os2.h> #include <stdio.h> VOID EXPENTRY FntQueryList(hwnd) HWND hwnd; // listbox handle { PFONTMETRICS pfm; HDC hdc; HPS hps; LONG alDevInfo[2]; LONG lFonts; LONG lFontCnt = 0L; CHAR pch[64]; SEL sel; USHORT i; hdc = WinOpenWindowDC(hwnd); DevQueryCaps(hdc, CAPS_HORIZONTAL_FONT_RES, 2L, alDevInfo); hps = WinGetPS(hwnd); lFonts = GpiQueryFonts(hps, QF_PUBLIC, (PSZ)0, &lFontCnt, (LONG)sizeof(FONTMETRICS), (PFONTMETRICS)0 ); DosAllocSeg((USHORT)lFonts * sizeof(FONTMETRICS), &sel, SEG_NONSHARED); pfm = (PFONTMETRICS)MAKEP(sel, 0); GpiQueryFonts(hps, QF_PUBLIC, (PSZ)0, &lFonts, (LONG)sizeof(FONTMETRICS), pfm ); for (i = 0; i < (USHORT)lFonts; i++) { if (!(pfm[i].fsDefn & FM_DEFN_OUTLINE)) { if ((pfm[i].sXDeviceRes == (SHORT)alDevInfo[0]) && (pfm[i].sYDeviceRes == (SHORT)alDevInfo[1]) ) { sprintf(pch, "%2d.%s", pfm[i].sNominalPointSize / 10, pfm[i].szFacename ); WinSendMsg(hwnd, LM_INSERTITEM, MPFROMSHORT(LIT_END), MPFROMP(pch) ); } } } DosFreeSeg(sel); WinReleasePS(hps); return; }