Windows Presentation Manager

Any programmer even passingly familiar with the Windows and Presentation Manager APIs is aware that there are significant similarities. When other windowing APIs, such as X11 or Mac OS, are taken into consideration, Windows and the Presentation Manager look like siblings, almost twins.

The similarity is not coincidental. The OS/2 GUI was even referred to as the “Windows Presentation Manager” in the early days of OS/2. The OS/2 Presentation Manager and Windows 2.0 were developed in parallel, and Microsoft was stressing the similarities.

The exact timeline is not easy to establish, but a few points are clear. The Presentation Manager was announced in April 1987; at that time, the functional specification already existed, but the code was very far from being finished. In mid-1987, when Microsoft started shipping the first OS/2 SDKs, the complete Presentation Manager API documentation was part of the kits, even though there was no code yet. To get developers started, the OS/2 SDK included Windows 1.04 and the corresponding SDK.

In late 1987, Microsoft shipped Windows 2.0. An update to the OS/2 SDK included Windows 2.03 (the only known release of Windows 2.0) together with the Windows SDK. The idea was that developers could start designing and writing GUI applications before Presentation Manager was available.

In March 1988, the first OS/2 SDK with a beta version of the Presentation Manager finally appeared. The early Presentation Manager version looked a lot like Windows 2.0 (including the ugly color scheme). The programming documentation included a “Windows Equivalents” section listing each Windows API and its Presentation Manager equivalents (or lack thereof, in some cases). OS/2 1.1 with Presentation Manager was released in late 1988, visually somewhat different from Windows 2.0 but by no means a radical departure.

Over the years, both the Presentation Manager and Windows APIs evolved, but the basic structure of windows and messages has not changed. Many of the differences between Windows and the Presentation Manager were caused by different objectives: Windows 2.0 was to be backwards compatible with Windows 1.0, and therefore existing APIs changed very little. On the other hand, Presentation Manager was a clean slate and Microsoft took it as an opportunity to clean up and improve the API design.

For example, the Windows APIs TranslateMessage and DispatchMessage, standard components of a message loop, were combined into WinDispatchMsg in Presentation Manager. In Windows, the TranslateMessage calls were effectively mandatory, and there was no real need for a separate function call. And in PresentationManager, all windowing functions received the ‘Win’ prefix to make it much clearer what was what.

As a result, Presentation Manager and Windows applications shared the same design philosophy and overall structure, but ended up being quite different in detail.

This entry was posted in OS/2, Windows. Bookmark the permalink.

13 Responses to Windows Presentation Manager

  1. Andreas Kohl says:

    Perhaps it should be mentioned that GPI (Graphics Presentation Interface) was derived from GDDM’s GCP.

  2. michaln says:

    Yes, the GPI was derived largely from IBM’s GDDM (Graphical Data Display Manager) and GCP (Graphics Control Program), and the GPI was developed primarily at IBM’s Hursley lab in the UK, I believe. However, the bitmap and bit-blit support in GPI came straight from Windows, with ROPs and everything.

  3. Dr. Bob says:

    I have two copies of Windows 2.0. One box is unopened & still in shrink wrap. The other box is opened. The only way to determine the version number is to look at the registration card. The opened box registration card shows version 203, without a decimal point. I’m going to assume it is version 2.03.

  4. michaln says:

    The other way to determine the version is to run the software and look at the About box 🙂 I suspect that they’re both 2.03, although Microsoft managed to muddle the versioning considerably. As far as I know, Microsoft used the terms Windows 2.0 and Windows 2.03 interchangeably. The only other 2.0x version I know of was Windows/386, which identified itself as 2.01 (and could be run without the 386 bits, essentially equivalent to the 2.03 version).

    I don’t suppose you’re the Dr. Bob who used to have a column in the Microsoft Systems Journal?

  5. Dr. Bob says:

    @michaln- I’m not the Microsoft Dr. Bob… heh, just another dumba$$ PhD. Also, don’t forget Windows/286. I have an unopened Windows/286 NIB (with shrink-wrap). The box-end label shows: WINDOWS 286 2.11 (5.25) RREWWINJUL/5 050-350V211 and includes a bar code. I’m assuming the version is 2.11

    Now, my unopened version of Windows/386 box-end label shows: WINDOWS 386 2.11 DU 50-00-727-01-02/5*N3 050-080V211 and includes a bar code. This also appears to be version 2.11. The DU probably means it includes both 3.5 and 5.25 disks.

  6. Dr. Bob says:

    I think Windows 2.0 is probably the rarest version of Windows (even more rare than 1.0). Remember that version 2.0 was at the center of a huge lawsuit between Microsoft and Apple- having to do with copyright infringement on Apple’s graphic user interface and other things. Windows 2.0 hardly left the sales “starting gate” and was held back as part of Microsoft’s lawyers advice.

  7. michaln says:

    I’m not forgetting, but Windows/286 2.1 was simply the next version of Windows 2.03. In 1987, there was Windows 2.0 and Windows/386. The successor products in 1988 were Windows/286 2.1 and Windows/386 2.1. And later (in 1989) there was version 2.11 of both. The versioning was super confusing, and I don’t think even people at Microsoft understood it.

  8. michaln says:

    That does not add up. According to my notes, the look & feel lawsuit was in March 1988, and targeted specifically Windows 2.03 and HP NewWave. Windows 2.03 was released in December 1987.

  9. Dr. Bob says:

    Good catch michaln, I meant V2.03. Heh! And in the end, Apple and Microsoft kissed and made-up…

  10. George says:

    I have a shrink wrapped box of Windows 286 version 2.10

  11. RM says:

    I’m selling my entire collection of Windows, including 1.0, 2.0 (presentation manager), /286 /386, etc. most are still in their original shrink wrap. Search for seller “cosmicsymphony” or for “vintage windows”. Enjoy!

  12. Richard Dill says:

    Need to clarify the inaccurate information above. GPI was NOT built by IBM Hursley. Only the retained mode portion of the graphical support came from Hursley. All direct-mode graphics was built by Microsoft and was how Windows like interactivity was supported in OS/2. I know this as fact since I was the OS/2 Microsoft Project Manager at the time.

  13. Michal Necasek says:

    Thanks for the correction. So part of GPI (the esoteric one) was built by IBM Hursley, the rest was more or less straight port from Windows.

    I’m not sure I ever came across an application that used retained mode GPI. Anything that also existed on Windows pretty much by definition didn’t use it, because there was no Windows equivalent, so why bother.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.