Приложение GDI не может загрузить шрифт устройства из драйвера принтера на win x64
У меня есть приложение GDI, используемое для получения шрифтов устройства из драйвера принтера. В драйвере принтера функция DrvQueryFont возвращает указатель на структуру данных шрифта устройства (PIFIMETRICS). Эта функция будет вызвана механизмом рендеринга GDI, чтобы предоставить устройству шрифты, поддерживаемые текущим принтером. Проблема в том, что он корректно работает в 32-битной среде, но не работает в 64-битной среде. Пожалуйста помочь.
Что я уже пробовал:
+ При запуске приложения: функция DrvQueryFont() вызывается GDI для получения структуры IFIMETRICS для данного шрифта. мы узнали о структуре IFIMETRICS в MSDN (Microsoft Developer Network).
+ В примечаниях к структуре IFIMETRICS написано: "выравнивание элемента структуры IFIMETRICS приводит к тому, что он становится больше для машин x64, чем для машин x32, что имеет разветвления для файлов двоичного формата шрифта, отформатированных в соответствии с этой структурой. Начиная с Windows Server 2003 SP1, в Prntfont.h: PRINTIFI32 была добавлена дополнительная структура фиксированного размера. Структура PRINTIFI32 идентична структуре IFIMETRICS, за исключением того, что она не содержит элемента Align."
+ Мы предполагаем, что выравнивание элемента структуры IFIMETRICS является причиной этой проблемы.
+ Мы попытались изменить структуру IFIMETRICS на структуру PRINTIFI32, чтобы исправить этот дефект, но эта проблема все еще возникает