{"id":43993,"date":"2014-09-24T07:00:00","date_gmt":"2014-09-24T07:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2014\/09\/24\/what-is-the-story-of-the-mysterious-ds_recurse-dialog-style\/"},"modified":"2014-09-24T07:00:00","modified_gmt":"2014-09-24T07:00:00","slug":"what-is-the-story-of-the-mysterious-ds_recurse-dialog-style","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20140924-00\/?p=43993","title":{"rendered":"What is the story of the mysterious DS_RECURSE dialog style?"},"content":{"rendered":"<p>There are a few references to the <code>DS_RECURSE<\/code> dialog style scattered throughout MSDN, and they are all of the form &#8220;Don&#8217;t use it.&#8221; But if you look in your copy of <code>winuser.h<\/code>, there is no sign of <code>DS_RECURSE<\/code> anywhere. This obviously makes it trivial to avoid using it because you couldn&#8217;t use it even if you wanted it, seeing as it doesn&#8217;t exist.\n &#8220;Do not push the red button on the control panel!&#8221;\n &mdash; <i>There is no red button on the control panel.<\/i>\n &#8220;Well, that makes it easy not to push it.&#8221;\n As with many of these types of stories, <a href=\"http:\/\/blogs.msdn.com\/b\/oldnewthing\/archive\/2007\/10\/25\/5658731.aspx\"> the answer is rather mundane<\/a>.\n When nested dialogs were added to Windows&nbsp;95, the flag to indicate that a dialog is a control host was <code>DS_RECURSE<\/code>. 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.\n The window manager folks later decided to change the name, and they changed it to <code>DS_CONTROL<\/code>. All documentation that was written before the renaming had to be revised to change all occurrences of <code>DS_RECURSE<\/code> to <code>DS_CONTROL<\/code>.\n It looks like they didn&#8217;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.<\/p>\n<p> Unfortunately, I don&#8217;t have any contacts in the Windows Embedded documentation team, so I don&#8217;t know whom to contact to get them to remove the references to flags that don&#8217;t exist. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are a few references to the DS_RECURSE dialog style scattered throughout MSDN, and they are all of the form &#8220;Don&#8217;t use it.&#8221; 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&#8217;t use it even if [&hellip;]<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[2],"class_list":["post-43993","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-history"],"acf":[],"blog_post_summary":"<p>There are a few references to the DS_RECURSE dialog style scattered throughout MSDN, and they are all of the form &#8220;Don&#8217;t use it.&#8221; 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&#8217;t use it even if [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/43993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=43993"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/43993\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=43993"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=43993"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=43993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}