Summary

In this chapter, you learned about out-of-process servers. The first thing you learned was that like DLLs, EXEs have to perform four main tasks: registration, unregistration, proper termination, and object creation (exposing their class objects using class factories). Registration and unregistration are done with command-line parameters: /RegServer and /UnregServer. To expose its class objects, the SCM uses the command-line switch -Embedding. The -Embedding switch tells the ActiveX EXE to register its class objects with the system’s class table. The SCM then searches the class table for the class objects. If the class table does not have a class object that meets the client’s request, the SCM launches the executable.

COM objects live in apartments. VB COM objects live in single-threaded apartments (STAs). Whenever communication occurs between apartments, it happens through a proxy and a stub. Communication through proxies and stubs is much slower than direct communication. To use an object from another apartment, we must export the object’s interface from one apartment and import it into the client’s apartment. To export the object’s interface means to marshal it. Marshaling the interface creates a stub. To create the stub, the universal marshaler needs to have access to the server’s type library. This is also the case when the object needs to be imported into the client’s apartment. In this case, the universal marshaler needs to build a proxy from the type library. This ...

Get COM+ Programming with Visual Basic now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.