Windows Programming

Introduction
This book aims to be a comprehensive source for any developer who is interested in programming for the Windows platform. It starts at the lowest level, with the Win32 API (C and VB Classic) and then goes over to MFC (C++). Beyond these basic sections, it will cover COM, and the creation of ActiveX modules from a variety of languages. Next, it delves into the Windows DDK, and talk about programming device drivers for Windows platform. Finally, it moves on to the highest-level programming tasks, including shell extensions, shell scripting, and finally ASP and WSH.

Other topics that will be discussed here are: Writing screen-savers, creating HTML help modules, and compiling DLL files.

This book will focus on topics that are specific to Windows, and avoids general programming topics. For related material the reader is encouraged to look into Wikibooks other works, they will cover general programming, ASM, C, C++, Visual Basic and Visual Basic.NET and other languages and concepts in greater detail. Appropriate links to these books are provided.

The reader is assumed to have a previous knowledge of the programming languages involved. Specifically, prior knowledge in C, C++, and Visual Basic is required for certain sections of this book.

Section 1: Windows Basics

 * Windows System Architecture
 * User Mode vs Kernel Mode
 * C and Win32 API
 * 
 * Handles and Data Types
 * Unicode
 * Dynamic Link Libraries (DLL)
 * Programming Windows With OSS Tools
 * Resource Scripts

Section 2: Win32 API and UI Controls

 * Message Loop Architecture
 * Interfacing (Mouse, keyboard, and timer messages)
 * Window Creation
 * User Interface Controls
 * GDI and Drawing
 * Dialog Boxes
 * Input-Output
 * File Management
 * Memory Subsystem (heaps, virtual memory)
 * Multitasking
 * Interprocess Communication
 * MDI Programs
 * Registry API
 * Security API
 * Winsock

Section 3: Microsoft Foundation Classes (MFC)

 * Microsoft Foundation Classes (MFC)
 * Classes Hierarchy

Section 4: Dynamic Data Exchange (DDE), ActiveX and COM

 * Dynamic Data Exchange (DDE)
 * COM and ActiveX
 * COM Programming
 * DCOM and COM+
 * Multi-language programming examples
 * OLE Programming

Section 5: Device Driver Programming

 * Device Driver Introduction
 * The DDK
 * Driver Structure
 * Driver API
 * Terminate and Stay Resident (TSR)
 * Virtual Device Drivers (VXD)
 * Windows Driver Model (WDM)
 * Vista Driver Migration

Section 6: Shell Programming

 * Programming Shell Extensions
 * Extending IE
 * Programming Screen-savers
 * Programming Services
 * Programming CMD aka Windows Batch Programming
 * Sample FTP script
 * Control Panel Applets
 * Windows Script Host
 * ASP
 * JScript
 * VBScript
 * PerlScript
 * Compiled HTML Help and Help API

Appendices

 * Resource Script Reference
 * Obtaining the SDK
 * Obtaining the DDK
 * Obtaining MASM
 * Obtaining the HTML Help Workshop
 * Key Combinations
 * 64-bit Windows Migration
 * Windows Vista Migration
 * Lists of Available APIs and related libraries
 * Wine

Wikimedia Resources
Programming Languages:


 * C
 * C++
 * BASIC
 * Active Server Pages
 * JavaScript

Information about Windows:


 * Subject:Microsoft Windows

Related topics:


 * Ada Programming/Platform/Windows
 * Guide to Windows Commands
 * C# Programming

External Resources

 * Advanced Win32 API Newsgroup
 * Microsoft Developers Network
 * Petzold, Charles, "Programming Windows", Microsoft Press
 * Hart, Johnathan, "Windows System Programming", second edition, 2001. ISBN 0201703106
 * Gordon, Alan, "The COM and COM+ Programming Primer", 2000, ISBN 0130850322
 * Oney, Walter, "Programming the Windows Driver Model", second edition, 2002. ISBN 0735618038