S_OK                                     The function completed successfully
S_FALSE                                  Call successful, but returned FALSE
ERROR_FILE_NOT_FOUND                     The system cannot find the file specified.
ERROR_PATH_NOT_FOUND                     The system cannot find the path specified.
ERROR_TOO_MANY_OPEN_FILES                The system cannot open the file.
ERROR_ACCESS_DENIED                      Access is denied.
ERROR_INVALID_HANDLE                     The handle is invalid.
ERROR_NOT_ENOUGH_MEMORY                  Not enough storage is available to process this command.
ERROR_INVALID_BLOCK                      The storage control block address is invalid.
ERROR_BAD_ENVIRONMENT                    The environment is incorrect.
ERROR_BAD_FORMAT                         An attempt was made to load a program with an incorrect format.
ERROR_OUTOFMEMORY                        The system cannot find the drive specified.
VFW_S_NO_MORE_ITEMS                      The end of the list has been reached.
VFW_S_DUPLICATE_NAME                     An attempt to add a filter with a duplicate name succeeded with a modified name.
VFW_S_STATE_INTERMEDIATE                 The state transition has not completed.
VFW_S_PARTIAL_RENDER                     Some of the streams in this movie are in an unsupported format.
VFW_S_SOME_DATA_IGNORED                  The file contained some property settings that were not used.
VFW_S_CONNECTIONS_DEFERRED               Some connections have failed and have been deferred.
VFW_S_RESOURCE_NOT_NEEDED                The resource specified is no longer needed.
VFW_S_MEDIA_TYPE_IGNORED                 A connection could not be made with the media type in the persistent graph, but has been made with a negotiated media type.
VFW_S_VIDEO_NOT_RENDERED                 Cannot play back the video stream: no suitable decompressor could be found.
VFW_S_AUDIO_NOT_RENDERED                 Cannot play back the audio stream: no audio hardware is available.
VFW_S_RPZA                               Cannot play back the video stream: format 'RPZA' is not supported.
VFW_S_ESTIMATED                          The value returned had to be estimated.  Its accuracy cannot be guaranteed.
VFW_S_RESERVED                           This success code is reserved for internal purposes within ActiveMovie.
VFW_S_STREAM_OFF                         The stream has been turned off.
VFW_S_CANT_CUE                           The graph can't be cued because of lack of or corrupt data.
VFW_S_NO_STOP_TIME                       The stop time for the sample was not set.
VFW_S_NOPREVIEWPIN                       There was no preview pin available, so the capture pin output is being split to provide both capture and preview.
VFW_S_DVD_NON_ONE_SEQUENTIAL             The current title was not a sequential set of chapters (PGC) and the returned timing information might not be continuous.
VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLE The audio stream did not contain sufficient information to determine the contents of each channel.
VFW_S_DVD_NOT_ACCURATE                   The seek into the movie was not frame accurate.
D3DOK_NOAUTOGEN                          The call succeeded but there won't be any mipmaps generated
DS_NO_VIRTUALIZATION                     The call succeeded, but we had to substitute the 3D algorithm
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. This can also happen if some content is missing. For example, if a segment uses a DLS collection that is not in the loader's current search directory.
DMUS_S_PARTIALDOWNLOAD                   Return value from IDirectMusicBand::Download() which indicates that some of the instruments safely downloaded, but others failed. This usually occurs when some instruments are on PChannels not supported by the performance or port.
DMUS_S_REQUEUE                           Return value from IDirectMusicTool::ProcessPMsg() which indicates to the performance that it should cue the PMsg again automatically.
DMUS_S_FREE                              Return value from IDirectMusicTool::ProcessPMsg() which indicates to the performance that it should free the PMsg automatically.
DMUS_S_END                               Return value from IDirectMusicTrack::Play() which indicates to the segment that the track has no more data after mtEnd.
DMUS_S_STRING_TRUNCATED                  Returned string has been truncated to fit the buffer size.
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.
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.
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. Of course, DMUS_PLAYMODE_FIXED will never return this success code.
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. Of course, DMUS_PLAYMODE_FIXED will never return this success code.
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.
DMUS_S_GARBAGE_COLLECTED                 The requested operation was not performed because during CollectGarbage the loader determined that the object had been released.
E_PENDING                                The data necessary to complete this operation is not yet available.
E_NOTIMPL                                The function called is not supported at this time
E_NOINTERFACE                            The requested COM interface is not available
E_POINTER                                Invalid pointer
E_ABORT                                  Operation aborted
E_FAIL                                   An undetermined error occurred
E_UNEXPECTED                             Catastrophic failure
CLASSFACTORY_E_FIRST                     This object does not support aggregation
REGDB_E_CLASSNOTREG                      Class not registered
CO_E_NOTINITIALIZED                      CoInitialize has not been called.
CO_E_ALREADYINITIALIZED                  CoInitialize has already been called.
DIERR_INSUFFICIENTPRIVS & VFW_E_INVALIDMEDIATYPE Unable to IDirectInputJoyConfig_Acquire because the user does not have sufficient privileges to change the joystick configuration. & An invalid media type was specified
DIERR_DEVICEFULL & VFW_E_INVALIDSUBTYPE & DMO_E_INVALIDSTREAMINDEX The device is full. & An invalid media subtype was specified.
DIERR_MOREDATA & VFW_E_NEED_OWNER & DMO_E_INVALIDTYPE Not all the requested information fit into the buffer. & This object can only be created as an aggregated object.
DIERR_NOTDOWNLOADED & VFW_E_ENUM_OUT_OF_SYNC & DMO_E_TYPE_NOT_SET The effect is not downloaded. & The enumerator has become invalid.
DIERR_HASEFFECTS & VFW_E_ALREADY_CONNECTED & DMO_E_NOTACCEPTING The device cannot be reinitialized because there are still effects attached to it. & At least one of the pins involved in the operation is already connected.
DIERR_NOTEXCLUSIVEACQUIRED & VFW_E_FILTER_ACTIVE & DMO_E_TYPE_NOT_ACCEPTED The operation cannot be performed unless the device is acquired in DISCL_EXCLUSIVE mode. & This operation cannot be performed because the filter is active.
DIERR_INCOMPLETEEFFECT & VFW_E_NO_TYPES & DMO_E_NO_MORE_ITEMS The effect could not be downloaded because essential information is missing.  For example, no axes have been associated with the effect, or no type-specific information has been created. & One of the specified pins supports no media types.
DIERR_NOTBUFFERED & VFW_E_NO_ACCEPTABLE_TYPES Attempted to read buffered device data from a device that is not buffered. & There is no common media type between these pins.
DIERR_EFFECTPLAYING & VFW_E_INVALID_DIRECTION An attempt was made to modify parameters of an effect while it is playing.  Not all hardware devices support altering the parameters of an effect while it is playing. & Two pins of the same direction cannot be connected together.
DIERR_UNPLUGGED & VFW_E_NOT_CONNECTED    The operation could not be completed because the device is not plugged in. & The operation cannot be performed because the pins are not connected.
DIERR_REPORTFULL & VFW_E_NO_ALLOCATOR    SendDeviceData failed because more information was requested to be sent than can be sent to the device.  Some devices have restrictions on how much data can be sent to them.  (For example, there might be a limit on the number of buttons that can be pressed at once.) & No sample buffer allocator is available.
DIERR_MAPFILEFAIL & VFW_E_RUNTIME_ERROR  A mapper file function failed because reading or writing the user or IHV settings file failed. & A run-time error occurred.
VFW_E_BUFFER_NOTSET                      No buffer space has been set
VFW_E_BUFFER_OVERFLOW                    The buffer is not big enough.
VFW_E_BADALIGN                           An invalid alignment was specified.
VFW_E_ALREADY_COMMITTED                  Cannot change allocated memory while the filter is active.
VFW_E_BUFFERS_OUTSTANDING                One or more buffers are still active.
VFW_E_NOT_COMMITTED                      Cannot allocate a sample when the allocator is not active.
VFW_E_SIZENOTSET                         Cannot allocate memory because no size has been set.
VFW_E_NO_CLOCK                           Cannot lock for synchronization because no clock has been defined.
VFW_E_NO_SINK                            Quality messages could not be sent because no quality sink has been defined.
VFW_E_NO_INTERFACE                       A required interface has not been implemented.
VFW_E_NOT_FOUND                          An object or name was not found.
VFW_E_CANNOT_CONNECT                     No combination of intermediate filters could be found to make the connection.
VFW_E_CANNOT_RENDER                      No combination of filters could be found to render the stream.
VFW_E_CHANGING_FORMAT                    Could not change formats dynamically.
VFW_E_NO_COLOR_KEY_SET                   No color key has been set.
VFW_E_NOT_OVERLAY_CONNECTION             Current pin connection is not using the IOverlay transport.
VFW_E_NOT_SAMPLE_CONNECTION              Current pin connection is not using the IMemInputPin transport.
VFW_E_PALETTE_SET                        Setting a color key would conflict with the palette already set.
VFW_E_COLOR_KEY_SET                      Setting a palette would conflict with the color key already set.
VFW_E_NO_COLOR_KEY_FOUND                 No matching color key is available.
VFW_E_NO_PALETTE_AVAILABLE               No palette is available.
VFW_E_NO_DISPLAY_PALETTE                 Display does not use a palette.
VFW_E_TOO_MANY_COLORS                    Too many colors for the current display settings.
VFW_E_STATE_CHANGED                      The state changed while waiting to process the sample.
VFW_E_NOT_STOPPED                        The operation could not be performed because the filter is not stopped.
VFW_E_NOT_PAUSED                         The operation could not be performed because the filter is not paused.
VFW_E_NOT_RUNNING                        The operation could not be performed because the filter is not running.
VFW_E_WRONG_STATE                        The operation could not be performed because the filter is in the wrong state.
VFW_E_START_TIME_AFTER_END               The sample start time is after the sample end time.
VFW_E_INVALID_RECT                       The supplied rectangle is invalid.
VFW_E_TYPE_NOT_ACCEPTED                  This pin cannot use the supplied media type.
VFW_E_SAMPLE_REJECTED                    This sample cannot be rendered.
VFW_E_SAMPLE_REJECTED_EOS                This sample cannot be rendered because the end of the stream has been reached.
VFW_E_DUPLICATE_NAME                     An attempt to add a filter with a duplicate name failed.
VFW_E_TIMEOUT                            A time-out has expired.
VFW_E_INVALID_FILE_FORMAT                The file format is invalid.
VFW_E_ENUM_OUT_OF_RANGE                  The list has already been exhausted.
VFW_E_CIRCULAR_GRAPH                     The filter graph is circular.
VFW_E_NOT_ALLOWED_TO_SAVE                Updates are not allowed in this state.
VFW_E_TIME_ALREADY_PASSED                An attempt was made to queue a command for a time in the past.
VFW_E_ALREADY_CANCELLED                  The queued command has already been canceled.
VFW_E_CORRUPT_GRAPH_FILE                 Cannot render the file because it is corrupt.
VFW_E_ADVISE_ALREADY_SET                 An overlay advise link already exists.
VFW_E_NO_MODEX_AVAILABLE                 No full-screen modes are available.
VFW_E_NO_ADVISE_SET                      This Advise cannot be canceled because it was not successfully set.
VFW_E_NO_FULLSCREEN                      A full-screen mode is not available.
VFW_E_IN_FULLSCREEN_MODE                 Cannot call IVideoWindow methods while in full-screen mode.
VFW_E_UNKNOWN_FILE_TYPE                  The media type of this file is not recognized.
VFW_E_CANNOT_LOAD_SOURCE_FILTER          The source filter for this file could not be loaded.
VFW_E_FILE_TOO_SHORT                     A file appeared to be incomplete.
VFW_E_INVALID_FILE_VERSION               The version number of the file is invalid.
VFW_E_INVALID_CLSID                      This file is corrupt: it contains an invalid class identifier.
VFW_E_INVALID_MEDIA_TYPE                 This file is corrupt: it contains an invalid media type.
VFW_E_SAMPLE_TIME_NOT_SET                No time stamp has been set for this sample.
VFW_E_MEDIA_TIME_NOT_SET                 No media time stamp has been set for this sample.
VFW_E_NO_TIME_FORMAT_SET                 No media time format has been selected.
VFW_E_MONO_AUDIO_HW                      Cannot change balance because audio device is mono only.
VFW_E_NO_DECOMPRESSOR                    Cannot play back the video stream: no suitable decompressor could be found.
VFW_E_NO_AUDIO_HARDWARE                  Cannot play back the audio stream: no audio hardware is available, or the hardware is not responding.
VFW_E_RPZA                               Cannot play back the video stream: format 'RPZA' is not supported.
VFW_E_PROCESSOR_NOT_SUITABLE             ActiveMovie cannot play MPEG movies on this processor.
VFW_E_UNSUPPORTED_AUDIO                  Cannot play back the audio stream: the audio format is not supported.
VFW_E_UNSUPPORTED_VIDEO                  Cannot play back the video stream: the video format is not supported.
VFW_E_MPEG_NOT_CONSTRAINED               ActiveMovie cannot play this video stream because it falls outside the constrained standard.
VFW_E_NOT_IN_GRAPH                       Cannot perform the requested function on an object that is not in the filter graph.
VFW_E_NO_TIME_FORMAT                     Cannot get or set time related information on an object that is using a time format of TIME_FORMAT_NONE.
VFW_E_READ_ONLY                          The connection cannot be made because the stream is read only and the filter alters the data.
VFW_E_BUFFER_UNDERFLOW                   The buffer is not full enough.
VFW_E_UNSUPPORTED_STREAM                 Cannot play back the file.  The format is not supported.
VFW_E_NO_TRANSPORT                       Pins cannot connect due to not supporting the same transport.
VFW_E_BAD_VIDEOCD                        The Video CD can't be read correctly by the device or is the data is corrupt.
VFW_E_OUT_OF_VIDEO_MEMORY                There is not enough Video Memory at this display resolution and number of colors. Reducing resolution might help.
VFW_E_VP_NEGOTIATION_FAILED              The VideoPort connection negotiation process has failed.
VFW_E_DDRAW_CAPS_NOT_SUITABLE            Either DirectDraw has not been installed or the Video Card capabilities are not suitable. Make sure the display is not in 16 color mode.
VFW_E_NO_VP_HARDWARE                     No VideoPort hardware is available, or the hardware is not responding.
VFW_E_NO_CAPTURE_HARDWARE                No Capture hardware is available, or the hardware is not responding.
VFW_E_DVD_OPERATION_INHIBITED            This User Operation is inhibited by DVD Content at this time.
VFW_E_DVD_INVALIDDOMAIN                  This Operation is not permitted in the current domain.
VFW_E_DVD_NO_BUTTON                      The specified button is invalid or is not present at the current time, or there is no button present at the specified location.
VFW_E_DVD_GRAPHNOTREADY                  DVD-Video playback graph has not been built yet.
VFW_E_DVD_RENDERFAIL                     DVD-Video playback graph building failed.
VFW_E_DVD_DECNOTENOUGH                   DVD-Video playback graph could not be built due to insufficient decoders.
VFW_E_DDRAW_VERSION_NOT_SUITABLE         Version number of DirectDraw not suitable. Make sure to install dx5 or higher version.
VFW_E_COPYPROT_FAILED                    Copy protection cannot be enabled. Please make sure any other copy protected content is not being shown now.
VFW_E_TIME_EXPIRED                       This object cannot be used anymore as its time has expired.
VFW_E_DVD_WRONG_SPEED                    The operation cannot be performed at the current playback speed.
VFW_E_DVD_MENU_DOES_NOT_EXIST            The specified menu doesn't exist.
VFW_E_DVD_CMD_CANCELLED                  The specified command was either cancelled or no longer exists.
VFW_E_DVD_STATE_WRONG_VERSION            The data did not contain a recognized version.
VFW_E_DVD_STATE_CORRUPT                  The state data was corrupt.
VFW_E_DVD_STATE_WRONG_DISC               The state data is from a different disc.
VFW_E_DVD_INCOMPATIBLE_REGION            The region was not compatible with the current drive.
VFW_E_DVD_NO_ATTRIBUTES                  The requested DVD stream attribute does not exist.
VFW_E_DVD_NO_GOUP_PGC                    Currently there is no GoUp (Annex J user function) program chain (PGC).
VFW_E_DVD_LOW_PARENTAL_LEVEL             The current parental level was too low.
VFW_E_DVD_NOT_IN_KARAOKE_MODE            The current audio is not karaoke content.
VFW_E_FRAME_STEP_UNSUPPORTED             Frame step is not supported on this configuration.
VFW_E_DVD_STREAM_DISABLED                The specified stream is disabled and cannot be selected.
VFW_E_DVD_TITLE_UNKNOWN                  The operation depends on the current title number, however the navigator has not yet entered the VTSM or the title domains, so the 'current' title index is unknown.
VFW_E_DVD_INVALID_DISC                   The specified path does not point to a valid DVD disc.
VFW_E_DVD_NO_RESUME_INFORMATION          There is currently no resume information.
VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD This thread has already blocked this output pin.  There is no need to call IPinFlowControl::Block() again.
VFW_E_PIN_ALREADY_BLOCKED                IPinFlowControl::Block() has been called on another thread.  The current thread cannot make any assumptions about this pin's block state.
VFW_E_CERTIFICATION_FAILURE              An operation failed due to a certification failure.
VFW_E_BAD_KEY                            A registry entry is corrupt.
MS_E_NOSTREAM                            No stream can be found with the specified attributes.
MS_E_NOSEEKING                           Seeking not supported for this object.
MS_E_INCOMPATIBLE                        The stream formats are not compatible.
MS_E_BUSY                                The sample is busy.
MS_E_NOTINIT                             The object can't accept the call because its initialize function or equivalent has not been called.
MS_E_SOURCEALREADYDEFINED                MS_E_SOURCEALREADYDEFINED
MS_E_INVALIDSTREAMTYPE                   The stream type is not valid for this operation.
MS_E_NOTRUNNING                          The object is not in running state.
ERROR_FILE_NOT_FOUND                     The system cannot find the file specified.
ERROR_PATH_NOT_FOUND                     The system cannot find the path specified.
ERROR_TOO_MANY_OPEN_FILES                The system cannot open the file.
E_ACCESSDENIED                           Access is denied
E_HANDLE                                 Invalid handle
ERROR_NOT_ENOUGH_MEMORY                  Not enough storage is available to process this command.
ERROR_INVALID_BLOCK                      The storage control block address is invalid.
ERROR_BAD_ENVIRONMENT                    The environment is incorrect.
ERROR_BAD_FORMAT                         An attempt was made to load a program with an incorrect format.
ERROR_INVALID_ACCESS & DIERR_NOTACQUIRED The operation cannot be performed unless the device is acquired.
E_OUTOFMEMORY                            Ran out of memory
ERROR_NOT_READY & DIERR_NOTINITIALIZED   This object has not been initialized
ERROR_READ_FAULT & DIERR_INPUTLOST       Access to the device has been lost.  It must be re-acquired.
E_INVALIDARG                             An invalid parameter was passed to the returning function
ERROR_BAD_DRIVER_LEVEL & DIERR_BADDRIVERVER The object could not be created due to an incompatible driver version or mismatched or incomplete driver components.
ERROR_BUSY & DIERR_ACQUIRED              The operation cannot be performed while the device is acquired.
ERROR_OLD_WIN_VERSION & DIERR_OLDDIRECTINPUTVERSION The application requires a newer version of DirectInput.
ERROR_RMODE_APP & DIERR_BETADIRECTINPUTVERSION The application was written for an unsupported prerelease version of DirectInput.
ERROR_NOT_FOUND & E_PROP_ID_UNSUPPORTED  The specified property ID is not supported for the specified property set.
ERROR_SET_NOT_FOUND & E_PROP_SET_UNSUPPORTED The specified property set is not supported.
ERROR_ALREADY_INITIALIZED & DIERR_ALREADYINITIALIZED This object is already initialized
DPNERR_ABORTED                           Aborted
DPNERR_ADDRESSING                        Addressing
DPNERR_ALREADYCLOSING                    Already closing
DPNERR_ALREADYCONNECTED                  Already connected
DPNERR_ALREADYDISCONNECTING              Already disconnecting
DPNERR_ALREADYINITIALIZED                Already initialized
DPNERR_ALREADYREGISTERED                 Already registered
DPNERR_BUFFERTOOSMALL                    Buffer too small
DPNERR_CANNOTCANCEL                      Cannot cancel
DPNERR_CANTCREATEGROUP                   Cannot create group
DPNERR_CANTCREATEPLAYER                  Cannot create player
DPNERR_CANTLAUNCHAPPLICATION             Cannot launch application
DPNERR_CONNECTING                        Connecting
DPNERR_CONNECTIONLOST                    Connection lost
DPNERR_CONVERSION                        Conversion
DPNERR_DATATOOLARGE                      Data too large
DPNERR_DOESNOTEXIST                      Does not exist
DPNERR_DPNSVRNOTAVAILABLE                dpnsvr not available
DPNERR_DUPLICATECOMMAND                  Duplicate command
DPNERR_ENDPOINTNOTRECEIVING              End point not receiving
DPNERR_ENUMQUERYTOOLARGE                 Enum query too large
DPNERR_ENUMRESPONSETOOLARGE              Enum response too large
DPNERR_EXCEPTION                         Exception
DPNERR_GROUPNOTEMPTY                     Group not empty
DPNERR_HOSTING                           Hosting
DPNERR_HOSTREJECTEDCONNECTION            Host rejected connection
DPNERR_HOSTTERMINATEDSESSION             Host terminated session
DPNERR_INCOMPLETEADDRESS                 Incomplete address
DPNERR_INVALIDADDRESSFORMAT              Invalid address format
DPNERR_INVALIDAPPLICATION                Invalid application
DPNERR_INVALIDCOMMAND                    Invalid command
DPNERR_INVALIDDEVICEADDRESS              Invalid device address
DPNERR_INVALIDENDPOINT                   Invalid end point
DPNERR_INVALIDFLAGS                      Invalid flags
DPNERR_INVALIDGROUP                      Invalid group
DPNERR_INVALIDHANDLE                     Invalid handle
DPNERR_INVALIDHOSTADDRESS                Invalid host address
DPNERR_INVALIDINSTANCE                   Invalid instance
DPNERR_INVALIDINTERFACE                  Invalid interface
DPNERR_INVALIDOBJECT                     Invalid object
DPNERR_INVALIDPASSWORD                   Invalid password
DPNERR_INVALIDPLAYER                     Invalid player
DPNERR_INVALIDPRIORITY                   Invalid priority
DPNERR_INVALIDSTRING                     Invalid string
DPNERR_INVALIDURL                        Invalid url
DPNERR_INVALIDVERSION                    Invalid version
DPNERR_NOCAPS                            No caps
DPNERR_NOCONNECTION                      No connection
DPNERR_NOHOSTPLAYER                      No host player
DPNERR_NOMOREADDRESSCOMPONENTS           No more address components
DPNERR_NORESPONSE                        No response
DPNERR_NOTALLOWED                        Not allowed
DPNERR_NOTHOST                           Not host
DPNERR_NOTREADY                          Not ready
DPNERR_NOTREGISTERED                     Not registered
DPNERR_PLAYERALREADYINGROUP              Player already in group
DPNERR_PLAYERLOST                        Player lost
DPNERR_PLAYERNOTINGROUP                  Player not in group
DPNERR_PLAYERNOTREACHABLE                Player not reachable
DPNERR_SENDTOOLARGE                      Send too large
DPNERR_SESSIONFULL                       Session full
DPNERR_TABLEFULL                         Table full
DPNERR_TIMEDOUT                          Timed out
DPNERR_UNINITIALIZED                     Uninitialized
DPNERR_USERCANCEL                        User cancel
DDERR_ALREADYINITIALIZED                 This object is already initialized
DDERR_CANNOTATTACHSURFACE                This surface cannot be attached to the requested surface.
DDERR_CANNOTDETACHSURFACE                This surface cannot be detached from the requested surface.
DDERR_CURRENTLYNOTAVAIL                  Support is currently not available.
DDERR_EXCEPTION                          An exception was encountered while performing the requested operation
DDERR_HEIGHTALIGN                        Height of rectangle provided is not a multiple of reqd alignment
DDERR_INCOMPATIBLEPRIMARY                Unable to match primary surface creation request with existing primary surface.
DDERR_INVALIDCAPS                        One or more of the caps bits passed to the callback are incorrect.
DDERR_INVALIDCLIPLIST                    DirectDraw does not support provided Cliplist.
DDERR_INVALIDMODE                        DirectDraw does not support the requested mode
DDERR_INVALIDOBJECT                      DirectDraw received a pointer that was an invalid DIRECTDRAW object.
DDERR_INVALIDPIXELFORMAT                 pixel format was invalid as specified
DDERR_INVALIDRECT                        Rectangle provided was invalid.
DDERR_LOCKEDSURFACES                     Operation could not be carried out because one or more surfaces are locked
DDERR_NO3D                               There is no 3D present.
DDERR_NOALPHAHW                          Operation could not be carried out because there is no alpha accleration hardware present or available.
DDERR_NOSTEREOHARDWARE                   Operation could not be carried out because there is no stereo hardware present or available.
DDERR_NOSURFACELEFT                      Operation could not be carried out because there is no hardware present which supports stereo surfaces
DDERR_NOCLIPLIST                         no clip list available
DDERR_NOCOLORCONVHW                      Operation could not be carried out because there is no color conversion hardware present or available.
DDERR_NOCOOPERATIVELEVELSET              Create function called without DirectDraw object method SetCooperativeLevel being called.
DDERR_NOCOLORKEY                         Surface doesn't currently have a color key
DDERR_NOCOLORKEYHW                       Operation could not be carried out because there is no hardware support of the dest color key.
DDERR_NODIRECTDRAWSUPPORT                No DirectDraw support possible with current display driver
DDERR_NOEXCLUSIVEMODE                    Operation requires the application to have exclusive mode but the application does not have exclusive mode.
DDERR_NOFLIPHW                           Flipping visible surfaces is not supported.
DDERR_NOGDI                              There is no GDI present.
DDERR_NOMIRRORHW                         Operation could not be carried out because there is no hardware present or available.
DDERR_NOTFOUND                           Requested item was not found
DDERR_NOOVERLAYHW                        Operation could not be carried out because there is no overlay hardware present or available.
DDERR_OVERLAPPINGRECTS                   Operation could not be carried out because the source and destination rectangles are on the same surface and overlap each other.
DDERR_NORASTEROPHW                       Operation could not be carried out because there is no appropriate raster op hardware present or available.
DDERR_NOROTATIONHW                       Operation could not be carried out because there is no rotation hardware present or available.
DDERR_NOSTRETCHHW                        Operation could not be carried out because there is no hardware support for stretching
DDERR_NOT4BITCOLOR                       DirectDrawSurface is not in 4 bit color palette and the requested operation requires 4 bit color palette.
DDERR_NOT4BITCOLORINDEX                  DirectDrawSurface is not in 4 bit color index palette and the requested operation requires 4 bit color index palette.
DDERR_NOT8BITCOLOR                       DirectDraw Surface is not in 8 bit color mode and the requested operation requires 8 bit color.
DDERR_NOTEXTUREHW                        Operation could not be carried out because there is no texture mapping hardware present or available.
DDERR_NOVSYNCHW                          Operation could not be carried out because there is no hardware support for vertical blank synchronized operations.
DDERR_NOZBUFFERHW                        Operation could not be carried out because there is no hardware support for zbuffer blitting.
DDERR_NOZOVERLAYHW                       Overlay surfaces could not be z layered based on their BltOrder because the hardware does not support z layering of overlays.
DDERR_OUTOFCAPS                          The hardware needed for the requested operation has already been allocated.
D3DERR_OUTOFVIDEOMEMORY                  Out of video memory
DDERR_OVERLAYCANTCLIP                    hardware does not support clipped overlays
DDERR_OVERLAYCOLORKEYONLYONEACTIVE       Can only have one color key active at one time for overlays
DDERR_PALETTEBUSY                        Access to this palette is being refused because the palette is already locked by another thread.
DDERR_COLORKEYNOTSET                     No src color key specified for this operation.
DDERR_SURFACEALREADYATTACHED             This surface is already attached to the surface it is being attached to.
DDERR_SURFACEALREADYDEPENDENT            This surface is already a dependency of the surface it is being made a dependency of.
DDERR_SURFACEBUSY                        Access to this surface is being refused because the surface is already locked by another thread.
DDERR_CANTLOCKSURFACE                    Access to this surface is being refused because no driver exists which can supply a pointer to the surface. This is most likely to happen when attempting to lock the primary surface when no DCI provider is present. Will also happen on attempts to lock an optimized surface.
DDERR_SURFACEISOBSCURED                  Access to Surface refused because Surface is obscured.
DDERR_SURFACELOST                        Access to this surface is being refused because the surface is gone. The DIRECTDRAWSURFACE object representing this surface should have Restore called on it.
DDERR_SURFACENOTATTACHED                 The requested surface is not attached.
DDERR_TOOBIGHEIGHT                       Height requested by DirectDraw is too large.
DDERR_TOOBIGSIZE                         Size requested by DirectDraw is too large --  The individual height and width are OK.
DDERR_TOOBIGWIDTH                        Width requested by DirectDraw is too large.
DDERR_UNSUPPORTEDFORMAT                  Pixel format requested is unsupported by DirectDraw
DDERR_UNSUPPORTEDMASK                    Bitmask in the pixel format requested is unsupported by DirectDraw
DDERR_INVALIDSTREAM                      The specified stream contains invalid data
DDERR_VERTICALBLANKINPROGRESS            vertical blank is in progress
DDERR_WASSTILLDRAWING                    Was still drawing
DDERR_DDSCAPSCOMPLEXREQUIRED             The specified surface type requires specification of the COMPLEX flag
DDERR_XALIGN                             Rectangle provided was not horizontally aligned on reqd. boundary
DDERR_INVALIDDIRECTDRAWGUID              The GUID passed to DirectDrawCreate is not a valid DirectDraw driver identifier.
DDERR_DIRECTDRAWALREADYCREATED           A DirectDraw object representing this driver has already been created for this process.
DDERR_NODIRECTDRAWHW                     A hardware only DirectDraw object creation was attempted but the driver did not support any hardware.
DDERR_PRIMARYSURFACEALREADYEXISTS        this process already has created a primary surface
DDERR_NOEMULATION                        software emulation not available.
DDERR_REGIONTOOSMALL                     region passed to Clipper::GetClipList is too small.
DDERR_CLIPPERISUSINGHWND                 an attempt was made to set a clip list for a clipper object that is already monitoring an hwnd.
DDERR_NOCLIPPERATTACHED                  No clipper object attached to surface object
DDERR_NOHWND                             Clipper notification requires an HWND or no HWND has previously been set as the CooperativeLevel HWND.
DDERR_HWNDSUBCLASSED                     HWND used by DirectDraw CooperativeLevel has been subclassed, this prevents DirectDraw from restoring state.
DDERR_HWNDALREADYSET                     The CooperativeLevel HWND has already been set. It cannot be reset while the process has surfaces or palettes created.
DDERR_NOPALETTEATTACHED                  No palette object attached to this surface.
DDERR_NOPALETTEHW                        No hardware support for 16 or 256 color palettes.
DDERR_BLTFASTCANTCLIP                    If a clipper object is attached to the source surface passed into a BltFast call.
DDERR_NOBLTHW                            No blter.
DDERR_NODDROPSHW                         No DirectDraw ROP hardware.
DDERR_OVERLAYNOTVISIBLE                  returned when GetOverlayPosition is called on a hidden overlay
DDERR_NOOVERLAYDEST                      returned when GetOverlayPosition is called on a overlay that UpdateOverlay has never been called on to establish a destination.
DDERR_INVALIDPOSITION                    returned when the position of the overlay on the destination is no longer legal for that destionation.
DDERR_NOTAOVERLAYSURFACE                 returned when an overlay member is called for a non-overlay surface
DDERR_EXCLUSIVEMODEALREADYSET            An attempt was made to set the cooperative level when it was already set to exclusive.
DDERR_NOTFLIPPABLE                       An attempt has been made to flip a surface that is not flippable.
DDERR_CANTDUPLICATE                      Can't duplicate primary & 3D surfaces, or surfaces that are implicitly created.
DDERR_NOTLOCKED                          Surface was not locked.  An attempt to unlock a surface that was not locked at all, or by this process, has been attempted.
DDERR_CANTCREATEDC                       Windows cannot create any more DCs, or a DC was requested for a palette-indexed surface when the surface had no palette AND the display mode was not palette-indexed (in this case DirectDraw cannot select a proper palette into the DC)
DDERR_NODC                               No DC was ever created for this surface.
DDERR_WRONGMODE                          This surface cannot be restored because it was created in a different mode.
DDERR_IMPLICITLYCREATED                  This surface cannot be restored because it is an implicitly created surface.
DDERR_NOTPALETTIZED                      The surface being used is not a palette-based surface
DDERR_UNSUPPORTEDMODE                    The display is currently in an unsupported mode
DDERR_NOMIPMAPHW                         Operation could not be carried out because there is no mip-map texture mapping hardware present or available.
DDERR_INVALIDSURFACETYPE                 The requested action could not be performed because the surface was of the wrong type.
DDERR_NOOPTIMIZEHW                       Device does not support optimized surfaces, therefore no video memory optimized surfaces
DDERR_NOTLOADED                          Surface is an optimized surface, but has not yet been allocated any memory
DDERR_NOFOCUSWINDOW                      Attempt was made to create or set a device window without first setting the focus window
DDERR_NOTONMIPMAPSUBLEVEL                Attempt was made to set a palette on a mipmap sublevel
DDERR_DCALREADYCREATED                   A DC has already been returned for this surface. Only one DC can be retrieved per surface.
DDERR_NONONLOCALVIDMEM                   An attempt was made to allocate non-local video memory from a device that does not support non-local video memory.
DDERR_CANTPAGELOCK                       The attempt to page lock a surface failed.
DDERR_CANTPAGEUNLOCK                     The attempt to page unlock a surface failed.
DDERR_NOTPAGELOCKED                      An attempt was made to page unlock a surface with no outstanding page locks.
DDERR_MOREDATA                           There is more data available than the specified buffer size could hold
DDERR_EXPIRED                            The data has expired and is therefore no longer valid.
DDERR_TESTFINISHED                       The mode test has finished executing.
DDERR_NEWMODE                            The mode test has switched to a new mode.
DDERR_D3DNOTINITIALIZED                  D3D has not yet been initialized.
DDERR_VIDEONOTACTIVE                     The video port is not active
DDERR_NOMONITORINFORMATION               The monitor does not have EDID data.
DDERR_NODRIVERSUPPORT                    The driver does not enumerate display mode refresh rates.
DDERR_DEVICEDOESNTOWNSURFACE             Surfaces created by one direct draw device cannot be used directly by another direct draw device.
DXFILEERR_BADOBJECT                      Bad object
DXFILEERR_BADVALUE                       Bad value
DXFILEERR_BADTYPE                        Bad type
DXFILEERR_BADSTREAMHANDLE                Bad stream handle
DXFILEERR_BADALLOC                       Bad alloc
DXFILEERR_NOTFOUND                       Not found
DXFILEERR_NOTDONEYET                     Not done yet
DXFILEERR_FILENOTFOUND                   File not found
DXFILEERR_RESOURCENOTFOUND               Resource not found
DXFILEERR_URLNOTFOUND                    Url not found
DXFILEERR_BADRESOURCE                    Bad resource
DXFILEERR_BADFILETYPE                    Bad file type
DXFILEERR_BADFILEVERSION                 Bad file version
DXFILEERR_BADFILEFLOATSIZE               Bad file float size
DXFILEERR_BADFILECOMPRESSIONTYPE         Bad file compression type
DXFILEERR_BADFILE                        Bad file
DXFILEERR_PARSEERROR                     Parse error
DXFILEERR_NOTEMPLATE                     No template
DXFILEERR_BADARRAYSIZE                   Bad array size
DXFILEERR_BADDATAREFERENCE               Bad data reference
DXFILEERR_INTERNALERROR                  Internal error
DXFILEERR_NOMOREOBJECTS                  No more objects
DXFILEERR_BADINTRINSICS                  Bad intrinsics
DXFILEERR_NOMORESTREAMHANDLES            No more stream handles
DXFILEERR_NOMOREDATA                     No more data
DXFILEERR_BADCACHEFILE                   Bad cache file
DXFILEERR_NOINTERNET                     No internet
D3DERR_WRONGTEXTUREFORMAT                Wrong texture format
D3DERR_UNSUPPORTEDCOLOROPERATION         Unsupported color operation
D3DERR_UNSUPPORTEDCOLORARG               Unsupported color arg
D3DERR_UNSUPPORTEDALPHAOPERATION         Unsupported alpha operation
D3DERR_UNSUPPORTEDALPHAARG               Unsupported alpha arg
D3DERR_TOOMANYOPERATIONS                 Too many operations
D3DERR_CONFLICTINGTEXTUREFILTER          Conflicting texture filter
D3DERR_UNSUPPORTEDFACTORVALUE            Unsupported factor value
D3DERR_CONFLICTINGRENDERSTATE            Conflicting render state
D3DERR_UNSUPPORTEDTEXTUREFILTER          Unsupported texture filter
D3DERR_CONFLICTINGTEXTUREPALETTE         Conflicting texture palette
D3DERR_DRIVERINTERNALERROR               Driver internal error
D3DERR_NOTFOUND                          Not found
D3DERR_MOREDATA                          More data
D3DERR_DEVICELOST                        Device lost
D3DERR_DEVICENOTRESET                    Device not reset
D3DERR_NOTAVAILABLE                      Not available
D3DERR_INVALIDDEVICE                     Invalid device
D3DERR_INVALIDCALL                       Invalid call
D3DERR_DRIVERINVALIDCALL                 Driver invalid call
DSERR_ALLOCATED                          The call failed because resources (such as a priority level) were already being used by another caller
DSERR_CONTROLUNAVAIL                     The control (vol, pan, etc.) requested by the caller is not available
DSERR_INVALIDCALL                        This call is not valid for the current state of this object
DSERR_PRIOLEVELNEEDED                    The caller does not have the priority level required for the function to succeed
DSERR_BADFORMAT                          The specified WAVE format is not supported
DSERR_NODRIVER                           No sound driver is available for use
DSERR_ALREADYINITIALIZED                 This object is already initialized
DSERR_BUFFERLOST                         The buffer memory has been lost, and must be restored
DSERR_OTHERAPPHASPRIO                    Another app has a higher priority level, preventing this call from succeeding
DSERR_UNINITIALIZED                      This object has not been initialized
DSERR_BUFFERTOOSMALL                     Tried to create a DSBCAPS_CTRLFX buffer shorter than DSBSIZE_FX_MIN milliseconds
DSERR_DS8_REQUIRED                       Attempt to use DirectSound 8 functionality on an older DirectSound object
DSERR_SENDLOOP                           A circular loop of send effects was detected
DSERR_BADSENDBUFFERGUID                  The GUID specified in an audiopath file does not match a valid MIXIN buffer
DMUS_E_DRIVER_FAILED                     An unexpected error was returned from a device driver, indicating possible failure of the driver or hardware.
DMUS_E_PORTS_OPEN                        The requested operation cannot be performed while there are  instantiated ports in any process in the system.
DMUS_E_DEVICE_IN_USE                     The requested device is already in use (possibly by a non-DirectMusic client) and cannot be opened again.
DMUS_E_INSUFFICIENTBUFFER                Buffer is not large enough for requested operation.
DMUS_E_BUFFERNOTSET                      No buffer was prepared for the download data.
DMUS_E_BUFFERNOTAVAILABLE                Download failed due to inability to access or create download buffer.
DMUS_E_NOTADLSCOL                        Error parsing DLS collection. File is corrupt.
DMUS_E_INVALIDOFFSET                     Wave chunks in DLS collection file are at incorrect offsets.
DMUS_E_ALREADY_LOADED                    Second attempt to load a DLS collection that is currently open. 
DMUS_E_INVALIDPOS                        Error reading wave data from DLS collection. Indicates bad file.
DMUS_E_INVALIDPATCH                      There is no instrument in the collection that matches patch number.
DMUS_E_CANNOTSEEK                        The IStream* doesn't support Seek().
DMUS_E_CANNOTWRITE                       The IStream* doesn't support Write().
DMUS_E_CHUNKNOTFOUND                     The RIFF parser doesn't contain a required chunk while parsing file.
DMUS_E_INVALID_DOWNLOADID                Invalid download id was used in the process of creating a download buffer.
DMUS_E_NOT_DOWNLOADED_TO_PORT            Tried to unload an object that was not downloaded or previously unloaded.
DMUS_E_ALREADY_DOWNLOADED                Buffer was already downloaded to synth.
DMUS_E_UNKNOWN_PROPERTY                  The specified property item was not recognized by the target object.
DMUS_E_SET_UNSUPPORTED                   The specified property item may not be set on the target object.
DMUS_E_GET_UNSUPPORTED                   * The specified property item may not be retrieved from the target object.
DMUS_E_NOTMONO                           Wave chunk has more than one interleaved channel. DLS format requires MONO.
DMUS_E_BADARTICULATION                   Invalid articulation chunk in DLS collection.
DMUS_E_BADINSTRUMENT                     Invalid instrument chunk in DLS collection.
DMUS_E_BADWAVELINK                       Wavelink chunk in DLS collection points to invalid wave.
DMUS_E_NOARTICULATION                    Articulation missing from instrument in DLS collection.
DMUS_E_NOTPCM                            Downoaded DLS wave is not in PCM format. 
DMUS_E_BADWAVE                           Bad wave chunk in DLS collection
DMUS_E_BADOFFSETTABLE                    Offset Table for download buffer has errors. 
DMUS_E_UNKNOWNDOWNLOAD                   Attempted to download unknown data type.
DMUS_E_NOSYNTHSINK                       The operation could not be completed because no sink was connected to the synthesizer.
DMUS_E_ALREADYOPEN                       An attempt was made to open the software synthesizer while it was already  open.
DMUS_E_ALREADYCLOSED                     An attempt was made to close the software synthesizer while it was already  open.
DMUS_E_SYNTHNOTCONFIGURED                The operation could not be completed because the software synth has not  yet been fully configured.
DMUS_E_SYNTHACTIVE                       The operation cannot be carried out while the synthesizer is active.
DMUS_E_CANNOTREAD                        An error occurred while attempting to read from the IStream* object.
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.
DMUS_E_BUFFER_EMPTY                      There was no data in the referenced buffer.
DMUS_E_BUFFER_FULL                       There is insufficient space to insert the given event into the buffer.
DMUS_E_PORT_NOT_CAPTURE                  The given operation could not be carried out because the port is a capture port.
DMUS_E_PORT_NOT_RENDER                   The given operation could not be carried out because the port is a render port.
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.
DMUS_E_ALREADY_ACTIVATED                 The operation cannot be carried out while the port is active.
DMUS_E_INVALIDBUFFER                     Invalid DirectSound buffer was handed to port. 
DMUS_E_WAVEFORMATNOTSUPPORTED            Invalid buffer format was handed to the synth sink.
DMUS_E_SYNTHINACTIVE                     The operation cannot be carried out while the synthesizer is inactive.
DMUS_E_DSOUND_ALREADY_SET                IDirectMusic::SetDirectSound has already been called. It may not be changed while in use.
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.
DMUS_E_UNSUPPORTED_STREAM                The IStream* object does not contain data supported by the loading object.
DMUS_E_ALREADY_INITED                    The object has already been initialized.
DMUS_E_INVALID_BAND                      The file does not contain a valid band.
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_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_INVALID_TRACK_HDR                 The IStream* object's data contains an invalid track header (ckid is 0 and fccType is NULL,) and therefore cannot be read by the segment object.
DMUS_E_INVALID_TOOL_HDR                  The IStream* object's data contains an invalid tool header (ckid is 0 and fccType is NULL,) and therefore cannot be read by the graph object.
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.
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.
DSERR_OBJECTNOTFOUND                     The object requested was not found (numerically equal to DMUS_E_NOT_FOUND)
DMUS_E_NOT_INIT                          A required object is not initialized or failed to initialize.
DMUS_E_TYPE_DISABLED                     The requested parameter type is currently disabled. Parameter types may be enabled and disabled by certain calls to SetParam().
DMUS_E_TYPE_UNSUPPORTED                  The requested parameter type is not supported on the object.
DMUS_E_TIME_PAST                         The time is in the past, and the operation cannot succeed.
DMUS_E_TRACK_NOT_FOUND                   The requested track is not contained by the segment.
DMUS_E_TRACK_NO_CLOCKTIME_SUPPORT        The track does not support clock time playback or getparam.
DMUS_E_NO_MASTER_CLOCK                   There is no master clock in the performance. Be sure to call IDirectMusicPerformance::Init().
DMUS_E_LOADER_NOCLASSID                  The class id field is required and missing in the DMUS_OBJECTDESC.
DMUS_E_LOADER_BADPATH                    The requested file path is invalid.
DMUS_E_LOADER_FAILEDOPEN                 File open failed - either file doesn't exist or is locked.
DMUS_E_LOADER_FORMATNOTSUPPORTED         Search data type is not supported.
DMUS_E_LOADER_FAILEDCREATE               Unable to find or create object.
DMUS_E_LOADER_OBJECTNOTFOUND             Object was not found.
DMUS_E_LOADER_NOFILENAME                 The file name is missing from the DMUS_OBJECTDESC.
DMUS_E_INVALIDFILE                       The file requested is not a valid file.
DMUS_E_ALREADY_EXISTS                    The tool is already contained in the graph. Create a new instance.
DMUS_E_OUT_OF_RANGE                      Value is out of range, for instance the requested length is longer than the segment.
DMUS_E_SEGMENT_INIT_FAILED               Segment initialization failed, most likely due to a critical memory situation.
DMUS_E_ALREADY_SENT                      The DMUS_PMSG has already been sent to the performance object via IDirectMusicPerformance::SendPMsg().
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().
DMUS_E_CANNOT_OPEN_PORT                  The default system port could not be opened.
DMUS_E_CANNOT_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.
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.
DMUS_E_NOT_LOADED                        An attempt to use this object failed because it first needs to be loaded.
DMUS_E_SCRIPT_LANGUAGE_INCOMPATIBLE      The activeX scripting engine for the script's language is not compatible with DirectMusic.
DMUS_E_SCRIPT_UNSUPPORTED_VARTYPE        A variant was used that had a type that is not supported by DirectMusic.
DMUS_E_SCRIPT_ERROR_IN_SCRIPT            An error was encountered while parsing or executing the script. The pErrorInfo parameter (if supplied) was filled with information about the error.
DMUS_E_SCRIPT_CANTLOAD_OLEAUT32          Loading of oleaut32.dll failed.  VBScript and other activeX scripting languages require use of oleaut32.dll.  On platforms where oleaut32.dll is not present, only the DirectMusicScript language, which doesn't require oleaut32.dll can be used.
DMUS_E_SCRIPT_LOADSCRIPT_ERROR           An error occurred while parsing a script loaded using LoadScript.  The script that was loaded contains an error.
DMUS_E_SCRIPT_INVALID_FILE               The script file is invalid.
DMUS_E_INVALID_SCRIPTTRACK               The file contains an invalid script track.
DMUS_E_SCRIPT_VARIABLE_NOT_FOUND         The script does not contain a variable with the specified name.
DMUS_E_SCRIPT_ROUTINE_NOT_FOUND          The script does not contain a routine with the specified name.
DMUS_E_SCRIPT_CONTENT_READONLY           Scripts variables for content referenced or embedded in a script cannot be set.
DMUS_E_SCRIPT_NOT_A_REFERENCE            Attempt was made to set a script's variable by reference to a value that was not an object type.
DMUS_E_SCRIPT_VALUE_NOT_SUPPORTED        Attempt was made to set a script's variable by value to an object that does not support a default value property.
DMUS_E_INVALID_SEGMENTTRIGGERTRACK       The file contains an invalid segment trigger track.
DMUS_E_INVALID_LYRICSTRACK               The file contains an invalid lyrics track.
DMUS_E_INVALID_PARAMCONTROLTRACK         The file contains an invalid parameter control track.
DMUS_E_AUDIOVBSCRIPT_SYNTAXERROR         A script written in AudioVBScript could not be read because it contained a statement that is not allowed by the AudioVBScript language.
DMUS_E_AUDIOVBSCRIPT_RUNTIMEERROR        A script routine written in AudioVBScript failed because an invalid operation occurred.  For example, adding the number 3 to a segment object would produce this error.  So would attempting to call a routine that doesn't exist.
DMUS_E_AUDIOVBSCRIPT_OPERATIONFAILURE    A script routine written in AudioVBScript failed because a function outside of a script failed to complete. For example, a call to PlaySegment that fails to play because of low memory would return this error.
DMUS_E_AUDIOPATHS_NOT_VALID              The Performance has set up some PChannels using the AssignPChannel command, which makes it not capable of supporting audio paths.
DMUS_E_AUDIOPATHS_IN_USE                 This is the inverse of the previous error. The Performance has set up some audio paths, which makes is incompatible with the calls to allocate pchannels, etc. 
DMUS_E_NO_AUDIOPATH_CONFIG               A segment or song was asked for its embedded audio path configuration, but there isn't any. 
DMUS_E_AUDIOPATH_INACTIVE                An audiopath is inactive, perhaps because closedown was called.
DMUS_E_AUDIOPATH_NOBUFFER                An audiopath failed to create because a requested buffer could not be created.
DMUS_E_AUDIOPATH_NOPORT                  An audiopath could not be used for playback because it lacked port assignments.
DMUS_E_NO_AUDIOPATH                      Attempt was made to play segment in audiopath mode and there was no audiopath.
DMUS_E_INVALIDCHUNK                      Invalid data was found in a RIFF file chunk.
DMUS_E_AUDIOPATH_NOGLOBALFXBUFFER        Attempt was made to create an audiopath that sends to a global effects buffer which did not exist.
DMUS_E_INVALID_CONTAINER_OBJECT          The file does not contain a valid container object.
