Microsoft DirectX 8.0 (C++)

IDirectMusicSegment8::Compose

Composes all tracks flagged as DMUS_TRACKCONFIG_COMPOSING and places the composed tracks in this segment or in a clone of this segment.

HRESULT Compose(
  MUSIC_TIME mtTime,
  IDirectMusicSegment* pFromSegment,
  IDirectMusicSegment* pToSegment,
  IDirectMusicSegment** ppComposedSegment
);

Parameters

mtTime
Value of type MUSIC_TIME that specifies the current time in pFromSegment at which to compose a transition. Set to 0 if pFromSegment is NULL.
pFromSegment
Pointer to an IDirectMusicSegment8 interface that specifies the segment leading to a transition. This value is NULL if the calling segment is not a transition.
pToSegment
Pointer to the IDirectMusicSegment8 interface that specifies the segment following a transition. This value is NULL if the calling segment is not a transition or if the transition is an ending.
ppComposedSegment
Address of a variable that receives the IDirectMusicSegment8 interface pointer of the composed segment, or NULL if the calling segment is to be recomposed.

Return Values

If the method succeeds, the return value is S_OK.

If it fails, the method can return one of the following error values.

DMUS_E_NOT_FOUND
E_FAIL
E_OUTOFMEMORY
E_POINTER

Remarks

If the pointer parameters are all NULL, the segment calls IDirectMusicTrack8::Compose on all its tracks. Any composing tracks search for other tracks necessary for composition; if a needed track is not found, DMUS_E_NOT_FOUND is returned.

If ppComposedSegment is not NULL, the method creates a clone of the original segment that contains the recomposed tracks. If either pFromSegment or pToSegment is not NULL, the calling segment is assumed to be a transition and might include tracks that contain only headers referring to one of the bracketing segments.

Requirements

  Header: Declared in dmusici.h.

See Also

IDirectMusicTrack8::Compose, IDirectMusicSegment8::SetTrackConfig