The Old New Thing

The evolution of version resources – 16-bit version resources

I return to the extremely sporadic series on resources with a description of the version resource. You don't need to know how version resources are formatted internally; you should just use the version resource manipulation functions GetFileVersionInfo, VerQueryValue, and their friends. I'm providing this information merely for its historical...

Pacific Northwest storm recovery continues

Puget Sound Energy has a service status page where they update how things are going in the power restoration process. The repair crews (some from as far away as Kansas) are working 40-hour shifts with eight hours' rest between shifts. (That article is from a snowstorm a few weeks ago. A manager is quoted as saying. "I've been in this ...

I bet somebody is looking to get a really nice bonus for that feature: Attention

"I bet somebody is looking to get a really nice bonus for that feature." A customer was having trouble with one of their features that scans for resources that their program can use, and, well, the details aren't important. What's important is that their feature ran in the Startup group, and as soon as it found a suitable resource, it ...

Some call it context, others call it reference data, but whatever it is, it's yours

Different functions call it different things. RegisterWaitForSingleObject calls it Context. SetWindowSubclass calls it reference data. EnumWindows calls it lParam. CreateThread just calls it a parameter! But whatever its name is, it means the same thing: It's a value the function doesn't care about. All the function does is hand that value ...
Comments are closed.0 0
Code

Do not write in-process shell extensions in managed code

Jesse Kaplan, one of the CLR program managers, explains why you shouldn't write in-process shell extensions in managed code. The short version is that doing so introduces a CLR version dependency which may conflict with the CLR version expected by the host process. Remember that shell extensions are injected into all processes that use the ...
Comments are closed.0 0
Code

Why do user interface actions tend to occur on the release, not on the press?

If you pay close attention, you'll notice that most user interface actions tend to occur on the release, not on the press. When you click on a button, the action occurs when the mouse button is released. When you press the Windows key, the Start menu pops up when you release it. When you tap the Alt key, the menu becomes active when you ...
Comments are closed.0 0
Code

Computing listview infotips in the background

When the listview control asks you for an infotip, it sends you then LVN_GETINFOTIP notification, and when you return, the result is displayed as the infotip. But what if computing the infotip takes a long time? You don't want to stall the UI thread on a long operation, after all. This is where LVM_SETINFOTIP comes in. If you want to say, "...
Comments are closed.0 0
Code

Maybe if it had characters and stuff and different levels, it would be OK

In a classic series, Electronic Games Monthly plopped modern kids, ages 9 through 12, in front of classic video games: Pong, Donkey Kong, Tetris. And then recorded their reactions. Here, the kids are playing Tetris and appear to be obsessed with stuff blowing up. Tim: Which button do I press to make the blocks explode? EGM: Sorry, they ...

Displaying infotips for folded and unfolded listview items

When displaying infotips for listview items, you have to deal with both the folded and unfolded case. "Folded" is the term used to describe a listview item in large icon mode whose text has been truncated due to length. When the user selects the item, the full text is revealed, a process known as "unfolding". Take our scratch program and ...
Comments are closed.0 0
Code

Jeanne Martinet teaches you how to survive a party where you don't know anybody

It's the time of year where you may find yourself attending a party where you know hardly anyone. Jeanne Martinet, author of The Art of Mingling, walks Steve Inskeep through a mock-party with tips on how to join a conversation, and (perhaps more importantly) exit one. Don't just read the article; you need to listen to the story. The mock-...

Feedback usabilla icon