Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/libs/dxerr8/dxerr8.c
4387 views
1
/*
2
* DirectX 8 error routines
3
*
4
* Copyright 2004-2005 Robert Reif
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19
*/
20
21
22
#include <stdarg.h>
23
24
#include "windef.h"
25
#include "winbase.h"
26
#include "wingdi.h"
27
#include "winuser.h"
28
29
#include "mmsystem.h"
30
#include "dsound.h"
31
#include "dmerror.h"
32
#include "ddraw.h"
33
#include "dinput.h"
34
#include "vfwmsgs.h"
35
36
#include "dxerr8.h"
37
38
static const struct {
39
HRESULT hr;
40
const CHAR* resultA;
41
const WCHAR* resultW;
42
const CHAR* descriptionA;
43
const WCHAR* descriptionW;
44
} info[] =
45
{
46
#define INFO(err,descr) { err, #err, L"" #err, descr, L"" descr }
47
INFO( S_OK, "The function completed successfully" ),
48
INFO( S_FALSE, "Call successful, but returned FALSE" ),
49
INFO( ERROR_FILE_NOT_FOUND, "The system cannot find the file specified." ),
50
INFO( ERROR_PATH_NOT_FOUND, "The system cannot find the path specified." ),
51
INFO( ERROR_TOO_MANY_OPEN_FILES, "The system cannot open the file." ),
52
INFO( ERROR_ACCESS_DENIED, "Access is denied." ),
53
INFO( ERROR_INVALID_HANDLE, "The handle is invalid." ),
54
INFO( ERROR_NOT_ENOUGH_MEMORY, "Not enough storage is available to process this command." ),
55
INFO( ERROR_INVALID_BLOCK, "The storage control block address is invalid." ),
56
INFO( ERROR_BAD_ENVIRONMENT, "The environment is incorrect." ),
57
INFO( ERROR_BAD_FORMAT, "An attempt was made to load a program with an incorrect format." ),
58
INFO( ERROR_OUTOFMEMORY, "The system cannot find the drive specified." ),
59
INFO( VFW_S_NO_MORE_ITEMS, "The end of the list has been reached." ),
60
INFO( VFW_S_DUPLICATE_NAME, "An attempt to add a filter with a duplicate name succeeded with a modified name." ),
61
INFO( VFW_S_STATE_INTERMEDIATE, "The state transition has not completed." ),
62
INFO( VFW_S_PARTIAL_RENDER, "Some of the streams in this movie are in an unsupported format." ),
63
INFO( VFW_S_SOME_DATA_IGNORED, "The file contained some property settings that were not used." ),
64
INFO( VFW_S_CONNECTIONS_DEFERRED, "Some connections have failed and have been deferred." ),
65
INFO( VFW_S_RESOURCE_NOT_NEEDED, "The resource specified is no longer needed." ),
66
INFO( 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." ),
67
INFO( VFW_S_VIDEO_NOT_RENDERED, "Cannot play back the video stream: no suitable decompressor could be found." ),
68
INFO( VFW_S_AUDIO_NOT_RENDERED, "Cannot play back the audio stream: no audio hardware is available." ),
69
INFO( VFW_S_RPZA, "Cannot play back the video stream: format 'RPZA' is not supported." ),
70
INFO( VFW_S_ESTIMATED, "The value returned had to be estimated. Its accuracy cannot be guaranteed." ),
71
INFO( VFW_S_RESERVED, "This success code is reserved for internal purposes within ActiveMovie." ),
72
INFO( VFW_S_STREAM_OFF, "The stream has been turned off." ),
73
INFO( VFW_S_CANT_CUE, "The graph can't be cued because of lack of or corrupt data." ),
74
INFO( VFW_S_NO_STOP_TIME, "The stop time for the sample was not set." ),
75
INFO( VFW_S_NOPREVIEWPIN, "There was no preview pin available, so the capture pin output is being split to provide both capture and preview." ),
76
INFO( 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." ),
77
INFO( VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLE, "The audio stream did not contain sufficient information to determine the contents of each channel." ),
78
INFO( VFW_S_DVD_NOT_ACCURATE, "The seek into the movie was not frame accurate." ),
79
INFO( DS_NO_VIRTUALIZATION, "The call succeeded, but we had to substitute the 3D algorithm" ),
80
INFO( DS_INCOMPLETE, "The call succeeded, but not all of the optional effects were obtained." ),
81
INFO( 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." ),
82
INFO( 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." ),
83
INFO( DMUS_S_REQUEUE, "Return value from IDirectMusicTool::ProcessPMsg() which indicates to the performance that it should cue the PMsg again automatically." ),
84
INFO( DMUS_S_FREE, "Return value from IDirectMusicTool::ProcessPMsg() which indicates to the performance that it should free the PMsg automatically." ),
85
INFO( DMUS_S_END, "Return value from IDirectMusicTrack::Play() which indicates to the segment that the track has no more data after mtEnd." ),
86
INFO( DMUS_S_STRING_TRUNCATED, "Returned string has been truncated to fit the buffer size." ),
87
INFO( 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." ),
88
INFO( 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." ),
89
INFO( 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." ),
90
INFO( 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." ),
91
INFO( 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." ),
92
INFO( DMUS_S_GARBAGE_COLLECTED, "The requested operation was not performed because during CollectGarbage the loader determined that the object had been released." ),
93
INFO( E_PENDING, "The data necessary to complete this operation is not yet available." ),
94
INFO( E_NOTIMPL, "The function called is not supported at this time" ),
95
INFO( E_NOINTERFACE, "The requested COM interface is not available" ),
96
INFO( E_POINTER, "Invalid pointer" ),
97
INFO( E_ABORT, "Operation aborted" ),
98
INFO( E_FAIL, "An undetermined error occurred" ),
99
INFO( E_UNEXPECTED, "Catastrophic failure" ),
100
INFO( CLASS_E_NOAGGREGATION, "This object does not support aggregation" ),
101
INFO( REGDB_E_CLASSNOTREG, "Class not registered" ),
102
INFO( CO_E_NOTINITIALIZED, "CoInitialize has not been called." ),
103
INFO( CO_E_ALREADYINITIALIZED, "CoInitialize has already been called." ),
104
INFO( 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" ),
105
INFO( DIERR_DEVICEFULL, "& VFW_E_INVALIDSUBTYPE The device is full. & An invalid media subtype was specified." ),
106
INFO( 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." ),
107
INFO( DIERR_NOTDOWNLOADED, "& VFW_E_ENUM_OUT_OF_SYNC The effect is not downloaded. & The enumerator has become invalid." ),
108
INFO( 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." ),
109
INFO( 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." ),
110
INFO( 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." ),
111
INFO( 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." ),
112
INFO( 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." ),
113
INFO( 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." ),
114
INFO( 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." ),
115
INFO( 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." ),
116
INFO( VFW_E_BUFFER_NOTSET, "No buffer space has been set" ),
117
INFO( VFW_E_BUFFER_OVERFLOW, "The buffer is not big enough." ),
118
INFO( VFW_E_BADALIGN, "An invalid alignment was specified." ),
119
INFO( VFW_E_ALREADY_COMMITTED, "Cannot change allocated memory while the filter is active." ),
120
INFO( VFW_E_BUFFERS_OUTSTANDING, "One or more buffers are still active." ),
121
INFO( VFW_E_NOT_COMMITTED, "Cannot allocate a sample when the allocator is not active." ),
122
INFO( VFW_E_SIZENOTSET, "Cannot allocate memory because no size has been set." ),
123
INFO( VFW_E_NO_CLOCK, "Cannot lock for synchronization because no clock has been defined." ),
124
INFO( VFW_E_NO_SINK, "Quality messages could not be sent because no quality sink has been defined." ),
125
INFO( VFW_E_NO_INTERFACE, "A required interface has not been implemented." ),
126
INFO( VFW_E_NOT_FOUND, "An object or name was not found." ),
127
INFO( VFW_E_CANNOT_CONNECT, "No combination of intermediate filters could be found to make the connection." ),
128
INFO( VFW_E_CANNOT_RENDER, "No combination of filters could be found to render the stream." ),
129
INFO( VFW_E_CHANGING_FORMAT, "Could not change formats dynamically." ),
130
INFO( VFW_E_NO_COLOR_KEY_SET, "No color key has been set." ),
131
INFO( VFW_E_NOT_OVERLAY_CONNECTION, "Current pin connection is not using the IOverlay transport." ),
132
INFO( VFW_E_NOT_SAMPLE_CONNECTION, "Current pin connection is not using the IMemInputPin transport." ),
133
INFO( VFW_E_PALETTE_SET, "Setting a color key would conflict with the palette already set." ),
134
INFO( VFW_E_COLOR_KEY_SET, "Setting a palette would conflict with the color key already set." ),
135
INFO( VFW_E_NO_COLOR_KEY_FOUND, "No matching color key is available." ),
136
INFO( VFW_E_NO_PALETTE_AVAILABLE, "No palette is available." ),
137
INFO( VFW_E_NO_DISPLAY_PALETTE, "Display does not use a palette." ),
138
INFO( VFW_E_TOO_MANY_COLORS, "Too many colors for the current display settings." ),
139
INFO( VFW_E_STATE_CHANGED, "The state changed while waiting to process the sample." ),
140
INFO( VFW_E_NOT_STOPPED, "The operation could not be performed because the filter is not stopped." ),
141
INFO( VFW_E_NOT_PAUSED, "The operation could not be performed because the filter is not paused." ),
142
INFO( VFW_E_NOT_RUNNING, "The operation could not be performed because the filter is not running." ),
143
INFO( VFW_E_WRONG_STATE, "The operation could not be performed because the filter is in the wrong state." ),
144
INFO( VFW_E_START_TIME_AFTER_END, "The sample start time is after the sample end time." ),
145
INFO( VFW_E_INVALID_RECT, "The supplied rectangle is invalid." ),
146
INFO( VFW_E_TYPE_NOT_ACCEPTED, "This pin cannot use the supplied media type." ),
147
INFO( VFW_E_SAMPLE_REJECTED, "This sample cannot be rendered." ),
148
INFO( VFW_E_SAMPLE_REJECTED_EOS, "This sample cannot be rendered because the end of the stream has been reached." ),
149
INFO( VFW_E_DUPLICATE_NAME, "An attempt to add a filter with a duplicate name failed." ),
150
INFO( VFW_E_TIMEOUT, "A time-out has expired." ),
151
INFO( VFW_E_INVALID_FILE_FORMAT, "The file format is invalid." ),
152
INFO( VFW_E_ENUM_OUT_OF_RANGE, "The list has already been exhausted." ),
153
INFO( VFW_E_CIRCULAR_GRAPH, "The filter graph is circular." ),
154
INFO( VFW_E_NOT_ALLOWED_TO_SAVE, "Updates are not allowed in this state." ),
155
INFO( VFW_E_TIME_ALREADY_PASSED, "An attempt was made to queue a command for a time in the past." ),
156
INFO( VFW_E_ALREADY_CANCELLED, "The queued command has already been canceled." ),
157
INFO( VFW_E_CORRUPT_GRAPH_FILE, "Cannot render the file because it is corrupt." ),
158
INFO( VFW_E_ADVISE_ALREADY_SET, "An overlay advise link already exists." ),
159
INFO( VFW_E_NO_MODEX_AVAILABLE, "No full-screen modes are available." ),
160
INFO( VFW_E_NO_ADVISE_SET, "This Advise cannot be canceled because it was not successfully set." ),
161
INFO( VFW_E_NO_FULLSCREEN, "A full-screen mode is not available." ),
162
INFO( VFW_E_IN_FULLSCREEN_MODE, "Cannot call IVideoWindow methods while in full-screen mode." ),
163
INFO( VFW_E_UNKNOWN_FILE_TYPE, "The media type of this file is not recognized." ),
164
INFO( VFW_E_CANNOT_LOAD_SOURCE_FILTER, "The source filter for this file could not be loaded." ),
165
INFO( VFW_E_FILE_TOO_SHORT, "A file appeared to be incomplete." ),
166
INFO( VFW_E_INVALID_FILE_VERSION, "The version number of the file is invalid." ),
167
INFO( VFW_E_INVALID_CLSID, "This file is corrupt: it contains an invalid class identifier." ),
168
INFO( VFW_E_INVALID_MEDIA_TYPE, "This file is corrupt: it contains an invalid media type." ),
169
INFO( VFW_E_SAMPLE_TIME_NOT_SET, "No time stamp has been set for this sample." ),
170
INFO( VFW_E_MEDIA_TIME_NOT_SET, "No media time stamp has been set for this sample." ),
171
INFO( VFW_E_NO_TIME_FORMAT_SET, "No media time format has been selected." ),
172
INFO( VFW_E_MONO_AUDIO_HW, "Cannot change balance because audio device is mono only." ),
173
INFO( VFW_E_NO_DECOMPRESSOR, "Cannot play back the video stream: no suitable decompressor could be found." ),
174
INFO( VFW_E_NO_AUDIO_HARDWARE, "Cannot play back the audio stream: no audio hardware is available, or the hardware is not responding." ),
175
INFO( VFW_E_RPZA, "Cannot play back the video stream: format 'RPZA' is not supported." ),
176
INFO( VFW_E_PROCESSOR_NOT_SUITABLE, "ActiveMovie cannot play MPEG movies on this processor." ),
177
INFO( VFW_E_UNSUPPORTED_AUDIO, "Cannot play back the audio stream: the audio format is not supported." ),
178
INFO( VFW_E_UNSUPPORTED_VIDEO, "Cannot play back the video stream: the video format is not supported." ),
179
INFO( VFW_E_MPEG_NOT_CONSTRAINED, "ActiveMovie cannot play this video stream because it falls outside the constrained standard." ),
180
INFO( VFW_E_NOT_IN_GRAPH, "Cannot perform the requested function on an object that is not in the filter graph." ),
181
INFO( 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." ),
182
INFO( VFW_E_READ_ONLY, "The connection cannot be made because the stream is read only and the filter alters the data." ),
183
INFO( VFW_E_BUFFER_UNDERFLOW, "The buffer is not full enough." ),
184
INFO( VFW_E_UNSUPPORTED_STREAM, "Cannot play back the file. The format is not supported." ),
185
INFO( VFW_E_NO_TRANSPORT, "Pins cannot connect due to not supporting the same transport." ),
186
INFO( VFW_E_BAD_VIDEOCD, "The Video CD can't be read correctly by the device or is the data is corrupt." ),
187
INFO( VFW_E_OUT_OF_VIDEO_MEMORY, "There is not enough Video Memory at this display resolution and number of colors. Reducing resolution might help." ),
188
INFO( VFW_E_VP_NEGOTIATION_FAILED, "The VideoPort connection negotiation process has failed." ),
189
INFO( 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." ),
190
INFO( VFW_E_NO_VP_HARDWARE, "No VideoPort hardware is available, or the hardware is not responding." ),
191
INFO( VFW_E_NO_CAPTURE_HARDWARE, "No Capture hardware is available, or the hardware is not responding." ),
192
INFO( VFW_E_DVD_OPERATION_INHIBITED, "This User Operation is inhibited by DVD Content at this time." ),
193
INFO( VFW_E_DVD_INVALIDDOMAIN, "This Operation is not permitted in the current domain." ),
194
INFO( 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." ),
195
INFO( VFW_E_DVD_GRAPHNOTREADY, "DVD-Video playback graph has not been built yet." ),
196
INFO( VFW_E_DVD_RENDERFAIL, "DVD-Video playback graph building failed." ),
197
INFO( VFW_E_DVD_DECNOTENOUGH, "DVD-Video playback graph could not be built due to insufficient decoders." ),
198
INFO( VFW_E_DDRAW_VERSION_NOT_SUITABLE, "Version number of DirectDraw not suitable. Make sure to install dx5 or higher version." ),
199
INFO( VFW_E_COPYPROT_FAILED, "Copy protection cannot be enabled. Please make sure any other copy protected content is not being shown now." ),
200
INFO( VFW_E_TIME_EXPIRED, "This object cannot be used anymore as its time has expired." ),
201
INFO( VFW_E_DVD_WRONG_SPEED, "The operation cannot be performed at the current playback speed." ),
202
INFO( VFW_E_DVD_MENU_DOES_NOT_EXIST, "The specified menu doesn't exist." ),
203
INFO( VFW_E_DVD_CMD_CANCELLED, "The specified command was either cancelled or no longer exists." ),
204
INFO( VFW_E_DVD_STATE_WRONG_VERSION, "The data did not contain a recognized version." ),
205
INFO( VFW_E_DVD_STATE_CORRUPT, "The state data was corrupt." ),
206
INFO( VFW_E_DVD_STATE_WRONG_DISC, "The state data is from a different disc." ),
207
INFO( VFW_E_DVD_INCOMPATIBLE_REGION, "The region was not compatible with the current drive." ),
208
INFO( VFW_E_DVD_NO_ATTRIBUTES, "The requested DVD stream attribute does not exist." ),
209
INFO( VFW_E_DVD_NO_GOUP_PGC, "Currently there is no GoUp (Annex J user function) program chain (PGC)." ),
210
INFO( VFW_E_DVD_LOW_PARENTAL_LEVEL, "The current parental level was too low." ),
211
INFO( VFW_E_DVD_NOT_IN_KARAOKE_MODE, "The current audio is not karaoke content." ),
212
INFO( VFW_E_FRAME_STEP_UNSUPPORTED, "Frame step is not supported on this configuration." ),
213
INFO( VFW_E_DVD_STREAM_DISABLED, "The specified stream is disabled and cannot be selected." ),
214
INFO( 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." ),
215
INFO( VFW_E_DVD_INVALID_DISC, "The specified path does not point to a valid DVD disc." ),
216
INFO( VFW_E_DVD_NO_RESUME_INFORMATION, "There is currently no resume information." ),
217
INFO( 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." ),
218
INFO( 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." ),
219
INFO( VFW_E_CERTIFICATION_FAILURE, "An operation failed due to a certification failure." ),
220
INFO( VFW_E_BAD_KEY, "A registry entry is corrupt." ),
221
INFO( DIERR_NOTFOUND, "The requested object does not exist." ),
222
INFO( E_ACCESSDENIED, "Access is denied" ),
223
INFO( E_HANDLE, "Invalid handle" ),
224
INFO( DIERR_NOTACQUIRED, "The operation cannot be performed unless the device is acquired." ),
225
INFO( E_OUTOFMEMORY, "Ran out of memory" ),
226
INFO( DIERR_NOTINITIALIZED, "This object has not been initialized" ),
227
INFO( DIERR_INPUTLOST, "Access to the device has been lost. It must be re-acquired." ),
228
INFO( E_INVALIDARG, "An invalid parameter was passed to the returning function" ),
229
INFO( DIERR_BADDRIVERVER, "The object could not be created due to an incompatible driver version or mismatched or incomplete driver components." ),
230
INFO( DIERR_ACQUIRED, "The operation cannot be performed while the device is acquired." ),
231
INFO( DIERR_OLDDIRECTINPUTVERSION, "The application requires a newer version of DirectInput." ),
232
INFO( DIERR_BETADIRECTINPUTVERSION, "The application was written for an unsupported prerelease version of DirectInput." ),
233
INFO( E_PROP_ID_UNSUPPORTED, "The specified property ID is not supported for the specified property set." ),
234
INFO( E_PROP_SET_UNSUPPORTED, "The Specified property set is not supported." ),
235
INFO( DIERR_ALREADYINITIALIZED, "This object is already initialized" ),
236
INFO( DDERR_ALREADYINITIALIZED, "This object is already initialized" ),
237
INFO( DDERR_CANNOTATTACHSURFACE, "This surface cannot be attached to the requested surface." ),
238
INFO( DDERR_CANNOTDETACHSURFACE, "This surface cannot be detached from the requested surface." ),
239
INFO( DDERR_CURRENTLYNOTAVAIL, "Support is currently not available." ),
240
INFO( DDERR_EXCEPTION, "An exception was encountered while performing the requested operation" ),
241
INFO( DDERR_HEIGHTALIGN, "Height of rectangle provided is not a multiple of reqd alignment" ),
242
INFO( DDERR_INCOMPATIBLEPRIMARY, "Unable to match primary surface creation request with existing primary surface." ),
243
INFO( DDERR_INVALIDCAPS, "One or more of the caps bits passed to the callback are incorrect." ),
244
INFO( DDERR_INVALIDCLIPLIST, "DirectDraw does not support provided Cliplist." ),
245
INFO( DDERR_INVALIDMODE, "DirectDraw does not support the requested mode" ),
246
INFO( DDERR_INVALIDOBJECT, "DirectDraw received a pointer that was an invalid DIRECTDRAW object." ),
247
INFO( DDERR_INVALIDPIXELFORMAT, "pixel format was invalid as specified" ),
248
INFO( DDERR_INVALIDRECT, "Rectangle provided was invalid." ),
249
INFO( DDERR_LOCKEDSURFACES, "Operation could not be carried out because one or more surfaces are locked" ),
250
INFO( DDERR_NO3D, "There is no 3D present." ),
251
INFO( DDERR_NOALPHAHW, "Operation could not be carried out because there is no alpha acceleration hardware present or available." ),
252
INFO( DDERR_NOSTEREOHARDWARE, "Operation could not be carried out because there is no stereo hardware present or available." ),
253
INFO( DDERR_NOSURFACELEFT, "Operation could not be carried out because there is no hardware present which supports stereo surfaces" ),
254
INFO( DDERR_NOCLIPLIST, "no clip list available" ),
255
INFO( DDERR_NOCOLORCONVHW, "Operation could not be carried out because there is no color conversion hardware present or available." ),
256
INFO( DDERR_NOCOOPERATIVELEVELSET, "Create function called without DirectDraw object method SetCooperativeLevel being called." ),
257
INFO( DDERR_NOCOLORKEY, "Surface doesn't currently have a color key" ),
258
INFO( DDERR_NOCOLORKEYHW, "Operation could not be carried out because there is no hardware support of the dest color key." ),
259
INFO( DDERR_NODIRECTDRAWSUPPORT, "No DirectDraw support possible with current display driver" ),
260
INFO( DDERR_NOEXCLUSIVEMODE, "Operation requires the application to have exclusive mode but the application does not have exclusive mode." ),
261
INFO( DDERR_NOFLIPHW, "Flipping visible surfaces is not supported." ),
262
INFO( DDERR_NOGDI, "There is no GDI present." ),
263
INFO( DDERR_NOMIRRORHW, "Operation could not be carried out because there is no hardware present or available." ),
264
INFO( DDERR_NOTFOUND, "Requested item was not found" ),
265
INFO( DDERR_NOOVERLAYHW, "Operation could not be carried out because there is no overlay hardware present or available." ),
266
INFO( DDERR_OVERLAPPINGRECTS, "Operation could not be carried out because the source and destination rectangles are on the same surface and overlap each other." ),
267
INFO( DDERR_NORASTEROPHW, "Operation could not be carried out because there is no appropriate raster op hardware present or available." ),
268
INFO( DDERR_NOROTATIONHW, "Operation could not be carried out because there is no rotation hardware present or available." ),
269
INFO( DDERR_NOSTRETCHHW, "Operation could not be carried out because there is no hardware support for stretching" ),
270
INFO( DDERR_NOT4BITCOLOR, "DirectDrawSurface is not in 4 bit color palette and the requested operation requires 4 bit color palette." ),
271
INFO( DDERR_NOT4BITCOLORINDEX, "DirectDrawSurface is not in 4 bit color index palette and the requested operation requires 4 bit color index palette." ),
272
INFO( DDERR_NOT8BITCOLOR, "DirectDraw Surface is not in 8 bit color mode and the requested operation requires 8 bit color." ),
273
INFO( DDERR_NOTEXTUREHW, "Operation could not be carried out because there is no texture mapping hardware present or available." ),
274
INFO( DDERR_NOVSYNCHW, "Operation could not be carried out because there is no hardware support for vertical blank synchronized operations." ),
275
INFO( DDERR_NOZBUFFERHW, "Operation could not be carried out because there is no hardware support for zbuffer blitting." ),
276
INFO( DDERR_NOZOVERLAYHW, "Overlay surfaces could not be z layered based on their BltOrder because the hardware does not support z layering of overlays." ),
277
INFO( DDERR_OUTOFCAPS, "The hardware needed for the requested operation has already been allocated." ),
278
INFO( DDERR_OVERLAYCANTCLIP, "hardware does not support clipped overlays" ),
279
INFO( DDERR_OVERLAYCOLORKEYONLYONEACTIVE, "Can only have one color key active at one time for overlays" ),
280
INFO( DDERR_PALETTEBUSY, "Access to this palette is being refused because the palette is already locked by another thread." ),
281
INFO( DDERR_COLORKEYNOTSET, "No src color key specified for this operation." ),
282
INFO( DDERR_SURFACEALREADYATTACHED, "This surface is already attached to the surface it is being attached to." ),
283
INFO( DDERR_SURFACEALREADYDEPENDENT, "This surface is already a dependency of the surface it is being made a dependency of." ),
284
INFO( DDERR_SURFACEBUSY, "Access to this surface is being refused because the surface is already locked by another thread." ),
285
INFO( 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." ),
286
INFO( DDERR_SURFACEISOBSCURED, "Access to Surface refused because Surface is obscured." ),
287
INFO( 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." ),
288
INFO( DDERR_SURFACENOTATTACHED, "The requested surface is not attached." ),
289
INFO( DDERR_TOOBIGHEIGHT, "Height requested by DirectDraw is too large." ),
290
INFO( DDERR_TOOBIGSIZE, "Size requested by DirectDraw is too large -- The individual height and width are OK." ),
291
INFO( DDERR_TOOBIGWIDTH, "Width requested by DirectDraw is too large." ),
292
INFO( DDERR_UNSUPPORTEDFORMAT, "Pixel format requested is unsupported by DirectDraw" ),
293
INFO( DDERR_UNSUPPORTEDMASK, "Bitmask in the pixel format requested is unsupported by DirectDraw" ),
294
INFO( DDERR_INVALIDSTREAM, "The specified stream contains invalid data" ),
295
INFO( DDERR_VERTICALBLANKINPROGRESS, "vertical blank is in progress" ),
296
INFO( DDERR_WASSTILLDRAWING, "Informs DirectDraw that the previous Blt which is transferring information to or from this Surface is incomplete." ),
297
INFO( DDERR_DDSCAPSCOMPLEXREQUIRED, "The specified surface type requires specification of the COMPLEX flag" ),
298
INFO( DDERR_XALIGN, "Rectangle provided was not horizontally aligned on reqd. boundary" ),
299
INFO( DDERR_INVALIDDIRECTDRAWGUID, "The GUID passed to DirectDrawCreate is not a valid DirectDraw driver identifier." ),
300
INFO( DDERR_DIRECTDRAWALREADYCREATED, "A DirectDraw object representing this driver has already been created for this process." ),
301
INFO( DDERR_NODIRECTDRAWHW, "A hardware only DirectDraw object creation was attempted but the driver did not support any hardware." ),
302
INFO( DDERR_PRIMARYSURFACEALREADYEXISTS, "this process already has created a primary surface" ),
303
INFO( DDERR_NOEMULATION, "software emulation not available." ),
304
INFO( DDERR_REGIONTOOSMALL, "region passed to Clipper::GetClipList is too small." ),
305
INFO( DDERR_CLIPPERISUSINGHWND, "an attempt was made to set a clip list for a clipper object that is already monitoring an hwnd." ),
306
INFO( DDERR_NOCLIPPERATTACHED, "No clipper object attached to surface object" ),
307
INFO( DDERR_NOHWND, "Clipper notification requires an HWND or no HWND has previously been set as the CooperativeLevel HWND." ),
308
INFO( DDERR_HWNDSUBCLASSED, "HWND used by DirectDraw CooperativeLevel has been subclassed, this prevents DirectDraw from restoring state." ),
309
INFO( DDERR_HWNDALREADYSET, "The CooperativeLevel HWND has already been set. It cannot be reset while the process has surfaces or palettes created." ),
310
INFO( DDERR_NOPALETTEATTACHED, "No palette object attached to this surface." ),
311
INFO( DDERR_NOPALETTEHW, "No hardware support for 16 or 256 color palettes." ),
312
INFO( DDERR_BLTFASTCANTCLIP, "If a clipper object is attached to the source surface passed into a BltFast call." ),
313
INFO( DDERR_NOBLTHW, "No blter." ),
314
INFO( DDERR_NODDROPSHW, "No DirectDraw ROP hardware." ),
315
INFO( DDERR_OVERLAYNOTVISIBLE, "returned when GetOverlayPosition is called on a hidden overlay" ),
316
INFO( DDERR_NOOVERLAYDEST, "returned when GetOverlayPosition is called on an overlay that UpdateOverlay has never been called on to establish a destination." ),
317
INFO( DDERR_INVALIDPOSITION, "returned when the position of the overlay on the destination is no longer legal for that destination." ),
318
INFO( DDERR_NOTAOVERLAYSURFACE, "returned when an overlay member is called for a non-overlay surface" ),
319
INFO( DDERR_EXCLUSIVEMODEALREADYSET, "An attempt was made to set the cooperative level when it was already set to exclusive." ),
320
INFO( DDERR_NOTFLIPPABLE, "An attempt has been made to flip a surface that is not flippable." ),
321
INFO( DDERR_CANTDUPLICATE, "Can't duplicate primary & 3D surfaces, or surfaces that are implicitly created." ),
322
INFO( 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." ),
323
INFO( 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)" ),
324
INFO( DDERR_NODC, "No DC was ever created for this surface." ),
325
INFO( DDERR_WRONGMODE, "This surface cannot be restored because it was created in a different mode." ),
326
INFO( DDERR_IMPLICITLYCREATED, "This surface cannot be restored because it is an implicitly created surface." ),
327
INFO( DDERR_NOTPALETTIZED, "The surface being used is not a palette-based surface" ),
328
INFO( DDERR_UNSUPPORTEDMODE, "The display is currently in an unsupported mode" ),
329
INFO( DDERR_NOMIPMAPHW, "Operation could not be carried out because there is no mip-map texture mapping hardware present or available." ),
330
INFO( DDERR_INVALIDSURFACETYPE, "The requested action could not be performed because the surface was of the wrong type." ),
331
INFO( DDERR_NOOPTIMIZEHW, "Device does not support optimized surfaces, therefore no video memory optimized surfaces" ),
332
INFO( DDERR_NOTLOADED, "Surface is an optimized surface, but has not yet been allocated any memory" ),
333
INFO( DDERR_NOFOCUSWINDOW, "Attempt was made to create or set a device window without first setting the focus window" ),
334
INFO( DDERR_NOTONMIPMAPSUBLEVEL, "Attempt was made to set a palette on a mipmap sublevel" ),
335
INFO( DDERR_DCALREADYCREATED, "A DC has already been returned for this surface. Only one DC can be retrieved per surface." ),
336
INFO( DDERR_NONONLOCALVIDMEM, "An attempt was made to allocate non-local video memory from a device that does not support non-local video memory." ),
337
INFO( DDERR_CANTPAGELOCK, "The attempt to page lock a surface failed." ),
338
INFO( DDERR_CANTPAGEUNLOCK, "The attempt to page unlock a surface failed." ),
339
INFO( DDERR_NOTPAGELOCKED, "An attempt was made to page unlock a surface with no outstanding page locks." ),
340
INFO( DDERR_MOREDATA, "There is more data available than the specified buffer size could hold" ),
341
INFO( DDERR_EXPIRED, "The data has expired and is therefore no longer valid." ),
342
INFO( DDERR_TESTFINISHED, "The mode test has finished executing." ),
343
INFO( DDERR_NEWMODE, "The mode test has switched to a new mode." ),
344
INFO( DDERR_D3DNOTINITIALIZED, "D3D has not yet been initialized." ),
345
INFO( DDERR_VIDEONOTACTIVE, "The video port is not active" ),
346
INFO( DDERR_NOMONITORINFORMATION, "The monitor does not have EDID data." ),
347
INFO( DDERR_NODRIVERSUPPORT, "The driver does not enumerate display mode refresh rates." ),
348
INFO( DDERR_DEVICEDOESNTOWNSURFACE, "Surfaces created by one direct draw device cannot be used directly by another direct draw device." ),
349
INFO( DSERR_ALLOCATED, "The call failed because resources (such as a priority level) were already being used by another caller" ),
350
INFO( DSERR_CONTROLUNAVAIL, "The control (vol, pan, etc.) requested by the caller is not available" ),
351
INFO( DSERR_INVALIDCALL, "This call is not valid for the current state of this object" ),
352
INFO( DSERR_PRIOLEVELNEEDED, "The caller does not have the priority level required for the function to succeed" ),
353
INFO( DSERR_BADFORMAT, "The specified WAVE format is not supported" ),
354
INFO( DSERR_NODRIVER, "No sound driver is available for use" ),
355
INFO( DSERR_ALREADYINITIALIZED, "This object is already initialized" ),
356
INFO( DSERR_BUFFERLOST, "The buffer memory has been lost, and must be restored" ),
357
INFO( DSERR_OTHERAPPHASPRIO, "Another app has a higher priority level, preventing this call from succeeding" ),
358
INFO( DSERR_UNINITIALIZED, "This object has not been initialized" ),
359
INFO( DSERR_BUFFERTOOSMALL, "Tried to create a DSBCAPS_CTRLFX buffer shorter than DSBSIZE_FX_MIN milliseconds" ),
360
INFO( DSERR_DS8_REQUIRED, "Attempt to use DirectSound 8 functionality on an older DirectSound object" ),
361
INFO( DSERR_SENDLOOP, "A circular loop of send effects was detected" ),
362
INFO( DSERR_BADSENDBUFFERGUID, "The GUID specified in an audiopath file does not match a valid MIXIN buffer" ),
363
INFO( DMUS_E_DRIVER_FAILED, "An unexpected error was returned from a device driver, indicating possible failure of the driver or hardware." ),
364
INFO( DMUS_E_PORTS_OPEN, "The requested operation cannot be performed while there are instantiated ports in any process in the system." ),
365
INFO( DMUS_E_DEVICE_IN_USE, "The requested device is already in use (possibly by a non-DirectMusic client) and cannot be opened again." ),
366
INFO( DMUS_E_INSUFFICIENTBUFFER, "Buffer is not large enough for requested operation." ),
367
INFO( DMUS_E_BUFFERNOTSET, "No buffer was prepared for the download data." ),
368
INFO( DMUS_E_BUFFERNOTAVAILABLE, "Download failed due to inability to access or create download buffer." ),
369
INFO( DMUS_E_NOTADLSCOL, "Error parsing DLS collection. File is corrupt." ),
370
INFO( DMUS_E_INVALIDOFFSET, "Wave chunks in DLS collection file are at incorrect offsets." ),
371
INFO( DMUS_E_ALREADY_LOADED, "Second attempt to load a DLS collection that is currently open. " ),
372
INFO( DMUS_E_INVALIDPOS, "Error reading wave data from DLS collection. Indicates bad file." ),
373
INFO( DMUS_E_INVALIDPATCH, "There is no instrument in the collection that matches patch number." ),
374
INFO( DMUS_E_CANNOTSEEK, "The IStream* doesn't support Seek()." ),
375
INFO( DMUS_E_CANNOTWRITE, "The IStream* doesn't support Write()." ),
376
INFO( DMUS_E_CHUNKNOTFOUND, "The RIFF parser doesn't contain a required chunk while parsing file." ),
377
INFO( DMUS_E_INVALID_DOWNLOADID, "Invalid download id was used in the process of creating a download buffer." ),
378
INFO( DMUS_E_NOT_DOWNLOADED_TO_PORT, "Tried to unload an object that was not downloaded or previously unloaded." ),
379
INFO( DMUS_E_ALREADY_DOWNLOADED, "Buffer was already downloaded to synth." ),
380
INFO( DMUS_E_UNKNOWN_PROPERTY, "The specified property item was not recognized by the target object." ),
381
INFO( DMUS_E_SET_UNSUPPORTED, "The specified property item may not be set on the target object." ),
382
INFO( DMUS_E_GET_UNSUPPORTED, "* The specified property item may not be retrieved from the target object." ),
383
INFO( DMUS_E_NOTMONO, "Wave chunk has more than one interleaved channel. DLS format requires MONO." ),
384
INFO( DMUS_E_BADARTICULATION, "Invalid articulation chunk in DLS collection." ),
385
INFO( DMUS_E_BADINSTRUMENT, "Invalid instrument chunk in DLS collection." ),
386
INFO( DMUS_E_BADWAVELINK, "Wavelink chunk in DLS collection points to invalid wave." ),
387
INFO( DMUS_E_NOARTICULATION, "Articulation missing from instrument in DLS collection." ),
388
INFO( DMUS_E_NOTPCM, "Downoaded DLS wave is not in PCM format. " ),
389
INFO( DMUS_E_BADWAVE, "Bad wave chunk in DLS collection" ),
390
INFO( DMUS_E_BADOFFSETTABLE, "Offset Table for download buffer has errors. " ),
391
INFO( DMUS_E_UNKNOWNDOWNLOAD, "Attempted to download unknown data type." ),
392
INFO( DMUS_E_NOSYNTHSINK, "The operation could not be completed because no sink was connected to the synthesizer." ),
393
INFO( DMUS_E_ALREADYOPEN, "An attempt was made to open the software synthesizer while it was already open." ),
394
INFO( DMUS_E_ALREADYCLOSED, "An attempt was made to close the software synthesizer while it was already open." ),
395
INFO( DMUS_E_SYNTHNOTCONFIGURED, "The operation could not be completed because the software synth has not yet been fully configured." ),
396
INFO( DMUS_E_SYNTHACTIVE, "The operation cannot be carried out while the synthesizer is active." ),
397
INFO( DMUS_E_CANNOTREAD, "An error occurred while attempting to read from the IStream* object." ),
398
INFO( 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." ),
399
INFO( DMUS_E_BUFFER_EMPTY, "There was no data in the referenced buffer." ),
400
INFO( DMUS_E_BUFFER_FULL, "There is insufficient space to insert the given event into the buffer." ),
401
INFO( DMUS_E_PORT_NOT_CAPTURE, "The given operation could not be carried out because the port is a capture port." ),
402
INFO( DMUS_E_PORT_NOT_RENDER, "The given operation could not be carried out because the port is a render port." ),
403
INFO( 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." ),
404
INFO( DMUS_E_ALREADY_ACTIVATED, "The operation cannot be carried out while the port is active." ),
405
INFO( DMUS_E_INVALIDBUFFER, "Invalid DirectSound buffer was handed to port. " ),
406
INFO( DMUS_E_WAVEFORMATNOTSUPPORTED, "Invalid buffer format was handed to the synth sink." ),
407
INFO( DMUS_E_SYNTHINACTIVE, "The operation cannot be carried out while the synthesizer is inactive." ),
408
INFO( DMUS_E_DSOUND_ALREADY_SET, "IDirectMusic::SetDirectSound has already been called. It may not be changed while in use." ),
409
INFO( 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." ),
410
INFO( DMUS_E_UNSUPPORTED_STREAM, "The IStream* object does not contain data supported by the loading object." ),
411
INFO( DMUS_E_ALREADY_INITED, "The object has already been initialized." ),
412
INFO( DMUS_E_INVALID_BAND, "The file does not contain a valid band." ),
413
INFO( 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." ),
414
INFO( 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." ),
415
INFO( 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." ),
416
INFO( 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." ),
417
INFO( 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." ),
418
INFO( 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." ),
419
INFO( DSERR_OBJECTNOTFOUND, "The object requested was not found (numerically equal to DMUS_E_NOT_FOUND)" ),
420
INFO( DMUS_E_NOT_INIT, "A required object is not initialized or failed to initialize." ),
421
INFO( DMUS_E_TYPE_DISABLED, "The requested parameter type is currently disabled. Parameter types may be enabled and disabled by certain calls to SetParam()." ),
422
INFO( DMUS_E_TYPE_UNSUPPORTED, "The requested parameter type is not supported on the object." ),
423
INFO( DMUS_E_TIME_PAST, "The time is in the past, and the operation cannot succeed." ),
424
INFO( DMUS_E_TRACK_NOT_FOUND, "The requested track is not contained by the segment." ),
425
INFO( DMUS_E_TRACK_NO_CLOCKTIME_SUPPORT, "The track does not support clock time playback or getparam." ),
426
INFO( DMUS_E_NO_MASTER_CLOCK, "There is no master clock in the performance. Be sure to call IDirectMusicPerformance::Init()." ),
427
INFO( DMUS_E_LOADER_NOCLASSID, "The class id field is required and missing in the DMUS_OBJECTDESC." ),
428
INFO( DMUS_E_LOADER_BADPATH, "The requested file path is invalid." ),
429
INFO( DMUS_E_LOADER_FAILEDOPEN, "File open failed - either file doesn't exist or is locked." ),
430
INFO( DMUS_E_LOADER_FORMATNOTSUPPORTED, "Search data type is not supported." ),
431
INFO( DMUS_E_LOADER_FAILEDCREATE, "Unable to find or create object." ),
432
INFO( DMUS_E_LOADER_OBJECTNOTFOUND, "Object was not found." ),
433
INFO( DMUS_E_LOADER_NOFILENAME, "The file name is missing from the DMUS_OBJECTDESC." ),
434
INFO( DMUS_E_INVALIDFILE, "The file requested is not a valid file." ),
435
INFO( DMUS_E_ALREADY_EXISTS, "The tool is already contained in the graph. Create a new instance." ),
436
INFO( DMUS_E_OUT_OF_RANGE, "Value is out of range, for instance the requested length is longer than the segment." ),
437
INFO( DMUS_E_SEGMENT_INIT_FAILED, "Segment initialization failed, most likely due to a critical memory situation." ),
438
INFO( DMUS_E_ALREADY_SENT, "The DMUS_PMSG has already been sent to the performance object via IDirectMusicPerformance::SendPMsg()." ),
439
INFO( 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()." ),
440
INFO( DMUS_E_CANNOT_OPEN_PORT, "The default system port could not be opened." ),
441
INFO( 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." ),
442
INFO( 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." ),
443
INFO( DMUS_E_NOT_LOADED, "An attempt to use this object failed because it first needs to be loaded." ),
444
INFO( DMUS_E_SCRIPT_LANGUAGE_INCOMPATIBLE, "The activeX scripting engine for the script's language is not compatible with DirectMusic." ),
445
INFO( DMUS_E_SCRIPT_UNSUPPORTED_VARTYPE, "A variant was used that had a type that is not supported by DirectMusic." ),
446
INFO( 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." ),
447
INFO( 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." ),
448
INFO( DMUS_E_SCRIPT_LOADSCRIPT_ERROR, "An error occurred while parsing a script loaded using LoadScript. The script that was loaded contains an error." ),
449
INFO( DMUS_E_SCRIPT_INVALID_FILE, "The script file is invalid." ),
450
INFO( DMUS_E_INVALID_SCRIPTTRACK, "The file contains an invalid script track." ),
451
INFO( DMUS_E_SCRIPT_VARIABLE_NOT_FOUND, "The script does not contain a variable with the specified name." ),
452
INFO( DMUS_E_SCRIPT_ROUTINE_NOT_FOUND, "The script does not contain a routine with the specified name." ),
453
INFO( DMUS_E_SCRIPT_CONTENT_READONLY, "Scripts variables for content referenced or embedded in a script cannot be set." ),
454
INFO( 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." ),
455
INFO( 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." ),
456
INFO( DMUS_E_INVALID_SEGMENTTRIGGERTRACK, "The file contains an invalid segment trigger track." ),
457
INFO( DMUS_E_INVALID_LYRICSTRACK, "The file contains an invalid lyrics track." ),
458
INFO( DMUS_E_INVALID_PARAMCONTROLTRACK, "The file contains an invalid parameter control track." ),
459
INFO( 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." ),
460
INFO( 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." ),
461
INFO( 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." ),
462
INFO( 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." ),
463
INFO( 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. " ),
464
INFO( DMUS_E_NO_AUDIOPATH_CONFIG, "A segment or song was asked for its embedded audio path configuration, but there isn't any. " ),
465
INFO( DMUS_E_AUDIOPATH_INACTIVE, "An audiopath is inactive, perhaps because closedown was called." ),
466
INFO( DMUS_E_AUDIOPATH_NOBUFFER, "An audiopath failed to create because a requested buffer could not be created." ),
467
INFO( DMUS_E_AUDIOPATH_NOPORT, "An audiopath could not be used for playback because it lacked port assignments." ),
468
INFO( DMUS_E_NO_AUDIOPATH, "Attempt was made to play segment in audiopath mode and there was no audiopath." ),
469
INFO( DMUS_E_INVALIDCHUNK, "Invalid data was found in a RIFF file chunk." ),
470
INFO( DMUS_E_AUDIOPATH_NOGLOBALFXBUFFER, "Attempt was made to create an audiopath that sends to a global effects buffer which did not exist." ),
471
INFO( DMUS_E_INVALID_CONTAINER_OBJECT, "The file does not contain a valid container object." ),
472
#undef INFO
473
};
474
475
const char * WINAPI DXGetErrorString8A(HRESULT hr)
476
{
477
unsigned int i, j, k = 0;
478
479
for (i = ARRAY_SIZE(info); i != 0; i /= 2) {
480
j = k + (i / 2);
481
if (hr == info[j].hr)
482
return info[j].resultA;
483
if ((unsigned int)hr > (unsigned int)info[j].hr) {
484
k = j + 1;
485
i--;
486
}
487
}
488
489
return "Unknown";
490
}
491
492
const WCHAR * WINAPI DXGetErrorString8W(HRESULT hr)
493
{
494
unsigned int i, j, k = 0;
495
496
for (i = ARRAY_SIZE(info); i != 0; i /= 2) {
497
j = k + (i / 2);
498
if (hr == info[j].hr)
499
return info[j].resultW;
500
if ((unsigned int)hr > (unsigned int)info[j].hr) {
501
k = j + 1;
502
i--;
503
}
504
}
505
506
return L"Unknown";
507
}
508
509
const char * WINAPI DXGetErrorDescription8A(HRESULT hr)
510
{
511
unsigned int i, j, k = 0;
512
513
for (i = ARRAY_SIZE(info); i != 0; i /= 2) {
514
j = k + (i / 2);
515
if (hr == info[j].hr)
516
return info[j].descriptionA;
517
if ((unsigned int)hr > (unsigned int)info[j].hr) {
518
k = j + 1;
519
i--;
520
}
521
}
522
523
return "n/a";
524
}
525
526
const WCHAR * WINAPI DXGetErrorDescription8W(HRESULT hr)
527
{
528
unsigned int i, j, k = 0;
529
530
for (i = ARRAY_SIZE(info); i != 0; i /= 2) {
531
j = k + (i / 2);
532
if (hr == info[j].hr)
533
return info[j].descriptionW;
534
if ((unsigned int)hr > (unsigned int)info[j].hr) {
535
k = j + 1;
536
i--;
537
}
538
}
539
540
return L"n/a";
541
}
542
543
HRESULT WINAPI DXTraceA(const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, BOOL bPopMsgBox)
544
{
545
char msg[1024];
546
547
if (bPopMsgBox) {
548
wsprintfA(msg, "File: %s\nLine: %d\nError Code: %s (0x%08x)\nCalling: %s",
549
strFile, dwLine, DXGetErrorString8A(hr), hr, strMsg);
550
MessageBoxA(0, msg, "Unexpected error encountered", MB_OK|MB_ICONERROR);
551
} else {
552
wsprintfA(msg, "%s(%d): %s (hr=%s (0x%08x))", strFile,
553
dwLine, strMsg, DXGetErrorString8A(hr), hr);
554
OutputDebugStringA(msg);
555
}
556
557
return hr;
558
}
559
560
HRESULT WINAPI DXTraceW(const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, BOOL bPopMsgBox)
561
{
562
WCHAR msg[1024];
563
564
if (bPopMsgBox) {
565
wsprintfW(msg, L"File: %s\nLine: %d\nError Code: %s (0x%08x)\nCalling: %s",
566
strFile, dwLine, DXGetErrorString8W(hr), hr, strMsg);
567
MessageBoxW(0, msg, L"Unexpected error encountered", MB_OK|MB_ICONERROR);
568
} else {
569
wsprintfW(msg, L"%s(%d): %s (hr=%s (0x%08x)) ", strFile, dwLine, strMsg,
570
DXGetErrorString8W(hr), hr);
571
OutputDebugStringW(msg);
572
}
573
574
return hr;
575
}
576
577