Server Component
Now that you know how to write a simple client component, let’s write a simple server component that will support the client component’s request. When developing a server component, you must do three things, aside from defining the supported interface using MIDL:
Develop a server that exposes the supported class factories to the outside world. There are several types of server components, discussed in the Servers section of Chapter 4.
Develop a C++ class for each class factory that can instantiate supported objects. The Class Factories section in Chapter 3 shows you how to develop custom and standard factories.
Develop a C++ class for each object that implements supported COM interfaces. The Objects section in Chapter 3 shows you how to develop a COM object that meets the laws of COM.
You’ll follow these steps in the following subsection to create your server component that can display the phrase “Hello, Universe!”
The main( ) routine
The main routine for your server component simply exposes a class factory that can instantiate objects that implement the IHello interface. In brief, this routine does the following:
Instantiate a global instance of your class factory whose implementation will be discussed in a moment.
Initialize COM.
Register the interface marshaler for the IHello interface.
Make your class factory public by calling the CoRegisterClassObject COM API function. See the Dynamic Activation Support section in Chapter 4 for more information.
Once executed, the server ...