What is COM

Posted on 2000-05-10
Last Modified: 2010-04-04
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.
Question by:grishkin
  • 3
  • 2
LVL 15

Expert Comment

ID: 2798534
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.



LVL 10

Accepted Solution

Lischke earned 380 total points
ID: 2799589
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

Author Comment

ID: 2799987
Adjusted points from 375 to 380
Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.


Author Comment

ID: 2799988

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...

LVL 10

Expert Comment

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

Ciao, Mike

Author Comment

ID: 2802725
Cut&Paste, sorry...

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
In a recent question ( here at Experts Exchange, a member asked how to add page numbers to a PDF file using Adobe Acrobat XI Pro. This short video Micro Tutorial sh…

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question