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
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.


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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

744 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now