Microsoft® DirectShow® returns error and success notifications (return codes) to applications in the form of HRESULT values. A return code's LOWORD portion is the return code itself, in hexadecimal format. After you obtain the return code, a call to the AMGetErrorText function returns the code's text description. The COM Win32 HRESULT documentation contains more information, including how to use the FAILED and SUCCEEDED macros to test return values.
The following list presents some of the typical COM error and success codes that DirectShow returns.
Value | Meaning |
---|---|
E_FAIL | Failure. |
E_INVALIDARG | Argument is invalid. |
E_NOTIMPL | Method is not supported. |
E_POINTER | NULL pointer argument. |
E_UNEXPECTED | Unexpected error. |
NOERROR | No error. Numerically equivalent to S_OK. |
S_FALSE | Success. Condition was FALSE. |
S_OK | Success. Numerically equivalent to NOERROR. |
S_TRUE | Success. Condition was TRUE. |
The following table contains DirectShow-specific error and success codes in numerical order. Return codes beginning with VFW_S_ indicate success overall. An operation might partially succeed and still have a successful return value. For example, VFW_S_SOME_DATA_IGNORED indicates that a file was rendered by ignoring some of its property settings. Return codes beginning with VFW_E_ indicate an error, while those beginning with CTL_ (Control Error Codes) pertain specifically to the Microsoft® Windows Media Player control. This table does not contain all possible return values; the return codes shown apply specifically to DirectShow. DirectShow-specific return codes also appear in Vfwmsgs.h in the Microsoft® DirectX® Media SDK Include directory. If you encounter an error not listed here, the error code might appear in another source, such as a list of COM or Microsoft® Windows® 9x errors. For example, Microsoft® Visual C++® users can find COM or Windows 9x errors in the Winerror.h include file.
C/C++ programmers receive error codes in complete (32-bit) hexadecimal format. Microsoft® Visual Basic® programmers, on the other hand, will see only the decimal equivalent of the error code's first 16-bit portion. This value appears in an error notification dialog box or in the Err object as a run-time error. If the error is not in the following list, you must convert the decimal number to its hexadecimal equivalent, and then look for the error as described previously. Note that the error's hexadecimal version will be a maximum of four digits long; to find the error, match the last four digits of the hexadecimal code in the error code list to the converted run-time error.
Return code | Description | Hexadecimal value | Decimal value |
---|---|---|---|
CTL_E_ILLEGALFUNCTIONCALL | The syntax in the function call was incorrect. | 0x800A0005 | 5 |
CTL_E_OVERFLOW | The result is too large to be represented in function's return type. | 0x800A0006 | 6 |
CTL_E_OUTOFMEMORY | There is insufficient memory to perform the requested operation. | 0x800A0007 | 7 |
CTL_E_DIVISIONBYZERO | The function attempted to divide by zero. | 0x800A000B | 11 |
CTL_E_OUTOFSTRINGSPACE | There is insufficient string space to perform the requested operation. Certain operations (copying, for example) involve temporary strings that use up string space. | 0x800A000E | 14 |
CTL_E_OUTOFSTACKSPACE | There is insufficient string space to perform the requested operation. Each thread has its own stack while other resources, such as heap memory, are shared by all threads in the process. You must specify how much memory to allocate for a separate stack for each additional thread your program needs. The operating system will allocate additional stack space for the thread, if necessary, but you must specify a default value. If the operating system cannot allocate the necessary space, you receive this error. | 0x800A001C | 28 |
CTL_E_BADFILENAMEORNUMBER | The function attempted to access a file with a bad file name or number. | 0x800A0034 | 52 |
CTL_E_FILENOTFOUND | The function attempted to access a file that could not be found. | 0x800A0035 | 53 |
CTL_E_BADFILEMODE | The function attempted to perform an operation on a file that has an incompatible file mode. File modes are Append, Binary, Input, Output, or Random. | 0x800A0036 | 54 |
CTL_E_FILEALREADYOPEN | The function attempted to open a file that was already open. | 0x800A0037 | 55 |
CTL_E_DEVICEIOERROR | There was a device I/O error during the function execution. | 0x800A0039 | 57 |
CTL_E_FILEALREADYEXISTS | The function attempted to create a file that already exists. | 0x800A003A | 58 |
CTL_E_BADRECORDLENGTH | The function attempted to access a file record that is incorrect. For example, it is assumed that a file opened for random access is composed of a set of identical-length records. | 0x800A003B | 59 |
CTL_E_DISKFULL | The function attempted to write to the disk, but the disk is full. | 0x800A003D | 61 |
CTL_E_BADRECORDNUMBER | The function attempted to access a file record that is incorrect. The record number is the position of the position in a recordset (a set of records in a data source). | 0x800A003F | 63 |
CTL_E_BADFILENAME | The function attempted to access a file name that is incorrect. | 0x800A0040 | 64 |
CTL_E_TOOMANYFILES | The function attempted to open a file when too many files were already open. | 0x800A0043 | 67 |
CTL_E_DEVICEUNAVAILABLE | The function attempted to access a device that was not available. | 0x800A0044 | 68 |
CTL_E_PERMISSIONDENIED | The function attempted to access a file without the proper permission setting. | 0x800A0046 | 70 |
CTL_E_DISKNOTREADY | The function attempted to access a file when the disk was not ready. | 0x800A0047 | 71 |
CTL_E_PATHFILEACCESSERROR | The function attempted to access a file or path that was incorrect or had the wrong permissions. | 0x800A004B | 75 |
CTL_E_PATHNOTFOUND | The function attempted to access a file with an incorrect path. | 0x800A004C | 76 |
CTL_E_INVALIDPATTERNSTRING | The function was called with an invalid string. | 0x800A005D | 93 |
CTL_E_INVALIDUSEOFNULL | The function was called with an invalid NULL. | 0x800A005E | 94 |
VFW_S_NO_MORE_ITEMS | There are no more items in the list. | 0x00040103 | 259 |
CTL_E_INVALIDFILEFORMAT | The function attempted to perform an operation on a file that has an incompatible file format. | 0x800A0141 | 321 |
CTL_E_INVALIDPROPERTYVALUE | The function was called with an invalid property value. | 0x800A017C | 380 |
CTL_E_INVALIDPROPERTYARRAYINDEX | The function was called with an invalid property array index. | 0x800A017D | 381 |
CTL_E_SETNOTSUPPORTEDATRUNTIME | The function attempted to set a property that cannot be set at run time. | 0x800A017E | 382 |
CTL_E_SETNOTSUPPORTED | The function attempted to set a property that cannot be set. | 0x800A017F | 383 |
CTL_E_NEEDPROPERTYARRAYINDEX | The function attempted to access a property that needs an array index without the array index. | 0x800A0181 | 385 |
CTL_E_SETNOTPERMITTED | The function attempted to set a property without the proper permissions to set the property. | 0x800A0183 | 387 |
CTL_E_GETNOTSUPPORTEDATRUNTIME | The function attempted to get a property that cannot be retrieved at run time. | 0x800A0189 | 393 |
CTL_E_GETNOTSUPPORTED | The function attempted to get a property that cannot be retrieved. | 0x800A018A | 394 |
CTL_E_PROPERTYNOTFOUND | The function attempted to get a property that could not be found. | 0x800A01A6 | 422 |
CTL_E_INVALIDCLIPBOARDFORMAT | The function attempted an operation with an invalid Clipboard format. | 0x800A01CC | 460 |
CTL_E_INVALIDPICTURE | The function attempted an operation with an invalid picture. | 0x800A01E1 | 481 |
CTL_E_PRINTERERROR | The function attempted to print, and there was a printer error. | 0x800A01E2 | 482 |
VFW_E_INVALIDMEDIATYPE | The specified media type is invalid. | 0x80040200 | 512 |
VFW_E_INVALIDSUBTYPE | The specified media subtype is invalid. | 0x80040201 | 513 |
VFW_E_NEED_OWNER | This object can only be created as an aggregated object. | 0x80040202 | 514 |
VFW_E_ENUM_OUT_OF_SYNC | The state of the enumerated object has changed and is now inconsistent with the state of the enumerator. Discard any data obtained from previous calls to the enumerator and then update the enumerator by calling the enumerator's Reset method. | 0x80040203 | 515 |
VFW_E_ALREADY_CONNECTED | At least one of the pins involved in the operation is already connected. | 0x80040204 | 516 |
VFW_E_FILTER_ACTIVE | This operation cannot be performed because the filter is active. | 0x80040205 | 517 |
VFW_E_NO_TYPES | One of the specified pins supports no media types. | 0x80040206 | 518 |
VFW_E_NO_ACCEPTABLE_TYPES | There is no common media type between these pins. | 0x80040207 | 519 |
VFW_E_INVALID_DIRECTION | Two pins of the same direction cannot be connected. | 0x80040208 | 520 |
VFW_E_NOT_CONNECTED | The operation cannot be performed because the pins are not connected. | 0x80040209 | 521 |
VFW_E_NO_ALLOCATOR | No sample buffer allocator is available. | 0x8004020A | 522 |
VFW_E_RUNTIME_ERROR | A run-time error occurred. | 0x8004020B | 523 |
VFW_E_BUFFER_NOTSET | No buffer space has been set. | 0x8004020C | 524 |
VFW_E_BUFFER_OVERFLOW | The buffer is not big enough. | 0x8004020D | 525 |
VFW_E_BADALIGN | An invalid alignment was specified. | 0x8004020E | 526 |
VFW_E_ALREADY_COMMITTED | Cannot change allocated memory while the filter is active. | 0x8004020F | 527 |
VFW_E_BUFFERS_OUTSTANDING | One or more buffers are still active. | 0x80040210 | 528 |
VFW_E_NOT_COMMITTED | Cannot allocate a sample when the allocator is not active. | 0x80040211 | 529 |
VFW_E_SIZENOTSET | Cannot allocate memory because no size has been set. | 0x80040212 | 530 |
VFW_E_NO_CLOCK | Cannot lock for synchronization because no clock has been defined. | 0x80040213 | 531 |
VFW_E_NO_SINK | Quality messages could not be sent because no quality sink has been defined. | 0x80040214 | 532 |
VFW_E_NO_INTERFACE | A required interface has not been implemented. | 0x80040215 | 533 |
VFW_E_NOT_FOUND | An object or name was not found. | 0x80040216 | 534 |
VFW_E_CANNOT_CONNECT | No combination of intermediate filters could be found to make the connection. | 0x80040217 | 535 |
VFW_E_CANNOT_RENDER | No combination of filters could be found to render the stream. | 0x80040218 | 536 |
VFW_E_CHANGING_FORMAT | Could not change formats dynamically. | 0x80040219 | 537 |
VFW_E_NO_COLOR_KEY_SET | No color key has been set. | 0x8004021A | 538 |
VFW_E_NOT_OVERLAY_CONNECTION | Current pin connection is not using the IOverlay transport. | 0x8004021B | 539 |
VFW_E_NOT_SAMPLE_CONNECTION | Current pin connection is not using the IMemInputPin transport. | 0x8004021C | 540 |
VFW_E_PALETTE_SET | Setting a color key would conflict with the palette already set. | 0x8004021D | 541 |
VFW_E_COLOR_KEY_SET | Setting a palette would conflict with the color key already set. | 0x8004021E | 542 |
VFW_E_NO_COLOR_KEY_FOUND | No matching color key is available. | 0x8004021F | 543 |
VFW_E_NO_PALETTE_AVAILABLE | No palette is available. | 0x80040220 | 544 |
VFW_E_NO_DISPLAY_PALETTE | Display does not use a palette. | 0x80040221 | 545 |
VFW_E_TOO_MANY_COLORS | Too many colors for the current display settings. | 0x80040222 | 546 |
VFW_E_STATE_CHANGED | The state changed while waiting to process the sample. | 0x80040223 | 547 |
VFW_E_NOT_STOPPED | The operation could not be performed because the filter is not stopped. | 0x80040224 | 548 |
VFW_E_NOT_PAUSED | The operation could not be performed because the filter is not paused. | 0x80040225 | 549 |
VFW_E_NOT_RUNNING | The operation could not be performed because the filter is not running. | 0x80040226 | 550 |
VFW_E_WRONG_STATE | The operation could not be performed because the filter is in the wrong state. | 0x80040227 | 551 |
VFW_E_START_TIME_AFTER_END | The sample start time is after the sample end time. | 0x80040228 | 552 |
VFW_E_INVALID_RECT | The supplied rectangle is invalid. | 0x80040229 | 553 |
VFW_E_TYPE_NOT_ACCEPTED | This pin cannot use the supplied media type. | 0x8004022A | 554 |
VFW_E_SAMPLE_REJECTED | This sample cannot be rendered. | 0x8004022B | 555 |
VFW_E_SAMPLE_REJECTED_EOS | This sample cannot be rendered because the end of the stream has been reached. | 0x8004022C | 556 |
VFW_E_DUPLICATE_NAME | An attempt to add a filter with a duplicate name failed. | 0x8004022D | 557 |
VFW_S_DUPLICATE_NAME | An attempt to add a filter with a duplicate name succeeded with a modified name. | 0x0004022D | 557 |
VFW_E_TIMEOUT | A time-out has expired. | 0x8004022E | 558 |
VFW_E_INVALID_FILE_FORMAT | The file format is invalid. | 0x8004022F | 559 |
VFW_E_ENUM_OUT_OF_RANGE | The list has already been exhausted. | 0x80040230 | 560 |
VFW_E_CIRCULAR_GRAPH | The filter graph is circular. | 0x80040231 | 561 |
VFW_E_NOT_ALLOWED_TO_SAVE | Updates are not allowed in this state. | 0x80040232 | 562 |
VFW_E_TIME_ALREADY_PASSED | An attempt was made to queue a command for a time in the past. | 0x80040233 | 563 |
VFW_E_ALREADY_CANCELLED | The queued command was already canceled. | 0x80040234 | 564 |
VFW_E_CORRUPT_GRAPH_FILE | Cannot render the file because it is corrupt. | 0x80040235 | 565 |
VFW_E_ADVISE_ALREADY_SET | An IOverlay advise link already exists. | 0x80040236 | 566 |
VFW_S_STATE_INTERMEDIATE | The state transition is not complete. | 0x00040237 | 567 |
VFW_E_NO_MODEX_AVAILABLE | No full-screen modes are available. | 0x80040238 | 568 |
VFW_E_NO_ADVISE_SET | This advise cannot be canceled because it was not successfully set. | 0x80040239 | 569 |
VFW_E_NO_FULLSCREEN | Full-screen mode is not available. | 0x8004023A | 570 |
VFW_E_IN_FULLSCREEN_MODE | Cannot call IVideoWindow methods while in full-screen mode. | 0x8004023B | 571 |
VFW_E_UNKNOWN_FILE_TYPE | The media type of this file is not recognized. | 0x80040240 | 576 |
VFW_E_CANNOT_LOAD_SOURCE_FILTER | The source filter for this file could not be loaded. | 0x80040241 | 577 |
VFW_S_PARTIAL_RENDER | Some of the streams in this movie are in an unsupported format. | 0x00040242 | 578 |
VFW_E_FILE_TOO_SHORT | A file appeared to be incomplete. | 0x80040243 | 579 |
VFW_E_INVALID_FILE_VERSION | The file's version number is invalid. | 0x80040244 | 580 |
VFW_S_SOME_DATA_IGNORED | The file contained some property settings that were not used. | 0x00040245 | 581 |
VFW_S_CONNECTIONS_DEFERRED | Some connections failed and were deferred. | 0x00040246 | 582 |
VFW_E_INVALID_CLSID | This file is corrupt: it contains an invalid class identifier. | 0x80040247 | 583 |
VFW_E_INVALID_MEDIA_TYPE | This file is corrupt: it contains an invalid media type. | 0x80040248 | 584 |
VFW_E_SAMPLE_TIME_NOT_SET | No time stamp has been set for this sample. | 0x80040249 | 585 |
VFW_S_RESOURCE_NOT_NEEDED | The resource specified is no longer needed. | 0x00040250 | 592 |
VFW_E_MEDIA_TIME_NOT_SET | No media time stamp was set for this sample. | 0x80040251 | 593 |
VFW_E_NO_TIME_FORMAT_SET | No media time format was selected. | 0x80040252 | 594 |
VFW_E_MONO_AUDIO_HW | Cannot change balance because audio device is monoaural only. | 0x80040253 | 595 |
VFW_S_MEDIA_TYPE_IGNORED | Could not connect with the media type in the persistent graph. | 0x00040254 | 596 |
VFW_E_NO_DECOMPRESSOR | Cannot play back the video stream: could not find a suitable decompressor. | 0x80040255 | 597 |
VFW_E_NO_AUDIO_HARDWARE | Cannot play back the audio stream: no audio hardware is available, or the hardware is not supported. | 0x80040256 | 598 |
VFW_S_VIDEO_NOT_RENDERED | Cannot play back the video stream: could not find a suitable renderer. | 0x00040257 | 599 |
VFW_S_AUDIO_NOT_RENDERED | Cannot play back the audio stream: could not find a suitable renderer. | 0x00040258 | 600 |
VFW_E_RPZA | Cannot play back the video stream: format 'RPZA' is not supported. | 0x80040259 | 601 |
VFW_S_RPZA | Cannot play back the video stream: format 'RPZA' is not supported. | 0x0004025A | 602 |
VFW_E_PROCESSOR_NOT_SUITABLE | DirectShow cannot play MPEG movies on this processor. | 0x8004025B | 603 |
VFW_E_UNSUPPORTED_AUDIO | Cannot play back the audio stream: the audio format is not supported. | 0x8004025C | 604 |
VFW_E_UNSUPPORTED_VIDEO | Cannot play back the video stream: the video format is not supported. | 0x8004025D | 605 |
VFW_E_MPEG_NOT_CONSTRAINED | DirectShow cannot play this video stream because it falls outside the constrained standard. | 0x8004025E | 606 |
VFW_E_NOT_IN_GRAPH | Cannot perform the requested function on an object that is not in the filter graph. | 0x8004025F | 607 |
VFW_S_ESTIMATED | The value returned had to be estimated. Its accuracy can't be guaranteed. | 0x00040260 | 608 |
VFW_E_NO_TIME_FORMAT | Cannot access the time format on an object. | 0x80040261 | 609 |
VFW_E_READ_ONLY | Could not make the connection because the stream is read-only and the filter alters the data. | 0x80040262 | 610 |
VFW_S_RESERVED | This success code is reserved for internal purposes within DirectShow. | 0x00040263 | 611 |
VFW_E_BUFFER_UNDERFLOW | The buffer is not full enough. | 0x80040264 | 612 |
VFW_E_UNSUPPORTED_STREAM | Cannot play back the file: the format is not supported. | 0x80040265 | 613 |
VFW_E_NO_TRANSPORT | Pins cannot connect because they don't support the same transport. | 0x80040266 | 614 |
VFW_S_STREAM_OFF | The stream was turned off. | 0x00040267 | 615 |
VFW_S_CANT_CUE | The graph can't be cued because it lacks data or contains corrupt data. | 0x00040268 | 616 |
VFW_E_BAD_VIDEOCD | The Video CD can't be read correctly by the device or is the data is corrupt. | 0x80040269 | 617 |
VFW_S_NO_STOP_TIME | The sample had a start time but not a stop time. In this case, the stop time returned is set to the start time plus one. The IMediaSample::GetTime method can return this success code. | 0x80040270 | 618 |
VFW_E_OUT_OF_VIDEO_MEMORY | There is not enough video memory at this display resolution and number of colors. Reducing resolution might help. | 0x80040271 | 619 |
VFW_E_VP_NEGOTIATION_FAILED | The video port connection negotiation process has failed. | 0x80040272 | 620 |
VFW_E_DDRAW_CAPS_NOT_SUITABLE | Either Microsoft® DirectDraw® has not been installed or the video card capabilities are not suitable. Make sure the display is not in 16-color mode. | 0x80040273 | 621 |
VFW_E_NO_VP_HARDWARE | No video port hardware is available, or the hardware is not responding. | 0x80040274 | 622 |
VFW_E_NO_CAPTURE_HARDWARE | No capture hardware is available, or the hardware is not responding. | 0x80040275 | 623 |
VFW_E_DVD_OPERATION_INHIBITED | This user operation is inhibited by DVD content at this time. | 0x80040276 | 624 |
VFW_E_DVD_INVALIDDOMAIN | This operation is not permitted in the current domain. | 0x80040277 | 625 |
VFW_E_DVD_NO_BUTTON | Requested button is not available. | 0x80040278 | 626 |
VFW_E_DVD_GRAPHNOTREADY | DVD-Video playback graph has not been built yet. | 0x80040279 | 627 |
VFW_E_DVD_RENDERFAIL | DVD-Video playback graph building failed. | 0x8004027a | 628 |
VFW_E_DVD_DECNOTENOUGH | DVD-Video playback graph could not be built due to insufficient decoders. | 0x8004027b | 629 |
CTL_E_CANTSAVEFILETOTEMP | The file cannot be saved to the TEMP directory. | 0x800A02DF | 735 |
CTL_E_SEARCHTEXTNOTFOUND | The searched-for text cannot be found. | 0x800A02E8 | 744 |
CTL_E_REPLACEMENTSTOOLONG | The text replacement is too long. | 0x800A02EA | 746 |
VFW_E_BAD_KEY | A registry entry is corrupt. | 0x800403F2 | 1010 |
Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.