MULTI_QI (Compact 2013)

3/26/2014

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.

Syntax

typedef struct _MULTI_QI {
  const IID* pIID; 
  IUnknown* pItf; 
  HRESULT hr; 
} 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

Header

objidl.h

See Also

Reference

Storage Structures
CoGetInstanceFromFile
CoGetInstanceFromIStorage
CoCreateInstanceEx
IUnknown::QueryInterface