Invoking Queued Components on the Client Side
A queued component client cannot
create the component using CoCreateInstance( ) (or
CreateObject( )/New for Visual Basic 6.0) because
it would result with the normal synchronous mode of interaction. The
client must create the component in a way that would make COM+ create
a recorder for the calls instead.
Consider, for example, the system in Figure 8-5, which shows the component layout of an online retail shoe store. The customer interacts with a top-level Store component. The interaction with the customer must be fast and synchronous. The customer specifies shoe size, shipping method, email address, credit card number, and so on. The Store component saves the order information using the Order component and processes the order using the Shipment component.

Figure 8-5. A simple online retail store system containing Store and Order COM+ components and a queued Shipment component
However, shipping the order (ordering the shoes from the vendor, updating inventory, interacting with the shipping company, etc.) can take a long time to complete. Processing and shipping the order should be done offline, using COM+ queued components.
The Shipment component exposes the IShipment
interface, defined as:
interface IShipment: IDispatch
{
[id(1)] HRESULT ShipOrder([in]DWORD dwOrderNumber);
}The Shipment component prog-ID is MyApp.Shipment.
The first step ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access