UNIFONTOBJ_GetInfo(GETINFO_GLYPHSTRING) Function Does Not Work in the IPrintOemUni::DownloadCharGlyph Method (306336)



The information in this article applies to:

  • Microsoft Windows 2000 Server SP1
  • Microsoft Windows 2000 Server SP2
  • Microsoft Windows 2000 Advanced Server SP1
  • Microsoft Windows 2000 Advanced Server SP2
  • Microsoft Windows 2000 Professional SP1
  • Microsoft Windows 2000 Professional SP2

This article was previously published under Q306336

SYMPTOMS

When you implement the IPrintOemUni::DownloadCharGlyph method to send a character glyph for a specified soft font to the printer in your rendering plug-in for Unidrv, the call to the UNIFONTOBJ_GetInfo(GETINFO_GLYPHSTRING) function to obtain the glyph image may not work.

CAUSE

This behavior is by design.

RESOLUTION

To resolve this problem, do not call the UNIFONTOBJ_GetInfo(GETINFO_GLYPHSTRING) function in DownloadCharGlyph. Instead, call the UNIFONTOBJ_GetInfo(GETINFO_GLYPHSTRING) function in OutputCharStr after you mask the high-order bits so that you can retrieve the Unicode value of the glyph.

NOTE: If SendFontCmd is not implemented (that is, if GetImplementedMethod returns E_NOTIMPL), then OutputCharStr stops responding (hangs) if you use a device font. OutputCharStr does not hang because of the call to UNIFONTOBJ_GetInfo; a simple implementation of OutputCharStr without SendFontCmd implemented causes the hang for device fonts.
If GetImplementedMethod returns S_OK for SendFontCmd, and SendFontCmd returns E_NOTIMPL (as it is done in the Oemuni DDK sample), then there is no hang.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MajorLast Reviewed:12/4/2003
Keywords:kbbug kbenv kbfix kbprint KB306336