As you will recall from the section titled "
Overview of COM Component Programming," an externally
creatable class provides objects that a client application can instantiate directly.
You might guess that, because there is a single Instancing property setting for service classes
and one for dependent classes, there would be a single setting as well for externally creatable
classes.
The situation is a bit more complex than one Instancing setting can handle, however, because
external objects have several additional features:
External objects can be single use or multiuse. A single-use object can't be shared
by more than one client, whereas a multi-use object can (see the following sections for
further details).
External objects can be global or they can require explicit instantiation (see the following
sections for further details).
The combination of these two features yields four possible Instancing properties
for externally creatable objects, as discussed in the following four sections.