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.