3.1.7.3.8 Expand Format Name

This event MUST be generated with the following argument:

Return Values:

  • rStatus: A Boolean that is TRUE if the expansion is successful or FALSE if not. If this value is FALSE, the contents of rOutputFormatName are undefined.

  • rOutputFormatName: A format name as defined in [MS-MQMQ] sections 2.1.2, 2.1.3, 2.1.4, 2.1.6, and 2.1.7 in which all distribution format name elements have been resolved; if rOutputFormatName is a multiple-element format name, it MUST NOT contain duplicate elements.

The queue manager MUST perform the following actions to process this event:

  • If iInputFormatName is not a distribution list format name ([MS-MQMQ] section 2.1.5) and is not a multiple-element format name ([MS-MQMQ] section 2.1.7):

    • Set rOutputFormatName to iInputFormatName.

    • Set rStatus to TRUE.

    • Take no further action.

  • Let OutputElements be a list of single-element format names. If iInputFormatName is a distribution list format name, OutputElements is initialized to contain one element, which is iInputFormatName. If iInputFormatName is a multiple-element format name, OutputElements is initialized to contain the elements of iInputFormatName.

  • For each format name in OutputElements, referred to as SingleFormatName:

    • If SingleFormatName is a distribution list format name:

      • Generate a Resolve Distribution List ([MS-MQDSSM] section 3.1.6.9) event with the following argument:

        • iDLFormatName := the distribution list format name

      • If the rStatus returned by the Resolve Distribution List event is not DirectoryOperationResult.Success, set rStatus to FALSE, and take no further action.

      • Otherwise, remove SingleFormatName from OutputElements, and add the format names returned in rFormatNameCollection to the end of OutputElements.

  • Perform a case-insensitive sort of the format names in OutputElements. For any groups of format names that are case-insensitively identical to each other, remove all but one.

  • If there is only one format name in OutputElements:

    • Set rOutputFormatName to the single format name in OutputElements.

    • Set rStatus to TRUE.

    • Take no further action.

  • Set rOutputFormatName to a multiple-element format name constructed by concatenating the format names in OutputElements, separated by commas (",").

  • Set rStatus to TRUE.