I have a GDI application used to get device fonts from a printer driver. In the printer driver, DrvQueryFont function returns the pointer to the device font data structure (PIFIMETRICS). This function will be called by GDI rendering engine to give the device fonts that are supported by current printer. The problem is that, it works correctly on 32-bit environment, but doesn't work on 64-bit environment. Please help.
What I have tried:
+ When application starts: the DrvQueryFont() function is called by GDI to get the IFIMETRICS structure for a given font. we have learned about IFIMETRICS structure on MSDN (Microsoft Developer Network).
+ In the remarks for the IFIMETRICS structure is written: "The IFIMETRICS structure's Align member causes it to be larger for x64 machines than for x32 machines, which has ramifications for binary font format files formatted according to this structure. Starting with Windows Server 2003 SP1, an additional, fixed-size structure has been added to Prntfont.h: PRINTIFI32. The PRINTIFI32 structure is identical to the IFIMETRICS structure, except that it does not contain an Align member."
+ We guess that The IFIMETRICS structure's Align member is the cause of this problem.
+ We tried to change the IFIMETRICS structure to the PRINTIFI32 structure to fix this defect, but this problem still occurs