MULTI_QI structure (objidlbase.h)

Represents an interface in a query for multiple interfaces.

Syntax

typedef struct tagMULTI_QI {
  const IID *pIID;
  IUnknown  *pItf;
  HRESULT   hr;
} MULTI_QI;

Members

pIID

A pointer to an interface identifier.

pItf

A pointer to the interface requested in pIID. This member must be NULL on input.

hr

The return value of the QueryInterface call to locate the requested interface. Common return values include S_OK and E_NOINTERFACE. This member must be 0 on input.

Remarks

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 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 QueryInterface for unique interfaces, each of which would require a round-trip to the server.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps | UWP apps]
Minimum supported server Windows 2000 Server [desktop apps | UWP apps]
Header objidlbase.h (include Objidl.h)

See also

CoCreateInstanceEx

CoGetInstanceFromFile

CoGetInstanceFromIStorage

IMultiQI