The font matching capabilities of Windows NT differ from the capabilities in OS/2. Specifically, some of the parameters that can be passed to the Windows NT version of CreateFont cannot be passed to the OS/2 version of CreateFont:
The OS/2 version of CreateFont treats OUT_OUTLINE_PRECIS and OUT_STROKE_PRECIS identically. Although either can be passed to the OS/2 version of CreateFont, only OUT_STROKE_PRECIS is returned by GetObject.
In Windows NT, height represents world coordinates as follows:
Em height = lMaxBaselinesExt + lInternalLeading
In OS/2, the GPI font matching algorithm does not provide a means to search based on the Em height (cell height); it only considers the lMaxBaselinesExt. So, from a Windows 32-bit application perspective, the OS/2 version of CreateFont acts as if it is passed a negative height.