📄 bitmap.htm
字号:
{margin-bottom:0in;}
-->
</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";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
</head>
<body lang=EN-US style='tab-interval:.5in'>
<div class=Section1>
<h1>BITMAP SAMPLE</h1>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></p>
<h3>Summary</h3>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'>This
sample demonstrates how to write a Unidrv-based bitmap driver. The sample is
based on the redesigned version of the oemuni sample that also ships with the
Windows DDK. The salient features of the sample are discussed below.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'>The table
shown below will help identify which operating systems this sample will
build/work on. <o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></p>
<table class=MsoNormalTable border=1 cellpadding=0 width="100%"
style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:0in 5.4pt 0in 5.4pt'>
<tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:49.8pt'>
<td width="19%" style='width:19.76%;padding:.75pt .75pt .75pt .75pt;
height:49.8pt'>
<p class=MsoNormal align=center style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
auto;text-align:center'><b style='mso-bidi-font-weight:normal'><span
style='font-size:10.0pt;font-family:Verdana'>Operating System</span><o:p></o:p></b></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt;
height:49.8pt'>
<p class=MsoNormal align=center style='text-align:center'><b
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family:
Verdana'>Can sample be built in the OS?</span></b><b style='mso-bidi-font-weight:
normal'><span style='font-family:Verdana'><o:p></o:p></span></b></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt;
height:49.8pt'>
<p class=MsoNormal align=center style='text-align:center'><b
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family:
Verdana'>Does sample work in the OS?</span><o:p></o:p></b></p>
</td>
<td width="25%" style='width:25.68%;padding:.75pt .75pt .75pt .75pt;
height:49.8pt'>
<p class=MsoNormal align=center style='text-align:center'><b
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family:
Verdana;letter-spacing:-1.0pt'>Can sample be used in a production environment
for the OS?</span><o:p></o:p></b></p>
</td>
</tr>
<tr style='mso-yfti-irow:1'>
<td width="19%" style='width:19.76%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'>Windows
Server 2003</span></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>Yes</span></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>Yes</span></p>
</td>
<td width="25%" style='width:25.68%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>No</span></p>
</td>
</tr>
<tr style='mso-yfti-irow:2'>
<td width="19%" style='width:19.76%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'>Windows
XP</span></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>Yes</span></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>Yes</span></p>
</td>
<td width="25%" style='width:25.68%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>No</span></p>
</td>
</tr>
<tr style='mso-yfti-irow:3'>
<td width="19%" style='width:19.76%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'>Windows
2000</span></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>No</span></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>No</span></p>
</td>
<td width="25%" style='width:25.68%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>No</span></p>
</td>
</tr>
<tr style='mso-yfti-irow:4'>
<td width="19%" style='width:19.76%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'>Windows
Me</span></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>No</span></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>No</span></p>
</td>
<td width="25%" style='width:25.68%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>No</span></p>
</td>
</tr>
<tr style='mso-yfti-irow:5;mso-yfti-lastrow:yes'>
<td width="19%" style='width:19.76%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'>Windows
98 SE<o:p></o:p></span></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>No<o:p></o:p></span></p>
</td>
<td width="26%" style='width:26.66%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>No<o:p></o:p></span></p>
</td>
<td width="25%" style='width:25.68%;padding:.75pt .75pt .75pt .75pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='font-size:10.0pt;font-family:Verdana'>No<o:p></o:p></span></p>
</td>
</tr>
</table>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></p>
<h3>Features</h3>
<ul style='margin-top:0in' type=disc>
<li class=MsoNormal style='mso-list:l3 level1 lfo3;tab-stops:list .5in'><span
style='font-size:10.0pt;font-family:Verdana'>The supported ColorMode
options in the bitmap driver抯 GPD are monochrome, 4bpp, 8bpp and 24bpp.<o:p></o:p></span></li>
<li class=MsoNormal style='mso-list:l3 level1 lfo3;tab-stops:list .5in'><span
style='font-size:10.0pt;font-family:Verdana'>IPrintOemUni::ImageProcessing
- The bitmap driver implements the ImageProcessing callback in order to
get access to bitmap data one band at a time. The driver抯 implementation
of ImageProcessing buffers the band data every time it is called. The
function is also responsible for filling in the BITMAPINFOHEADER and
COLORTABLE structures that are necessary for dumping the data out to a
bitmap file.<o:p></o:p></span></li>
<li class=MsoNormal style='mso-list:l3 level1 lfo3;tab-stops:list .5in'><span
style='font-size:10.0pt;font-family:Verdana'>OEMEndDoc - The bitmap driver
implements the OEMEndDoc DDI hook in order to dump the buffered bitmap
data out to the spooler at the end of the print job. The driver抯
implementation of OEMEndDoc dumps the headers first and then the buffered
data. <o:p></o:p></span></li>
<li class=MsoNormal style='mso-list:l3 level1 lfo3;tab-stops:list .5in'><span
style='font-size:10.0pt;font-family:Verdana'>The helper function
GrowBuffer is called every time the buffer needs to be enlarged to hold
the bitmap data. <o:p></o:p></span></li>
<li class=MsoNormal style='mso-list:l3 level1 lfo3;tab-stops:list .5in'><span
style='font-size:10.0pt;font-family:Verdana'>The bitmap driver renders
multi-page documents into a single large output bitmap file.<o:p></o:p></span></li>
</ul>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></p>
<h3>Known issues</h3>
<ul style='margin-top:0in' type=disc>
<li class=MsoNormal style='mso-list:l1 level1 lfo6;tab-stops:list .5in'><span
style='font-size:10.0pt;font-family:Verdana'>The plug-in does not support
landscape orientation although the option exists in the GPD.<o:p></o:p></span></li>
<li class=MsoNormal style='mso-list:l1 level1 lfo6;tab-stops:list .5in'><span
style='font-size:10.0pt;font-family:Verdana'>In 24bpp mode, documents
larger than 3 pages will produce an extremely large bitmap (.bmp) file.
Although the output is correct, one may not be able to view it due to
memory limitations in the bitmap viewer. <o:p></o:p></span></li>
</ul>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'><o:p> </o:p></span></p>
<h3>Building the sample</h3>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Verdana'>To build
the samples, run
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -