Showing results for September 2013 - The Old New Thing

Sep 30, 2013
Post comments count0
Post likes count0

Playing a sound every time the foreground window changes

Raymond Chen
Raymond Chen

Today's Little Program plays a little sound every time the foreground window changes. One of my colleagues wondered if such a program was possible, "so that I stop accidentally typing the second halves of paragraphs into windows that pop up and steal focus." It's not clear whether this program will actually solve the bigger problem, but it was fun...

Code
Sep 27, 2013
Post comments count0
Post likes count0

2013 Q3 link clearance: Microsoft blogger edition

Raymond Chen
Raymond Chen

It's that time again: Linking to other Microsoft bloggers, and once again, the links are all from the excellent NT Debugging blog.

Other
Sep 27, 2013
Post comments count0
Post likes count0

How can I determine how responsive my application is to input?

Raymond Chen
Raymond Chen

A customer was adding diagnostics to their application and wanted to know if there was a way to detect that the application was being slow in processing its input. These sorts of delays manifest themselves to the end user as a sluggish application which is slow to respond to input events. They already had a watchdog timer that was reset every time...

Code
Sep 26, 2013
Post comments count0
Post likes count0

Don't forget, Unicode includes formatting characters which can be used to influence output formatting

Raymond Chen
Raymond Chen

Consider this simple function: Depending on your screen resolution and font choices, this may end up displaying like this: That line break was awfully unfortunate, stranding the number 2 on a line by itself. (In publishingspeak, this is known as a orphan.) You can't control where the function will insert line breaks, but you can try to i...

Code
Sep 25, 2013
Post comments count0
Post likes count0

How can I tell that somebody used the MAKEINTRESOURCE macro to smuggle an integer inside a pointer?

Raymond Chen
Raymond Chen

Many functions and interfaces provide the option of passing either a string or an integer. The parameter is formally declared as a string, and if you want to pass an integer, you smuggle the integer inside a pointer by using the macro. For example, the function lets you load an resource specified by integer identifier by passing the identifier in...

Code
Sep 24, 2013
Post comments count0
Post likes count0

Punctuation is becoming increasingly decorative and less functional

Raymond Chen
Raymond Chen

The "Blog" of "Unnecessary" Quotation Marks calls out abuse of the quotation mark. For some reason, quotation marks are being increasingly used as a form of emphasis (a usage which remains controversial), by people unaware that such use, when interpreted as scare quotes, serves to undermine their original point. Mind you, the emphasis theory do...

Non-Computer
Sep 24, 2013
Post comments count0
Post likes count0

Wait, so does moving a file recalculate inherited permissions or doesn't it?

Raymond Chen
Raymond Chen

A customer had a question about whether moving a file recalculated inherited permissions. They found that on their Windows Server 2008 R2 machine, if they moved a file between directories with different inheritable ACEs, then the security descriptor is recalculated to match the destination folder, if they perform the move from the machine itse...

Tips/Support
Sep 23, 2013
Post comments count0
Post likes count0

I dreamed that I was in an alternate-universe Samuel L. Jackson movie

Raymond Chen
Raymond Chen

I dreamed that I was part of the crew of an underwater spaceship, and we had to deal with an alligator that got on board. How the alligator got on board was never explained, but now is not the time to ask questions because, you know, alligator. The plan was to flood the ship and wash the alligator out. There were only enough air pills for the fema...

Non-ComputerDream
Sep 23, 2013
Post comments count0
Post likes count0

Providing a custom autocomplete source for an edit control

Raymond Chen
Raymond Chen

Today's Little Program shows a custom source for autocomplete. It's nothing exciting, but at least's it's something you can use as a starting point for your own customizations. We start with a dialog template, whose edit control will be the target of a custom autocomplete. Just for fun, I wrote the program in ATL. Instead of complaining that ...

Code