4.2 RemUnknown2::RemQueryInterface2

Like RemQueryInterface, this method queries for zero or more interfaces from the interface behind the IPID ipid. Instead of returning the STDOBJREF marshaled interface packet, this method can return any marshaled data packet in the form of a blob of bytes (including the traditional STDOBJREF).

Argument Type Semantic
ripid REFIPID The interface on an object from whom more interfaces are desired.
cIids unsigned short       The number of references sought on each of the returned IIDs.
iids IID* The interfaces being requested.
phr HRESULT* The result code returned from QueryInterface() on each interface in the iids array.
ppMIF MinterfacePointer**  The marshaled interface packet for each of the IIDs requested.

ReturnValue Meaning
S_OK                   Success. An attempt was made to retrieve each of the requested interfaces from the indicated object; that is, QueryInterface was actually invoked for each IID.  QueryInterface returned S_OK for every IID specified.
S_FALSE                Success. An attempt was made to retrieve each of the requested interfaces from the indicated object; that is, QueryInterface was actually invoked for each IID.  QueryInterface returned a failure code for at least one of the IIDs specified.
E_NOINTERFACE          QueryInterface returned a failure code for every IID specifed.
E_INVALIDARG           One or more arguments (likely ipid) were invalid. No result values are returned.
E_UNEXPECTED           An unspecified error occurred.
E_OUTOFMEMORY          Insufficient memory to complete the call.
RPC_E_INVALID_OBJECT   The requested object does not exist. No result values are returned.