Minidriver-Supplied Halftone Patterns

When GDI-supported halftone methods are being used, GDI allows specification of customized halftone patterns. To specify customized halftone patterns, use option attributes for the halftone feature as follows:

  • The *rcHTPatternID, *HTPatternSize and *HTNumPatterns attributes allow you to describe halftone patterns that are stored in a resource DLL. Halftone pattern resources are three-dimensional arrays of binary data, starting on a DWORD address boundary. They can be specified using the following format, which calculates the correct size and provides the required address alignment:
    BYTE HTPatternResource [HTNumPatterns][(HTPatternSize.y*HTPatternSize.x+3) & ~3];

    Within an .rc file used to create a resource DLL, the pattern might be specified as follows:


    where halftone.bin is a file containing a halftone pattern.

  • The *HTCallbackID attribute allows you to indicate that you are implementing the IPrintOemUni::HalftonePattern method in a rendering plug-in. A unique *HTCallbackID value must be provided for each pattern the IPrintOemUni::HalftonePattern method supports.

You can provide halftone pattern resources, an IPrintOemUni::HalftonePattern method, or both, as follows:

  • If you provide only halftone patterns, Unidrv obtains the patterns from the resource DLL and passes them to GDI. The patterns cannot be encrypted.

  • If you provide only an IPrintOemUni::HalftonePattern method, the method must generate and return halftone patterns to Unidrv, which passes them to GDI.

  • If you want to place encrypted halftone patterns in a resource DLL, then you must also provide an IPrintOemUni::HalftonePattern method to decode the patterns and return them to Unidrv, which in turn passes them to GDI.

For more information about halftoning, see Customized Halftoning.



Send comments about this topic to Microsoft

© 2014 Microsoft. All rights reserved.