Win32 Programming Essentials

5 Day Course
Hands On
Code WN32PRG2

This course has been retired. Please view currently available C and C++ Training Courses.


Collapse all

Windows Overview (6 topics)

  • Evolution
  • Design goals
  • Windows versions
  • Architectural differences between versions of Windows
  • Multitasking and input model
  • Scaleability

Programming Interface Overview (4 topics)

  • Supported features
  • Introduction to the API
  • Introduction to the Visual Studio development environment
  • Using the debugger

Virtual Memory Management (5 topics)

  • Dynamic memory allocation
  • Heap management
  • Managing paged virtual memory
  • Shared memory with file-mapping objects
  • Developments in 64-bit Windows

Multitasking (8 topics)

  • Creating and controlling multiple processes
  • Creating and controlling multiple threads
  • Thread local storage
  • Thread scheduling
  • Asynchronous input issues
  • Synchronising thread operations
  • Application structure
  • Multitasking issues and strategies for use

Synchronisation (3 topics)

  • Kernel synchronisation objects - Mutexes, Semaphores, Events, Waitable Timers
  • Critical Sections and Interlocked variables
  • Avoiding deadlocks

Structured Exception Handling (7 topics)

  • Exception types
  • Structured exception-handling architecture
  • Compiler syntax
  • Signal handling
  • Termination handlers
  • Filter functions
  • C++ issues

Dynamic Linking (6 topics)

  • Building DLLs
  • Load-time and run-time linking
  • Data scope and DLLs
  • Rebasing
  • Initialisation and termination
  • Multitasking issues

The Registry (4 topics)

  • Using the registry API
  • Hives, keys and values
  • Dynamic registry entries
  • Install/uninstall programs

File I/O (6 topics)

  • File system architectures
  • File and console operations
  • Filenames and UNC
  • File change notifications
  • Asynchronous file system access
  • Mapping files into memory

Pipes and Mailslots (4 topics)

  • Anonymous pipes
  • Named pipes
  • server models
  • Mailslots

Windows Security (4 topics)

  • Introduction to the Windows security model
  • Security descriptors, DACLs, SACLs and ACEs
  • Privileges
  • Simple use of the security APIs

IPC using Winsock (5 topics)

  • Introduction to sockets
  • Winsock 1.1 API
  • Steams
  • Datagrams
  • Client and Server designs

RPC Fundamentals (3 topics)

  • Basic theory
  • Microsoft RPC
  • Writing a simple client and server

Services (5 topics)

  • Service model
  • Installing services
  • Writing Win32 services
  • Techniques for debugging services
  • Event logging


Delegates must have three months of day-to-day experience of C or C++. Windows user-interface programming experience is not a requirement, but knowledge of the Windows SDK or MFC would be advantageous. Experienced developers such as existing Windows programmers, or those migrating from other operating systems, who require hands-on experience of programming the Win32 API. It is also suitable for programmers who are using the Microsoft Foundation Classes and would like to understand the code behind the framework, or access those features unsupported by MFC

Course PDF