COM is not C++, and for good reason. COM objects are somewhat more complicated then their C++ brethren. Most of this complication is necessary because of network considerations. There are four basic factors dictating the design of COM:
* C++ objects always run in the same process space. COM objects can run across processes or across computers. * COM methods can be called across a network. * C++ method names must be unique in a given process space. COM object names must be unique throughout the world. * COM servers may be written in a variety of different languages and on entirely different operating systems, while C++ objects are always written in C++.