Index Topic Contents | |||
Previous Topic: DVD Event Notification Codes Next Topic: Filters and Samples |
Error and Success Codes
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_ pertain specifically to the ActiveMovie 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 DirectShow 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 Windows® 95 errors. For example, Microsoft Visual C++® users can find COM or Windows 95 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 Hexadecimal Value Decimal Value CTL_E_ILLEGALFUNCTIONCALL 0x800A0005 5 CTL_E_OVERFLOW 0x800A0006 6 CTL_E_OUTOFMEMORY 0x800A0007 7 CTL_E_DIVISIONBYZERO 0x800A000B 11 CTL_E_OUTOFSTRINGSPACE 0x800A000E 14 CTL_E_OUTOFSTACKSPACE 0x800A001C 28 CTL_E_BADFILENAMEORNUMBER 0x800A0034 52 CTL_E_FILENOTFOUND 0x800A0035 53 CTL_E_BADFILEMODE 0x800A0036 54 CTL_E_FILEALREADYOPEN 0x800A0037 55 CTL_E_DEVICEIOERROR 0x800A0039 57 CTL_E_FILEALREADYEXISTS 0x800A003A 58 CTL_E_BADRECORDLENGTH 0x800A003B 59 CTL_E_DISKFULL 0x800A003D 61 CTL_E_BADRECORDNUMBER 0x800A003F 63 CTL_E_BADFILENAME 0x800A0040 64 CTL_E_TOOMANYFILES 0x800A0043 67 CTL_E_DEVICEUNAVAILABLE 0x800A0044 68 CTL_E_PERMISSIONDENIED 0x800A0046 70 CTL_E_DISKNOTREADY 0x800A0047 71 CTL_E_PATHFILEACCESSERROR 0x800A004B 75 CTL_E_PATHNOTFOUND 0x800A004C 76 CTL_E_INVALIDPATTERNSTRING 0x800A005D 93 CTL_E_INVALIDUSEOFNULL 0x800A005E 94 VFW_S_NO_MORE_ITEMS 0x00040103 259 There are no more items in the list. CTL_E_INVALIDFILEFORMAT 0x800A0141 321 CTL_E_INVALIDPROPERTYVALUE 0x800A017C 380 CTL_E_INVALIDPROPERTYARRAYINDEX 0x800A017D 381 CTL_E_SETNOTSUPPORTEDATRUNTIME 0x800A017E 382 CTL_E_SETNOTSUPPORTED 0x800A017F 383 CTL_E_NEEDPROPERTYARRAYINDEX 0x800A0181 385 CTL_E_SETNOTPERMITTED 0x800A0183 387 CTL_E_GETNOTSUPPORTEDATRUNTIME 0x800A0189 393 CTL_E_GETNOTSUPPORTED 0x800A018A 394 CTL_E_PROPERTYNOTFOUND 0x800A01A6 422 CTL_E_INVALIDCLIPBOARDFORMAT 0x800A01CC 460 CTL_E_INVALIDPICTURE 0x800A01E1 481 CTL_E_PRINTERERROR 0x800A01E2 482 VFW_E_INVALIDMEDIATYPE 0x80040200 512 The specified media type is invalid. VFW_E_INVALIDSUBTYPE 0x80040201 513 The specified media subtype is invalid. VFW_E_NEED_OWNER 0x80040202 514 This object can only be created as an aggregated object. VFW_E_ENUM_OUT_OF_SYNC 0x80040203 515 The enumerator has become invalid. VFW_E_ALREADY_CONNECTED 0x80040204 516 At least one of the pins involved in the operation is already connected. VFW_E_FILTER_ACTIVE 0x80040205 517 This operation cannot be performed because the filter is active. VFW_E_NO_TYPES 0x80040206 518 One of the specified pins supports no media types. VFW_E_NO_ACCEPTABLE_TYPES 0x80040207 519 There is no common media type between these pins. VFW_E_INVALID_DIRECTION 0x80040208 520 Two pins of the same direction cannot be connected. VFW_E_NOT_CONNECTED 0x80040209 521 The operation cannot be performed because the pins are not connected. VFW_E_NO_ALLOCATOR 0x8004020A 522 No sample buffer allocator is available. VFW_E_RUNTIME_ERROR 0x8004020B 523 A run-time error occurred. VFW_E_BUFFER_NOTSET 0x8004020C 524 No buffer space has been set. VFW_E_BUFFER_OVERFLOW 0x8004020D 525 The buffer is not big enough. VFW_E_BADALIGN 0x8004020E 526 An invalid alignment was specified. VFW_E_ALREADY_COMMITTED 0x8004020F 527 Cannot change allocated memory while the filter is active. VFW_E_BUFFERS_OUTSTANDING 0x80040210 528 One or more buffers are still active. VFW_E_NOT_COMMITTED 0x80040211 529 Cannot allocate a sample when the allocator is not active. VFW_E_SIZENOTSET 0x80040212 530 Cannot allocate memory because no size has been set. VFW_E_NO_CLOCK 0x80040213 531 Cannot lock for synchronization because no clock has been defined. VFW_E_NO_SINK 0x80040214 532 Quality messages could not be sent because no quality sink has been defined. VFW_E_NO_INTERFACE 0x80040215 533 A required interface has not been implemented. VFW_E_NOT_FOUND 0x80040216 534 An object or name was not found. VFW_E_CANNOT_CONNECT 0x80040217 535 No combination of intermediate filters could be found to make the connection. VFW_E_CANNOT_RENDER 0x80040218 536 No combination of filters could be found to render the stream. VFW_E_CHANGING_FORMAT 0x80040219 537 Could not change formats dynamically. VFW_E_NO_COLOR_KEY_SET 0x8004021A 538 No color key has been set. VFW_E_NOT_OVERLAY_CONNECTION 0x8004021B 539 Current pin connection is not using the IOverlay transport. VFW_E_NOT_SAMPLE_CONNECTION 0x8004021C 540 Current pin connection is not using the IMemInputPin transport. VFW_E_PALETTE_SET 0x8004021D 541 Setting a color key would conflict with the palette already set. VFW_E_COLOR_KEY_SET 0x8004021E 542 Setting a palette would conflict with the color key already set. VFW_E_NO_COLOR_KEY_FOUND 0x8004021F 543 No matching color key is available. VFW_E_NO_PALETTE_AVAILABLE 0x80040220 544 No palette is available. VFW_E_NO_DISPLAY_PALETTE 0x80040221 545 Display does not use a palette. VFW_E_TOO_MANY_COLORS 0x80040222 546 Too many colors for the current display settings. VFW_E_STATE_CHANGED 0x80040223 547 The state changed while waiting to process the sample. VFW_E_NOT_STOPPED 0x80040224 548 The operation could not be performed because the filter is not stopped. VFW_E_NOT_PAUSED 0x80040225 549 The operation could not be performed because the filter is not paused. VFW_E_NOT_RUNNING 0x80040226 550 The operation could not be performed because the filter is not running. VFW_E_WRONG_STATE 0x80040227 551 The operation could not be performed because the filter is in the wrong state. VFW_E_START_TIME_AFTER_END 0x80040228 552 The sample start time is after the sample end time. VFW_E_INVALID_RECT 0x80040229 553 The supplied rectangle is invalid. VFW_E_TYPE_NOT_ACCEPTED 0x8004022A 554 This pin cannot use the supplied media type. VFW_E_SAMPLE_REJECTED 0x8004022B 555 This sample cannot be rendered. VFW_E_SAMPLE_REJECTED_EOS 0x8004022C 556 This sample cannot be rendered because the end of the stream has been reached. VFW_E_DUPLICATE_NAME 0x8004022D 557 An attempt to add a filter with a duplicate name failed. VFW_S_DUPLICATE_NAME 0x0004022D 557 An attempt to add a filter with a duplicate name succeeded with a modified name. VFW_E_TIMEOUT 0x8004022E 558 A time-out has expired. VFW_E_INVALID_FILE_FORMAT 0x8004022F 559 The file format is invalid. VFW_E_ENUM_OUT_OF_RANGE 0x80040230 560 The list has already been exhausted. VFW_E_CIRCULAR_GRAPH 0x80040231 561 The filter graph is circular. VFW_E_NOT_ALLOWED_TO_SAVE 0x80040232 562 Updates are not allowed in this state. VFW_E_TIME_ALREADY_PASSED 0x80040233 563 An attempt was made to queue a command for a time in the past. VFW_E_ALREADY_CANCELLED 0x80040234 564 The queued command was already canceled. VFW_E_CORRUPT_GRAPH_FILE 0x80040235 565 Cannot render the file because it is corrupt. VFW_E_ADVISE_ALREADY_SET 0x80040236 566 An IOverlay advise link already exists. VFW_S_STATE_INTERMEDIATE 0x00040237 567 The state transition is not complete. VFW_E_NO_MODEX_AVAILABLE 0x80040238 568 No full-screen modes are available. VFW_E_NO_ADVISE_SET 0x80040239 569 This advise cannot be canceled because it was not successfully set. VFW_E_NO_FULLSCREEN 0x8004023A 570 Full-screen mode is not available. VFW_E_IN_FULLSCREEN_MODE 0x8004023B 571 Cannot call IVideoWindow methods while in full-screen mode. VFW_E_UNKNOWN_FILE_TYPE 0x80040240 576 The media type of this file is not recognized. VFW_E_CANNOT_LOAD_SOURCE_FILTER 0x80040241 577 The source filter for this file could not be loaded. VFW_S_PARTIAL_RENDER 0x00040242 578 Some of the streams in this movie are in an unsupported format. VFW_E_FILE_TOO_SHORT 0x80040243 579 A file appeared to be incomplete. VFW_E_INVALID_FILE_VERSION 0x80040244 580 The file's version number is invalid. VFW_S_SOME_DATA_IGNORED 0x00040245 581 The file contained some property settings that were not used. VFW_S_CONNECTIONS_DEFERRED 0x00040246 582 Some connections failed and were deferred. VFW_E_INVALID_CLSID 0x80040247 583 This file is corrupt: it contains an invalid class identifier. VFW_E_INVALID_MEDIA_TYPE 0x80040248 584 This file is corrupt: it contains an invalid media type. VFW_E_SAMPLE_TIME_NOT_SET 0x80040249 585 No time stamp has been set for this sample. VFW_S_RESOURCE_NOT_NEEDED 0x00040250 592 The resource specified is no longer needed. VFW_E_MEDIA_TIME_NOT_SET 0x80040251 593 No media time stamp was set for this sample. VFW_E_NO_TIME_FORMAT_SET 0x80040252 594 No media time format was selected. VFW_E_MONO_AUDIO_HW 0x80040253 595 Cannot change balance because audio device is mono only. VFW_S_MEDIA_TYPE_IGNORED 0x00040254 596 Could not connect with the media type in the persistent graph. VFW_E_NO_DECOMPRESSOR 0x80040255 597 Cannot play back the video stream: could not find a suitable decompressor. VFW_E_NO_AUDIO_HARDWARE 0x80040256 598 Cannot play back the audio stream: no audio hardware is available, or the hardware is not supported. VFW_S_VIDEO_NOT_RENDERED 0x00040257 599 Cannot play back the video stream: could not find a suitable renderer. VFW_S_AUDIO_NOT_RENDERED 0x00040258 600 Cannot play back the audio stream: could not find a suitable renderer. VFW_E_RPZA 0x80040259 601 Cannot play back the video stream: format 'RPZA' is not supported. VFW_S_RPZA 0x0004025A 602 Cannot play back the video stream: format 'RPZA' is not supported. VFW_E_PROCESSOR_NOT_SUITABLE 0x8004025B 603 DirectShow cannot play MPEG movies on this processor. VFW_E_UNSUPPORTED_AUDIO 0x8004025C 604 Cannot play back the audio stream: the audio format is not supported. VFW_E_UNSUPPORTED_VIDEO 0x8004025D 605 Cannot play back the video stream: the video format is not supported. VFW_E_MPEG_NOT_CONSTRAINED 0x8004025E 606 DirectShow cannot play this video stream because it falls outside the constrained standard. VFW_E_NOT_IN_GRAPH 0x8004025F 607 Cannot perform the requested function on an object that is not in the filter graph. VFW_S_ESTIMATED 0x00040260 608 The value returned had to be estimated. Its accuracy can't be guaranteed. VFW_E_NO_TIME_FORMAT 0x80040261 609 Cannot get or set time-related information on an object that is using a time format of VFW_E_READ_ONLY 0x80040262 610 Could not make the connection because the stream is read-only and the filter alters the data. VFW_S_RESERVED 0x00040263 611 This success code is reserved for internal purposes within DirectShow. VFW_E_BUFFER_UNDERFLOW 0x80040264 612 The buffer is not full enough. VFW_E_UNSUPPORTED_STREAM 0x80040265 613 Cannot play back the file: the format is not supported. VFW_E_NO_TRANSPORT 0x80040266 614 Pins cannot connect because they don't support the same transport. VFW_S_STREAM_OFF 0x00040267 615 The stream was turned off. VFW_S_CANT_CUE 0x00040268 616 The graph can't be cued because it lacks data or contains corrupt data. VFW_E_BAD_VIDEOCD 0x80040269 617 The Video CD can't be read correctly by the device or is the data is corrupt. VFW_S_NO_STOP_TIME 0x80040270 618 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. VFW_E_OUT_OF_VIDEO_MEMORY 0x80040271 619 There is not enough video memory at this display resolution and number of colors. Reducing resolution might help. VFW_E_VP_NEGOTIATION_FAILED 0x80040272 620 The video port connection negotiation process has failed. VFW_E_DDRAW_CAPS_NOT_SUITABLE 0x80040273 621 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. VFW_E_NO_VP_HARDWARE 0x80040274 622 No video port hardware is available, or the hardware is not responding. VFW_E_NO_CAPTURE_HARDWARE 0x80040275 623 No Capture hardware is available, or the hardware is not responding. VFW_E_DVD_OPERATION_INHIBITED 0x80040276 624 This user operation is inhibited by DVD content at this time. VFW_E_DVD_INVALIDDOMAIN 0x80040277 625 This operation is not permitted in the current domain. VFW_E_DVD_NO_BUTTON 0x80040278 626 Requested button is not available. VFW_E_DVD_GRAPHNOTREADY 0x80040279 627 DVD-Video playback graph has not been built yet. VFW_E_DVD_RENDERFAIL 0x8004027a 628 DVD-Video playback graph building failed. VFW_E_DVD_DECNOTENOUGH 0x8004027b 629 DVD-Video playback graph could not be built due to insufficient decoders. CTL_E_CANTSAVEFILETOTEMP 0x800A02DF 735 CTL_E_SEARCHTEXTNOTFOUND 0x800A02E8 744 CTL_E_REPLACEMENTSTOOLONG 0x800A02EA 746 VFW_E_BAD_KEY 0x800403F2 1010 A registry entry is corrupt. © 1998 Microsoft Corporation. All rights reserved. Terms of Use.