The Old New Thing

What does 1#J mean? A strange corner case of the printing of special values

As a puzzle, commenter nobugz asks, "What kind of infinity is 1.#J?" double z = 0; printf("%.2f", 1/z); Now, the division by zero results in IEEE positive infinity, would would normally be printed as 1#INF. But the catch here is that the print format says "Display at most two places after the decimal point." But where is the decimal point...
Comments are closed.0 0
Code

Is there a way to specify an icon to appear next to a menu item via the resource template?

The MENU­ITEM­INFO structure lets you specify a bitmap to appear next to the menu item. Is there a way to do this from a menu resource template? No. If you look at the format of menu templates, you'll see that there is nowhere to specify a bitmap. Which kind of makes sense, because it is the responsibility of the application ...
Comments are closed.0 0
Code

When the option becomes so second-nature you forget that it’s an option

A user of the imaginary Program Q program wanted to write an automated test that created a table, then ran various sub-test which communicated among each other by updating that table. When my test tries to create a table, the program asks the following question: q install server -r testdb Setting up this machine to be a registered...

This code would be a lot faster if it weren’t for the synchronization

This is a story from a friend of a friend, which makes it probably untrue, but I still like the story. One of my colleagues jokingly suggested that we could speed up our code by adding these lines to our project #define EnterCriticalSection(p) ((void)0) #define LeaveCriticalSection(p) ((void)0) I replied, "You think you're joking, but ...

Display a custom thumbnail for your application (and while you’re at it, a custom live preview)

By default, when the taskbar or any other application wants to display a thumbnail for a window, the result is a copy of the window contents shrunk down to the requested size. Today we're going to override that behavior and display a custom thumbnail. Take the program from last week and make these changes: #include <dwmapi.h> BOOL...
Comments are closed.0 0
Code

Now that version 4 of the .NET Framework supports in-process side-by-side runtimes, is it now okay to write shell extensions in managed code?

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? ...
Comments are closed.0 0
Code

Isn’t the CompletionKey parameter to CreateIoCompletionPort superfluous?

When you associate a file handle with an I/O completion port with the Create­Io­Completion­Port function, you can pass an arbitrary pointer-sized integer called the Completion­Key which will be returned by the Get­Queued­Completion­Status function for every I/O that completes against that file handle. But isn't ...
Comments are closed.0 0
Code

What does -1.#IND mean?: A survey of how the Visual C runtime library prints special floating point values

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 ...
Comments are closed.0 0
Code

You can ask the compiler to answer your calling convention questions

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 ...
Comments are closed.0 0
Code

Feedback usabilla icon