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

CodeGuru
Earthweb Search
Login Forums Wireless Jars Gamelan Developer.com
CodeGuru Navigation
RSS Feeds

RSSAll

RSSVC++/C++

RSS.NET/C#

RSSVB

See more EarthWeb Network feeds

follow us on Twitter

Member Sign In
User ID:
Password:
Remember Me:
Forgot Password?
Not a member?
Click here for more information and to register.

jobs.internet.com

internet.commerce
Partners & Affiliates
















Home >> Visual C++ / C++ >> Windows Programming >> System


System

CD-ROM



CDR.EXE - Open/Close CD Drive(s) Programmatically
Rating:
Chris Morse Sebrell - 11/24/2000
Tool (and source code) that uses MCI commands to control the opening and closing of the CD-ROM drive door


Control Panel



Demo Control Panel Application
Rating: none
Farooque Khan - 01/17/2001
Simple application that illustrates how the Control Panel functions

Control Panel Applet using MFC
Rating:
Ben Burnett - 02/03/2000
Control Panel Applet using MFC


Device Driver Development



Dynamic Enumeration Made Simpler in WDF
Rating: none
pratima kudale - 01/25/2007
Discover WDF DDIs provided for dynamic enumeration.

System Call Optimization with the SYSENTER Instruction
Rating:
John Gulbrandsen - 10/08/2004
Windows NT calls system services by using an "int 2e" software interrupt. The "int 2e" instruction uses both an interrupt gate and a code segment descriptor to find the interrupt service routine (KiSystemService) which services the "int 2e" software interrupt. Since the CPU will have to load one interrupt gate and one segment descriptor from memory in order to know what interrupt service routine to call, significant overhead is involved in making an "int 2e" system call. The SYSENTER instruction drastically reduces this overhead.

How Do Windows NT System Calls REALLY Work?
Rating:
John Gulbrandsen - 08/26/2004
Learn about the exact mechanism that Windows NT uses when switching to kernel mode to execute a system service. The description is for an x86-compatible CPU running in protected mode. Other platforms supported by Windows NT will have a similar mechanism for switching to kernel mode.

RAMDISK Version 1.0 for Windows 2000/Windows XP
Rating:
Christiaan Ghijselinck - 10/29/2002
This code and sample are for a RAM disk driver (RAMDisk.sys), an Installer/Property sheet provider (RAMDisk.dll), and an installation file (RAMDisk.inf), which together form an installable RAM disk on Windows 2000 and Windows XP.

DriverService C++ Class
Rating:
L5 Software Group, LLC - 04/08/2002
Code which implements a C++ class that can install, start and stop a service or driver.

Communication between GUI APP and Device Driver
Rating:
li zhiwei - 03/25/2002
Getting both device driver and GUI App to check and modify the state of the event object.

Using the Visual Studio 6.0 Driver Build Environment
Rating:
Christiaan Ghijselinck - 08/27/2000
Explores how to use the standard Visual Studio environment while developing device drivers


Hardware Information



SIMD Detector
Rating: none
Wong Shao Voon - 04/15/2009
Detect the types of SIMD instructions available on the processor.

AMD64 (EM64T) Architecture
Rating: none
Andrey Karpov - 03/24/2009
Discover the AMD64 architecture and its implementation EM64T by Intel.

Three Ways to Retrieve Processor Information
Rating:
Marius Bancila - 01/28/2005
Learn how to retreive CPU information such as name, vendor name, speed, or supported features, using CPUID assembly instruction, Registry stored information, or Platform SDK functions.

Editing A Remote Hard Disk
Rating: none
Vinoj Kumar - 12/31/2002
Detailed tutorial on reading and writing to disks in Windows 95, NT, and beyond.

Determining What Serial Ports Are Available on a Windows Machine
Rating:
Zach Gorman - 07/09/2002
Determining what serial ports are available on a Windows machine.

System Information Class
Rating:
Tien Tran Ngoc - 03/28/2001
Article presents a class that allows you to programmatically retrieve almost any type of system level information about a Windows machine.

