What is COM

I have a Formal Exploratory Report about Delphi's use of COM and i will give all my points to the man/woman who can give me the best Paragraph long answer to this question. I would really appreicate the use of all the big words you can think of so as i can go away and look them up and explore it further.
Who is Participating?
LischkeConnect With a Mentor Commented:
Let me try it too :-)

COM (which stands for: component object model) is a technology introduced by Microsoft. It is used to describe, in an almost programming language neutral manner, what an object (in the sense of being software) is able to do. This means there's no concret implementation available from the view of the system or any application other then the COM server but only an interface. The term "interface" is very important in this context as it describes the intent of the class (object). This "intent" is made public to the system by means of the registry (which is very important in particular for out of process COM servers [Out-Proc], but often also for in process servers [In-Proc]) or by IDL files (IDL stands for interface description language).

A very interesting part (seen from the programmer view) is that interfaces are reference counted. This means there is an internal counter which is (can be)incremented whenever a COM class is used somewhere and should not be freed. This counter will be decremented whenever this code section is left and the COM class removes itself automatically when this counter reaches zero. This part is very interesting because it frees the implementor of the class from tracking the usage of the class (which is often simply not possible) and freeing it.

Based on the COM technology are further enhancements like ActiveX, VBA (Visual Basic for Applications) as well as many more special purpose COM servers. For Delphi you can active an Internet Explorer instance within your application or active Photoshop via OLE automation. This all is done using COM. More recent technologies use COM to create windowless rich edit controls (in place editing) via CreateTextServices and for Delphi there's an excellent system library available (written by Madshi) which exclusive uses interfaces to query and return system information, which enables the lib to no longer take care about class usage (as there is a high dependency between various classes).

The latest developments are DCOM (distributred COM) and COM+ (coming with Windows 2000). The first is an extension of COM to be used for COM servers running on different machines in a network. Although already an issue on one machine marshalling becomes now much more important (marshalling is a way to transfer data between address rooms in different processes). COM+ plus goes a step further and adds transaction handling to DCOM. Microsoft advertises this technology for search indexes, file (keyword active directory) and even databases.

There's surely much more to say about COM, but it's already more than one paragraph, so I stop here and let you decide.

Ciao, Mike
Better than give you a paragraph, I'll point you to the best site I know about COM: from the very basics to implementing COM-based solutions.




grishkinAuthor Commented:
Adjusted points from 375 to 380
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

grishkinAuthor Commented:

Our lecturer 'Dan the man', is a regular to this site so i won't C&V but you have wrapped this up very nicely...

Although there are quite a lot typos in my text I enjoyed writing it for you :-) Btw: what is C&V?

Ciao, Mike
grishkinAuthor Commented:
Cut&Paste, sorry...
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.