Library Zone Articles
External Articles
Byte Size

Discovery Zone Catalogue
Interactive Zone Ask the Gurus
Discussion Groups
Etc Cartoons
Site Builder ASP Web Ring ASP Web Ring

Click here
The Developer's Resource & Community Site
International This Week Forums Author Central Find a Job

COM+2 - First Announcement of Microsoft's New Technology

Microsoft tends to be very careful about releasing details about its forthcoming technologies. Usually information is drip-fed to the public via conferences and press releases and this has been apparent over the last 6 months or so with the release of details about Visual Studio 7. VCDC has had a succession of keynotes about ATL Server and the Wrox ASP conference has had details about ASP+ (

Those of you who have been attentive will have noticed the recent leaking about COM+ 2.0 in Paul Thurrott's WinInfo newsletter. He was talking about a new Microsoft technology called Fusion that purports to prevent 'DLL Hell' (where multiple versions of DLLs on your system make your applications crash when Windows picks the wrong version). The complete article can be found at The relevant section is reproduced here:

Fusion 2.0: Protecting the Server
First up is Fusion 2.0, technologies that will first be made available with Visual Studio 7 and COM+ 2.0 (both expected in. Q1 2001). And as you might expect, given the products with which this technology will become available, Fusion 2.0 will deal largely with protecting COM+ 2.0 components, on both Web browser clients and the server, from each other, and with protecting the operating system from these COM+ components. Microsoft shipped COM+ 1.0 with Windows 2000 in early 2000; COM+ 2.0 will be available as an add-on to Windows 2000 and it will also ship with Whistler, the follow-up to Windows 2000 due in the first half of 2001. Improvements in this release are geared largely toward Web servers.

The significant part of this is the mention of COM+ 2.0. Everyone who uses COM+ will be aware that a new version of COM+ would be released sometime in the future, because throughout the beta of Windows 2000 Microsoft has always talked about COM+ as 'COM+ 1.0'. Indeed, the first announcement of the technology at the 1997 PDC referred to two parts, COM+ Services and COM+ Runtime. COM+ Services was described as providing services like transactions which would be part of the OS and provided through interceptors that would provide what was described as 'auto-everything'. This is the COM+ that we have in Windows 2000 where components are configured in the COM+ catalog to use a service and COM+ ensures that that service is loaded, initialised and applied whenever the component is accessed.

At the 1997 PDC we were also told about another technology that was called the COM+ Runtime. This, we were told, would do much of the client-side COM plumbing work for us. I reported on the COM+ runtime soon after the 1997 PDC in the Nov/Dec 1997 issue of Visual Systems Journal (, and here's what I wrote:

COM+ rectifies this by wrapping the COM libraries with a runtime library: the COM+ Runtime. The COM+ Runtime handles all the grungy stuff for the COM developer like module initialisation, reference counting, class factory creation and the implementation of the QueryInterface method that every object's interface must implement to give access to the other interfaces on the object and to allow the object to assert its identity.

In addition to this the COM+ Runtime will automatically wrap an object's interface with an automation interface if the object is called with COM's dynamic invocation mechanism: automation. In straight COM an interface would have to be specifically written as an automation interface (or dispinterface) and if it can be called both statically and dynamically, then the interface will need to be written as a dual interface, but you still need to implement the dispatch interface. COM+ allows you to write just the static invocation version and it will do the work to allow it to be called dynamically.

Further details about the COM+ Runtime can also be found in a two-part MSJ article by Mary Kirtland (Nov, Dev 1997, In these articles Mary wrote:

COM+ is language-neutral. It doesn't care what syntax is used to implement components-that's up to the tool you use. All COM+ cares about is that the tool recognizes some syntax as representing a request to do some COM+ thing. The programming model concepts are the same.

The article gave details about self-describing components that contain metadata ("type library on steroids") where the runtime implemented most standard interfaces for you as well as class factories. The developer of these components would not have to deal with CLSIDs because, "COM+ attempts to make COM component development more like language-specific component development: regardless of the language or tool you are using, you just write a class". Mary also talked about attributed code, standard data types that would be supported by all languages that supported the COM+ Runtime and implementation inheritance and constructors for COM+ components.

Paul Thurrott's article does not address any of these features. Indeed, I am not sure if he realises the significance of the term COM+ 2.0, because he makes the mistake of blaming COM DLL servers as a cause of 'DLL Hell'. All COM developer's know that COM solves the problem of DLL location (through registration with the system registry and COM+ catalog), of versioning (through CLSIDs) and of preventing exported functions being accessed through an incorrect function pointer (through interfaces and QueryInterface() ).

From Thurrott's comments I think that we can deduce the following:

  • Despite the trouble that Microsoft has had recently in the US courts, with claims and counter-claims with Sun and Netscape, COM+ is still alive and is being developed further.
  • Unlike COM+ 1.0, which is only available as part of Windows 2000, COM+ 2.0 will be available through some kind of add-on to the operating system. If you remember back to the old 16-bit Windows days, OLE 2.0 was provided as an add-on to Windows 3.1 and was installed with Office and Visual Basic 3.0. Also, MTS 2.0 (a technology that is now part of the operating system in Windows 2000) was distributed as an add-on to NT4 and Windows 9x as part of the NT4 Option Pack. It sounds like COM+ 2.0 will be distributed in a similar way as a separate option pack for Windows 2000.
  • COM+ 2.0 will be part of the replacement operating system for Windows 2000 (code named 'Whistler'). This seems to indicate that the intention will be to allow Windows 2000 and Whistler COM+ components to interoperate. Contrast this to the situation today with COM+ 1.0 where a COM+ application can only contain components running on Windows 2000 machines.
  • Visual Studio 7.0 will ship in the first quarter of 2001.

Let's hope that more information will be released by Microsoft or Paul Thurrott. If COM+ 2.0 has just a small part of the facilities announced at the 1997 PDC it will certainly make our development lives easier!

More ByteSize articles:

'ILoveYou' By Richard Grimes, 200500
Richard Grimes discusses the release of the Microsoft patch for the 'ILoveYou' virus. Go To Article.

COM+ 2.0 - First Announcement of Microsoft's New Technology By Richard Grimes, 100500
Richard Grimes reports on the recent news about COM+ 2. Go To Article.

How to use DDX with WTL? By Girish Bharadwaj, 270300
Go To Article.

ATL Server By Richard Grimes, 220200
Richard's report from European Devweek 2000, and VCDC Bonn 2000 gives an insight into the new ATL Server technology.
Go To Article.

COM Threading Models By Gopalan Suresh Raj, 070200
Gopalan explains the differences in COM and Win 32 threading models.
Go To Article.

ActiveX & COM By Gopalan Suresh Raj, 270100
Gopalan explains the basics of ActiveX / COM as a truly distributed Object Oriented Architecture.
Go To Article.

Type Library Info, XML and a bit of XSL for fun! by Richard Anderson 121199
This article assumes you understand COM, Type Libraries, XML and enough about VB that you can either use the code as a starting point, or, translate it into another language.
Go To Article.
This article can be downloaded: Zip File (76kb).

COM and Apartments By Richard Grimes, 070100
A discussion on the creation and use of "Apartments" in Win32.
Go To Article.

What is WTL? By Richard Grimes, 070100
Richard gives a basic introduction to WTL.
Go To Article.

An Introduction to Interface Programming By Richard Grimes, 070100
Richard describes the background to interfaces.
Go To Article.

Author Bio:

Author: Richard Grimes

Richard Grimes started programming aeons ago on 8-bit computers and hasn't looked back since. He has spent an interesting time as a research scientist (the little known "Grimes Effect" is his creation), underpaid time as a computer trainer and done time as a distributed object developer.

ATL took hold of Richard while he was part of a team developing a COM-based workflow system and its elegance and simplicity has had a lasting effect on him. Although his is not an obsessively pure COM existence, he finds that an ATL-assisted COM lifestyle gives him more time to enjoy his garden.

Go to Richards pages in Author Central.

Click here

Contribute to IDR:

To contribute an article to IDR, a click here.

To contact us at, use our feedback form, or email us.

To comment on the site contact our webmaster.

Promoted by CyberSavvy UK - website promotion experts

All content © Copyright 2000, Disclaimer notice

Code Project

WTL Architecture by Richard Grimes

Visit the IDR Bookstore!

Code Project