Showing tag results for Code

May 19, 2014
Post comments count0
Post likes count0

Creating a simple shell item, just as fake as a simple pidl

Raymond Chen
Raymond Chen

Continuing from Creating a simple pidl: For the times you care enough to send the very fake: Instead of creating a simple pidl, we'll create a simple shell item. The idea is the same. We build a file system bind context containing the information about the fake file, and we pass that bind context to the function. Take that program that creat...

Code
May 16, 2014
Post comments count0
Post likes count0

An extensible interlocked arithmetic function (via lambdas)

Raymond Chen
Raymond Chen

Some time ago, I noted that you can build other interlocked operations out of . Here's an example: (There's a corresponding C++ version, which I leave as an exercise.) This function atomically updates a "highest value seen so far" variable. It follows the usual pattern: Capture the starting value. Do a computation based on that value. Comp...

Code
May 14, 2014
Post comments count0
Post likes count0

The mystery of the icon that never appears

Raymond Chen
Raymond Chen

A customer reported a problem showing an icon on their dialog box. We verified that this code does execute during the handling of the message. No assertion fires, yet no icon appears either. Our dialog template says The customer did some helpful preliminary troubleshooting: Verify that the code does indeed execute. It sounds obvio...

Code
May 12, 2014
Post comments count0
Post likes count0

Enumerating bit sequences with isolated zero-bits via the Fibonacci recurrence

Raymond Chen
Raymond Chen

Today's Little Program enumerates bit sequences of a particular length subject to the constraint that you cannot have consecutive 0-bits. This may sound kind of arbitrary, but it is important in magnetic media storage, because you cannot go too long without a flux reversal (traditionally represented by a 1); otherwise, the read head's clock start...

Code
May 8, 2014
Post comments count0
Post likes count0

How can you use both versions 5 and 6 of the common controls within the same module?

Raymond Chen
Raymond Chen

Commenter Medinoc was baffled by the statement that the decision to use the visual-styles-enabled version of the common controls library is done on a window-by-window basis. " Isn't it rather on a per-module basis, depending on each module's manifest? If it is indeed on a per-window basis, how does one choose?" Whether a particular call to (or ...

Code
May 7, 2014
Post comments count0
Post likes count0

Why does saving a file in Notepad fire multiple FindFirstChangeNotification events?

Raymond Chen
Raymond Chen

Many people have noticed that the and functions (and therefore their BCL equivalent and WinRT equivalent ) fire multiple events when you save a file in Notepad. Why is that? Because multiple things were modified. Notepad opens the file for writing, writes the new data, calls to truncate any excess data (in case the new file is shorter than t...

Code
May 5, 2014
Post comments count0
Post likes count0

Getting the location of the Close button in the title bar

Raymond Chen
Raymond Chen

Today's Little Program locates the × button in the corner of the window and, just to show that it found it, displays a balloon tip pointing at it. Let's start with the program from last week, the one that displays a balloon tip, then make these changes: Instead of positioning the balloon at the cursor position, we put it at the center ...

Code
May 1, 2014
Post comments count0
Post likes count0

How do I extract an icon at a nonstandard size if IExtractIcon::Extract tells me to go jump in a lake?

Raymond Chen
Raymond Chen

Commenter Ivo notes that if you ask to extract an icon at a particular size, the function can return which means "Go jump in a lake do it yourself." But how can you do it yourself? The and functions don't let you specify a custom size, and doesn't work with icon indices (only resource IDs). The function comes to the rescue. This takes all...

Code