Shedding Light on windows Programming Home Training Resources Registration About the Paul Yao Company
The Paul Yao Company





Microsoft Windows Embedded Partner


Programming UNIDRV Printer Drivers for Microsoft Windows

Overview
This five-day, lecture & lab based workshop helps programmers come up to speed on the development options available for creating and customizing a UNIDRV mini-driver. The primary benefit the UNIDRV provides is fast deployment of a working printer driver. This workshop focuses on the steps needed to take a working mini-driver and making it into an optimized printer driver.

Who Should Attend
Anyone involved in the design, development, testing or support of printer drivers will benefit from this workshop. No prior experience with Windows programming is required.

Workshop Highlights
  • The printing pipeline "from click-to-clunk"
  • Printer driver setup, installation, and troubleshooting
  • Exclusive Paul Yao Company Tools: PrintSpy, Nullpr, Nullmon, and more!
  • In-depth coverage of printer driver COM interfaces
  • Printer Driver User-Interface Customizations
  • Rendering customizations
  • User-mode versus Kernel-mode
  • Native driver (DDI) entry points

Performance Objectives
On completion of this workshop, attendees will be able to...
  • Write Win32 application code to print
  • Understand the role of the Unicode character set
  • Understand the role of DLLs and resources in a printer driver
  • Understand the key installable components that play a role in printing
  • Use the Paul Yao Company tools to spy on every phase of the printing process
  • Understand tips and tricks of the GPD file format
  • Develop a printer driver user-interface, including property sheets, CPSUI
  • Write a mini-driver customization interface for user-interface functions
  • Write a mini-driver customization interface for rendering functions
  • Prepare a printer driver for proper operation over the Internet
  • Arrange for the proper installation and de-installation of printer drivers
Workshop Syllabus
Monday Tuesday Wednesday Thursday Friday

A Minimum Printing Program

  • Entry Point & Message Loop
  • DEVMODE Structure
  • Printing API

Graphics Device Interface API

  • Text & Fonts
  • Bitmaps & Raster
  • Pens & Lines, Brushes & Areas

The Unicode Character Set

  • Why Unicode
  • Compiler & Library Support

Dynamic Link Libraries

  • Exporting Functions
  • Tour of COM In-Process Servers
  • Resources in DLLs

The Windows Printing Pipeline

  • Flow of Control
  • Installable Components

Printer Mini-Driver Development Tool

  • Generic Printer Description (GPD) Files
  • Required vs. Optional Entries
  • Features & Commands

Debugging Printer Drivers

  • Visual Studio
  • Numega's SoftICE
  • Tips & Tricks

Printer Spying Tools

  • PrintSpy
  • Spooler Spy Tools
  • Network Socket Spy

Overview of Driver User-Interface

  • GPD Entries
  • COM Interfaces
  • Device Capabilities
  • Document and Device Properties

Property Sheets

  • Adding Features with CPSUI
  • New Property Pages
  • Registry Functions

Overview of Rendering Customizations

  • When to customize
  • Customization choices
  • The RenderSpy Tool

Text Rendering Customizations

  • Role of DrvExtTextOut
  • Custom font installer
  • Custom font management

Raster Rendering Customizations

  • Base DDI Raster Functions
  • Halftoning & Data stream filtering

Vector Rendering Customizations

  • Paths & Brushes
  • Hookable functions

Native Driver Entry Points

  • Initialization
  • Spooling
  • Rendering
  • User-Interface

Driver Setup & Installation

  • INF File
  • Resources
  • Data File
  • Uninstall

Internet & Network Printing

  • Point-N-Print
  • Network Driver Issues
CONTACT US LOGISTICS REQUEST MORE INFORMATION