Showing tag results for Code

Apr 13, 2012
Post comments count0
Post likes count0

You already know the answer since you do it yourself

Raymond Chen
Raymond Chen

A customer was writing a program that performed virtual drag/drop. They were using the technique but found that many applications don't support drag/drop of virtual content. They support only . What's more, often these applications query for on not because they want to access the file, but just because they want to get the file names (for examp...

Code
Apr 9, 2012
Post comments count0
Post likes count0

There's the interface contract, and there are the implementations of the interface contract

Raymond Chen
Raymond Chen

Ivo wants to know whether it is legal to use as the icon parameters to . The documentation says that the parameters are optional, but some shell folder implementations treat them as mandatory. Yes, the parameters are technically optional, but it's also the case that many people mess up their implementation of the interface and treat them as mand...

Code
Apr 6, 2012
Post comments count0
Post likes count0

Registration-free COM the old-fashioned way: The car mp3 player

Raymond Chen
Raymond Chen

Windows XP introduced Registration-Free COM, permitting you to place your COM object registrations in a manifest rather than in the registry. Very handy when you want to support xcopy deployment or running directly off a thumb drive. And very much in keeping with the principle of not using a global solution for a local problem. (If you need y...

Code
Apr 5, 2012
Post comments count0
Post likes count0

You can use an OVERLAPPED structure with synchronous I/O, too

Raymond Chen
Raymond Chen

Even if you didn't open a file with , you can still use the structure when you issue reads and writes. Mind you, the I/O will still complete synchronously, but you can take advantage of the other stuff that has to offer. Specifically, you can take advantage of the and members to issue the I/O against a file location different from the curren...

Code
Apr 3, 2012
Post comments count0
Post likes count0

Introducing the unrolled-switch anti-pattern

Raymond Chen
Raymond Chen

Over the years, I've seen a bunch of coding anti-patterns. I figured maybe I'll share a few. Today, I'll introduce what I'm calling the unrolled-switch anti-pattern, also known as "Specialization is always faster, right?" As we all know, special-case code is faster than general-purpose code. Instead of writing slow general-purpose code: we ...

Code
Mar 30, 2012
Post comments count0
Post likes count0

How do I perform shell file operations while avoiding shell copy hooks?

Raymond Chen
Raymond Chen

Okay, the subject line of the article gives away the answer to the puzzle, but here's the puzzle anyway: A customer reported a problem with the function: Consider the following program: If "a" is a file, then everything works fine, but if it's a directory, then Application Verifier raises the following error: Heap violation detected Memor...

Code
Mar 29, 2012
Post comments count0
Post likes count0

Why can't I delete a file immediately after terminating the process that has the file open?

Raymond Chen
Raymond Chen

A customer discovered a bug where terminating a process did not close the handles that the process had open, resulting in their emergency cleanup code not working: Their workaround was to insert a call to before deleting the file. The customer wanted to know whether they discovered a bug in , and they were concerned that their workaround could...

Code
Mar 26, 2012
Post comments count0
Post likes count0

Why does a maximized window have the wrong window rectangle?

Raymond Chen
Raymond Chen

Commenter configurator wonders why the maximum size for a form is the screen size plus (12,12). Somebody else wonders why it's the screen size plus (16,16). Let's start by rewinding the clock to Windows 3.0. When you maximize a window, the default position of the window is such that all the resizing borders hang "off the edges of the scree...

Code
Mar 22, 2012
Post comments count0
Post likes count0

Why does my window style change when I call SetWindowText?

Raymond Chen
Raymond Chen

A customer observed some strange behavior with window styles: We ran some weird behavior: Calling the function causes a change in window styles. Specifically, calling results in the and messages, and sometimes the result is that the style is removed. Is this a bug? What would cause this? The message sends the message to the control, at wh...

Code