Reading Hard Drive Manufacturing Information
Rating:
Lynn McGuire - 11/02/2000
Console utility for retrieving information about attached IDE drives

Mounting Network Drives
Rating: none
Rick Jones - 02/16/2000
Mounting Network Drives

Getting Disc Free Space on Windows 95
Rating: none
ScoobyDownUnder - 06/06/1999
Getting Disc Free Space on Windows 95

System Hardware Information Finder
Rating:
Naveen K Kohli - 02/08/1999
System Hardware Information Finder


Keyboard



A Personal Virtual Keyboard for (nearly) Every Keyboard
Rating: none
David Kelvin - 06/01/2009
Generate multiple (on-screen)Virtual Keyboards to include into your portable application via a DLL, so that your users can take theirlanguage/keyboard with them on their travels, even if the PC they use does not have their home keyboard installed.

Using Multimedia Keyboard Keys in Your Own Program
Rating: none
Gunnar Roth - 08/14/2003
A multimedia keyboard has a lot more keys than standard keyboards. There are keys for controlling a media player as well as browser keys such as forward, back, and home. This article describes how to make use of these keys in your own program.

Hooking the Keyboard
Rating:
Anoop Thomas - 12/13/2001
This article describes how to install a Keyboard hook in Microsoft Windows.

Locking the Keyboard and Mouse at Scheduled Times
Rating:
Arthur Boynagryan - 11/07/2000
Code that enables you to schedule down-time for both keyboard and mouse input

Manipulating the Keyboard Lights in Windows NT
Rating:
Mark McGinty - 12/18/1999
Manipulating the Keyboard Lights in Windows NT


Logging



Managed C++: Monitoring the Windows Event Log
Rating:
Tom Archer - MSFT - 01/03/2005
Tom Archer illustrates the steps necessary to programmatically monitor your system's event log from a Managed C++ application. Monitoring certain event logs—especially the Security log—enables you to keep tabs on such security-related events as failed login attempts and port scans.

Keystroke Logging (not yet reviewed)
Rating: none
Pradeep Kumar Paijwar - 12/13/2004
Learn to create a stealth keylogger on Windows 2000/NT/XP.

HTML Logger, Portable and Thread-Safe
Rating: none
Stas Desyatnikov - 12/17/2002
Create colored, clear-to-read HTML logs from any C++ applications.


MMC Snapins



Creating an MMC Snapin Using C# (Part I)
Rating: none
Harish Kumar - 11/20/2003
Learn how to create an MMC Snapin using C#.


Message Handling



Real-Time Module for Windows XP/2000
Rating:
Khavkin - 11/08/2007
Learn about Hadcon's real-time module for Windows XP/2000.

[Updated] Windows Message Broadcaster
Rating:
Ali Rafiee - 04/07/2005
Use this class to broadcast a message to multiple windows, or different views without having to have their handles.

Java/C++ PC Standby Detect and Prevent
Rating: none
Tomer Petel - 04/06/2004
Shows how to detect whether the computer is going to go into sleep (standby) mode and allow/disallow it.

Message Sender
Rating:
Dmytro Ivanchykhin - 09/25/2003
Send window messages to a selected window. A utility helps by using MessageSender and targeting window thread context.


Misc



DevicePath Information
Rating: none
Mufti Mohammed - 03/25/2009
Discover how to retrieve device path and device instance id for storage devices attached to the system.

Raw Input Device informations
Rating: none
Mufti Mohammed - 03/17/2009
Discover how to retrieve information on your computer's devices including the mouse, keyboard, and other peripherals attached to the system.

Determining Whether a DLL or EXE Is a Managed Component
Rating:
kirants - 07/25/2007
Learn how to check whether or not a component is a .NET managed component. Also, learn to get other information, such as dependent assemblies, from the metadata using Microsoft APIs and related COM interfaces.

