|
|
/************************************************************************
* * * dmerror.h -- Error code returned by DirectMusic API's * * * * Copyright (c) 1998, Microsoft Corp. All rights reserved. * * * ************************************************************************/
#ifndef _DMERROR_
#define _DMERROR_
#define FACILITY_DIRECTMUSIC 0x878 /* Shared with DirectSound */
#define DMUS_ERRBASE 0x1000 /* Make error codes human readable in hex */
#ifndef MAKE_HRESULT
#define MAKE_HRESULT(sev,fac,code) \
((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) #endif
#define MAKE_DMHRESULTSUCCESS(code) MAKE_HRESULT(0, FACILITY_DIRECTMUSIC, (DMUS_ERRBASE + (code)))
#define MAKE_DMHRESULTERROR(code) MAKE_HRESULT(1, FACILITY_DIRECTMUSIC, (DMUS_ERRBASE + (code)))
/* 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. */ #define DMUS_S_PARTIALLOAD MAKE_DMHRESULTSUCCESS(0x091)
/* DMUS_S_PARTIALDOWNLOAD
* * This code indicates that a band download was only successful in reaching * some, but not all, of the referenced ports. Some samples may not play * correctly. */ #define DMUS_S_PARTIALDOWNLOAD MAKE_DMHRESULTSUCCESS(0x092)
/* DMUS_S_REQUEUE
* * Return value from IDirectMusicTool::ProcessPMsg() which indicates to the * performance that it should cue the PMsg again automatically. */
#define DMUS_S_REQUEUE MAKE_DMHRESULTSUCCESS(0x200)
/* DMUS_S_FREE
* * Return value from IDirectMusicTool::ProcessPMsg() which indicates to the * performance that it should free the PMsg automatically. */ #define DMUS_S_FREE MAKE_DMHRESULTSUCCESS(0x201)
/* DMUS_S_END
* * Return value from IDirectMusicTrack::Play() which indicates to the * segment that the track has no more data after mtEnd. */ #define DMUS_S_END MAKE_DMHRESULTSUCCESS(0x202)
/* DMUS_S_STRING_TRUNCATED
* * Returned string has been truncated to fit the buffer size. */ #define DMUS_S_STRING_TRUNCATED MAKE_DMHRESULTSUCCESS(0x210)
/* DMUS_S_LAST_TOOL
* * Returned from IDirectMusicGraph::StampPMsg(), this indicates that the PMsg * is already stamped with the last tool in the graph. The returned PMsg's * tool pointer is now NULL. */ #define DMUS_S_LAST_TOOL MAKE_DMHRESULTSUCCESS(0x211)
/* DMUS_S_OVER_CHORD
* * Returned from IDirectMusicPerformance::MusicToMIDI(), this indicates * that no note has been calculated because the music value has the note * at a position higher than the top note of the chord. This applies only * to DMUS_PLAYMODE_NORMALCHORD play mode. This success code indicates * that the caller should not do anything with the note. It is not meant * to be played against this chord. */ #define DMUS_S_OVER_CHORD MAKE_DMHRESULTSUCCESS(0x212)
/* DMUS_S_UP_OCTAVE
* * Returned from IDirectMusicPerformance::MIDIToMusic(), and * IDirectMusicPerformance::MusicToMIDI(), this indicates * that the note conversion generated a note value that is below 0, * so it has been bumped up one or more octaves to be in the proper * MIDI range of 0 through 127. * Note that this is valid for MIDIToMusic() when using play modes * DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of * which store MIDI values in wMusicValue. With MusicToMIDI(), it is * valid for all play modes. * Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code. */ #define DMUS_S_UP_OCTAVE MAKE_DMHRESULTSUCCESS(0x213)
/* DMUS_S_DOWN_OCTAVE
* * Returned from IDirectMusicPerformance::MIDIToMusic(), and * IDirectMusicPerformance::MusicToMIDI(), this indicates * that the note conversion generated a note value that is above 127, * so it has been bumped down one or more octaves to be in the proper * MIDI range of 0 through 127. * Note that this is valid for MIDIToMusic() when using play modes * DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of * which store MIDI values in wMusicValue. With MusicToMIDI(), it is * valid for all play modes. * Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code. */ #define DMUS_S_DOWN_OCTAVE MAKE_DMHRESULTSUCCESS(0x214)
/* DMUS_S_NOBUFFERCONTROL
* * Although the audio output from the port will be routed to the * same device as the given DirectSound buffer, buffer controls * such as pan and volume will not affect the output. * */ #define DMUS_S_NOBUFFERCONTROL MAKE_DMHRESULTSUCCESS(0x215)
/* DMUS_E_DRIVER_FAILED
* * An unexpected error was returned from a device driver, indicating * possible failure of the driver or hardware. */ #define DMUS_E_DRIVER_FAILED MAKE_DMHRESULTERROR(0x0101)
/* DMUS_E_PORTS_OPEN
* * The requested operation cannot be performed while there are * instantiated ports in any process in the system. */ #define DMUS_E_PORTS_OPEN MAKE_DMHRESULTERROR(0x0102)
/* DMUS_E_DEVICE_IN_USE
* * The requested device is already in use (possibly by a non-DirectMusic * client) and cannot be opened again. */ #define DMUS_E_DEVICE_IN_USE MAKE_DMHRESULTERROR(0x0103)
/* DMUS_E_INSUFFICIENTBUFFER
* * Buffer is not large enough for requested operation. */ #define DMUS_E_INSUFFICIENTBUFFER MAKE_DMHRESULTERROR(0x0104)
/* DMUS_E_BUFFERNOTSET
* * No buffer was prepared for the download data. */ #define DMUS_E_BUFFERNOTSET MAKE_DMHRESULTERROR(0x0105)
/* DMUS_E_BUFFERNOTAVAILABLE
* * Download failed due to inability to access or create download buffer. */ #define DMUS_E_BUFFERNOTAVAILABLE MAKE_DMHRESULTERROR(0x0106)
/* DMUS_E_NOTADLSCOL
* * Error parsing DLS collection. File is corrupt. */ #define DMUS_E_NOTADLSCOL MAKE_DMHRESULTERROR(0x0108)
/* DMUS_E_INVALIDOFFSET
* * Wave chunks in DLS collection file are at incorrect offsets. */ #define DMUS_E_INVALIDOFFSET MAKE_DMHRESULTERROR(0x0109)
/* DMUS_E_ALREADY_LOADED
* * Second attempt to load a DLS collection that is currently open. */ #define DMUS_E_ALREADY_LOADED MAKE_DMHRESULTERROR(0x0111)
/* DMUS_E_INVALIDPOS
* * Error reading wave data from DLS collection. Indicates bad file. */ #define DMUS_E_INVALIDPOS MAKE_DMHRESULTERROR(0x0113)
/* DMUS_E_INVALIDPATCH
* * There is no instrument in the collection that matches patch number. */ #define DMUS_E_INVALIDPATCH MAKE_DMHRESULTERROR(0x0114)
/* DMUS_E_CANNOTSEEK
* * The IStream* doesn't support Seek(). */ #define DMUS_E_CANNOTSEEK MAKE_DMHRESULTERROR(0x0115)
/* DMUS_E_CANNOTWRITE
* * The IStream* doesn't support Write(). */ #define DMUS_E_CANNOTWRITE MAKE_DMHRESULTERROR(0x0116)
/* DMUS_E_CHUNKNOTFOUND
* * The RIFF parser doesn't contain a required chunk while parsing file. */ #define DMUS_E_CHUNKNOTFOUND MAKE_DMHRESULTERROR(0x0117)
/* DMUS_E_INVALID_DOWNLOADID
* * Invalid download id was used in the process of creating a download buffer. */ #define DMUS_E_INVALID_DOWNLOADID MAKE_DMHRESULTERROR(0x0119)
/* DMUS_E_NOT_DOWNLOADED_TO_PORT
* * Tried to unload an object that was not downloaded or previously unloaded. */ #define DMUS_E_NOT_DOWNLOADED_TO_PORT MAKE_DMHRESULTERROR(0x0120)
/* DMUS_E_ALREADY_DOWNLOADED
* * Buffer was already downloaded to synth. */ #define DMUS_E_ALREADY_DOWNLOADED MAKE_DMHRESULTERROR(0x0121)
/* DMUS_E_UNKNOWN_PROPERTY
* * The specified property item was not recognized by the target object. */ #define DMUS_E_UNKNOWN_PROPERTY MAKE_DMHRESULTERROR(0x0122)
/* DMUS_E_SET_UNSUPPORTED
* * The specified property item may not be set on the target object. */ #define DMUS_E_SET_UNSUPPORTED MAKE_DMHRESULTERROR(0x0123)
/* DMUS_E_GET_UNSUPPORTED
* * The specified property item may not be retrieved from the target object. */ #define DMUS_E_GET_UNSUPPORTED MAKE_DMHRESULTERROR(0x0124)
/* DMUS_E_NOTMONO
* * Wave chunk has more than one interleaved channel. DLS format requires MONO. */ #define DMUS_E_NOTMONO MAKE_DMHRESULTERROR(0x0125)
/* DMUS_E_BADARTICULATION
* * Invalid articulation chunk in DLS collection. */ #define DMUS_E_BADARTICULATION MAKE_DMHRESULTERROR(0x0126)
/* DMUS_E_BADINSTRUMENT
* * Invalid instrument chunk in DLS collection. */ #define DMUS_E_BADINSTRUMENT MAKE_DMHRESULTERROR(0x0127)
/* DMUS_E_BADWAVELINK
* * Wavelink chunk in DLS collection points to invalid wave. */ #define DMUS_E_BADWAVELINK MAKE_DMHRESULTERROR(0x0128)
/* DMUS_E_NOARTICULATION
* * Articulation missing from instrument in DLS collection. */ #define DMUS_E_NOARTICULATION MAKE_DMHRESULTERROR(0x0129)
/* DMUS_E_NOTPCM
* * Downoaded DLS wave is not in PCM format. */ #define DMUS_E_NOTPCM MAKE_DMHRESULTERROR(0x012A)
/* DMUS_E_BADWAVE
* * Bad wave chunk in DLS collection */ #define DMUS_E_BADWAVE MAKE_DMHRESULTERROR(0x012B)
/* DMUS_E_BADOFFSETTABLE
* * Offset Table for download buffer has errors. */ #define DMUS_E_BADOFFSETTABLE MAKE_DMHRESULTERROR(0x012C)
/* DMUS_E_UNKNOWNDOWNLOAD
* * Attempted to download unknown data type. */ #define DMUS_E_UNKNOWNDOWNLOAD MAKE_DMHRESULTERROR(0x012D)
/* DMUS_E_NOSYNTHSINK
* * The operation could not be completed because no sink was connected to * the synthesizer. */ #define DMUS_E_NOSYNTHSINK MAKE_DMHRESULTERROR(0x012E)
/* DMUS_E_ALREADYOPEN
* * An attempt was made to open the software synthesizer while it was already * open. * ASSERT? */ #define DMUS_E_ALREADYOPEN MAKE_DMHRESULTERROR(0x012F)
/* DMUS_E_ALREADYCLOSE
* * An attempt was made to close the software synthesizer while it was already * open. * ASSERT? */ #define DMUS_E_ALREADYCLOSED MAKE_DMHRESULTERROR(0x0130)
/* DMUS_E_SYNTHNOTCONFIGURED
* * The operation could not be completed because the software synth has not * yet been fully configured. * ASSERT? */ #define DMUS_E_SYNTHNOTCONFIGURED MAKE_DMHRESULTERROR(0x0131)
/* DMUS_E_SYNTHACTIVE
* * The operation cannot be carried out while the synthesizer is active. */ #define DMUS_E_SYNTHACTIVE MAKE_DMHRESULTERROR(0x0132)
/* DMUS_E_CANNOTREAD
* * An error occurred while attempting to read from the IStream* object. */ #define DMUS_E_CANNOTREAD MAKE_DMHRESULTERROR(0x0133)
/* DMUS_E_DMUSIC_RELEASED
* * The 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. */ #define DMUS_E_DMUSIC_RELEASED MAKE_DMHRESULTERROR(0x0134)
/* DMUS_E_BUFFER_EMPTY
* * There was no data in the referenced buffer. */ #define DMUS_E_BUFFER_EMPTY MAKE_DMHRESULTERROR(0x0135)
/* DMUS_E_BUFFER_FULL
* * There is insufficient space to insert the given event into the buffer. */ #define DMUS_E_BUFFER_FULL MAKE_DMHRESULTERROR(0x0136)
/* DMUS_E_PORT_NOT_CAPTURE
* * The given operation could not be carried out because the port is a * capture port. */ #define DMUS_E_PORT_NOT_CAPTURE MAKE_DMHRESULTERROR(0x0137)
/* DMUS_E_PORT_NOT_RENDER
* * The given operation could not be carried out because the port is a * render port. */ #define DMUS_E_PORT_NOT_RENDER MAKE_DMHRESULTERROR(0x0138)
/* DMUS_E_DSOUND_NOT_SET
* * The port could not be created because no DirectSound has been specified. * Specify a DirectSound interface via the IDirectMusic::SetDirectSound * method; pass NULL to have DirectMusic manage usage of DirectSound. */ #define DMUS_E_DSOUND_NOT_SET MAKE_DMHRESULTERROR(0x0139)
/* DMUS_E_ALREADY_ACTIVATED
* * The operation cannot be carried out while the port is active. */ #define DMUS_E_ALREADY_ACTIVATED MAKE_DMHRESULTERROR(0x013A)
/* DMUS_E_INVALIDBUFFER
* * Invalid DirectSound buffer was handed to port. */ #define DMUS_E_INVALIDBUFFER MAKE_DMHRESULTERROR(0x013B)
/* DMUS_E_WAVEFORMATNOTSUPPORTED
* * Invalid buffer format was handed to the synth sink. */ #define DMUS_E_WAVEFORMATNOTSUPPORTED MAKE_DMHRESULTERROR(0x013C)
/* DMUS_E_SYNTHINACTIVE
* * The operation cannot be carried out while the synthesizer is inactive. */ #define DMUS_E_SYNTHINACTIVE MAKE_DMHRESULTERROR(0x013D)
/* DMUS_E_DSOUND_ALREADY_SET
* * IDirectMusic::SetDirectSound has already been called. It may not be * changed while in use. */ #define DMUS_E_DSOUND_ALREADY_SET MAKE_DMHRESULTERROR(0x013E)
/* DMUS_E_INVALID_EVENT
* * The given event is invalid (either it is not a valid MIDI message * or it makes use of running status). The event cannot be packed * into the buffer. */ #define DMUS_E_INVALID_EVENT MAKE_DMHRESULTERROR(0x013F)
/* DMUS_E_UNSUPPORTED_STREAM
* * The IStream* object does not contain data supported by the loading object. */ #define DMUS_E_UNSUPPORTED_STREAM MAKE_DMHRESULTERROR(0x0150)
/* DMUS_E_ALREADY_INITED
* * The object has already been initialized. */ #define DMUS_E_ALREADY_INITED MAKE_DMHRESULTERROR(0x0151)
/* DMUS_E_INVALID_BAND
* * The file does not contain a valid band. */ #define DMUS_E_INVALID_BAND MAKE_DMHRESULTERROR(0x0152)
/* DMUS_E_TRACK_HDR_NOT_FIRST_CK
* * The IStream* object's data does not have a track header as the first chunk, * and therefore can not be read by the segment object. */ #define DMUS_E_TRACK_HDR_NOT_FIRST_CK MAKE_DMHRESULTERROR(0x0155)
/* DMUS_E_TOOL_HDR_NOT_FIRST_CK
* * The IStream* object's data does not have a tool header as the first chunk, * and therefore can not be read by the graph object. */ #define DMUS_E_TOOL_HDR_NOT_FIRST_CK MAKE_DMHRESULTERROR(0x0156)
/* DMUS_E_INVALID_TRACK_HDR
* * The IStream* object's data contains an invalid track header (ckid is 0 and * fccType is NULL,) and therefore can not be read by the segment object. */ #define DMUS_E_INVALID_TRACK_HDR MAKE_DMHRESULTERROR(0x0157)
/* DMUS_E_INVALID_TOOL_HDR
* * The IStream* object's data contains an invalid tool header (ckid is 0 and * fccType is NULL,) and therefore can not be read by the graph object. */ #define DMUS_E_INVALID_TOOL_HDR MAKE_DMHRESULTERROR(0x0158)
/* DMUS_E_ALL_TOOLS_FAILED
* * The graph object was unable to load all tools from the IStream* object data. * This may be due to errors in the stream, or the tools being incorrectly * registered on the client. */ #define DMUS_E_ALL_TOOLS_FAILED MAKE_DMHRESULTERROR(0x0159)
/* DMUS_E_ALL_TRACKS_FAILED
* * The segment object was unable to load all tracks from the IStream* object data. * This may be due to errors in the stream, or the tracks being incorrectly * registered on the client. */ #define DMUS_E_ALL_TRACKS_FAILED MAKE_DMHRESULTERROR(0x0160)
/* DMUS_E_NOT_FOUND
* * The requested item was not contained by the object. */ #define DMUS_E_NOT_FOUND MAKE_DMHRESULTERROR(0x0161)
/* DMUS_E_NOT_INIT
* * A required object is not initialized or failed to initialize. */ #define DMUS_E_NOT_INIT MAKE_DMHRESULTERROR(0x0162)
/* DMUS_E_TYPE_DISABLED
* * The requested parameter type is currently disabled. Parameter types may * be enabled and disabled by certain calls to SetParam(). */ #define DMUS_E_TYPE_DISABLED MAKE_DMHRESULTERROR(0x0163)
/* DMUS_E_TYPE_UNSUPPORTED
* * The requested parameter type is not supported on the object. */ #define DMUS_E_TYPE_UNSUPPORTED MAKE_DMHRESULTERROR(0x0164)
/* DMUS_E_TIME_PAST
* * The time is in the past, and the operation can not succeed. */ #define DMUS_E_TIME_PAST MAKE_DMHRESULTERROR(0x0165)
/* DMUS_E_TRACK_NOT_FOUND
* * The requested track is not contained by the segment. */ #define DMUS_E_TRACK_NOT_FOUND MAKE_DMHRESULTERROR(0x0166)
/* DMUS_E_NO_MASTER_CLOCK
* * There is no master clock in the performance. Be sure to call * IDirectMusicPerformance::Init(). */ #define DMUS_E_NO_MASTER_CLOCK MAKE_DMHRESULTERROR(0x0170)
/* DMUS_E_LOADER_NOCLASSID
* * The class id field is required and missing in the DMUS_OBJECTDESC. */ #define DMUS_E_LOADER_NOCLASSID MAKE_DMHRESULTERROR(0x0180)
/* DMUS_E_LOADER_BADPATH
* * The requested file path is invalid. */ #define DMUS_E_LOADER_BADPATH MAKE_DMHRESULTERROR(0x0181)
/* DMUS_E_LOADER_FAILEDOPEN
* * File open failed - either file doesn't exist or is locked. */ #define DMUS_E_LOADER_FAILEDOPEN MAKE_DMHRESULTERROR(0x0182)
/* DMUS_E_LOADER_FORMATNOTSUPPORTED
* * Search data type is not supported. */ #define DMUS_E_LOADER_FORMATNOTSUPPORTED MAKE_DMHRESULTERROR(0x0183)
/* DMUS_E_LOADER_FAILEDCREATE
* * Unable to find or create object. */ #define DMUS_E_LOADER_FAILEDCREATE MAKE_DMHRESULTERROR(0x0184)
/* DMUS_E_LOADER_OBJECTNOTFOUND
* * Object was not found. */ #define DMUS_E_LOADER_OBJECTNOTFOUND MAKE_DMHRESULTERROR(0x0185)
/* DMUS_E_LOADER_NOFILENAME
* * The file name is missing from the DMUS_OBJECTDESC. */ #define DMUS_E_LOADER_NOFILENAME MAKE_DMHRESULTERROR(0x0186)
/* DMUS_E_INVALIDFILE
* * The file requested is not a valid file. */ #define DMUS_E_INVALIDFILE MAKE_DMHRESULTERROR(0x0200)
/* DMUS_E_ALREADY_EXISTS
* * The tool is already contained in the graph. Create a new instance. */ #define DMUS_E_ALREADY_EXISTS MAKE_DMHRESULTERROR(0x0201)
/* DMUS_E_OUT_OF_RANGE
* * Value is out of range, for instance the requested length is longer than * the segment. */ #define DMUS_E_OUT_OF_RANGE MAKE_DMHRESULTERROR(0x0202)
/* DMUS_E_SEGMENT_INIT_FAILED
* * Segment initialization failed, most likely due to a critical memory situation. */ #define DMUS_E_SEGMENT_INIT_FAILED MAKE_DMHRESULTERROR(0x0203)
/* DMUS_E_ALREADY_SENT
* * The DMUS_PMSG has already been sent to the performance object via * IDirectMusicPerformance::SendPMsg(). */ #define DMUS_E_ALREADY_SENT MAKE_DMHRESULTERROR(0x0204)
/* DMUS_E_CANNOT_FREE
* * The DMUS_PMSG was either not allocated by the performance via * IDirectMusicPerformance::AllocPMsg(), or it was already freed via * IDirectMusicPerformance::FreePMsg(). */ #define DMUS_E_CANNOT_FREE MAKE_DMHRESULTERROR(0x0205)
/* DMUS_E_CANNOT_OPEN_PORT
* * The default system port could not be opened. */ #define DMUS_E_CANNOT_OPEN_PORT MAKE_DMHRESULTERROR(0x0206)
/* DMUS_E_CONNOT_CONVERT
* * A call to MIDIToMusic() or MusicToMIDI() resulted in an error because * the requested conversion could not happen. This usually occurs when the * provided DMUS_CHORD_KEY structure has an invalid chord or scale pattern. */ #define DMUS_E_CONNOT_CONVERT MAKE_DMHRESULTERROR(0x0207)
/* DMUS_E_DESCEND_CHUNK_FAIL
* * DMUS_E_DESCEND_CHUNK_FAIL is returned when the end of the file * was reached before the desired chunk was found. */ #define DMUS_E_DESCEND_CHUNK_FAIL MAKE_DMHRESULTERROR(0x0210)
#endif
|