Change "old-style" empty function declarations to the (void) syntax.

That's the kind of stuff you only notice when testing a different compiler. Another lesson learned.
Add macros for conversions from UTF-16 to UTF-8.

For the few cases where we need them.
Change leftover spaces to tabs.
Use the __DATE__ and __TIME__ macros to print the build time.

__TIMESTAMP__ refers to the *modification time*, not the *build time*... and is not that portable.
Add inject_CreateProcessW().

Necessary for our modified vpatch_th06.dll... and for other, future patched applications that already do The Right Thing™.
Correct #include syntax.

Yes, certain other compilers do make a difference between the two #include forms. Guess it became a bad habit to use them interchangeably.
Correct types.
Cleanup.

... and a bit of everything: missing initializations of local variables, alphabetical sorting of functions, and whitespace issues.
Add a basic custom exception handler.

A first step to making the logs of crashes a bit more descriptive. We start out without any advanced features like stack traces, let's first see how much this helps in practice.
Replace IsBad*Ptr() calls with a custom function using VirtualQuery().

See MSDN, Raymond Chen (http://blogs.msdn.com/b/oldnewthing/archive/2006/09/27/773741.aspx) and countless other blog posts advising against ever using this function. Who knows, it might have caused some of the crashes that people reported.
Mention DLL injection chaining in the README file.

... and reword the win32_utf8 section a bit.
log_nprint(): Check if the console was opened.

What the hell.
Bump version number to 2013-10-25