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
Device Driver Development File System Filter Driver Tutorial
Rating: Apriorit Inc. - 11/09/2009 Discover how to develop a simple file system filter driver. The demo driver will print the names of opening files to debug output.
The article requires basic windows driver and C/C++ knowledge. However it may be interesting to the people without windows driver experience.
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.
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.
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.
Keyboard [Updated] A Personal Virtual Keyboard for (nearly) Every Keyboard
Rating: none David Kelvin - 09/02/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.
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.
[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 A Web Developer's Look at Windows 7
Rating: Jason Gilmore - 11/06/2009 The new Windows 7 user interface features can offer Web
developers significant productivity gains in terms of
organizing, finding, and navigating to commonly used
resources. This article introduces you to the improvements
which can cut significant time from otherwise mundane daily
workflow tasks.
Build Build Resilient Applications with Windows Recovery and Restart Applications
Rating: none Nick Wienholt - 09/14/2009 Even the best-written C++ applications can crash or hang-and end-users' perceptions of the application hinge on how gracefully the application works with the operating system to handle such problems. By registering your applications with Windows Application Recovery and Restart, they can recover gracefully after errors occur.
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.
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.
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.
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.
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.
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.
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
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
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.
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
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.
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
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 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.
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
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.
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.
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.
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
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.
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
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 Go - 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.
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.