Axian Software Consulting and Training

Advanced Win32 API Programming


Call 644-6106, ext. 107



for course registration or more information


Advanced Win32 Application Programming is the completion of an in-depth, low-level look at developing and debugging applications written for the Win32 Programming Interface.  As with the Win32 API class, the intent is to understand the underlying philosophy and methods of direct API programming so that programmers can not only use system functions, but also use higher level tools more expertly.
Upon completion of the course, students should be able to:
  • Create and use application resources like pop-up menus, icons, cursors, keyboard accelerators, and modeless dialog boxes.
  • Manipulate bitmaps, fonts, paths, and other GUI components.
  • Print, including creating printer device contexts and printer abort dialog boxes.
  • Use modern interface controls like toolbars and property sheets.
  • Communicate between processes using Dynamic Data Exchange and pipes.
  • Implement Multiple Document Interface applications.
  • Control virtual memory.
  • Interact with the Registry.
  • Use the system’s Structured Exception Handling capabilities

Course prerequisites

Win32 API class or equivalent.


Course outline

Private (Window and Class) Contexts
Extended Pens
Device Independent Bitmaps
DIB Files and Packed DIB’s
Display Functions
Conversion Functions
Reading in DIB’s
Memory Device Contexts
Device Dependent Bitmaps
DDB Blt Functions
Creating Bitmaps From Device Contexts
Creating Bitmaps From Other Bitmaps
Text and Fonts
Text Drawing Functions
Device Context Attributes for Text
Stock Fonts
Creating, Selecting, and Deleting Logical Fonts
Font Common Dialog Box
Formatting Text
The Caret vs. The Cursor
Window Focus Messages
The Timer
SetTimer(), KillTimer(), and WM_TIMER
Timer Call-Backs
Windows' Current (System) Time
Child Window Controls
System Colors
Window Subclassing
Icons and Cursors (and Bitmaps and Strings)
Creating and Using Icons
Drawing Icons
Changing Cursors
Bitmap and String Resources
Popup Menus
System Menus
Changing the Menu
Other Menu Commands
Keyboard Accelerators
Accelerator Tables
Loading Accelerator Tables
Accelerator Messages
Dialog Boxes
Modeless Dialog Boxes
Virtual Memory Management
Common Controls
Library Initialization
Notification Messages
Common Controls
Property Pages
Property Sheets
Printing I
Steps to Printing
Printer Device Contexts
OpenPrinter(), DocumentProperties(), and ClosePrinter()
StartDoc(), StartPage(), EndPage(), and EndDoc()
Printing II
The Abort() Procedure
The "Abort Print" Dialog Box
Printer Common Dialog Box
Printers and Fonts
Dynamic Data Exchange I
Types of Links
DDE Management Library
Transactions & Callback Function
Service, Topic, Item Names
System Topic
Server Name Registration
String Management
DDE Server
Dynamic Data Exchange II
DDE Management Library
Conversation Management
Data Management
Transaction Management
Error Detection
DDE Client
Multiple Document Interface I
Frame Window
Client Window
Document (Child) Windows
The TranslateMDISysAccel() Function
Multiple Document Interface II
Manipulating Menus
Creating Document Windows
MDI Messages and Message Processing
Exception Handling
Windows File I/O Functions
Registry Functions