3.1.7.3.8 Expand Format Name
This event MUST be generated with the following argument:
iInputFormatName: A format name as defined in [MS-MQMQ] sections 2.1.2 through 2.1.7.
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.