3.6.4 Message Processing Events and Sequencing Rules

When the application makes object creation requests on the class factory object reference, the client MUST:

  • Make an object activation request ([MS-DCOM] sections 3.2.4.1.1 and 3.1.2.5.2) by:

    • Specifying the value of the ServerName field from the Class Factory Wrapper (section 2.2.5) structure as the remote server name for the activation request.

    • Setting the value of the classID field in the InstantiationInfoData structure ([MS-DCOM] section 2.2.22.2.1) to the value of the Clsid field from the class factory wrapper structure.

    • Setting the value of the guidPartition field in the SpecialPropertiesData structure ([MS-DCOM] section 2.2.22.2.2) to the value of the PartitionID field from the class factory wrapper structure.

    • Setting the value of the dwOrigClsCtx field in the SpecialPropertiesData structure ([MS-DCOM] section 2.2.22.2.2) to the value of the Clsctx field from the class factory wrapper structure.

    • Sending client and prototype context properties in the ActivationContextInfoData structure ([MS-DCOM] section 2.2.22.2.5) as specified in section 1.3.1.1.

  • If the activation request succeeds, return success, or continue processing as follows if not.

  • For each element in the ShortNames array in the Class Factory Wrapper structure:

    • Make an object activation request by specifying the ShortNames array element as the remote server name and by setting all the other parameters to the same values specified in the first activation request.

    • If the activation request succeeds, return success; otherwise, continue processing.

  • For each element in the LongNames array in the Class Factory Wrapper structure:

    • Make an object activation request by specifying the LongNames array element as the remote server name and by setting all the other parameters to the same values specified in the first activation request.

    • If the activation request succeeds, return success; otherwise, continue processing.

  • Return the error code from the last activation request to the application or higher layer protocol.