Sourcecode

Presented here are a collection of sourcecode snippets and mini-projects. All downloads are plain Win32 C and C++, and compile under Microsoft Visual Studio 6.0.

Code Snippets

A collection of C and C++ programming snippets organised into categories of functionality.

Win32 Sourcecode projects

Sourcecode downloads which implement full applications or utilities

Global Titlebar Hook
25 Oct 2005
Insert buttons into window titlebars on a global level (system-wide). Handles XP Themes if available. Requires NT/2000/XP.
WinCap3
30 Mar 2005
Capture hidden and obscured windows - proof of concept demo application. Windows XP only - will not work under Win95/98/ME. Might work under NT,2000 but untested. Click here and here for old versions.
ReportView
6 Feb 2005
Force Report-style view in all Open and Save common dialogs.
Directory Tree
2 Feb 2005
Display a directory hierarchy using ASCII graphics (ala the "tree" DOS command).
Process Tree
4 Feb 2005
Display a process hierarchy like SysInternal's ProcessExplorer.
SetRes
Control multiple display resolutions and colour depths with this useful tool.

Win32 Sourcecode snippets

A collection of useful functions which I've accumulated over the years.

AttachDesktop
Attach to a specified desktop
RegHelper
2 Feb 2005
Registry utilities which mimic the GetPrivateProfile_xxx APIs
EnableDebug
4 Feb 2005
Enable SE_DEBUG_NAME and other system privileges (useful for opening system processes)

C++ Socket Library
6 Feb 2005
C++ class wrappers around the winsock library - makes socket programming much easier!

Trace macro
6 Feb 2005
"printf" style wrapper around the OutputDebugString API

DragFile
7 Feb 2005
Filename Drag+Drop the Windows 3.1 way

Alpha-blended windows
17 Jan 2002
Simple functions to provide alpha-blended window support.
Styles
6 Feb 2005
Helper functions to set window and dialog item styles, using SetWindowLong.
ForceSetForegroundWindow
15 Aug 2003
SetForegroundWindow replacement (that works!)
EnableDialogTheme
20 Jan 2002
Enable XP themes on dialog boxes
GetVersionString
6 Feb 2005
Howto retrieve version strings (e.g. File description) from an executable's version resources.

Windows NT sourcecode

The following sourcecode snippets are specific to the Windows NT family of operating systems - Windows NT, 2000, XP and 2003 Server. Many of the downloads are heavily influenced by USENET threads, in particular postings by Gary Nebbett.

SetConsolePalette
2 Oct 2005
Modify the Win32 Console's palette dynamically at runtime.
CreateToken
Create an access token for local user accounts without knowing the password - requires SeCreateTokenPrivilege level. You also require a custom ntdll.h if you don't already have one. Gary Nebbet original author.
QuerySystemInfo
4 Feb 2005
Wrapper around the ZwQuerySystemInformation native system service.
UsernameToSid
4 Feb 2005
Convert a username to SID
KMem
26 Mar 2004
Read kernel memory from usermode (kmemcpy function). Gary Nebbet original author.
InjectThread
2003
CreateRemoteThread replacement, can inject into an already-running thread. View the example usage.
BreakPoint
8 Feb 2005
Hardware breakpoint and single-step debugging routines.

Windows NT Device Driver snippets

Windows NT kernel-mode snippets.

IsrSpinlock
28 Oct 2003
Howto acquire a spinlock at any IRQL level - implemented as a custom spinlock
InterlockedExecute
6 Jun 2004
Acquire exclusive access to all CPUs and execute a single function with full system lock. Please send feedback on this technique if you find it useful!