The Old New Thing

The evolution of dialog templates – Summary

As promised, here's the tabular version of the evolution of dialog templates. It doesn't contain any new information, but it may give you a little glimpse into how things evolved to see the small changes highlighted against each other...

The evolution of dialog templates – 32-bit Extended Templates

At last we reach our goal, the 32-bit extended dialog template, known in resource files as DIALOGEX. I will celebrate this with a gratuitous commutative diagram: Isn't that special. Okay, so let's get going. The 32-bit extended dialog template is the 32-bit version of the 16-bit extended dialog template, so you won't see any real ...

The evolution of dialog templates – 16-bit Extended Templates

The next step in the evolution of dialog templates is the Extended Dialog or DIALOGEX. First, let's look at the 16-bit version. The 16-bit extended dialog template is purely historical. The only operating systems to support it were the Windows 95/98/Me series. It is interesting only as a missing link in the evolution towards the 32-bit ...

The evolution of dialog templates – 32-bit Classic Templates

Okay, last time we talked about the 16-bit classic DIALOG template. This time, we're going to talk about the 32-bit classic DIALOG template. There really isn't much going on. Some 8-bit fields got expanded to 16-bit fields, some 16-bit fields got expanded to 32-bit fields, extended styles were added, and all strings got changed from ANSI ...

The evolution of dialog templates – 16-bit Classic Templates

In the history of Windows, there have been four versions of dialog templates. And despite the changes, you'll see that they're basically all the same. First, there was the classic Windows 1.0 dialog template. It starts like this: Notice that this is where the 255-controls-per-dialog limit comes from on 16-bit Windows, since the field ...

The evolution of dialog templates – Introduction

In the history of Windows, there have been four versions of dialog templates. And despite the changes, you'll see that they're basically all the same. My secret goal in this six-part series is to address questions people have had along the lines of "I'm trying to generate a dialog template in code, and it's not working. What am I ...

What was the purpose of the hPrevInstance parameter to WinMain?

Once your average GUI program picks itself up off the ground, control begins at your WinMain function. The second parameter, hPrevInstance, is always zero in Win32 programs. Certainly it had a meaning at some point? Of course it did. In 16-bit Windows there was a function called GetInstanceData. This function took an HINSTANCE, a ...

What is the difference between HINSTANCE and HMODULE?

They mean the same thing today, but at one time they were quite different. It all comes from 16-bit Windows. In those days, a "module" represented a file on disk that had been loaded into memory, and the module "handle" was a handle to a data structure that described the parts of the file, where they come from, and where they had been loaded...

Do not underestimate the power of the game Deer Hunter

During the run-up to Windows XP Service Pack 2 Beta in December of last year, there was a list of five bugs that the release management team decided were so critical that they were going to slip the beta until those bugs got fixed. The third bug on the list: Deer Hunter 4 won't run. Deer Hunter has the power to stop a beta...

My first death threat

Actual feedback submitted to the microsoft.com web site many years ago. id: 13726 Date: 1996-07-29 17:27:41.997 Name: *********** Email: ************* Area: Windows 95 Comments: PLEASE read this entire email as it is quite serious. I just discovered today that in the Windows 95 operating system, there are no switches, command line...