В моем приложении я пытаюсь перечислить в шрифтах комбинированного списка, установленных в Windows, которые являются TrueType и имеют разрешение на встраивание EMBED_EDITABLE , чтобы я мог встраивать их позже в PDF.
Сначала я перечислю все шрифты с
EnumFontFamiliesEx(dc, &lf, (FONTENUMPROC)EnumFontProc, lparam, 0);
и внутри моей функции CALLBACK я проверяю:
BOOL CALLBACK WFonteCombo::EnumFontProc(LPLOGFONT lplf,
LPTEXTMETRIC lptm,
DWORD dwType,
LPARAM lpData)
{
if (dwType == TRUETYPE_FONTTYPE)
{
HDC hDC = ::CreateDC(_T("DISPLAY"), NULL, NULL, NULL);
_ASSERTE(hDC);
::SelectObject(hDC, lplf);
ULONG privstatus = 0;
LONG ttStatus;
ttStatus = ::TTGetEmbeddingType(hDC, &privstatus);
if (ttStatus == E_NONE)
{
if (privstatus == EMBED_EDITABLE)
{
// Do Something.
}
}
::DeleteDC(hDC);
}
return TRUE;
}
TTGetEmbeddingType возвращает E_NOTATRUETYPEFONT но я знаю, что шрифт TrueType из-за моего состояния
if (dwType == TRUETYPE_FONTTYPE)
и поскольку первый возвращенный шрифт это one (шрифт TrueType).
Есть идеи, что я делаю не так?