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.

QuickInfo

  Windows NT: Use version 4.0 or later.
  Windows: Use Windows 95 or later. Available as a redistributable for Windows 95.
  Windows CE: Unsupported.
  Header: Declared in objidl.h.

See Also

CoGetInstanceFromFile, CoGetInstanceFromIStorage, CoCreateInstanceEx