Showing tag results for History

Jul 16, 2008
Post comments count0
Post likes count1

The evolution of menu templates: 32-bit extended menus

Raymond Chen
Raymond Chen

At last we reach the 32-bit extended menu template. Introduced in Windows 95, this remains the most advanced menu template format through Windows Vista. As you might expect, the 32-bit extended menu template is just a 32-bit version of the 16-bit extended menu template, so if you've been following along, you should find no real surprise...

History
Jul 15, 2008
Post comments count0
Post likes count1

The evolution of menu templates: 16-bit extended menus

Raymond Chen
Raymond Chen

Windows 95 introduced a new menu format, known as "extended menus". You declare these in a resource file with the MENUEX keyword. The 16-bit extended menu is really just a temporary stopping point on the way to the 32-bit extended menu, since the 16-bit form is supported only by the Windows 95 family of operating systems. It's sort of th...

History
Jul 14, 2008
Post comments count0
Post likes count1

Why does the “Install Font” dialog look so old-school?

Raymond Chen
Raymond Chen

8 wonders why the "Install Font" dialog looks so old-school. (And Kevin Provance demonstrates poor reading skills by not only ignoring the paragraph that explains why the suggestion box is closed, but also asking a question that's a dup of one already in the suggestion box!) Because it's a really old dialog. That dialog has been around for ...

History
Jul 11, 2008
Post comments count0
Post likes count1

The evolution of menu templates: 32-bit classic menus

Raymond Chen
Raymond Chen

Now that we've got a handle on 16-bit classic menu templates, we can move on to the next evolutionary step, namely 32-bit classic menu templates. The 32-bit classic menu template is in fact nearly identical to the 16-bit classic menu template. The only change is that the menu text is now a Unicode string instead of an ANSI string. Consequently,...

History
Jul 10, 2008
Post comments count0
Post likes count1

What’s the deal with that alternate form for menu item template separators?

Raymond Chen
Raymond Chen

We saw last time that you can specify a separator in a menu item template by specifying zero for everything, even though technically you're supposed to pass MFT_SEPARATOR for the flags. What's the deal with that alternate form for menu item template separators? This goes back to the early days of the InsertMenu function (and its friends like Ap...

History
Jul 9, 2008
Post comments count0
Post likes count1

The evolution of menu templates: 16-bit classic menus

Raymond Chen
Raymond Chen

Menus aren't as complicated as dialogs. There are no fonts, no positioning, it's just a list of menu items and flags. Well, okay, there's the recursive part, when a menu has a submenu. But that's really the only wrinkle. Most of it is pretty boring. The 16-bit classic menu template begins with the following header: struct MENUHEADER16 { WORD ...

History
Jul 8, 2008
Post comments count0
Post likes count1

The evolution of menu templates: Introduction

Raymond Chen
Raymond Chen

As with dialog templates, menu templates have also gone through a four-stage evolutionary process. People don't often generate menu templates in code, although the function is there waiting for you once you get the urge. As a result, there aren't many questions from people trying to generate menu templates dynamically, but I'm going to go into t...

History
Jul 7, 2008
Post comments count0
Post likes count1

Why is the LOADPARMS32 structure so messed up?

Raymond Chen
Raymond Chen

If you look at the LOADPARMS32 structure, you'll find a horrific mishmash. Double-null-terminated strings, a null-terminated string, some WORDs, and even a Pascal-style string. What's going on here? Each of those members comes from a different era in time. The oldest member is the Pascal-style command line, which dates back to CP/M. On CP/M, co...

History
Jun 20, 2008
Post comments count0
Post likes count0

Donations to the Microsoft Archives: Pens, CDs, and paperweights

Raymond Chen
Raymond Chen

Among other responsibilities, the Archives department preserves Microsoft history, be it old hardware, old software, old documentation, or ephemera. Last year, one of my colleagues was cleaning out his office because he was moving to Granada, and of the junk he was going to throw out, the Archives asked me to save the following: and my favorit...

History
May 30, 2008
Post comments count0
Post likes count1

Why are some GDI functions named ExtXxx instead of XxxEx?

Raymond Chen
Raymond Chen

By convention, an enhanced version of a function is called , but there are many GDI functions that don't follow this conventions, most notably , which should have been named under the convention. Why don't the GDI functions follow that convention? Because they were named before the convention was established. Nothing nefarious, just an artifa...

History