windows-nt/Source/XPSP1/NT/printscan/print/drivers/usermode/msplot
2020-09-26 16:20:57 +08:00
..
hlp Add source files 2020-09-26 16:20:57 +08:00
inc Add source files 2020-09-26 16:20:57 +08:00
inf Add source files 2020-09-26 16:20:57 +08:00
lib Add source files 2020-09-26 16:20:57 +08:00
mini Add source files 2020-09-26 16:20:57 +08:00
plotter Add source files 2020-09-26 16:20:57 +08:00
plotui Add source files 2020-09-26 16:20:57 +08:00
tools Add source files 2020-09-26 16:20:57 +08:00
dirs Add source files 2020-09-26 16:20:57 +08:00
readme.htm Add source files 2020-09-26 16:20:57 +08:00

<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="readme_files/filelist.xml">
<title>MSPLOT</title>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="date"/>
<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if !mso]><object
 classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:536871559 0 0 0 415 0;}
@font-face
	{font-family:"MS SANS SERIF";
	panose-1:0 0 0 0 0 0 0 0 0 0;
	mso-font-alt:"Times New Roman";
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:auto;
	mso-font-signature:0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
p
	{font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
pre
	{margin-top:0in;
	margin-bottom:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";}
</style>
<![endif]-->
</head>

<body lang=EN-US link=blue vlink=blue style='tab-interval:.5in'>

<div class=Section1>

<h2><span style='font-family:Verdana'>MSPLOT<o:p></o:p></span></h2>

<h3><span style='font-family:Verdana'>SUMMARY<o:p></o:p></span></h3>

<p><span style='font-size:10.0pt;font-family:Verdana'>The MSPLOT is a
Microsoft<66> Windows NT<4E>/Windows<77> 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. <o:p></o:p></span></p>

<h3><span style='font-family:Verdana'>BUILDING THE SAMPLE<o:p></o:p></span></h3>

<p><span style='font-size:10.0pt;font-family:Verdana'>To build the sample, use
the <b>build</b> 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 <i>plotter.inf</i>. This INF expects plotter minidriver files to
be in an i386 directory. <o:p></o:p></span></p>

<h3><span style='font-family:Verdana'>CODE TOUR<o:p></o:p></span></h3>

<h4><span style='font-family:Verdana'>File Manifest<o:p></o:p></span></h4>

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

<p align=center style='text-align:center;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New"'><a href="#top"><span
style='font-family:Verdana'>Top of page</span></a></span><span
style='font-size:10.0pt;font-family:Verdana;mso-bidi-font-family:"Courier New"'>
<o:p></o:p></span></p>

<pre><o:p>&nbsp;</o:p></pre>

<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=624
 style='width:6.5in;mso-cellspacing:0in'>
 <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes;height:1.5pt'>
  <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'>
  <p class=MsoNormal><o:p>&nbsp;</o:p></p>
  </td>
 </tr>
</table>

<pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre>

<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:7.5pt;font-family:"MS SANS SERIF";mso-bidi-font-family:"Courier New"'><3E>
1999 Microsoft Corporation</span><span style='font-size:10.0pt;font-family:
Verdana;mso-bidi-font-family:"Courier New"'> <o:p></o:p></span></p>

</div>

</body>

</html>