MULTI_QI
To optimize
network performance, most remote activation functions take an array of MULTI_QI
structures rather than just a single IID as input and a single pointer to the
requested interface on the object as output, as do local machine activation functions.
This allows a set of pointers to interfaces to be returned from the same object
in a single round-trip to the server. In network scenarios, requesting multiple
interfaces at the time of object construction can save considerable time over
using a number of calls to the QueryInterface method for unique
interfaces, each of which would require a round-trip to the server.
typedef struct _MULTI_QI {
const
IID* pIID;
IUnknown * pItf;
HRESULT hr;
} MULTI_QI;
Members
pIID
[in] Pointer
to an interface identifier.
pItf
[out] Pointer
to the interface requested in pIID. Must be set to NULL on entry.
hr
[out] Return
value of the QueryInterface call made to satisfy the request for the
interface requested in pIID. Common return values are S_OK and
E_NOINTERFACE. Must be set to zero on entry.
See Also