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.
DS_NO_VIRTUALIZATION                     The call succeeded, but we had to substitute the 3D algorithm
DS_INCOMPLETE                            The call succeeded, but not all of the optional effects were obtained.
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
CLASS_E_NOAGGREGATION                    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  The device is full. & An invalid media subtype was specified.
DIERR_MOREDATA & VFW_E_NEED_OWNER        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 The effect is not downloaded. & The enumerator has become invalid.
DIERR_HASEFFECTS & VFW_E_ALREADY_CONNECTED 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 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  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.
DIERR_NOTFOUND                           The requested object does not exist.
E_ACCESSDENIED                           Access is denied
E_HANDLE                                 Invalid handle
DIERR_NOTACQUIRED                        The operation cannot be performed unless the device is acquired.
E_OUTOFMEMORY                            Ran out of memory
DIERR_NOTINITIALIZED                     This object has not been initialized
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
DIERR_BADDRIVERVER                       The object could not be created due to an incompatible driver version or mismatched or incomplete driver components.
DIERR_ACQUIRED                           The operation cannot be performed while the device is acquired.
DIERR_OLDDIRECTINPUTVERSION              The application requires a newer version of DirectInput.
DIERR_BETADIRECTINPUTVERSION             The application was written for an unsupported prerelease version of DirectInput.
E_PROP_ID_UNSUPPORTED                    The specified property ID is not supported for the specified property set.
E_PROP_SET_UNSUPPORTED                   The Specified property set is not supported.
DIERR_ALREADYINITIALIZED                 This object is already initialized
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.
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                    Informs DirectDraw that the previous Blt which is transferring information to or from this Surface is incomplete.
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 an 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.
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.