Hooking a DirectX/COM Interface
Rating: none
Martin Mueller - 05/19/2006
Learn how to hook a DirectX/COM Interface. The DirectInput interface was used as an example of how to hook an interface function.

Creating and Switching to Different Desktops
Rating:
Michael Fatzi - 11/10/2003
Switch to and create different desktops in a Windows system.

OS Independent Windows System Shut Down Class
Rating: none
Jais T Mathew - 08/14/2003
This class is a light wrapper around the Windows system shut down stuff. By using this class you can shut down, restart, or log off either forcefully or normally without worrying about what type of OS it is.

Activation Timer -- a Simple Task Scheduler
Rating: none
Dmitry Khudorozhkov - 07/03/2003
Handling multiple periodic jobs is a common problem in Windows programming. Discover a simple yet powerful set of classes that greatly reduces effort (and headache) required to accomplish this task. (The article, demo project, and source code were updated.)

Shutting Down a Remote Machine on a Local Network
Rating:
Rustam Hovhannisyan - 04/09/2003
Discover this simple way to shut down a remote Windows machine by using the InitiateSystemShutdown API function.

Detecting Multiple Instances of an Application in VC++
Rating:
Sandeep Bassi - 03/26/2003
Detecting multiple instances of an application in VC++.

Recursive, Upgradable Read/Write Lock for Windows
Rating:
Ivan Krivyakov - 02/18/2003
Read/write lock is a synchronization mechanism that can be used to efficiently protect a shared resource in an environment with multiple readers and writers. Unlike traditional mutex, read/write lock allows readers to access the resource concurrently.

API Hooking Revealed
Rating:
Ivo Ivanov - 12/13/2002
How to implement an extensible framework for hooking Win32 API functions.

Adding Your Logo to Winlogon's Dialog
Rating: none
Chat Pokpirom - 12/02/2002
GINA (Graphical Identification and Authentication) is a DLL component that is loaded by the Winlogon executable. This replaceable DLL performs all identification and authentication user interactions. You can use this DLL to add your logo to winlogon's dialog.

Reading/Writing Disk Sectors (Absolute Disk Read/Write)
Rating:
Sreejith S. - 11/06/2002
Tells how to read / write disk sectors, how to do absolute disk read/write from VC++. The demo project reads specified number of floppy disk sectors from a specified sector and store it to a specified file.

Forensic Inspection of Hard Disks
Rating: none
Vinoj Kumar - 08/20/2002
Understand forensic analysis of hard disks using Visual C++, MFC, and systems programming.

A Service API
Rating: none
MSD - 08/07/2002
Check out this Service API that consists of a set of functions and a couple of callback functions that must be supported. Together, these functions allow an application to run independent of any logged-on user.

Undeleting in Windows 95/98/Me/NT/2000/XP
Rating:
Vinoj Kumar - 06/10/2002
Undeleting files is often necessary. This is true even if you have accidentally deleted files from the Recycle Bin or if the files or folders have been purposely tampered with.

Editing Large Disks in Windows 95/98/ME/NT/2000/XP
Rating: none
Vinoj Kumar - 05/24/2002
See how to edit disk information from your programs.

Hooking Keyboard messages from Internet Explorer
Rating: none
Robert Nagy - 08/02/2001
This article demonstrates an example using hooks.

HOOK - A HowTo for setting system wide hooks
Rating: none
Volker Bartheld - 05/29/2001
This article features a HowTo to write, set and make use of system wide hooks.

Using WMI to Extract Management Information
Rating:
Rinat Sadikov - 05/21/2001
7 This is a WMI client that can connect to WMI management servers and perform several activities.

Determine if an Application is Console or GUI
Rating: none
Naveen - 04/03/1999
Determine if an Application is Console or GUI

Detecting the Windows version running on your machine
Rating: none
Rob Fullington - 03/01/1999
Detecting the Windows version running on your machine


NT Services



Using a Service Under Windows
Rating:
Elmue - 07/24/2003
See how to programmatically create, start, stop, and delete a service under Windows NT/2000/XP.

