The Wayback Machine - https://web.archive.org/web/20110829221348/http://www.codeguru.com:80/cpp/w-p/

    Windows Programming

    An Introduction To PowerShell

    Windows PowerShell replaces the outdated batch files and Windows Scripting Host with a brand new object-oriented shell and scripting language. In this article, you will learn how to retrieve directory and filenames from a specific drive.

    Integrate Ink into Your Application with Windows Vista

    Windows Vista brings tablet-style development to the mainstream by incorporating ink functionality directly into the core operating system. The greater availability of operating system support for ink is complemented by new Vista drivers from digitizer OEMs that provide the same functionality as a full TabletPC device, greatly increasing the potential client-base for ink enabled applications. This article will look at how an existing application can work with new forms of input without a major re-design.

    Simplified Thread Synchronization in Windows Vista

    Within the new threading and synchronization APIs that Microsoft added to the Windows SDK for Vista, condition variables dramatically simplify the semantics of lock acquisition and management.

    Task Dialogs in Vista

    If you have been using Vista, you would have noticed that MessageBoxes are passé. These have been replaced by the new Task Dialogs. Task dialogs are intended to make the experience more interactive and goal-oriented. Take a tour of the Task Dialog API.

    A Simple Thread Pooling Approach

    Learn about a simple mechanism to achieve thread pooling by using Windows messages.

    Dynamic Enumeration Made Simpler in WDF

    Discover WDF DDIs provided for dynamic enumeration.

    Getting Past the 2 Gb File Limit

    Take a closer look at the 2 Gb limit that we are plagued with in different languages, and how to get around them.

    Framework for Writing Services and Multithreaded Applications, Part 1

    Learn about a framework for rapid development of NT services. Also includes tools for stack tracing, performance testing, generic logging/debugging, memory leak testing, and thread pooling.

    Thunking in Win32

    Learn about an approach to creating thunks/trampolines to non-static member functions in 32-bit VC++.

    Simplified One-Time Initialization in Windows Vista

    With the rapid increase in parallel computing, correct threading, and synchronization are vitally important to programmers building scalable, high-performance solutions. Explore the new one-time object initialization APIs in Vista from a C++ programmer's perspective.

    A File Checksum Shell Menu Extension

    Learn about two Explorer Shell Extensions: One creates File Checksums; the other verifies File Checksums.

    Handling OS Shut Down in Windows Vista

    The way Vista closes applications during operating system shut down has changed from prior Windows versions' approaches. Learn how to provide your users with appropriate notification from the Vista shut down screen.

    Product Keys Based on the Advanced Encryption Standard (AES)

    Protect Software with Product Keys based on the Advanced Encryption Standard (AES).

    An AES Encrypting Registry Class

    The CAESEncRegKey class addresses the occasional problem of securely saving data to the Registry. This article presents Yet Another Registry Class that encrypts data using AES.

    Hacking Icon Resources

    Learn how to replace the displayed icon of an executable file with an .ICO file of your choice.

    Message Only Window

    Learn how to build an efficient library to provide support for Message Only Windows. The article also shows how to use the Thunk32 library provided in an earlier article, as well as some general pointers on good practices and patterns.

    TBarCodeDLL—Board the Barcode Bandwagon

    Reap great benefits from barcode integration. The TBarCode DLL component is a barcoding solution you can use to print reports or stickers that will verify inventory when scanned.

    Easy Multithreading in ATL Windows Applications

    Add one header file to your *.vcproj, insert a few lines of code into your class header, and you'll never again worry about the asynchronous routines in your ATL GUI application.

    SMBIOS Demystified

    Discover a basic SMBIOS parser that demonstrates querying for SMBIOS info using WMI and then parsing the data to extract necessary information.

    Mpatrol

    Mpatrol has been around for quite some time. It is a simple library that hooks into memory management. Learn how to use it on the Windows platform.

    Injective Code Inside an Import Table

    Learn to inject your code into an Import Table of a Portable Executable file format. This is called the API redirection technique.

    Find Directory Files Easily and Execute a Function for Each of Them

    Learn about a Win32 C++ class for recursive path file scanning.

    Library for MFC Applications' Localization Using Resource-Only DLLs

    Multilingual Library adds multiple UI languages' support to your MFC application.

    WinAPI Hooking

    Learn to intercept WinAPI calls.

    Setting a System Environment Variable

    Discover a free tool (with source code) that demonstrates how to programatically set System Environment Variables.

    Hooking a DirectX/COM Interface

    Learn how to hook a DirectX/COM Interface. The DirectInput interface was used as an example of how to hook an interface function.

    Crypto++® Holds the Key to Encrypting Your C++ Application Data

    The need to encrypt sensitive information is more important than ever. Luckily, the C++ class library Crypto++ enables you to encrypt your application data regularly and painlessly.

    Inject Your Code to a Portable Executable File

    Learn the five steps needed to inject your code in a portable executable (EXE, DLL, OCX,...) file without recompiling the source code.

    A C++ Wrapper and Extension of Windows FileSystemObject Objects

    Learn about a C++ implementation of Windows FileSystemObject objects. It wraps and extends standard FileSystemObject interfaces (methods/properties).

    Bulletproof Windows XP

    Currently, this is the best way to protect XP systems from malware and accidental changes.

    Multi-Threaded Message Processor

    Learn about a framework for concurrent message processing for disconnected, multi-threaded applications.

    XP Theme Support for Rich Edit and Custom Controls

    Learn how to add genuine Windows XP theme support to Rich Edit controls and extend the code for your own custom controls!

    Delayed Rendering of Clipboard Data

    Learn about the delayed rendering of Clipboard data, which is an intelligent alternative to simply copying all data onto the Clipboard.

    Porting Your Mobile Applications to the VS 2005 Environment

    Microsoft Visual Studio 2005: Why Be Bothered with It?

    Notifications and Power Management under Windows Mobile: Benefit from Both

    Does your application need to get called at some point in time? Do you want to inform the user regarding what's going on? Learn how to use Windows Mobile Notifications and Power Manager, and benefit from both!

    Select Multiple Items Functionally Without Pressing the CTRL or SHIFT Key in a List View Control

    Learn how to select multiple items without pressing the CTRL or SHIFT key on a touchscreen app or Windows CE app.

    MessageBox with Custom Button Captions

    Windows message boxes do not provide a standard interface for modifying button captions. Learn how to make the caption changes.

    Simple Single Instance Windows

    Control the number of windows instances for your app.

    Using the Windows Media Player Control on Handheld Devices

    Have you ever wanted to show video clips in your application or maybe play audio files? Learn how to do it easily with the Windows Media Player Control!

    DOS Info Block: A Definitive Guide

    Tons of information about DOS registers and their functions.

    Make GDI+ Less Finicky About Fonts

    Windows GDI+ understands only half of the fonts out there. Use the QGraphicsText class to work with the other half.

    Your Windows Mobile 5.0 Applications Can Monitor Clients and Respond to Change

    The new State and Notification Broker API provides the Windows Mobile 5.0 environment with a built-in notification broker structure. Learn to use this API to implement code that monitors and responds to changes in client system states.

    Understanding Mobile Data Synchronization: Creating Custom File Filters

    MS ActiveSync has many great features you can utilize in your applications. This article will guide you through an implementation of custom File Filters to make possible file conversions to pass the data back and forth between the PDA and desktop computer.

    QPerformanceTimer

    "Profile" a block of C++ code with just one include file and two variable definitions.

    Walking the Callstack

    Learn about a documented and most portable way to walk a callstack for any thread (current, other, and remote). It has an abstraction layer, so the calling app does not need to know the internals.

    Securing NT Objects

    Learn to implement discretionary access control on securable NT objects.

    How to Add Pocket Outlook Features to Your Mobile Application

    With the help of POOM (Pocket Outlook Object Model), you can implement sophisticated and customized mobile applications with rich functionality.

    Three Powerful Yet Untapped Features of NTFS

    The NTFS windows file system has introduced several features that improve the performance, stability, and reliability of file storage. Of these, three features lend themselves to advanced methods of information storage and collation. Few applications have, however, made extensive use of these features. This article introduces these features and identifies some of the potential uses each one exhibits.

    Puzzle, a Game with the MFC Doc/View Architecture (SDI/MDI)

    Learn how to display a menu with thumbnails and several other windows, move and manage the pieces of a puzzle with a linked list, and then show them without flicker.

    Simple XML Parsing on WinCE 4.2 Using C++ and MSXML 3.0

    Learn how to parse XML files by using MSXML 3.0, an XML parser from Microsoft.