The MMMULTITRACKWRITE structure contains the following parameters:
The track map list is a list of valid track numbers for the current file and is used to map a track for a record table. Each track map list contains:
Each element of the record table contains a pointer (pRecord) to and the length (ulLength) of the corresponding data in the buffer.
For example, if the number of track entries is two, the track map list contains two track map tables, one for each track. There is a corresponding write record table for each track. The number of entries in the track map table for each track is the number of entries in the write record table for a particular track.
Note: A record is a contiguous buffer containing data of the same media type.
The following figure illustrates the multitrack write data structure.
MMMULTITRACKWRITE ┌───────────────┐ ┌─────────────────────────────────────────┐ │ ulNumtracks ├─┘ TRACKMAP RECORDTAB │ │ pTrackMapList │ TABLE AUDIO │ │ ulFlags │ ┌───────────────┐ ┌────────────┐ ┌───────┐ │ ulNumTracks │ │ ulTrackID │ │ pRecord 1 ├───── Audio │ │ ├── ulNumEntries ├── ulLength │ │ Data 1 │ │ │ │ pRecordTabList│ │ ulParm1 │ └────────┘ └───────────────┘ ├───────────────┤ │ ulParm2 │ ┌────────┐ │ ulTrackID │ ├────────────┤ │ Audio │ │ ulNumEntries ├┐ │ . 2 ├───── Data 2 │ │ pRecordTabList││ │ . │ └────────┘ ├───────────────┤│ │ . │ │ . ││ └────────────┘ │ . ││ │ . ││ └───────────────┘│ ┌────────────┐ ┌────────┐ │ │ pRecord 1 │ │ Video │ └─ ulLength ├───── Data 1 │ │ ulParm1 │ └────────┘ │ ulParm2 │ ┌────────┐ ├────────────┤ │ Video │ │ . 2 ├───── Data 2 │ │ . │ └────────┘ │ . │ └────────────┘