WinNT/2000 Service Controller
Rating: none
Senthil Murugan - 10/15/2002
Use this dialog-based application to control the services in WinNT/2000.

Managing Windows Services from a Remote System
Rating:
Sathya Narayana Panduranga - 08/16/2002
Build a simple command line utility for managing Windows services from a remote system.

Creating a Windows NT/Windows 2000 Service
Rating:
Anish C.V. - 08/15/2002
Learn how to create create a Windows NT/ Windows 2000 service by following these simple steps.

CSysService
Rating: none
Jay Wheeler - 01/30/2001
A wrapper class for Win32. API service functions

SpeedySCM: Terminating Services, Quickly Starting Multiple Services
Rating: none
Wessel Troost - 01/22/2000
SpeedySCM: Terminating Services, Quickly Starting Multiple Services

Printing from a Service
Rating: none
Fabio Angelini - 07/30/1999
Registry hack to allow printing from a Windows NT service

WindowsNT Simple Service Manager (2)
Rating: none
Cristian Sardaukar Amarie - 07/27/1999
WindowsNT Simple Service Manager (2)

NT Service Manager
Rating: none
Sardaukar - 06/19/1999
NT Service Manager

Custom AppWizard to Create MFC Based Windows NT Services
Rating: none
Rehan Nadeem - 02/14/1999
Custom AppWizard to Create MFC Based Windows NT Services

Windows NT Service Manager
Rating: none
Rehan Nadeem - 02/12/1999
Application (including source!) to help manage Windows NT Services

NT Service App Wizard
Rating:
Joerg Koenig - 02/05/1999
NT Service App Wizard

A Class For Building An NT Service
Rating:
Joerg Koenig - 02/03/1999
A Class For Building An NT Service


Performance Statistics



Performance Monitor - Get System Counter Values (CPU, Memory, etc.)
Rating:
Mike Ryan - 07/30/2000
Great Windows 2000 resource meter application

NT Performance Monitor Customizable COM Alerter
Rating: none
Carlos Alvarez - 07/28/1999
NT Performance Monitor Customizable COM Alerter

Performance Statistics Class
Rating: none
Krzysztof Kuczek - 04/03/1999
Performance Statistics Class


Processes / Modules



State Management : Native Parallel Programming for Visual C++
Rating: none
Nick Wienholt - 06/02/2009
Visual C++ 2010 includes a number of new features for preventing data inconsistencies due to simultaneous updates of memory locations - a key challenge in parallel development.

Three Ways To Inject Your Code Into Another Process
Rating:
Robert Kuster - 08/04/2003
How to inject code into another processes address space, and then execute it in the context of this process.

Inter Process Communication via WM_COPYDATA
Rating: none
Dinesh Ahuja - 03/27/2003
Learn various techniques supported by Interprocess Communication (IPC). IPC is a mechanism by which the various processes share data among themselves.

Detecting Windows NT/2K process execution
Rating:
Ivo Ivanov - 03/22/2002
The Win32 API provides a set of great libraries (PSAPI and ToolHelp [1]) that allow you to enumerate processes currently running in the system. Although these APIs are extremely powerful they don't permit you to get notifications when a new process starts or ends up. This article provides an efficient and robust technique based on a documented interface for achieving this goal

IPCTrace - An inter-process tracer
Rating: none
Frank Melber - 03/19/2002
An inter-process tracer.

Detecting Whether Another Instance of Application Already Exists
Rating:
Alexey Busygin - 12/03/2001
Detecting whether another instance of application already exists. Shows how to avoid having multiple copies of a program running.

Single interface for enumerating processes and modules under NT and Win9x/2K.
Rating: none
Ivo Ivanov - 10/04/2001
Single interface for enumerating processes and modules under NT and Win9x/2K.

Simple Process Viewer
Rating: none
Vineet Nandurkar - 02/09/2001
Console application process viewer that displays the information about the processes that are currently executing in the memory

