Many years ago, I wrote, "Do not write in-process shell extensions in managed code." Since I originally wrote that article, version 4 of the .NET Framework was released, and one of the features of that version is that it supports in-process side-by-side runtimes. Does that mean that it's now okay to write shell extensions in managed code?
The ans...
When you associate a file handle with an I/O completion port with the function, you can pass an arbitrary pointer-sized integer called the which will be returned by the function for every I/O that completes against that file handle. But isn't that parameter superfluous? If somebody wanted to associated additional data with a file handle, they...
As every computer scientist knows, the IEEE floating point format reserves a number of representations for infinity and non-numeric values (collectively known as NaN, short for not a number). If you try to print one of these special values with the Visual C runtime library, you will get a corresponding special result:
Positive and negative inf...
If you want to figure out some quirks of a calling
convention,
you can always ask the compiler to do it for you,
on the not unreasonable assumption that the compiler
understands calling conventions.
"When a __stdcall
function returns a large structure by value,
there is a hidden first parameter that specifies the
address the return value should ...
A particular scenario was hanging,
and the team responsible for the scenario debugged it to the
point where they saw that their X component was
waiting for their Y component, which was waiting for Explorer,
so they asked for help chasing the hang into Explorer.
The team was kind enough to have shared what they've learned
so far:
kd&g...
You're debugging a program and
you want to set a breakpoint on some function,
say,
netapi32!DsAddressToSiteNameW,
but when you execute the
bp netapi32!DsAddressToSiteNameW command in the debugger,
the debugger says that there is no such function.
The
Advanced Windows Debugging book
says that the bp comman...
You might have a program that generates log files or other text content with an extension other than . You naturally might want to open these documents in the user's default text editor.
You might decide to ask the Windows developer support team, "How can I figure out what program is the handler for text files?" The idea being that once you get t...
Today's "Little Program"
displays an overlay on the taskbar button.
I've seen some people call this a "badge",
but "overlay" is the official term.
Start with our
scratch program
and make the following changes:
#include <comip.h>
#include <comdef.h>
#include <shlobj.h>
#include <shellapi.h>
_COM_SMARTPTR_TYPEDEF(ITaskb...