Click to Rate and Give Feedback
MSDN
MSDN Library
COM
COM Fundamentals
Guide
COM
COM Clients and Servers

A critical aspect of COM is how clients and servers interact. A COM client is whatever code or object gets a pointer to a COM server and uses its services by calling the methods of its interfaces. A COM server is any object that provides services to clients; these services are in the form of COM interface implementations that can be called by any client that is able to get a pointer to one of the interfaces on the server object.

There are two main types of servers, in-process and out-of-process. In-process servers are implemented in a dynamic linked library (DLL), and out-of-process servers are implemented in an executable file (EXE). Out-of-process servers can reside either on the local machine or on a remote machine. In addition, COM provides a mechanism that allows an in-process server (a DLL) to run in a surrogate EXE process to gain the advantage of being able to run the process on a remote machine. For more information, see DLL Surrogates.

The COM programming model and constructs have now been extended so that COM clients and servers can work together across the network, not just within a given machine. This enables existing applications to interact with new applications and with each other across networks with proper administration, and new applications can be written to take advantage of networking features.

COM client applications do not need to be aware of how server objects are packaged, whether they are packaged as in-process objects (in DLLs) or as local or remote objects (in EXEs). Distributed COM further allows objects to be packaged as Microsoft Windows NT or Microsoft Windows 2000 Services, synchronizing COM with the rich administrative and system-integration capabilities of Windows NT and Windows 2000.

Note:
Throughout this documentation the acronym COM is used in preference to DCOM. This is because DCOM is not separate—it is just COM with a longer wire. In cases where what is being described is specifically a remote operation, the term distributed COM is used.

COM is designed to make it possible to add the support for location transparency that extends across a network. It allows applications written for single machines to run across a network and provides features that extend these capabilities and add to the security necessary in a network. (For more information, see Security in COM.)

COM specifies a mechanism by which the class code can be used by many different applications.

See Also

Send comments about this topic to Microsoft.
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker