Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/libs/dxerr9/dxerr9.c
4387 views
1
/*
2
* DirectX 9 error routines
3
*
4
* Copyright 2004 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 "dmerror.h"
31
#include "ddraw.h"
32
#include "dinput.h"
33
#include "vfwmsgs.h"
34
#include "mmstream.h"
35
#include "dplay8.h"
36
#include "dxfile.h"
37
#include "d3d9.h"
38
#include "dsound.h"
39
40
#include "dxerr9.h"
41
42
static const struct {
43
HRESULT hr;
44
const CHAR* resultA;
45
const WCHAR* resultW;
46
const CHAR* descriptionA;
47
const WCHAR* descriptionW;
48
} info[] =
49
{
50
#define INFO(err,descr) { err, #err, L"" #err, descr, L"" descr }
51
INFO( S_OK, "The function completed successfully" ),
52
INFO( S_FALSE, "Call successful, but returned FALSE" ),
53
INFO( ERROR_FILE_NOT_FOUND, "The system cannot find the file specified." ),
54
INFO( ERROR_PATH_NOT_FOUND, "The system cannot find the path specified." ),
55
INFO( ERROR_TOO_MANY_OPEN_FILES, "The system cannot open the file." ),
56
INFO( ERROR_ACCESS_DENIED, "Access is denied." ),
57
INFO( ERROR_INVALID_HANDLE, "The handle is invalid." ),
58
INFO( ERROR_NOT_ENOUGH_MEMORY, "Not enough storage is available to process this command." ),
59
INFO( ERROR_INVALID_BLOCK, "The storage control block address is invalid." ),
60
INFO( ERROR_BAD_ENVIRONMENT, "The environment is incorrect." ),
61
INFO( ERROR_BAD_FORMAT, "An attempt was made to load a program with an incorrect format." ),
62
INFO( ERROR_OUTOFMEMORY, "The system cannot find the drive specified." ),
63
INFO( VFW_S_NO_MORE_ITEMS, "The end of the list has been reached." ),
64
INFO( VFW_S_DUPLICATE_NAME, "An attempt to add a filter with a duplicate name succeeded with a modified name." ),
65
INFO( VFW_S_STATE_INTERMEDIATE, "The state transition has not completed." ),
66
INFO( VFW_S_PARTIAL_RENDER, "Some of the streams in this movie are in an unsupported format." ),
67
INFO( VFW_S_SOME_DATA_IGNORED, "The file contained some property settings that were not used." ),
68
INFO( VFW_S_CONNECTIONS_DEFERRED, "Some connections have failed and have been deferred." ),
69
INFO( VFW_S_RESOURCE_NOT_NEEDED, "The resource specified is no longer needed." ),
70
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." ),
71
INFO( VFW_S_VIDEO_NOT_RENDERED, "Cannot play back the video stream: no suitable decompressor could be found." ),
72
INFO( VFW_S_AUDIO_NOT_RENDERED, "Cannot play back the audio stream: no audio hardware is available." ),
73
INFO( VFW_S_RPZA, "Cannot play back the video stream: format 'RPZA' is not supported." ),
74
INFO( VFW_S_ESTIMATED, "The value returned had to be estimated. Its accuracy cannot be guaranteed." ),
75
INFO( VFW_S_RESERVED, "This success code is reserved for internal purposes within ActiveMovie." ),
76
INFO( VFW_S_STREAM_OFF, "The stream has been turned off." ),
77
INFO( VFW_S_CANT_CUE, "The graph can't be cued because of lack of or corrupt data." ),
78
INFO( VFW_S_NO_STOP_TIME, "The stop time for the sample was not set." ),
79
INFO( VFW_S_NOPREVIEWPIN, "There was no preview pin available, so the capture pin output is being split to provide both capture and preview." ),
80
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." ),
81
INFO( VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLE, "The audio stream did not contain sufficient information to determine the contents of each channel." ),
82
INFO( VFW_S_DVD_NOT_ACCURATE, "The seek into the movie was not frame accurate." ),
83
INFO( D3DOK_NOAUTOGEN, "The call succeeded but there won't be any mipmaps generated" ),
84
INFO( DS_NO_VIRTUALIZATION, "The call succeeded, but we had to substitute the 3D algorithm" ),
85
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." ),
86
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." ),
87
INFO( DMUS_S_REQUEUE, "Return value from IDirectMusicTool::ProcessPMsg() which indicates to the performance that it should cue the PMsg again automatically." ),
88
INFO( DMUS_S_FREE, "Return value from IDirectMusicTool::ProcessPMsg() which indicates to the performance that it should free the PMsg automatically." ),
89
INFO( DMUS_S_END, "Return value from IDirectMusicTrack::Play() which indicates to the segment that the track has no more data after mtEnd." ),
90
INFO( DMUS_S_STRING_TRUNCATED, "Returned string has been truncated to fit the buffer size." ),
91
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." ),
92
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." ),
93
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." ),
94
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." ),
95
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." ),
96
INFO( DMUS_S_GARBAGE_COLLECTED, "The requested operation was not performed because during CollectGarbage the loader determined that the object had been released." ),
97
INFO( E_PENDING, "The data necessary to complete this operation is not yet available." ),
98
INFO( E_NOTIMPL, "The function called is not supported at this time" ),
99
INFO( E_NOINTERFACE, "The requested COM interface is not available" ),
100
INFO( E_POINTER, "Invalid pointer" ),
101
INFO( E_ABORT, "Operation aborted" ),
102
INFO( E_FAIL, "An undetermined error occurred" ),
103
INFO( E_UNEXPECTED, "Catastrophic failure" ),
104
INFO( CLASSFACTORY_E_FIRST, "This object does not support aggregation" ),
105
INFO( REGDB_E_CLASSNOTREG, "Class not registered" ),
106
INFO( CO_E_NOTINITIALIZED, "CoInitialize has not been called." ),
107
INFO( CO_E_ALREADYINITIALIZED, "CoInitialize has already been called." ),
108
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" ),
109
INFO( DIERR_DEVICEFULL, "& VFW_E_INVALIDSUBTYPE & DMO_E_INVALIDSTREAMINDEX The device is full. & An invalid media subtype was specified." ),
110
INFO( DIERR_MOREDATA, "& VFW_E_NEED_OWNER & DMO_E_INVALIDTYPE Not all the requested information fit into the buffer. & This object can only be created as an aggregated object." ),
111
INFO( DIERR_NOTDOWNLOADED, "& VFW_E_ENUM_OUT_OF_SYNC & DMO_E_TYPE_NOT_SET The effect is not downloaded. & The enumerator has become invalid." ),
112
INFO( DIERR_HASEFFECTS, "& VFW_E_ALREADY_CONNECTED & DMO_E_NOTACCEPTING The device cannot be reinitialized because there are still effects attached to it. & At least one of the pins involved in the operation is already connected." ),
113
INFO( DIERR_NOTEXCLUSIVEACQUIRED, "& VFW_E_FILTER_ACTIVE & DMO_E_TYPE_NOT_ACCEPTED The operation cannot be performed unless the device is acquired in DISCL_EXCLUSIVE mode. & This operation cannot be performed because the filter is active." ),
114
INFO( DIERR_INCOMPLETEEFFECT, "& VFW_E_NO_TYPES & DMO_E_NO_MORE_ITEMS The effect could not be downloaded because essential information is missing. For example, no axes have been associated with the effect, or no type-specific information has been created. & One of the specified pins supports no media types." ),
115
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." ),
116
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." ),
117
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." ),
118
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." ),
119
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." ),
120
INFO( VFW_E_BUFFER_NOTSET, "No buffer space has been set" ),
121
INFO( VFW_E_BUFFER_OVERFLOW, "The buffer is not big enough." ),
122
INFO( VFW_E_BADALIGN, "An invalid alignment was specified." ),
123
INFO( VFW_E_ALREADY_COMMITTED, "Cannot change allocated memory while the filter is active." ),
124
INFO( VFW_E_BUFFERS_OUTSTANDING, "One or more buffers are still active." ),
125
INFO( VFW_E_NOT_COMMITTED, "Cannot allocate a sample when the allocator is not active." ),
126
INFO( VFW_E_SIZENOTSET, "Cannot allocate memory because no size has been set." ),
127
INFO( VFW_E_NO_CLOCK, "Cannot lock for synchronization because no clock has been defined." ),
128
INFO( VFW_E_NO_SINK, "Quality messages could not be sent because no quality sink has been defined." ),
129
INFO( VFW_E_NO_INTERFACE, "A required interface has not been implemented." ),
130
INFO( VFW_E_NOT_FOUND, "An object or name was not found." ),
131
INFO( VFW_E_CANNOT_CONNECT, "No combination of intermediate filters could be found to make the connection." ),
132
INFO( VFW_E_CANNOT_RENDER, "No combination of filters could be found to render the stream." ),
133
INFO( VFW_E_CHANGING_FORMAT, "Could not change formats dynamically." ),
134
INFO( VFW_E_NO_COLOR_KEY_SET, "No color key has been set." ),
135
INFO( VFW_E_NOT_OVERLAY_CONNECTION, "Current pin connection is not using the IOverlay transport." ),
136
INFO( VFW_E_NOT_SAMPLE_CONNECTION, "Current pin connection is not using the IMemInputPin transport." ),
137
INFO( VFW_E_PALETTE_SET, "Setting a color key would conflict with the palette already set." ),
138
INFO( VFW_E_COLOR_KEY_SET, "Setting a palette would conflict with the color key already set." ),
139
INFO( VFW_E_NO_COLOR_KEY_FOUND, "No matching color key is available." ),
140
INFO( VFW_E_NO_PALETTE_AVAILABLE, "No palette is available." ),
141
INFO( VFW_E_NO_DISPLAY_PALETTE, "Display does not use a palette." ),
142
INFO( VFW_E_TOO_MANY_COLORS, "Too many colors for the current display settings." ),
143
INFO( VFW_E_STATE_CHANGED, "The state changed while waiting to process the sample." ),
144
INFO( VFW_E_NOT_STOPPED, "The operation could not be performed because the filter is not stopped." ),
145
INFO( VFW_E_NOT_PAUSED, "The operation could not be performed because the filter is not paused." ),
146
INFO( VFW_E_NOT_RUNNING, "The operation could not be performed because the filter is not running." ),
147
INFO( VFW_E_WRONG_STATE, "The operation could not be performed because the filter is in the wrong state." ),
148
INFO( VFW_E_START_TIME_AFTER_END, "The sample start time is after the sample end time." ),
149
INFO( VFW_E_INVALID_RECT, "The supplied rectangle is invalid." ),
150
INFO( VFW_E_TYPE_NOT_ACCEPTED, "This pin cannot use the supplied media type." ),
151
INFO( VFW_E_SAMPLE_REJECTED, "This sample cannot be rendered." ),
152
INFO( VFW_E_SAMPLE_REJECTED_EOS, "This sample cannot be rendered because the end of the stream has been reached." ),
153
INFO( VFW_E_DUPLICATE_NAME, "An attempt to add a filter with a duplicate name failed." ),
154
INFO( VFW_E_TIMEOUT, "A time-out has expired." ),
155
INFO( VFW_E_INVALID_FILE_FORMAT, "The file format is invalid." ),
156
INFO( VFW_E_ENUM_OUT_OF_RANGE, "The list has already been exhausted." ),
157
INFO( VFW_E_CIRCULAR_GRAPH, "The filter graph is circular." ),
158
INFO( VFW_E_NOT_ALLOWED_TO_SAVE, "Updates are not allowed in this state." ),
159
INFO( VFW_E_TIME_ALREADY_PASSED, "An attempt was made to queue a command for a time in the past." ),
160
INFO( VFW_E_ALREADY_CANCELLED, "The queued command has already been canceled." ),
161
INFO( VFW_E_CORRUPT_GRAPH_FILE, "Cannot render the file because it is corrupt." ),
162
INFO( VFW_E_ADVISE_ALREADY_SET, "An overlay advise link already exists." ),
163
INFO( VFW_E_NO_MODEX_AVAILABLE, "No full-screen modes are available." ),
164
INFO( VFW_E_NO_ADVISE_SET, "This Advise cannot be canceled because it was not successfully set." ),
165
INFO( VFW_E_NO_FULLSCREEN, "A full-screen mode is not available." ),
166
INFO( VFW_E_IN_FULLSCREEN_MODE, "Cannot call IVideoWindow methods while in full-screen mode." ),
167
INFO( VFW_E_UNKNOWN_FILE_TYPE, "The media type of this file is not recognized." ),
168
INFO( VFW_E_CANNOT_LOAD_SOURCE_FILTER, "The source filter for this file could not be loaded." ),
169
INFO( VFW_E_FILE_TOO_SHORT, "A file appeared to be incomplete." ),
170
INFO( VFW_E_INVALID_FILE_VERSION, "The version number of the file is invalid." ),
171
INFO( VFW_E_INVALID_CLSID, "This file is corrupt: it contains an invalid class identifier." ),
172
INFO( VFW_E_INVALID_MEDIA_TYPE, "This file is corrupt: it contains an invalid media type." ),
173
INFO( VFW_E_SAMPLE_TIME_NOT_SET, "No time stamp has been set for this sample." ),
174
INFO( VFW_E_MEDIA_TIME_NOT_SET, "No media time stamp has been set for this sample." ),
175
INFO( VFW_E_NO_TIME_FORMAT_SET, "No media time format has been selected." ),
176
INFO( VFW_E_MONO_AUDIO_HW, "Cannot change balance because audio device is mono only." ),
177
INFO( VFW_E_NO_DECOMPRESSOR, "Cannot play back the video stream: no suitable decompressor could be found." ),
178
INFO( VFW_E_NO_AUDIO_HARDWARE, "Cannot play back the audio stream: no audio hardware is available, or the hardware is not responding." ),
179
INFO( VFW_E_RPZA, "Cannot play back the video stream: format 'RPZA' is not supported." ),
180
INFO( VFW_E_PROCESSOR_NOT_SUITABLE, "ActiveMovie cannot play MPEG movies on this processor." ),
181
INFO( VFW_E_UNSUPPORTED_AUDIO, "Cannot play back the audio stream: the audio format is not supported." ),
182
INFO( VFW_E_UNSUPPORTED_VIDEO, "Cannot play back the video stream: the video format is not supported." ),
183
INFO( VFW_E_MPEG_NOT_CONSTRAINED, "ActiveMovie cannot play this video stream because it falls outside the constrained standard." ),
184
INFO( VFW_E_NOT_IN_GRAPH, "Cannot perform the requested function on an object that is not in the filter graph." ),
185
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." ),
186
INFO( VFW_E_READ_ONLY, "The connection cannot be made because the stream is read only and the filter alters the data." ),
187
INFO( VFW_E_BUFFER_UNDERFLOW, "The buffer is not full enough." ),
188
INFO( VFW_E_UNSUPPORTED_STREAM, "Cannot play back the file. The format is not supported." ),
189
INFO( VFW_E_NO_TRANSPORT, "Pins cannot connect due to not supporting the same transport." ),
190
INFO( VFW_E_BAD_VIDEOCD, "The Video CD can't be read correctly by the device or is the data is corrupt." ),
191
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." ),
192
INFO( VFW_E_VP_NEGOTIATION_FAILED, "The VideoPort connection negotiation process has failed." ),
193
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." ),
194
INFO( VFW_E_NO_VP_HARDWARE, "No VideoPort hardware is available, or the hardware is not responding." ),
195
INFO( VFW_E_NO_CAPTURE_HARDWARE, "No Capture hardware is available, or the hardware is not responding." ),
196
INFO( VFW_E_DVD_OPERATION_INHIBITED, "This User Operation is inhibited by DVD Content at this time." ),
197
INFO( VFW_E_DVD_INVALIDDOMAIN, "This Operation is not permitted in the current domain." ),
198
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." ),
199
INFO( VFW_E_DVD_GRAPHNOTREADY, "DVD-Video playback graph has not been built yet." ),
200
INFO( VFW_E_DVD_RENDERFAIL, "DVD-Video playback graph building failed." ),
201
INFO( VFW_E_DVD_DECNOTENOUGH, "DVD-Video playback graph could not be built due to insufficient decoders." ),
202
INFO( VFW_E_DDRAW_VERSION_NOT_SUITABLE, "Version number of DirectDraw not suitable. Make sure to install dx5 or higher version." ),
203
INFO( VFW_E_COPYPROT_FAILED, "Copy protection cannot be enabled. Please make sure any other copy protected content is not being shown now." ),
204
INFO( VFW_E_TIME_EXPIRED, "This object cannot be used anymore as its time has expired." ),
205
INFO( VFW_E_DVD_WRONG_SPEED, "The operation cannot be performed at the current playback speed." ),
206
INFO( VFW_E_DVD_MENU_DOES_NOT_EXIST, "The specified menu doesn't exist." ),
207
INFO( VFW_E_DVD_CMD_CANCELLED, "The specified command was either cancelled or no longer exists." ),
208
INFO( VFW_E_DVD_STATE_WRONG_VERSION, "The data did not contain a recognized version." ),
209
INFO( VFW_E_DVD_STATE_CORRUPT, "The state data was corrupt." ),
210
INFO( VFW_E_DVD_STATE_WRONG_DISC, "The state data is from a different disc." ),
211
INFO( VFW_E_DVD_INCOMPATIBLE_REGION, "The region was not compatible with the current drive." ),
212
INFO( VFW_E_DVD_NO_ATTRIBUTES, "The requested DVD stream attribute does not exist." ),
213
INFO( VFW_E_DVD_NO_GOUP_PGC, "Currently there is no GoUp (Annex J user function) program chain (PGC)." ),
214
INFO( VFW_E_DVD_LOW_PARENTAL_LEVEL, "The current parental level was too low." ),
215
INFO( VFW_E_DVD_NOT_IN_KARAOKE_MODE, "The current audio is not karaoke content." ),
216
INFO( VFW_E_FRAME_STEP_UNSUPPORTED, "Frame step is not supported on this configuration." ),
217
INFO( VFW_E_DVD_STREAM_DISABLED, "The specified stream is disabled and cannot be selected." ),
218
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." ),
219
INFO( VFW_E_DVD_INVALID_DISC, "The specified path does not point to a valid DVD disc." ),
220
INFO( VFW_E_DVD_NO_RESUME_INFORMATION, "There is currently no resume information." ),
221
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." ),
222
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." ),
223
INFO( VFW_E_CERTIFICATION_FAILURE, "An operation failed due to a certification failure." ),
224
INFO( VFW_E_BAD_KEY, "A registry entry is corrupt." ),
225
INFO( MS_E_NOSTREAM, "No stream can be found with the specified attributes." ),
226
INFO( MS_E_NOSEEKING, "Seeking not supported for this object." ),
227
INFO( MS_E_INCOMPATIBLE, "The stream formats are not compatible." ),
228
INFO( MS_E_BUSY, "The sample is busy." ),
229
INFO( MS_E_NOTINIT, "The object can't accept the call because its initialize function or equivalent has not been called." ),
230
INFO( MS_E_SOURCEALREADYDEFINED, "MS_E_SOURCEALREADYDEFINED" ),
231
INFO( MS_E_INVALIDSTREAMTYPE, "The stream type is not valid for this operation." ),
232
INFO( MS_E_NOTRUNNING, "The object is not in running state." ),
233
INFO( ERROR_FILE_NOT_FOUND, "The system cannot find the file specified." ),
234
INFO( ERROR_PATH_NOT_FOUND, "The system cannot find the path specified." ),
235
INFO( ERROR_TOO_MANY_OPEN_FILES, "The system cannot open the file." ),
236
INFO( E_ACCESSDENIED, "Access is denied" ),
237
INFO( E_HANDLE, "Invalid handle" ),
238
INFO( ERROR_NOT_ENOUGH_MEMORY, "Not enough storage is available to process this command." ),
239
INFO( ERROR_INVALID_BLOCK, "The storage control block address is invalid." ),
240
INFO( ERROR_BAD_ENVIRONMENT, "The environment is incorrect." ),
241
INFO( ERROR_BAD_FORMAT, "An attempt was made to load a program with an incorrect format." ),
242
INFO( ERROR_INVALID_ACCESS, "& DIERR_NOTACQUIRED The operation cannot be performed unless the device is acquired." ),
243
INFO( E_OUTOFMEMORY, "Ran out of memory" ),
244
INFO( ERROR_NOT_READY, "& DIERR_NOTINITIALIZED This object has not been initialized" ),
245
INFO( ERROR_READ_FAULT, "& DIERR_INPUTLOST Access to the device has been lost. It must be re-acquired." ),
246
INFO( E_INVALIDARG, "An invalid parameter was passed to the returning function" ),
247
INFO( ERROR_BAD_DRIVER_LEVEL, "& DIERR_BADDRIVERVER The object could not be created due to an incompatible driver version or mismatched or incomplete driver components." ),
248
INFO( ERROR_BUSY, "& DIERR_ACQUIRED The operation cannot be performed while the device is acquired." ),
249
INFO( ERROR_OLD_WIN_VERSION, "& DIERR_OLDDIRECTINPUTVERSION The application requires a newer version of DirectInput." ),
250
INFO( ERROR_RMODE_APP, "& DIERR_BETADIRECTINPUTVERSION The application was written for an unsupported prerelease version of DirectInput." ),
251
INFO( ERROR_NOT_FOUND, "& E_PROP_ID_UNSUPPORTED The specified property ID is not supported for the specified property set." ),
252
INFO( ERROR_SET_NOT_FOUND, "& E_PROP_SET_UNSUPPORTED The specified property set is not supported." ),
253
INFO( ERROR_ALREADY_INITIALIZED, "& DIERR_ALREADYINITIALIZED This object is already initialized" ),
254
INFO( DPNERR_ABORTED, "Aborted" ),
255
INFO( DPNERR_ADDRESSING, "Addressing" ),
256
INFO( DPNERR_ALREADYCLOSING, "Already closing" ),
257
INFO( DPNERR_ALREADYCONNECTED, "Already connected" ),
258
INFO( DPNERR_ALREADYDISCONNECTING, "Already disconnecting" ),
259
INFO( DPNERR_ALREADYINITIALIZED, "Already initialized" ),
260
INFO( DPNERR_ALREADYREGISTERED, "Already registered" ),
261
INFO( DPNERR_BUFFERTOOSMALL, "Buffer too small" ),
262
INFO( DPNERR_CANNOTCANCEL, "Cannot cancel" ),
263
INFO( DPNERR_CANTCREATEGROUP, "Cannot create group" ),
264
INFO( DPNERR_CANTCREATEPLAYER, "Cannot create player" ),
265
INFO( DPNERR_CANTLAUNCHAPPLICATION, "Cannot launch application" ),
266
INFO( DPNERR_CONNECTING, "Connecting" ),
267
INFO( DPNERR_CONNECTIONLOST, "Connection lost" ),
268
INFO( DPNERR_CONVERSION, "Conversion" ),
269
INFO( DPNERR_DATATOOLARGE, "Data too large" ),
270
INFO( DPNERR_DOESNOTEXIST, "Does not exist" ),
271
INFO( DPNERR_DPNSVRNOTAVAILABLE, "dpnsvr not available" ),
272
INFO( DPNERR_DUPLICATECOMMAND, "Duplicate command" ),
273
INFO( DPNERR_ENDPOINTNOTRECEIVING, "End point not receiving" ),
274
INFO( DPNERR_ENUMQUERYTOOLARGE, "Enum query too large" ),
275
INFO( DPNERR_ENUMRESPONSETOOLARGE, "Enum response too large" ),
276
INFO( DPNERR_EXCEPTION, "Exception" ),
277
INFO( DPNERR_GROUPNOTEMPTY, "Group not empty" ),
278
INFO( DPNERR_HOSTING, "Hosting" ),
279
INFO( DPNERR_HOSTREJECTEDCONNECTION, "Host rejected connection" ),
280
INFO( DPNERR_HOSTTERMINATEDSESSION, "Host terminated session" ),
281
INFO( DPNERR_INCOMPLETEADDRESS, "Incomplete address" ),
282
INFO( DPNERR_INVALIDADDRESSFORMAT, "Invalid address format" ),
283
INFO( DPNERR_INVALIDAPPLICATION, "Invalid application" ),
284
INFO( DPNERR_INVALIDCOMMAND, "Invalid command" ),
285
INFO( DPNERR_INVALIDDEVICEADDRESS, "Invalid device address" ),
286
INFO( DPNERR_INVALIDENDPOINT, "Invalid end point" ),
287
INFO( DPNERR_INVALIDFLAGS, "Invalid flags" ),
288
INFO( DPNERR_INVALIDGROUP, "Invalid group" ),
289
INFO( DPNERR_INVALIDHANDLE, "Invalid handle" ),
290
INFO( DPNERR_INVALIDHOSTADDRESS, "Invalid host address" ),
291
INFO( DPNERR_INVALIDINSTANCE, "Invalid instance" ),
292
INFO( DPNERR_INVALIDINTERFACE, "Invalid interface" ),
293
INFO( DPNERR_INVALIDOBJECT, "Invalid object" ),
294
INFO( DPNERR_INVALIDPASSWORD, "Invalid password" ),
295
INFO( DPNERR_INVALIDPLAYER, "Invalid player" ),
296
INFO( DPNERR_INVALIDPRIORITY, "Invalid priority" ),
297
INFO( DPNERR_INVALIDSTRING, "Invalid string" ),
298
INFO( DPNERR_INVALIDURL, "Invalid url" ),
299
INFO( DPNERR_INVALIDVERSION, "Invalid version" ),
300
INFO( DPNERR_NOCAPS, "No caps" ),
301
INFO( DPNERR_NOCONNECTION, "No connection" ),
302
INFO( DPNERR_NOHOSTPLAYER, "No host player" ),
303
INFO( DPNERR_NOMOREADDRESSCOMPONENTS, "No more address components" ),
304
INFO( DPNERR_NORESPONSE, "No response" ),
305
INFO( DPNERR_NOTALLOWED, "Not allowed" ),
306
INFO( DPNERR_NOTHOST, "Not host" ),
307
INFO( DPNERR_NOTREADY, "Not ready" ),
308
INFO( DPNERR_NOTREGISTERED, "Not registered" ),
309
INFO( DPNERR_PLAYERALREADYINGROUP, "Player already in group" ),
310
INFO( DPNERR_PLAYERLOST, "Player lost" ),
311
INFO( DPNERR_PLAYERNOTINGROUP, "Player not in group" ),
312
INFO( DPNERR_PLAYERNOTREACHABLE, "Player not reachable" ),
313
INFO( DPNERR_SENDTOOLARGE, "Send too large" ),
314
INFO( DPNERR_SESSIONFULL, "Session full" ),
315
INFO( DPNERR_TABLEFULL, "Table full" ),
316
INFO( DPNERR_TIMEDOUT, "Timed out" ),
317
INFO( DPNERR_UNINITIALIZED, "Uninitialized" ),
318
INFO( DPNERR_USERCANCEL, "User cancel" ),
319
INFO( DDERR_ALREADYINITIALIZED, "This object is already initialized" ),
320
INFO( DDERR_CANNOTATTACHSURFACE, "This surface cannot be attached to the requested surface." ),
321
INFO( DDERR_CANNOTDETACHSURFACE, "This surface cannot be detached from the requested surface." ),
322
INFO( DDERR_CURRENTLYNOTAVAIL, "Support is currently not available." ),
323
INFO( DDERR_EXCEPTION, "An exception was encountered while performing the requested operation" ),
324
INFO( DDERR_HEIGHTALIGN, "Height of rectangle provided is not a multiple of reqd alignment" ),
325
INFO( DDERR_INCOMPATIBLEPRIMARY, "Unable to match primary surface creation request with existing primary surface." ),
326
INFO( DDERR_INVALIDCAPS, "One or more of the caps bits passed to the callback are incorrect." ),
327
INFO( DDERR_INVALIDCLIPLIST, "DirectDraw does not support provided Cliplist." ),
328
INFO( DDERR_INVALIDMODE, "DirectDraw does not support the requested mode" ),
329
INFO( DDERR_INVALIDOBJECT, "DirectDraw received a pointer that was an invalid DIRECTDRAW object." ),
330
INFO( DDERR_INVALIDPIXELFORMAT, "pixel format was invalid as specified" ),
331
INFO( DDERR_INVALIDRECT, "Rectangle provided was invalid." ),
332
INFO( DDERR_LOCKEDSURFACES, "Operation could not be carried out because one or more surfaces are locked" ),
333
INFO( DDERR_NO3D, "There is no 3D present." ),
334
INFO( DDERR_NOALPHAHW, "Operation could not be carried out because there is no alpha acceleration hardware present or available." ),
335
INFO( DDERR_NOSTEREOHARDWARE, "Operation could not be carried out because there is no stereo hardware present or available." ),
336
INFO( DDERR_NOSURFACELEFT, "Operation could not be carried out because there is no hardware present which supports stereo surfaces" ),
337
INFO( DDERR_NOCLIPLIST, "no clip list available" ),
338
INFO( DDERR_NOCOLORCONVHW, "Operation could not be carried out because there is no color conversion hardware present or available." ),
339
INFO( DDERR_NOCOOPERATIVELEVELSET, "Create function called without DirectDraw object method SetCooperativeLevel being called." ),
340
INFO( DDERR_NOCOLORKEY, "Surface doesn't currently have a color key" ),
341
INFO( DDERR_NOCOLORKEYHW, "Operation could not be carried out because there is no hardware support of the dest color key." ),
342
INFO( DDERR_NODIRECTDRAWSUPPORT, "No DirectDraw support possible with current display driver" ),
343
INFO( DDERR_NOEXCLUSIVEMODE, "Operation requires the application to have exclusive mode but the application does not have exclusive mode." ),
344
INFO( DDERR_NOFLIPHW, "Flipping visible surfaces is not supported." ),
345
INFO( DDERR_NOGDI, "There is no GDI present." ),
346
INFO( DDERR_NOMIRRORHW, "Operation could not be carried out because there is no hardware present or available." ),
347
INFO( DDERR_NOTFOUND, "Requested item was not found" ),
348
INFO( DDERR_NOOVERLAYHW, "Operation could not be carried out because there is no overlay hardware present or available." ),
349
INFO( DDERR_OVERLAPPINGRECTS, "Operation could not be carried out because the source and destination rectangles are on the same surface and overlap each other." ),
350
INFO( DDERR_NORASTEROPHW, "Operation could not be carried out because there is no appropriate raster op hardware present or available." ),
351
INFO( DDERR_NOROTATIONHW, "Operation could not be carried out because there is no rotation hardware present or available." ),
352
INFO( DDERR_NOSTRETCHHW, "Operation could not be carried out because there is no hardware support for stretching" ),
353
INFO( DDERR_NOT4BITCOLOR, "DirectDrawSurface is not in 4 bit color palette and the requested operation requires 4 bit color palette." ),
354
INFO( DDERR_NOT4BITCOLORINDEX, "DirectDrawSurface is not in 4 bit color index palette and the requested operation requires 4 bit color index palette." ),
355
INFO( DDERR_NOT8BITCOLOR, "DirectDraw Surface is not in 8 bit color mode and the requested operation requires 8 bit color." ),
356
INFO( DDERR_NOTEXTUREHW, "Operation could not be carried out because there is no texture mapping hardware present or available." ),
357
INFO( DDERR_NOVSYNCHW, "Operation could not be carried out because there is no hardware support for vertical blank synchronized operations." ),
358
INFO( DDERR_NOZBUFFERHW, "Operation could not be carried out because there is no hardware support for zbuffer blitting." ),
359
INFO( DDERR_NOZOVERLAYHW, "Overlay surfaces could not be z layered based on their BltOrder because the hardware does not support z layering of overlays." ),
360
INFO( DDERR_OUTOFCAPS, "The hardware needed for the requested operation has already been allocated." ),
361
INFO( D3DERR_OUTOFVIDEOMEMORY, "Out of video memory" ),
362
INFO( DDERR_OVERLAYCANTCLIP, "hardware does not support clipped overlays" ),
363
INFO( DDERR_OVERLAYCOLORKEYONLYONEACTIVE, "Can only have one color key active at one time for overlays" ),
364
INFO( DDERR_PALETTEBUSY, "Access to this palette is being refused because the palette is already locked by another thread." ),
365
INFO( DDERR_COLORKEYNOTSET, "No src color key specified for this operation." ),
366
INFO( DDERR_SURFACEALREADYATTACHED, "This surface is already attached to the surface it is being attached to." ),
367
INFO( DDERR_SURFACEALREADYDEPENDENT, "This surface is already a dependency of the surface it is being made a dependency of." ),
368
INFO( DDERR_SURFACEBUSY, "Access to this surface is being refused because the surface is already locked by another thread." ),
369
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." ),
370
INFO( DDERR_SURFACEISOBSCURED, "Access to Surface refused because Surface is obscured." ),
371
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." ),
372
INFO( DDERR_SURFACENOTATTACHED, "The requested surface is not attached." ),
373
INFO( DDERR_TOOBIGHEIGHT, "Height requested by DirectDraw is too large." ),
374
INFO( DDERR_TOOBIGSIZE, "Size requested by DirectDraw is too large -- The individual height and width are OK." ),
375
INFO( DDERR_TOOBIGWIDTH, "Width requested by DirectDraw is too large." ),
376
INFO( DDERR_UNSUPPORTEDFORMAT, "Pixel format requested is unsupported by DirectDraw" ),
377
INFO( DDERR_UNSUPPORTEDMASK, "Bitmask in the pixel format requested is unsupported by DirectDraw" ),
378
INFO( DDERR_INVALIDSTREAM, "The specified stream contains invalid data" ),
379
INFO( DDERR_VERTICALBLANKINPROGRESS, "vertical blank is in progress" ),
380
INFO( DDERR_WASSTILLDRAWING, "Was still drawing" ),
381
INFO( DDERR_DDSCAPSCOMPLEXREQUIRED, "The specified surface type requires specification of the COMPLEX flag" ),
382
INFO( DDERR_XALIGN, "Rectangle provided was not horizontally aligned on reqd. boundary" ),
383
INFO( DDERR_INVALIDDIRECTDRAWGUID, "The GUID passed to DirectDrawCreate is not a valid DirectDraw driver identifier." ),
384
INFO( DDERR_DIRECTDRAWALREADYCREATED, "A DirectDraw object representing this driver has already been created for this process." ),
385
INFO( DDERR_NODIRECTDRAWHW, "A hardware only DirectDraw object creation was attempted but the driver did not support any hardware." ),
386
INFO( DDERR_PRIMARYSURFACEALREADYEXISTS, "this process already has created a primary surface" ),
387
INFO( DDERR_NOEMULATION, "software emulation not available." ),
388
INFO( DDERR_REGIONTOOSMALL, "region passed to Clipper::GetClipList is too small." ),
389
INFO( DDERR_CLIPPERISUSINGHWND, "an attempt was made to set a clip list for a clipper object that is already monitoring an hwnd." ),
390
INFO( DDERR_NOCLIPPERATTACHED, "No clipper object attached to surface object" ),
391
INFO( DDERR_NOHWND, "Clipper notification requires an HWND or no HWND has previously been set as the CooperativeLevel HWND." ),
392
INFO( DDERR_HWNDSUBCLASSED, "HWND used by DirectDraw CooperativeLevel has been subclassed, this prevents DirectDraw from restoring state." ),
393
INFO( DDERR_HWNDALREADYSET, "The CooperativeLevel HWND has already been set. It cannot be reset while the process has surfaces or palettes created." ),
394
INFO( DDERR_NOPALETTEATTACHED, "No palette object attached to this surface." ),
395
INFO( DDERR_NOPALETTEHW, "No hardware support for 16 or 256 color palettes." ),
396
INFO( DDERR_BLTFASTCANTCLIP, "If a clipper object is attached to the source surface passed into a BltFast call." ),
397
INFO( DDERR_NOBLTHW, "No blter." ),
398
INFO( DDERR_NODDROPSHW, "No DirectDraw ROP hardware." ),
399
INFO( DDERR_OVERLAYNOTVISIBLE, "returned when GetOverlayPosition is called on a hidden overlay" ),
400
INFO( DDERR_NOOVERLAYDEST, "returned when GetOverlayPosition is called on an overlay that UpdateOverlay has never been called on to establish a destination." ),
401
INFO( DDERR_INVALIDPOSITION, "returned when the position of the overlay on the destination is no longer legal for that destination." ),
402
INFO( DDERR_NOTAOVERLAYSURFACE, "returned when an overlay member is called for a non-overlay surface" ),
403
INFO( DDERR_EXCLUSIVEMODEALREADYSET, "An attempt was made to set the cooperative level when it was already set to exclusive." ),
404
INFO( DDERR_NOTFLIPPABLE, "An attempt has been made to flip a surface that is not flippable." ),
405
INFO( DDERR_CANTDUPLICATE, "Can't duplicate primary & 3D surfaces, or surfaces that are implicitly created." ),
406
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." ),
407
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)" ),
408
INFO( DDERR_NODC, "No DC was ever created for this surface." ),
409
INFO( DDERR_WRONGMODE, "This surface cannot be restored because it was created in a different mode." ),
410
INFO( DDERR_IMPLICITLYCREATED, "This surface cannot be restored because it is an implicitly created surface." ),
411
INFO( DDERR_NOTPALETTIZED, "The surface being used is not a palette-based surface" ),
412
INFO( DDERR_UNSUPPORTEDMODE, "The display is currently in an unsupported mode" ),
413
INFO( DDERR_NOMIPMAPHW, "Operation could not be carried out because there is no mip-map texture mapping hardware present or available." ),
414
INFO( DDERR_INVALIDSURFACETYPE, "The requested action could not be performed because the surface was of the wrong type." ),
415
INFO( DDERR_NOOPTIMIZEHW, "Device does not support optimized surfaces, therefore no video memory optimized surfaces" ),
416
INFO( DDERR_NOTLOADED, "Surface is an optimized surface, but has not yet been allocated any memory" ),
417
INFO( DDERR_NOFOCUSWINDOW, "Attempt was made to create or set a device window without first setting the focus window" ),
418
INFO( DDERR_NOTONMIPMAPSUBLEVEL, "Attempt was made to set a palette on a mipmap sublevel" ),
419
INFO( DDERR_DCALREADYCREATED, "A DC has already been returned for this surface. Only one DC can be retrieved per surface." ),
420
INFO( DDERR_NONONLOCALVIDMEM, "An attempt was made to allocate non-local video memory from a device that does not support non-local video memory." ),
421
INFO( DDERR_CANTPAGELOCK, "The attempt to page lock a surface failed." ),
422
INFO( DDERR_CANTPAGEUNLOCK, "The attempt to page unlock a surface failed." ),
423
INFO( DDERR_NOTPAGELOCKED, "An attempt was made to page unlock a surface with no outstanding page locks." ),
424
INFO( DDERR_MOREDATA, "There is more data available than the specified buffer size could hold" ),
425
INFO( DDERR_EXPIRED, "The data has expired and is therefore no longer valid." ),
426
INFO( DDERR_TESTFINISHED, "The mode test has finished executing." ),
427
INFO( DDERR_NEWMODE, "The mode test has switched to a new mode." ),
428
INFO( DDERR_D3DNOTINITIALIZED, "D3D has not yet been initialized." ),
429
INFO( DDERR_VIDEONOTACTIVE, "The video port is not active" ),
430
INFO( DDERR_NOMONITORINFORMATION, "The monitor does not have EDID data." ),
431
INFO( DDERR_NODRIVERSUPPORT, "The driver does not enumerate display mode refresh rates." ),
432
INFO( DDERR_DEVICEDOESNTOWNSURFACE, "Surfaces created by one direct draw device cannot be used directly by another direct draw device." ),
433
INFO( DXFILEERR_BADOBJECT, "Bad object" ),
434
INFO( DXFILEERR_BADVALUE, "Bad value" ),
435
INFO( DXFILEERR_BADTYPE, "Bad type" ),
436
INFO( DXFILEERR_BADSTREAMHANDLE, "Bad stream handle" ),
437
INFO( DXFILEERR_BADALLOC, "Bad alloc" ),
438
INFO( DXFILEERR_NOTFOUND, "Not found" ),
439
INFO( DXFILEERR_NOTDONEYET, "Not done yet" ),
440
INFO( DXFILEERR_FILENOTFOUND, "File not found" ),
441
INFO( DXFILEERR_RESOURCENOTFOUND, "Resource not found" ),
442
INFO( DXFILEERR_URLNOTFOUND, "Url not found" ),
443
INFO( DXFILEERR_BADRESOURCE, "Bad resource" ),
444
INFO( DXFILEERR_BADFILETYPE, "Bad file type" ),
445
INFO( DXFILEERR_BADFILEVERSION, "Bad file version" ),
446
INFO( DXFILEERR_BADFILEFLOATSIZE, "Bad file float size" ),
447
INFO( DXFILEERR_BADFILECOMPRESSIONTYPE, "Bad file compression type" ),
448
INFO( DXFILEERR_BADFILE, "Bad file" ),
449
INFO( DXFILEERR_PARSEERROR, "Parse error" ),
450
INFO( DXFILEERR_NOTEMPLATE, "No template" ),
451
INFO( DXFILEERR_BADARRAYSIZE, "Bad array size" ),
452
INFO( DXFILEERR_BADDATAREFERENCE, "Bad data reference" ),
453
INFO( DXFILEERR_INTERNALERROR, "Internal error" ),
454
INFO( DXFILEERR_NOMOREOBJECTS, "No more objects" ),
455
INFO( DXFILEERR_BADINTRINSICS, "Bad intrinsics" ),
456
INFO( DXFILEERR_NOMORESTREAMHANDLES, "No more stream handles" ),
457
INFO( DXFILEERR_NOMOREDATA, "No more data" ),
458
INFO( DXFILEERR_BADCACHEFILE, "Bad cache file" ),
459
INFO( DXFILEERR_NOINTERNET, "No internet" ),
460
INFO( D3DERR_WRONGTEXTUREFORMAT, "Wrong texture format" ),
461
INFO( D3DERR_UNSUPPORTEDCOLOROPERATION, "Unsupported color operation" ),
462
INFO( D3DERR_UNSUPPORTEDCOLORARG, "Unsupported color arg" ),
463
INFO( D3DERR_UNSUPPORTEDALPHAOPERATION, "Unsupported alpha operation" ),
464
INFO( D3DERR_UNSUPPORTEDALPHAARG, "Unsupported alpha arg" ),
465
INFO( D3DERR_TOOMANYOPERATIONS, "Too many operations" ),
466
INFO( D3DERR_CONFLICTINGTEXTUREFILTER, "Conflicting texture filter" ),
467
INFO( D3DERR_UNSUPPORTEDFACTORVALUE, "Unsupported factor value" ),
468
INFO( D3DERR_CONFLICTINGRENDERSTATE, "Conflicting render state" ),
469
INFO( D3DERR_UNSUPPORTEDTEXTUREFILTER, "Unsupported texture filter" ),
470
INFO( D3DERR_CONFLICTINGTEXTUREPALETTE, "Conflicting texture palette" ),
471
INFO( D3DERR_DRIVERINTERNALERROR, "Driver internal error" ),
472
INFO( D3DERR_NOTFOUND, "Not found" ),
473
INFO( D3DERR_MOREDATA, "More data" ),
474
INFO( D3DERR_DEVICELOST, "Device lost" ),
475
INFO( D3DERR_DEVICENOTRESET, "Device not reset" ),
476
INFO( D3DERR_NOTAVAILABLE, "Not available" ),
477
INFO( D3DERR_INVALIDDEVICE, "Invalid device" ),
478
INFO( D3DERR_INVALIDCALL, "Invalid call" ),
479
INFO( D3DERR_DRIVERINVALIDCALL, "Driver invalid call" ),
480
INFO( DSERR_ALLOCATED, "The call failed because resources (such as a priority level) were already being used by another caller" ),
481
INFO( DSERR_CONTROLUNAVAIL, "The control (vol, pan, etc.) requested by the caller is not available" ),
482
INFO( DSERR_INVALIDCALL, "This call is not valid for the current state of this object" ),
483
INFO( DSERR_PRIOLEVELNEEDED, "The caller does not have the priority level required for the function to succeed" ),
484
INFO( DSERR_BADFORMAT, "The specified WAVE format is not supported" ),
485
INFO( DSERR_NODRIVER, "No sound driver is available for use" ),
486
INFO( DSERR_ALREADYINITIALIZED, "This object is already initialized" ),
487
INFO( DSERR_BUFFERLOST, "The buffer memory has been lost, and must be restored" ),
488
INFO( DSERR_OTHERAPPHASPRIO, "Another app has a higher priority level, preventing this call from succeeding" ),
489
INFO( DSERR_UNINITIALIZED, "This object has not been initialized" ),
490
INFO( DSERR_BUFFERTOOSMALL, "Tried to create a DSBCAPS_CTRLFX buffer shorter than DSBSIZE_FX_MIN milliseconds" ),
491
INFO( DSERR_DS8_REQUIRED, "Attempt to use DirectSound 8 functionality on an older DirectSound object" ),
492
INFO( DSERR_SENDLOOP, "A circular loop of send effects was detected" ),
493
INFO( DSERR_BADSENDBUFFERGUID, "The GUID specified in an audiopath file does not match a valid MIXIN buffer" ),
494
INFO( DMUS_E_DRIVER_FAILED, "An unexpected error was returned from a device driver, indicating possible failure of the driver or hardware." ),
495
INFO( DMUS_E_PORTS_OPEN, "The requested operation cannot be performed while there are instantiated ports in any process in the system." ),
496
INFO( DMUS_E_DEVICE_IN_USE, "The requested device is already in use (possibly by a non-DirectMusic client) and cannot be opened again." ),
497
INFO( DMUS_E_INSUFFICIENTBUFFER, "Buffer is not large enough for requested operation." ),
498
INFO( DMUS_E_BUFFERNOTSET, "No buffer was prepared for the download data." ),
499
INFO( DMUS_E_BUFFERNOTAVAILABLE, "Download failed due to inability to access or create download buffer." ),
500
INFO( DMUS_E_NOTADLSCOL, "Error parsing DLS collection. File is corrupt." ),
501
INFO( DMUS_E_INVALIDOFFSET, "Wave chunks in DLS collection file are at incorrect offsets." ),
502
INFO( DMUS_E_ALREADY_LOADED, "Second attempt to load a DLS collection that is currently open. " ),
503
INFO( DMUS_E_INVALIDPOS, "Error reading wave data from DLS collection. Indicates bad file." ),
504
INFO( DMUS_E_INVALIDPATCH, "There is no instrument in the collection that matches patch number." ),
505
INFO( DMUS_E_CANNOTSEEK, "The IStream* doesn't support Seek()." ),
506
INFO( DMUS_E_CANNOTWRITE, "The IStream* doesn't support Write()." ),
507
INFO( DMUS_E_CHUNKNOTFOUND, "The RIFF parser doesn't contain a required chunk while parsing file." ),
508
INFO( DMUS_E_INVALID_DOWNLOADID, "Invalid download id was used in the process of creating a download buffer." ),
509
INFO( DMUS_E_NOT_DOWNLOADED_TO_PORT, "Tried to unload an object that was not downloaded or previously unloaded." ),
510
INFO( DMUS_E_ALREADY_DOWNLOADED, "Buffer was already downloaded to synth." ),
511
INFO( DMUS_E_UNKNOWN_PROPERTY, "The specified property item was not recognized by the target object." ),
512
INFO( DMUS_E_SET_UNSUPPORTED, "The specified property item may not be set on the target object." ),
513
INFO( DMUS_E_GET_UNSUPPORTED, "* The specified property item may not be retrieved from the target object." ),
514
INFO( DMUS_E_NOTMONO, "Wave chunk has more than one interleaved channel. DLS format requires MONO." ),
515
INFO( DMUS_E_BADARTICULATION, "Invalid articulation chunk in DLS collection." ),
516
INFO( DMUS_E_BADINSTRUMENT, "Invalid instrument chunk in DLS collection." ),
517
INFO( DMUS_E_BADWAVELINK, "Wavelink chunk in DLS collection points to invalid wave." ),
518
INFO( DMUS_E_NOARTICULATION, "Articulation missing from instrument in DLS collection." ),
519
INFO( DMUS_E_NOTPCM, "Downoaded DLS wave is not in PCM format. " ),
520
INFO( DMUS_E_BADWAVE, "Bad wave chunk in DLS collection" ),
521
INFO( DMUS_E_BADOFFSETTABLE, "Offset Table for download buffer has errors. " ),
522
INFO( DMUS_E_UNKNOWNDOWNLOAD, "Attempted to download unknown data type." ),
523
INFO( DMUS_E_NOSYNTHSINK, "The operation could not be completed because no sink was connected to the synthesizer." ),
524
INFO( DMUS_E_ALREADYOPEN, "An attempt was made to open the software synthesizer while it was already open." ),
525
INFO( DMUS_E_ALREADYCLOSED, "An attempt was made to close the software synthesizer while it was already open." ),
526
INFO( DMUS_E_SYNTHNOTCONFIGURED, "The operation could not be completed because the software synth has not yet been fully configured." ),
527
INFO( DMUS_E_SYNTHACTIVE, "The operation cannot be carried out while the synthesizer is active." ),
528
INFO( DMUS_E_CANNOTREAD, "An error occurred while attempting to read from the IStream* object." ),
529
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." ),
530
INFO( DMUS_E_BUFFER_EMPTY, "There was no data in the referenced buffer." ),
531
INFO( DMUS_E_BUFFER_FULL, "There is insufficient space to insert the given event into the buffer." ),
532
INFO( DMUS_E_PORT_NOT_CAPTURE, "The given operation could not be carried out because the port is a capture port." ),
533
INFO( DMUS_E_PORT_NOT_RENDER, "The given operation could not be carried out because the port is a render port." ),
534
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." ),
535
INFO( DMUS_E_ALREADY_ACTIVATED, "The operation cannot be carried out while the port is active." ),
536
INFO( DMUS_E_INVALIDBUFFER, "Invalid DirectSound buffer was handed to port. " ),
537
INFO( DMUS_E_WAVEFORMATNOTSUPPORTED, "Invalid buffer format was handed to the synth sink." ),
538
INFO( DMUS_E_SYNTHINACTIVE, "The operation cannot be carried out while the synthesizer is inactive." ),
539
INFO( DMUS_E_DSOUND_ALREADY_SET, "IDirectMusic::SetDirectSound has already been called. It may not be changed while in use." ),
540
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." ),
541
INFO( DMUS_E_UNSUPPORTED_STREAM, "The IStream* object does not contain data supported by the loading object." ),
542
INFO( DMUS_E_ALREADY_INITED, "The object has already been initialized." ),
543
INFO( DMUS_E_INVALID_BAND, "The file does not contain a valid band." ),
544
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." ),
545
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." ),
546
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." ),
547
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." ),
548
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." ),
549
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." ),
550
INFO( DSERR_OBJECTNOTFOUND, "The object requested was not found (numerically equal to DMUS_E_NOT_FOUND)" ),
551
INFO( DMUS_E_NOT_INIT, "A required object is not initialized or failed to initialize." ),
552
INFO( DMUS_E_TYPE_DISABLED, "The requested parameter type is currently disabled. Parameter types may be enabled and disabled by certain calls to SetParam()." ),
553
INFO( DMUS_E_TYPE_UNSUPPORTED, "The requested parameter type is not supported on the object." ),
554
INFO( DMUS_E_TIME_PAST, "The time is in the past, and the operation cannot succeed." ),
555
INFO( DMUS_E_TRACK_NOT_FOUND, "The requested track is not contained by the segment." ),
556
INFO( DMUS_E_TRACK_NO_CLOCKTIME_SUPPORT, "The track does not support clock time playback or getparam." ),
557
INFO( DMUS_E_NO_MASTER_CLOCK, "There is no master clock in the performance. Be sure to call IDirectMusicPerformance::Init()." ),
558
INFO( DMUS_E_LOADER_NOCLASSID, "The class id field is required and missing in the DMUS_OBJECTDESC." ),
559
INFO( DMUS_E_LOADER_BADPATH, "The requested file path is invalid." ),
560
INFO( DMUS_E_LOADER_FAILEDOPEN, "File open failed - either file doesn't exist or is locked." ),
561
INFO( DMUS_E_LOADER_FORMATNOTSUPPORTED, "Search data type is not supported." ),
562
INFO( DMUS_E_LOADER_FAILEDCREATE, "Unable to find or create object." ),
563
INFO( DMUS_E_LOADER_OBJECTNOTFOUND, "Object was not found." ),
564
INFO( DMUS_E_LOADER_NOFILENAME, "The file name is missing from the DMUS_OBJECTDESC." ),
565
INFO( DMUS_E_INVALIDFILE, "The file requested is not a valid file." ),
566
INFO( DMUS_E_ALREADY_EXISTS, "The tool is already contained in the graph. Create a new instance." ),
567
INFO( DMUS_E_OUT_OF_RANGE, "Value is out of range, for instance the requested length is longer than the segment." ),
568
INFO( DMUS_E_SEGMENT_INIT_FAILED, "Segment initialization failed, most likely due to a critical memory situation." ),
569
INFO( DMUS_E_ALREADY_SENT, "The DMUS_PMSG has already been sent to the performance object via IDirectMusicPerformance::SendPMsg()." ),
570
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()." ),
571
INFO( DMUS_E_CANNOT_OPEN_PORT, "The default system port could not be opened." ),
572
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." ),
573
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." ),
574
INFO( DMUS_E_NOT_LOADED, "An attempt to use this object failed because it first needs to be loaded." ),
575
INFO( DMUS_E_SCRIPT_LANGUAGE_INCOMPATIBLE, "The activeX scripting engine for the script's language is not compatible with DirectMusic." ),
576
INFO( DMUS_E_SCRIPT_UNSUPPORTED_VARTYPE, "A variant was used that had a type that is not supported by DirectMusic." ),
577
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." ),
578
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." ),
579
INFO( DMUS_E_SCRIPT_LOADSCRIPT_ERROR, "An error occurred while parsing a script loaded using LoadScript. The script that was loaded contains an error." ),
580
INFO( DMUS_E_SCRIPT_INVALID_FILE, "The script file is invalid." ),
581
INFO( DMUS_E_INVALID_SCRIPTTRACK, "The file contains an invalid script track." ),
582
INFO( DMUS_E_SCRIPT_VARIABLE_NOT_FOUND, "The script does not contain a variable with the specified name." ),
583
INFO( DMUS_E_SCRIPT_ROUTINE_NOT_FOUND, "The script does not contain a routine with the specified name." ),
584
INFO( DMUS_E_SCRIPT_CONTENT_READONLY, "Scripts variables for content referenced or embedded in a script cannot be set." ),
585
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." ),
586
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." ),
587
INFO( DMUS_E_INVALID_SEGMENTTRIGGERTRACK, "The file contains an invalid segment trigger track." ),
588
INFO( DMUS_E_INVALID_LYRICSTRACK, "The file contains an invalid lyrics track." ),
589
INFO( DMUS_E_INVALID_PARAMCONTROLTRACK, "The file contains an invalid parameter control track." ),
590
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." ),
591
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." ),
592
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." ),
593
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." ),
594
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. " ),
595
INFO( DMUS_E_NO_AUDIOPATH_CONFIG, "A segment or song was asked for its embedded audio path configuration, but there isn't any. " ),
596
INFO( DMUS_E_AUDIOPATH_INACTIVE, "An audiopath is inactive, perhaps because closedown was called." ),
597
INFO( DMUS_E_AUDIOPATH_NOBUFFER, "An audiopath failed to create because a requested buffer could not be created." ),
598
INFO( DMUS_E_AUDIOPATH_NOPORT, "An audiopath could not be used for playback because it lacked port assignments." ),
599
INFO( DMUS_E_NO_AUDIOPATH, "Attempt was made to play segment in audiopath mode and there was no audiopath." ),
600
INFO( DMUS_E_INVALIDCHUNK, "Invalid data was found in a RIFF file chunk." ),
601
INFO( DMUS_E_AUDIOPATH_NOGLOBALFXBUFFER, "Attempt was made to create an audiopath that sends to a global effects buffer which did not exist." ),
602
INFO( DMUS_E_INVALID_CONTAINER_OBJECT, "The file does not contain a valid container object." ),
603
#undef INFO
604
};
605
606
const char * WINAPI DXGetErrorString9A(HRESULT hr)
607
{
608
unsigned int i, j, k = 0;
609
610
for (i = ARRAY_SIZE(info); i != 0; i /= 2) {
611
j = k + (i / 2);
612
if (hr == info[j].hr)
613
return info[j].resultA;
614
if ((unsigned int)hr > (unsigned int)info[j].hr) {
615
k = j + 1;
616
i--;
617
}
618
}
619
620
return "Unknown";
621
}
622
623
const WCHAR * WINAPI DXGetErrorString9W(HRESULT hr)
624
{
625
unsigned int i, j, k = 0;
626
627
for (i = ARRAY_SIZE(info); i != 0; i /= 2) {
628
j = k + (i / 2);
629
if (hr == info[j].hr)
630
return info[j].resultW;
631
if ((unsigned int)hr > (unsigned int)info[j].hr) {
632
k = j + 1;
633
i--;
634
}
635
}
636
637
return L"Unknown";
638
}
639
640
const char * WINAPI DXGetErrorDescription9A(HRESULT hr)
641
{
642
unsigned int i, j, k = 0;
643
644
for (i = ARRAY_SIZE(info); i != 0; i /= 2) {
645
j = k + (i / 2);
646
if (hr == info[j].hr)
647
return info[j].descriptionA;
648
if ((unsigned int)hr > (unsigned int)info[j].hr) {
649
k = j + 1;
650
i--;
651
}
652
}
653
654
return "n/a";
655
}
656
657
const WCHAR * WINAPI DXGetErrorDescription9W(HRESULT hr)
658
{
659
unsigned int i, j, k = 0;
660
661
for (i = ARRAY_SIZE(info); i != 0; i /= 2) {
662
j = k + (i / 2);
663
if (hr == info[j].hr)
664
return info[j].descriptionW;
665
if ((unsigned int)hr > (unsigned int)info[j].hr) {
666
k = j + 1;
667
i--;
668
}
669
}
670
671
return L"n/a";
672
}
673
674
HRESULT WINAPI DXTraceA(const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, BOOL bPopMsgBox)
675
{
676
char msg[1024];
677
678
if (bPopMsgBox) {
679
wsprintfA(msg, "File: %s\nLine: %d\nError Code: %s (0x%08x)\nCalling: %s",
680
strFile, dwLine, DXGetErrorString9A(hr), hr, strMsg);
681
MessageBoxA(0, msg, "Unexpected error encountered", MB_OK|MB_ICONERROR);
682
} else {
683
wsprintfA(msg, "%s(%d): %s (hr=%s (0x%08x))", strFile,
684
dwLine, strMsg, DXGetErrorString9A(hr), hr);
685
OutputDebugStringA(msg);
686
}
687
688
return hr;
689
}
690
691
HRESULT WINAPI DXTraceW(const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, BOOL bPopMsgBox)
692
{
693
WCHAR msg[1024];
694
695
if (bPopMsgBox) {
696
wsprintfW(msg, L"File: %s\nLine: %d\nError Code: %s (0x%08x)\nCalling: %s",
697
strFile, dwLine, DXGetErrorString9W(hr), hr, strMsg);
698
MessageBoxW(0, msg, L"Unexpected error encountered", MB_OK|MB_ICONERROR);
699
} else {
700
wsprintfW(msg, L"%s(%d): %s (hr=%s (0x%08x))", strFile,
701
dwLine, strMsg, DXGetErrorString9W(hr), hr);
702
OutputDebugStringW(msg);
703
}
704
705
return hr;
706
}
707
708