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 {constIID* pIID;IUnknown* pItf;HRESULThr;} MULTI_QI;
Members
- pIID 
 Pointer to an interface identifier.
- pItf 
 Pointer to the interface requested in pIID. Must be set to NULL on entry.
- hr 
 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. 
Requirements
OS Versions: Windows CE 2.0 and later.
Header: Objidl.h.
See Also
CoGetInstanceFromFile | CoGetInstanceFromIStorage | CoCreateInstanceEx | IUnknown::QueryInterface
Send Feedback on this topic to the authors