A COM component is just an object that has been programmed using the Component Object Model (COM) which is, not suprissingly, a programming model to follow. When using C#, you don't really need to concern yourself with COM obects unless you're working with legacy (pre .NET) code (such as C++ components or VB 6 [or earlier] components). Of course, just because something was programmed in these languages (and others) doesn't automatically make them COM objects, they have to have been programmed according to the component object model.