What is the story of the mysterious DS_RECURSE dialog style?

Raymond Chen


There are a few references to the DS_RECURSE dialog style scattered throughout MSDN, and they are all of the form “Don’t use it.” But if you look in your copy of winuser.h, there is no sign of DS_RECURSE anywhere. This obviously makes it trivial to avoid using it because you couldn’t use it even if you wanted it, seeing as it doesn’t exist. “Do not push the red button on the control panel!” — There is no red button on the control panel. “Well, that makes it easy not to push it.” As with many of these types of stories, the answer is rather mundane. When nested dialogs were added to Windows 95, the flag to indicate that a dialog is a control host was DS_RECURSE. The name was intended to indicate that anybody who is walking a dialog looking for controls should recurse into this window, since it has more controls inside. The window manager folks later decided to change the name, and they changed it to DS_CONTROL. All documentation that was written before the renaming had to be revised to change all occurrences of DS_RECURSE to DS_CONTROL. It looks like they didn’t quite catch them all: There are two straggling references in the Windows Embedded documentation. My guess is that the Windows Embedded team took a snapshot of the main Windows documentation, and they took their snapshot before the renaming was complete.

Unfortunately, I don’t have any contacts in the Windows Embedded documentation team, so I don’t know whom to contact to get them to remove the references to flags that don’t exist.


Comments are closed. Login to edit/delete your existing comments