Taskbar Modfication to Kill Windows NT/2000 Processes
Rating: none
Richard Eperjesi - 02/08/2001
Tray application that enables you to terminate any kind of running process in Windows NT/2000

Programmatically Launching Windows NT Applications
Rating: none
Michel Yossef David - 01/24/2001
Two utilities for launching NT application synchronously or asynchronously

Examine Information on Windows NT System Level Primitives
Rating:
Zoltan Csizmadia - 11/14/2000
Two low level utilities to examine Windows NT information such as processes, threads, windows, modules and objects.

WBEM Class Wrapper for Local and Remote Process Creation
Rating: none
Brandon Clark - 08/06/2000
Wraps the Microsoft Windows 2000 implementation of the industry standard WBEM

Getting the Module (exe) Filename from an HWND
Rating: none
Mike Ryan - 07/30/2000
Very useful class that also includes the ability to filter out specific module names and types

Process '& Module Enumeration Class
Rating: none
JaeKi Lee - 02/09/2000
Process '& Module Enumeration Class


Registry



[Updated] An AES Encrypting Registry Class
Rating:
Jeffrey Walton - 11/28/2006
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.

Fun with the Registry Using VC++
Rating: none
Mahipal Reddy Goli - 09/22/2003
Change hidden system settings with a GUI instead of going directly through the Registry.

Storing an Array of Properties in the Windows Registry
Rating: none
Alex Rest - 07/09/2003
MFC and Win API don't have functions that store arrays in the Windows Registry. This article describes the class based on MFC CArray class that solves this problem.

CRegConfig -- a Class to Easily Keep Your Data in the Registry
Rating:
Alexander Hritonenkov - 03/21/2003
Read and write data in the Registry.

Another Registry Class
Rating: none
Shane Martin - 10/01/2002
Very useful class that also includes the ability to filter out specific module names and types

Windows Registry and Internet Explorer
Rating: none
Vishal Khapre - 04/25/2002
A quick loko at the Internet Explorer System Registry settings.

Exporting the Registry Through the Program
Rating: none
Thanigai Murugan K. - 02/08/2002
This tool helps developers to export the registry information.

Run At Startup Programmatically
Rating:
Mohammad A. Salah - 12/31/2001
You can use this code to let your program run automatically at system startup, it shows you also how to use some of API registry functions.

CRegistry : Serialize Data In/Out of the Registry
Rating: none
Amir Israeli - 09/11/2000
Very sophisticated class for serializing your date to the Registry

Template based Registry class with serialization
Rating: none
Frank Melber - 01/05/2000
Template based Registry class with serialization

CRegBinding - An alternative Registry Class
Rating: none
Jorg Dentler - 02/05/1999
A registry class that gives you the ability to easily persist member variables of any C++ class

A Class For Handling The Registry
Rating: none
Joerg Koenig - 02/03/1999
A Class For Handling The Registry

Registry manipulation class with exception handling
Rating: none
John Joelle Cruz - 01/22/1999
Registry manipulation class with exception handling

Serializing CStringList in the registry
Rating: none
Mario Contestabile - 08/06/1998
Serializing CStringList in the registry

CRegKey Registry Class
Rating: none
Richard Hollis - 08/06/1998
CRegKey Registry Class


Resource Detection/Management



Getting free resource under Windows 95
Rating: none
Sergey Karyshev - 02/08/1999
Getting free resource under Windows 95


Security



Injective Code Inside an Import Table
Rating:
Ashkbiz Danehkar - 07/13/2006
Learn to inject your code into an Import Table of a Portable Executable file format. This is called the API redirection technique.

Inject Your Code to a Portable Executable File
Rating:
Ashkbiz Danehkar - 03/02/2006
Learn the five steps needed to inject your code in a portable executable (EXE, DLL, OCX,...) file without recompiling the source code.

Securing NT Objects
Rating:
Srikanth Srinivasan - 08/04/2005
Learn to implement discretionary access control on securable NT objects.

