3.12.4 Message Processing Events and Sequencing Rules

If the activation request is for a class factory object ([MS-DCOM] section 3.1.2.5.2.3.2), and if the COMVERSION ([MS-DCOM] section 2.2.11) of the client is greater than or equal to 5.6, the server MUST:

  • Create an OBJREF_CUSTOM instance ([MS-DCOM] section 2.2.18.6) for the marshaled object reference of the class factory object.

  • Create and initialize the pObjectData field of the OBJREF_CUSTOM instance, and MUST set:

    • The MaxVersion field to 0x0005.

    • The MinVersion field to 0x0002.

    • The Clsid field to the GUID of the object class.

    • The ServerName field to a LengthPrefixedName (section 2.2.1) containing the computer name of the server machine.<3>

    • The ShortNameCount to the number of elements in the ShortNames array.

    • The ShortNames field to an array of LengthPrefixedName structures. The array MUST contain ShortNameCount elements. The Length field of each LengthPrefixedName structure MUST be less than 16. The Name field of each LengthPrefixedName structure MUST contain an alternate computer name or a network address of the server machine.<4>

    • Further, the server MUST set:

    • The PartitionID guid to the partition ID of the object class.

    • The Clsctx field to the value of the dwOrigClsctx field contained in the SpecialPropertiesData structure ([MS-DCOM] section 2.2.22.2.2) specified in the activation request for the class factory object.

    • The BytesRemaining field to the number of bytes in the LongNames array plus 8.

    • The LongNameCount field to the number of elements in the LongNames array.

    • The LongNames field to an array of Unicode strings. Each element in the array MUST contain an alternate computer name or a network address of the server machine.<5>