APIHijack - A Library for Easy DLL Function Hooking
This code is intended to be included in a DLL inserted through a global Windows Hook (CBT hook for example). It will replace functions from other DLLs (e.g. DDRAW.DLL) with functions from your DLL.
Now all that remains is to get your DLL loaded into the target process. The MSDN has a few good articles on Windows hooks, which are the preferred way to get an arbitrary DLL loaded into a process:
Also, the article from which this code is based shows another way to do it, which involves loading the process to be hooked as a debug target:
DownloadsDownload source code - 4 Kb