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





Microsoft Windows Embedded Partner


Principles of Win16 Printer Device Drivers for Microsoft Windows

Overview

This workshop introduces C programmers to the elements needed to write printer device drivers for Windows 95 and other Win16 printing deployments. The workshop covers the architecture of 16-bit printer device drivers, as well as the basics of programming with the Windows Application Programming Interface (API). The workshop adopts a strategy of drilling through the graphic API to the underlying Device Driver Interface (DDI) as implemented in sixteen-bit printer driver dynamic link library (DLL).


Who Should Attend
This five-day lecture and lab-based workshop is intended for software and hardware engineers who need to understand how to make Win16 printing work. This includes hardware designers, firmware programmers, device driver writers, as well as application programmers who wish to have a deeper understanding of the Windows printing process. No prior experience with Windows programming is required.

Workshop Highlights
  • The Printing Pipeline - "from click-to-clunk"
  • Understand the challenges created by the 16-bit segmented memory architecture
  • Course includes exclusive Paul Yao Company driver tools
  • Learn about relationship between API and DDI
Performance Objectives
At workshop completion, attendees will be able to...
  • Describe the printing pipeline for operating systems that support the Win16 printer driver model.
  • Describe the basic features of the Graphics Device Interface (GDI).
  • Describe the three types of graphic output supported by Windows.
  • Describe the drawing attributes that affect text, raster, and vector output.
  • Write code for a dynamic link library, suitable for use as a 16-bit printer device driver.
  • Write application code to create text, raster, and vector output on a display screen and on printed hardcopy.
  • Write printer driver code to support the proper creation of text output.
  • Write printer driver code to support the proper creation of raster output.
  • Write printer driver code to support the proper creation of vector output.

Workshop Syllabus

Monday Tuesday Wednesday Thursday Friday

Win16 Printing Architecture

  • GDI Design Goal
  • Printing Pipeline
  • Installable Components

The Bitmap Printer Driver

  • Basic Operation
  • Installation & Use
  • Printer Driver Initialization

A Minimum Printing Program

  • An Introduction to GDI
  • Creating & Controlling a Print Job

Debugging Printer Drivers

  • Installation & Symbol Loading
  • Commands
  • Customizing Soft/ICE

Driver Entry Points

  • Driver Control & Query
  • Printing Management
  • Attribute & Drawing Functions
  • User-Interface

Printer Driver Tools

  • The Null Printer Driver
  • Null GDI

Windows 98 Memory Management

  • System Memory Use
  • 16-Bit Segmented Memory
  • Dynamic Memory Allocation
  • Resources

Building Dynamic Link Libraries

  • What is Dynamic Linking?
  • Building DLLs
  • Exporting Functions

Text API

  • Text Drawing Functions
  • DC Text Attributes
  • Creating & Selecting Fonts
  • Query Metrics for Text Placement

Fonts

  • Font Creation & Enumeration
  • Font Mapping

Text DDI

  • Role of PDEVICE
  • Three Modes of ExtTextOut

Raster API

  • Pixels & Color
  • Brushes
  • Bitmaps

Raster DDI

  • Driver Functions
  • Capability Bits
  • Banding

Vector API

  • Vector Attributes
  • GDI Drawing Functions

Vector DDI

  • Driver Functions
  • Data Structures

Image Color Matching

  • Color Selection
  • Windows 9x ICM Support

Driver Initialization and Control

  • GDIINFO Structure
  • Print Job Control

The Spool Subsystem

  • Print Processor
  • Printer Monitor & Language Monitor
CONTACT US LOGISTICS REQUEST MORE INFORMATION