Managed C++: Retrieving User's Windows Security Information
Rating:
Tom Archer - MSFT - 01/19/2005
Learn how to retrieve a current user's basic security information, such as the fully qualified user name (with domain or workgroup), whether the user is authenticated, and the authentication type.

Keystroke Logger and More, Part 3
Rating:
Zhefu Zhang - 09/11/2003
Hook into Internet Explorer.

Keystroke Logger and More, Part 2
Rating: none
Zhefu Zhang - 08/05/2003
The second article in the "Keystroke Logger and more" series. Learn about the principle of MSN Messenger Hooking in version 5 of MSN and before.

Keystroke Logger and More...
Rating:
Zhefu Zhang - 07/11/2003
Learn about keystroke logging and related technical topics. The concepts covered include "Interception of Meaningful Strokes Only" (includes password fields), MSN Messenger chat, IE form, Windows Login screen, and the mechanisms of Log detection.

Implementing Simple Role-Based Security in Managed C++
Rating: none
Kate Gregory - 10/18/2002
With .NET, there's no excuse for skimping on security. When you build .NET applications, you get a lot of security code without writing it yourself. Kate presents the code you need to implement role based security using Managed C++.

Converting SIDs Between Strings and Binary
Rating: none
Brian Friesen - 12/17/2001
Anyone who has ever used advanced security in Windows NT has probably run across SIDs before. SID is an acronym for Security IDentifier. All the Win32 API that work with SIDs use a binary representation. This article shows how to convert between string and binary representations of SIDs.

HOWTO: Obtain the plain text session key using CryptoAPI
Rating: none
Raphael Amorim - 12/17/2001
Obtaining session keys as plain text.

Protecting Windows NT Machines
Rating: none
Vishal Khapre - 02/13/2001
Illustrates how to modify the registry to effectively "lock down" an NT machine so that users have only the access to system functions that you allow - great for machines where public access is allowed

Logon.exe v1.2 for Windows NT
Rating: none
Sergey Andyk - 07/13/1999
Logon.exe v1.2 for Windows NT


Services



SFL 2.0 Service Framework Library for Native Windows Service Applications, Part 3: SFL Architecture
Rating: none
Igor Vartanov - 03/12/2008
Find out what is under the SFL's hood.

SFL 2.0: Service Framework Library for Native Windows Service Applications, Part II
Rating:
Igor Vartanov - 11/26/2007
Learn more about this very useful library.

[Updated] SFL 2.0: Service Framework Library for Native Windows Service Applications, Part 1
Rating:
Igor Vartanov - 11/12/2007
Writing Windows services never was an easy thing, but this article makes it far simpler for you to do.

Framework for Writing Services and Multithreaded Applications, Part 1
Rating:
Martyn Brown - 01/11/2007
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.

Writing a Service Program
Rating:
Jonathan Ng - 08/06/2003
Services are processes that can be auto started when the system boots, and can be left running while the system is on. Learn how to write your own services.

Starting a Service in Windows XP
Rating: none
Harinath Mallepally - 04/14/2003
Start a Windows XP service from a VC++ program.


Shared Memory



Cross-Platform IPC Event Manager for Interaction with Service Providers
Rating: none
JeromeWiz - 05/13/2009
Event-driven programming or event-based programming is a programming paradigm in which the flow of the program is determined by events - i.e., sensor outputs or user actions (mouse clicks, key presses) or messages from other programs or threads. Event-driven applications usually are organized as in state machine modes due to complicated event interaction. An IPC event queue manager is required to support event-based programming.

Simple Single Instance Windows (not yet reviewed)
Rating: none
egawtry - 10/31/2005
Control the number of windows instances for your app.

CSharedMemory, A Small Class to Share Data Via File Mapping
Rating: none
Michael Schikora - 10/18/2001
With this class, only a few lines are needed to communicate with other processes.

