Return Values

The following table lists the values typically returned by DirectMusic interface methods. For a list of the error codes each method can return, see the individual method descriptions. Note that these lists are not necessarily comprehensive.

DMUS_E_ALL_TOOLS_FAILED
The graph object was unable to load all tools from the IStream object data, perhaps because of errors in the stream, or because the tools are incorrectly registered on the client.
DMUS_E_ALL_TRACKS_FAILED
The segment object was unable to load all tracks from the IStream object data, perhaps because of errors in the stream, or because the tracks are incorrectly registered on the client.
DMUS_E_ALREADY_ACTIVATED
The port has been activated and the parameter cannot be changed.
DMUS_E_ALREADY_DOWNLOADED
Buffer has already been downloaded.
DMUS_E_ALREADY_EXISTS
The tool is already contained in the graph. You must create a new instance.
DMUS_E_ALREADY_INITED
The object has already been initialized.
DMUS_E_ALREADY_LOADED
DLS collection is already open.
DMUS_E_ALREADY_SENT
The message has already been sent.
DMUS_E_ALREADYCLOSED
The port is not open.
DMUS_E_ALREADYOPEN
Port was already opened.
DMUS_E_BADARTICULATION
Invalid articulation chunk in DLS collection.
DMUS_E_BADINSTRUMENT
Invalid instrument chunk in DLS collection.
DMUS_E_BADOFFSETTABLE
Offset table has errors.
DMUS_E_BADWAVE
Corrupt wave header.
DMUS_E_BADWAVELINK
Wavelink chunk in DLS collection points to invalid wave.
DMUS_E_BUFFER_EMPTY
There is no data in the buffer.
DMUS_E_BUFFER_FULL
The specified number of bytes exceeds the maximum buffer size.
DMUS_E_BUFFERNOTAVAILABLE
The buffer is not available for download.
DMUS_E_BUFFERNOTSET
No buffer was prepared for the data.
DMUS_E_CANNOT_CONVERT
The requested conversion between music and MIDI values could not happen. This usually occurs when the provided DMUS_CHORD_KEY structure has an invalid chord or scale pattern.
DMUS_E_CANNOT_FREE
The message could not be freed, either because it was not allocated or has already been freed.
DMUS_E_CANNOT_OPEN_PORT
The default system port could not be opened.
DMUS_E_CANNOTREAD
Error occurred when trying to read from the IStream object.
DMUS_E_CANNOTSEEK
The IStream object does not support Seek.
DMUS_E_CANNOTWRITE
The IStream object does not support Write.
DMUS_E_CHUNKNOTFOUND
A chunk with the specified header could not be found.
DMUS_E_DESCEND_CHUNK_FAIL
Attempt to descend into a chunk failed.
DMUS_E_DEVICE_IN_USE
Device is already in use (possibly by a non-DirectMusic client) and cannot be opened again.
DMUS_E_DMUSIC_RELEASED
Operation cannot be performed because the final instance of the DirectMusic object was released. Ports cannot be used after final release of the DirectMusic object.
DMUS_E_DRIVER_FAILED
An unexpected error was returned from a device driver, indicating possible failure of the driver or hardware.
DMUS_E_DSOUND_ALREADY_SET
A DirectSound object has already been set.
DMUS_E_DSOUND_NOT_SET
Port could not be created because no DirectSound object has been specified.
DMUS_E_GET_UNSUPPORTED
Getting the parameter is not supported.
DMUS_E_INSUFFICIENTBUFFER
Buffer is not large enough for requested operation.
DMUS_E_INVALID_BAND
File does not contain a valid band.
DMUS_E_INVALID_DOWNLOADID
Invalid download identifier was used in the process of creating a download buffer.
DMUS_E_INVALID_EVENT
The event either is not a valid MIDI message or makes use of running status, and cannot be packed into the buffer.
DMUS_E_INVALID_TOOL_HDR
The IStream object's data contains an invalid tool header and therefore cannot be read by the graph object.
DMUS_E_INVALID_TRACK_HDR
The IStream object's data contains an invalid track header and therefore cannot be read by the segment object.
DMUS_E_INVALIDBUFFER
Invalid DirectSound buffer was handed to port.
DMUS_E_INVALIDFILE
Not a valid file.
DMUS_E_INVALIDOFFSET
Wave chunks in DLS collection file are at incorrect offsets.
DMUS_E_INVALIDPATCH
No instrument in the collection matches the patch number.
DMUS_E_INVALIDPOS
Error reading wave data from DLS collection. Indicates bad file.
DMUS_E_LOADER_BADPATH
The file path is invalid.
DMUS_E_LOADER_FAILEDCREATE
Object could not be found or created.
DMUS_E_LOADER_FAILEDOPEN
File open failed because the file doesn't exist or is locked.
DMUS_E_LOADER_FORMATNOTSUPPORTED
The object cannot be loaded because the data format is not supported.
DMUS_E_LOADER_NOCLASSID
No class ID was supplied in DMUS_OBJECTDESC.
DMUS_E_LOADER_NOFILENAME
No filename was supplied in DMUS_OBJECTDESC.
DMUS_E_LOADER_OBJECTNOTFOUND
The object was not found.
DMUS_E_NO_MASTER_CLOCK
There is no master clock in the performance. Make sure to call the IDirectMusicPerformance::Init method.
DMUS_E_NOARTICULATION
Articulation missing from instrument in DLS collection.
DMUS_E_NOSYNTHSINK
No sink is connected to the synthesizer.
DMUS_E_NOT_DOWNLOADED_TO_PORT
The object cannot be unloaded because it is not present on the the port.
DMUS_E_NOT_FOUND
The requested item is not contained by the object.
DMUS_E_NOT_INIT
A required object is not initialized or failed to initialize.
DMUS_E_NOTADLSCOL
The object being loaded is not a valid DLS collection.
DMUS_E_NOTMONO
Wave chunk has more than one interleaved channel. DLS format requires mono.
DMUS_E_NOTPCM
Wave data is not in PCM format.
DMUS_E_OUT_OF_RANGE
The requested time is outside the range of the segment.
DMUS_E_PORT_NOT_CAPTURE
Not a capture port.
DMUS_E_PORT_NOT_RENDER
Not an output port.
DMUS_E_PORTS_OPEN
The requested operation cannot be performed while there are instantiated ports in any process in the system.
DMUS_E_SEGMENT_INIT_FAILED
Segment initialization failed, likely because of a critical memory situation.
DMUS_E_SET_UNSUPPORTED
Setting the parameter is not supported.
DMUS_E_SYNTHACTIVE
The synthesizer has been activated and the parameter cannot be changed.
DMUS_E_SYNTHINACTIVE
The synthesizer has not been activated and cannot process data.
DMUS_E_SYNTHNOTCONFIGURED
The synthesizer is not properly configured or opened.
DMUS_E_TIME_PAST
The time requested is in the past.
DMUS_E_TOOL_HDR_NOT_FIRST_CK
The IStream object's data does not have a tool header as the first chunk, and therefore cannot be read by the graph object.
DMUS_E_TRACK_HDR_NOT_FIRST_CK
The IStream object's data does not have a track header as the first chunk, and therefore cannot be read by the segment object.
DMUS_E_TRACK_NOT_FOUND
There is no track of the requested type.
DMUS_E_TYPE_DISABLED
Track parameter is unavailable because it has been disabled.
DMUS_E_TYPE_UNSUPPORTED
Parameter is unsupported on this track.
DMUS_E_UNKNOWNDOWNLOAD
Synthesizer does not support this type of download.
DMUS_E_UNKNOWN_PROPERTY
The property set or item is not implemented by this port.
DMUS_E_UNSUPPORTED_STREAM
The IStream object does not contain data supported by the loading object.
DMUS_E_WAVEFORMATNOTSUPPORTED
Invalid buffer format was handed to the synthesizer sink.
DMUS_S_DOWN_OCTAVE
The note has been lowered by one or more octaves to fit within the range of MIDI values.
DMUS_S_END
The operation succeeded and reached the end of the data.
DMUS_S_FREE
The allocated memory should be freed.
DMUS_S_LAST_TOOL
There are no more tools in the graph.
DMUS_S_OVER_CHORD
No MIDI values has been calculated, because the music value has the note at a position higher than the top note of the chord.
DMUS_S_PARTIALLOAD
The object could only load partially. This can happen if some components are not registered properly, such as embedded tracks and tools.
DMUS_S_REQUEUE
The message should be passed to the next tool.
DMUS_S_STRING_TRUNCATED
The method succeeded but the returned string had to be truncated.
DMUS_S_UP_OCTAVE
The note has been raised by one or more octaves to fit within the range of MIDI values.
E_FAIL
The method did not succeed.
E_INVALIDARG
Invalid argument. Often this error results from failing to initialize the dwSize member of a structure before passing it to the method.
E_NOAGGREGATION
Aggregation is not supported. The LPUNKNOWN parameter should be set to NULL.
E_NOINTERFACE
No object interface is available.
E_NOTIMPL
The method is not implemented. This value may be returned if a driver does not support a feature necessary for the operation.
E_OUTOFMEMORY
Insufficient memory to complete task.
E_POINTER
An invalid pointer (usually NULL) was passed as a parameter.
REGDB_E_CLASSNOTREG
Object class is not registered.
S_FALSE
The method succeeded, but there was nothing to do.
S_OK
The operation was completed successfully.