2.2.22.1 CustomHeader

The CustomHeader structure is used to identify the format and ordering of the properties in the activation properties BLOB.

 typedef struct tagCustomHeader {
   DWORD totalSize;
   DWORD headerSize;
   DWORD dwReserved;
   DWORD destCtx;
   [range(MIN_ACTPROP_LIMIT, MAX_ACTPROP_LIMIT)] 
     DWORD cIfs;
   CLSID classInfoClsid;
   [size_is(cIfs)] CLSID* pclsid;
   [size_is(cIfs)] DWORD* pSizes;
   DWORD* pdwReserved;
 } CustomHeader;

totalSize: This MUST be the total size (in bytes) from the beginning of the CustomHeader to the end of the last entry in the subsequent Property array of the activation properties BLOB.

headerSize: This MUST be the total size (in bytes) of the CustomHeader as marshaled by the NDR Type Serialization 1 engine (as specified in [MS-RPCE] section 2.2.6).

dwReserved: This MUST be set to zero and MUST be ignored on receipt.

destCtx: This MUST contain an implementation-specific value that SHOULD be ignored on receipt.<22>

cIfs: This MUST be the total number of entries in the subsequent Property array of the activation properties BLOB. The value MUST be between MIN_ACTPROP_LIMIT and MAX_ACTPROP_LIMIT (see section 2.2.28.1).

classInfoClsid: This MUST be set to GUID_NULL.

pclsid: This MUST specify an array of cIfs CLSIDs; the Nth entry identifies the Nth entry in the Property array of the activation properties BLOB. Each CLSID is used to uniquely identify an activation property. The valid CLSID values are defined in section 1.9.

pSizes: This MUST specify an array of cIfs DWORDs, each containing the size (in bytes) of the corresponding property following the CustomHeader in the buffer.

pdwReserved: This MUST be set to NULL and MUST be ignored on receipt.