Named Pipe Wrapper for Win32 Platforms
Rating: none
Clemens Fischer - 08/02/2001
Using pipes is not too complicated on WindowsNT platforms, but on Win9X it4s not that easy because named pipes are not supported.

Memory Allocation for High-Dimensional Data Structures
Rating: none
Yuantu Huang - 07/18/2000
Memory Allocation for High-Dimensional Data Structures

Shared Memory Inter Process Communication (IPC)
Rating:
Peter Hendrix - 02/03/2000
Shared Memory Inter Process Communication (IPC)


System



Special runas Utility for Windows NT and Windows 2000
Rating:
Jeszs de la Vega - 05/08/2003
Build a local and remote "runas" utility for Windows NT and Windows 2000.

MFC-Independent class for the easy determination of system information
Rating: none
Paul Wendt - 05/08/2003
This class hierarchy lets you get system information via easy-to-use C++ classes on any WIN32 machine. (The demo project was updated.)

ASPI Tape Snoop
Rating: none
Till Toenshoff - 05/08/2002
This Project provides a primitive wrapper class for accessing a SCSI tape via ASPI, "CASPIDriver".

EnTeHandle
Rating: none
Fred Forester - 01/30/2000
EnTeHandle

Detecting the windows version running on your machine
Rating: none
Naveen K Kohli - 02/08/1999
Detecting the windows version running on your machine

Compound File Stream and Storage Manipulation
Rating: none
Glenn Swonk - 11/20/1998
Compound File Stream and Storage Manipulation

Determining Cluster Size
Rating: none
Daniel Hirsch - 09/12/1998
Determining Cluster Size

GetDriveType Enhancement
Rating: none
Joseph M. Newcomer - 08/06/1998
GetDriveType Enhancement

Determine COMCTL32 version
Rating: none
Roger Onslow - 08/06/1998
Determine COMCTL32 version


System Information



[Updated] Determine Windows Version and Edition
Rating:
Marius Bancila - 05/15/2009
Learn about a comprehensive method of getting the Windows version and differentiate among the various editions.

Handling OS Shut Down in Windows Vista
Rating:
Nick Wienholt - 12/06/2006
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.

SMBIOS Demystified
Rating:
kirants - 08/01/2006
Discover a basic SMBIOS parser that demonstrates querying for SMBIOS info using WMI and then parsing the data to extract necessary information.

DOS Info Block: A Definitive Guide
Rating:
Najam - 10/21/2005
Tons of information about DOS registers and their functions.

Make GDI+ Less Finicky About Fonts
Rating:
Sjaak Priester - 09/23/2005
Windows GDI+ understands only half of the fonts out there. Use the QGraphicsText class to work with the other half.

Enumerate WFP Files
Rating:
Ajay Vijayvargiya - 02/02/2005
Windows systems launched after Windows2000 include a WFP feature (Windows File Protection). This article glimpses over it and shows how to enumerate the list of all protected files.

MFC Class "System Information"
Rating:
Alexey Kazakovsky - 12/23/2002
Get various items of system information, such as the OS version (for example, Windows 2000 Terminal Server or Windows XP Home Edition), the CPU type, the amount of physical memory and memory usage, the version of IE, the version of ADO, the network interface (NIC) list with the IP addresses, and much more.


Task Manager



Task Manager Extension
Rating:
Zoltan Csizmadia - 04/04/2001
Not only incredibly useful utility for managing processes, but great tool for learning about the Task Manager


Taskbar



Hiding/Showing the Windows TaskBar
Rating: none
Ashutosh R. Bhatikar - 02/01/2001
Technique for hiding and showing the Windows taskbar


Threading



Simple Parallel Development with the Asynchronous Agents Library
Rating: none
Nick Wienholt - 07/13/2009
By adopting a messaging based approach to task parallelism, the Asynchronous Agents Library provides a simple model for concurrent programming that avoids the complexity of memory locks.

Parallel Lint
Rating: none
Andrey Karpov - 06/15/2009
Understand the new direction in development of static code analyzers - verification of parallel programs. The article reviews several static analyzers which can claim to be called "Parallel Lint".

