## MSPLOT

[This is preliminary documentation and subject to change.]

### SUMMARY

The MSPLOT is a Microsoft® Windows NT®/Windows® 2000 printer driver that is designed to support all HPGL/2 compatible plotters. The full source codes of this driver include parser/UI and are published in the DDK as an example of how to write a user-mode or kernel-mode printer driver in Windows NT/Windows 2000. The sample is 64-bit compliant.

### BUILDING THE SAMPLE

To build the sample, use the build command. Once built, the sample will produce three binaries: Plotter.dll, Plotui.dll, and Plotgpc.exe. All plotter samples can be installed using the file plotter.inf. This INF expects plotter minidriver files to be in an i386 directory.

### CODE TOUR

#### File Manifest

    File			Description

Plotter.inf INF file for plotter sample installation Inc\Plotdm.h PLOTDEVMODE extended devmode definitions Inc\Plotgpc.h Characterization data definition Lib\Plotlib.h Defines and prototype for the plotter library Lib\Precomp.h Precompile header file Lib\Cachegpc.c Functions to cached the PLOTGPC Lib\Devmode.c Different version devmode conversion functions Lib\Drvinfo.c Functions to access spooler's DRIVER_INFO data structure Lib\File.c Function to read file Lib\Forms.c All functions related to the spooler/driver's forms Lib\Halftone.c Data and function to validate the COLORADJUSTMENT Lib\Plotdbg.c Contains all plotter's debugging functions Lib\Plotdm.c Functions which validate/set plotter's devmodes Lib\Readgpc.c Functions to read the PLOTGPC data file Lib\Regdata.c Plotter property registry data save/retrieve functions Lib\Widechar.c NLS unicode /ANSI translation code Plotter\Bitblt.h Definitions and prototypes for module bitblt.c Plotter\Brush.h Definitions and prototypes for module brush.c Plotter\Compress.h Definitions and prototypes for module compress.c Plotter\Enable.h Definitions and prototypes for module enable.c Plotter\Escape.h Definitions and prototypes for module escape.c Plotter\Htblt.h Definitions and prototypes for module htblt.c Plotter\Htbmp1.h Definitions and prototypes for module htbmp1.c Plotter\Htbmp4.h Definitions and prototypes for module htbmp4.c Plotter\Output.h Definitions and prototypes for module output.c Plotter\Page.h Definitions and prototypes for module page.h Plotter\Path.h Definitions and prototypes for module path.h Plotter\Pdevinfo.h Definitions and prototypes for module pdevinfo.c Plotter\Pencolor.h Definitions and prototypes for module pencolor.c Plotter\Plotform.h Definitions and prototypes for module plotform.c Plotter\Plotters.h Plotter Information to be included by all source files Plotter\Polygon.h Definitions and prototypes for module polygon.c Plotter\Precomp.h Precompiled header file Plotter\Ropblt.h Definitions and prototypes for module ropblt.c Plotter\Textout.h Definitions and prototypes for module textout.c Plotter\Transpos.h Definitions and prototypes for module transpos.c Plotter\Bitblt.c Functions which implement bitmap handling for plotter Plotter\Brush.c plotter brush realization, BRUSHOBJ functions Plotter\Compress.c plotter's dynamic data compression functions Plotter\Enable.c Plotter driver's Enable, Disable and related functions Plotter\Escape.c Code to implement the DrvEscape() driver call Plotter\Htblt.c Contains all halftone bitblt functions. Plotter\Htbmp1.c Functions for output halftoned 1BPP bitmaps to devices Plotter\Htbmp4.c Functions for output halftoned 4BPP bitmaps to devices Plotter\Output.c Common plotter output functions to the spooler, devices Plotter\Page.c Functions for job boundary states, Send Page and etc. Plotter\Path.c Functions related to drawing paths Plotter\Pdevinfo.c Functions to get / validate the PDEV data structure. Plotter\Pencolor.c Functions to get/set the color of a passed brushes. Plotter\Plotform.c Functions to set the correct HPGL/2 plotter coordinate system Plotter\Polygon.c Path forming code utilized by the rest of the driver Plotter\Ropblt.c Contains code to deal with ROP3 codes Plotter\Textout.c Contains the DrvTextOut entry point for text drawing Plotter\Transpos.c Functions for transposing an 8/4/1 BPP bitmaps Plotter\Plotter.rc Resource file Plotui\Cpsui.h Definitions and prototypes for module cpsui.c Plotui\Formbox.h Definitions and prototypes for module formbox.c Plotui\Help.h Definitions and prototypes for module help.c Plotui\Pensetup.h Definitions and prototypes for module pensetup.c Plotui\Plotui.h Definitions and prototypes for module plotui.c Plotui\Precomp.h Precompiled header file Plotui\Ptrinfo.h Definitions and prototypes for module ptrinfo.c Plotui\Cpsui.c Contains helper functions to be used with common UI Plotui\Devcaps.c DrvDeviceCapabilities() and other support functions Plotui\Docprop.c Contains functions for DrvDocumentPropertySheets(). Plotui\Formbox.c Functions to enumerate valid form and list on the combobox Plotui\Help.c All help functions for the plotter user interface Plotui\Pensetup.c Contains Functions to setup the plotter's pen Plotui\Plotui.c Contains plotter UI dll entry point Plotui\Ptrinfo.c Functions to mapping/cache a hPrinter to useful data Plotui\Ptrprop.c PrinterProperties() API entry and it's related functions Plotui\Qryprint.c Functions called by the spooler to determine if a particular job can be print to a given plotter Plotui\Upgrade.c Contains version upgrade functions Plotui\Plotui.rc Plotter user interface resource file Tools\Ntres\Plotgpc.c Functions required to generate a plotter gpc data file

Top of page

© 1999 Microsoft Corporation