2.2.22.2.9 PropsOutInfo

The PropsOutInfo structure represents a collection of interfaces that the object implements and that are returned to the client. If the object does not support a particular interface requested by the client, it also sends an error back using this structure.

CLSID_PropsOutInfo (see section 1.9) is used to identify this property in the CustomHeader.pclsid array.

 typedef struct tagPropsOutInfo {
   [range(1, MAX_REQUESTED_INTERFACES)] 
     DWORD cIfs;
   [size_is(cIfs)] IID* piid;
   [size_is(cIfs)] HRESULT* phresults;
   [size_is(cIfs)] MInterfacePointer** ppIntfData;
 } PropsOutInfo;

cIfs: This MUST contain the number of interfaces being returned by the server. This value MUST be between 1 and MAX_REQUESTED_INTERFACES (see section 2.2.28.1).

piid: This MUST be an array of IIDs identifying the interfaces returned by the server.

phresults: This MUST be an array of status codes indicating the success or failure of each attempt to return an interface requested by the client. For each array location containing a zero value, a non-NULL MInterfacePointer pointer MUST be present in the corresponding location in the ppIntfData array. For each array location containing a negative value, a NULL MUST be present in the corresponding location in the ppIntfData array.

ppIntfData: This MUST be an array of MInterfacePointer pointers containing the OBJREFs for the interfaces returned by the server.