Native Parallel Programming for Visual C++ with the Parallel Processing Library
Rating: none
Nick Wienholt - 05/11/2009
Visual C++ 10.0's new Parallel Pattern Library supplies methods to execute multiple processing tasks, across available processing resources, eliminating the headache of manually allocating task execution.

Tip: Lock Leveling
Rating: none
Wong Shao Voon - 03/18/2009
Use Lock Leveling to Prevent Multi-threading Deadlocks

Parallel Programming in Visual C++ 2010 CTP
Rating: none
Marc Gregoire - 10/31/2008
The CTP build of Visual C++ 2010 includes a new library to help you write native parallel code.

Handling Multiple Processors in Your Code Using RapidMind
Rating: none
Ejaz Anwer - 07/31/2007
Multicore processors bring new challenges. See a solution for gaining the ability to scale to the increasing number and types of processor cores.

[Updated] A Simple Thread Pooling Approach
Rating:
Raghupathy Srinivasan - 01/26/2007
Learn about a simple mechanism to achieve thread pooling by using Windows messages.

Simplified One-Time Initialization in Windows Vista
Rating:
Nick Wienholt - 01/05/2007
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.

Easy Multithreading in ATL Windows Applications
Rating:
Konstantin --- - 08/25/2006
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.

Multi-Threaded Message Processor
Rating: none
Sathya Narayana Panduranga - 02/23/2006
Learn about a framework for concurrent message processing for disconnected, multi-threaded applications.

[Updated] Walking the Callstack
Rating:
Jochen Kalmbach - 08/05/2005
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.

[Updated] The K.I.S.S. Approach to I/O Completion Ports
Rating:
Robert Simpson - 10/18/2004
I/O completion ports are the holy grail of performance. This article provides an extremely lightweight and open framework for easily implementing IOCP's in your application(s).

Windows Thread Pooling
Rating:
PlugwareSolutionsLtd - 04/28/2004
Thread pooling describes a technique by which threads of execution are managed and to which work is distributed. Additional semantics such as concurrency control may also be defined. Thread pooling is a nice way to: Manage complexity Make your applications scale Introduce new code while minimizing risk

Working with CRITICAL_SECTION
Rating:
Dr. Sai - 04/29/2003
An insight into the inner workings of CRITICAL_SECTION and thread priorities.

Template Thread Library
Rating: none
Emad Barsoum - 02/27/2003
Review demonstrations of two non-MFC thread classes.

Idle Loop Processing
Rating: none
Ahmed Ceder - 09/23/2002
Multi-threading contains overhead that is not always needed. This article focuses on a simple idle processing technique using the PeekMessage and PumpMessage functions.

Creating an Object-Oriented Wrapper to Windows Threads
Rating:
Sathya Narayana Panduranga - 04/10/2001
Great for creating a simple threading class without the inherit complexities of the CWinThread class


Timers



QPerformanceTimer
Rating:
Sjaak Priester - 08/16/2005
"Profile" a block of C++ code with just one include file and two variable definitions.

An Accurate Timer Class
Rating: none
Marcel Meuwissen - 04/15/2003
Create a timer that takes into consideration the fact that routines such as sleep() take time!

CWndTimer, a Windows Timer Class
Rating: none
George Anescu - 03/25/2003
Discover how to implement Windows timers. This class can be used in both WIN32 or MFC applications.

Creating a High-Precision, High-Resolution, and Highly Reliable Timer, Utilising Minimal CPU Resources
Rating:
Eugene Manko - 10/04/2002
Learn to create a solution that allows for highly reliable timers to be implemented on Windows-based platforms.

CWaitableTimer
Rating:
Jay Wheeler - 11/14/2000
64-bit waitable timer class with 100 nSec resolution


VxD



Spy Windows 95/98 File I/O
Rating: none
Vinoj Kumar - 12/07/1999
VxD to monitor File I/O in Windows 95/98