The MDM string parser uses the Line_type to determine how to interpret each line. A command list begins with the MCI_COMMAND_HEAD Line_type and ends with the MCI_END_COMMAND Line_type.
MCI_RETURN
The parser sends back return information in the pszReturnString and usReturnLength parameters of the mciSendString function. The above example shows how both types of returns are used.
The MCI_OPEN returns a ULONG value, and MCI_INFO returns data that is filled into the buffer pointed to by the pointer in the second ULONG of the command structure. (Remember that the first ULONG is always hwndCallback.)
"", MCI_TRUE_FALSE_RETURN, 0, MCI_RETURN_TYPE, "TRUE", 1L, MCI_RETURN_TYPE_STRING, "FALSE", 0L, MCI_RETURN_TYPE_STRING, "", 0L, MCI_END_RETURN_TYPE,
The flag_define field for the return line is compared against the high-order word of the return code. If a match is found, then the parser tries to find a match for the flag_define field and the return value. If a match is found for the return value, then the keyword string is returned to the application in the pszReturnString field of the mciSendString call. MCI_FLAG
"", MCI_SET_TIME_FORMAT, MCI_CONSTANT, "time format milliseconds", MCI_FORMAT_MILLISECONDS, MCI_INTEGER, "time format ms", MCI_FORMAT_MILLISECONDS, MCI_INTEGER, "time format mmtime", MCI_FORMAT_MMTIME, MCI_INTEGER, "", 0L, MCI_END_CONSTANT,
The value on the MCI_CONSTANT line_type is ORed with the ulParam1 field. The values on the MCI_INTEGER line_types within this constant block are copied into the command structure. The constant block represents just one ULONG in the command structure. MCI_DEFAULT_STRING
"load", MCI_LOAD, 0, MCI_COMMAND_HEAD, "notify", MCI_NOTIFY, MCI_FLAG, "wait", MCI_WAIT, MCI_FLAG, "new", 0L, MCI_FLAG, "readonly", MCI_READONLY, MCI_FLAG, "", MCI_OPEN_ELEMENT, MCI_DEFAULT_STRING, "", 0L, MCI_END_COMMAND,MCI_RECTL
"", 0L, MCI_OR, "track", MCI_TRACK, MCI_INTEGER, "channel", 0L, MCI_CONSTANT, "all", MCI_STATUS_AUDIO_ALL, MCI_INTEGER, "left", MCI_STATUS_AUDIO_LEFT, MCI_INTEGER, "right", MCI_STATUS_AUDIO_RIGHT, MCI_INTEGER, "%d", 0L, MCI_INTEGER, "", 0L, MCI_END_CONSTANT, "", 0L, MCI_END_OR,MCI_STRING_LIST
"group", MCI_GROUP, 0, MCI_COMMAND_HEAD, "delete", MCI_GROUP_DELETE, MCI_FLAG, "nopiecemeal", MCI_NOPIECEMEAL, MCI_FLAG, "synchronize", MCI_SYNCHRONIZE, MCI_FLAG, "wait", MCI_WAIT, MCI_FLAG, "notify", MCI_NOTIFY, MCI_FLAG, "", 0L, MCI_INTEGER, "", 0L, MCI_INTEGER, "master", MCI_GROUP_MASTER, MCI_STRING, "", 0L, MCI_STRING, "", 0L, MCI_INTEGER, "make", MCI_GROUP_MAKE, MCI_STRING_LIST, "", 0L, MCI_END_COMMAND,