Changeset 6649 for trunk/src/quartz/amerror.c
- Timestamp:
- Sep 5, 2001, 3:39:12 PM (24 years ago)
- File:
-
- 1 edited
-
trunk/src/quartz/amerror.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/quartz/amerror.c
r6578 r6649 1 /* $Id: amerror.c,v 1.2 2001-09-05 13:36:34 bird Exp $ */ 1 2 2 3 #include "config.h" … … 19 20 LPWSTR QUARTZ_strncpyAtoW( LPWSTR lpwstr, LPCSTR lpstr, INT wbuflen ) 20 21 { 21 INTlen;22 23 len = MultiByteToWideChar( CP_ACP, 0, lpstr, -1, lpwstr, wbuflen );24 if ( len == 0 )25 *lpwstr = 0;26 return lpwstr;22 INT len; 23 24 len = MultiByteToWideChar( CP_ACP, 0, lpstr, -1, lpwstr, wbuflen ); 25 if ( len == 0 ) 26 *lpwstr = 0; 27 return lpwstr; 27 28 } 28 29 … … 30 31 static LPCSTR hresult_to_string( HRESULT hr ) 31 32 { 32 switch ( hr )33 {34 #define ENTRY(x)case x: return (const char*)#x;35 /* some known codes */36 ENTRY(S_OK)37 ENTRY(S_FALSE)38 ENTRY(E_FAIL)39 ENTRY(E_POINTER)40 ENTRY(E_NOTIMPL)41 ENTRY(E_NOINTERFACE)42 ENTRY(E_OUTOFMEMORY)43 ENTRY(CLASS_E_CLASSNOTAVAILABLE)44 ENTRY(CLASS_E_NOAGGREGATION)45 46 /* vfwmsgs.h */47 ENTRY(VFW_S_NO_MORE_ITEMS)48 ENTRY(VFW_E_BAD_KEY)49 ENTRY(VFW_E_INVALIDMEDIATYPE)50 ENTRY(VFW_E_INVALIDSUBTYPE)51 ENTRY(VFW_E_NEED_OWNER)52 ENTRY(VFW_E_ENUM_OUT_OF_SYNC)53 ENTRY(VFW_E_ALREADY_CONNECTED)54 ENTRY(VFW_E_FILTER_ACTIVE)55 ENTRY(VFW_E_NO_TYPES)56 ENTRY(VFW_E_NO_ACCEPTABLE_TYPES)57 ENTRY(VFW_E_INVALID_DIRECTION)58 ENTRY(VFW_E_NOT_CONNECTED)59 ENTRY(VFW_E_NO_ALLOCATOR)60 ENTRY(VFW_E_RUNTIME_ERROR)61 ENTRY(VFW_E_BUFFER_NOTSET)62 ENTRY(VFW_E_BUFFER_OVERFLOW)63 ENTRY(VFW_E_BADALIGN)64 ENTRY(VFW_E_ALREADY_COMMITTED)65 ENTRY(VFW_E_BUFFERS_OUTSTANDING)66 ENTRY(VFW_E_NOT_COMMITTED)67 ENTRY(VFW_E_SIZENOTSET)68 ENTRY(VFW_E_NO_CLOCK)69 ENTRY(VFW_E_NO_SINK)70 ENTRY(VFW_E_NO_INTERFACE)71 ENTRY(VFW_E_NOT_FOUND)72 ENTRY(VFW_E_CANNOT_CONNECT)73 ENTRY(VFW_E_CANNOT_RENDER)74 ENTRY(VFW_E_CHANGING_FORMAT)75 ENTRY(VFW_E_NO_COLOR_KEY_SET)76 ENTRY(VFW_E_NOT_OVERLAY_CONNECTION)77 ENTRY(VFW_E_NOT_SAMPLE_CONNECTION)78 ENTRY(VFW_E_PALETTE_SET)79 ENTRY(VFW_E_COLOR_KEY_SET)80 ENTRY(VFW_E_NO_COLOR_KEY_FOUND)81 ENTRY(VFW_E_NO_PALETTE_AVAILABLE)82 ENTRY(VFW_E_NO_DISPLAY_PALETTE)83 ENTRY(VFW_E_TOO_MANY_COLORS)84 ENTRY(VFW_E_STATE_CHANGED)85 ENTRY(VFW_E_NOT_STOPPED)86 ENTRY(VFW_E_NOT_PAUSED)87 ENTRY(VFW_E_NOT_RUNNING)88 ENTRY(VFW_E_WRONG_STATE)89 ENTRY(VFW_E_START_TIME_AFTER_END)90 ENTRY(VFW_E_INVALID_RECT)91 ENTRY(VFW_E_TYPE_NOT_ACCEPTED)92 ENTRY(VFW_E_SAMPLE_REJECTED)93 ENTRY(VFW_E_SAMPLE_REJECTED_EOS)94 ENTRY(VFW_S_DUPLICATE_NAME)95 ENTRY(VFW_E_DUPLICATE_NAME)96 ENTRY(VFW_E_TIMEOUT)97 ENTRY(VFW_E_INVALID_FILE_FORMAT)98 ENTRY(VFW_E_ENUM_OUT_OF_RANGE)99 ENTRY(VFW_E_CIRCULAR_GRAPH)100 ENTRY(VFW_E_NOT_ALLOWED_TO_SAVE)101 ENTRY(VFW_E_TIME_ALREADY_PASSED)102 ENTRY(VFW_E_ALREADY_CANCELLED)103 ENTRY(VFW_E_CORRUPT_GRAPH_FILE)104 ENTRY(VFW_E_ADVISE_ALREADY_SET)105 ENTRY(VFW_S_STATE_INTERMEDIATE)106 ENTRY(VFW_E_NO_MODEX_AVAILABLE)107 ENTRY(VFW_E_NO_ADVISE_SET)108 ENTRY(VFW_E_NO_FULLSCREEN)109 ENTRY(VFW_E_IN_FULLSCREEN_MODE)110 ENTRY(VFW_E_UNKNOWN_FILE_TYPE)111 ENTRY(VFW_E_CANNOT_LOAD_SOURCE_FILTER)112 ENTRY(VFW_S_PARTIAL_RENDER)113 ENTRY(VFW_E_FILE_TOO_SHORT)114 ENTRY(VFW_E_INVALID_FILE_VERSION)115 ENTRY(VFW_S_SOME_DATA_IGNORED)116 ENTRY(VFW_S_CONNECTIONS_DEFERRED)117 ENTRY(VFW_E_INVALID_CLSID)118 ENTRY(VFW_E_INVALID_MEDIA_TYPE)119 ENTRY(VFW_E_SAMPLE_TIME_NOT_SET)120 ENTRY(VFW_S_RESOURCE_NOT_NEEDED)121 ENTRY(VFW_E_MEDIA_TIME_NOT_SET)122 ENTRY(VFW_E_NO_TIME_FORMAT_SET)123 ENTRY(VFW_E_MONO_AUDIO_HW)124 ENTRY(VFW_S_MEDIA_TYPE_IGNORED)125 ENTRY(VFW_E_NO_DECOMPRESSOR)126 ENTRY(VFW_E_NO_AUDIO_HARDWARE)127 ENTRY(VFW_S_VIDEO_NOT_RENDERED)128 ENTRY(VFW_S_AUDIO_NOT_RENDERED)129 ENTRY(VFW_E_RPZA)130 ENTRY(VFW_S_RPZA)131 ENTRY(VFW_E_PROCESSOR_NOT_SUITABLE)132 ENTRY(VFW_E_UNSUPPORTED_AUDIO)133 ENTRY(VFW_E_UNSUPPORTED_VIDEO)134 ENTRY(VFW_E_MPEG_NOT_CONSTRAINED)135 ENTRY(VFW_E_NOT_IN_GRAPH)136 ENTRY(VFW_S_ESTIMATED)137 ENTRY(VFW_E_NO_TIME_FORMAT)138 ENTRY(VFW_E_READ_ONLY)139 ENTRY(VFW_S_RESERVED)140 ENTRY(VFW_E_BUFFER_UNDERFLOW)141 ENTRY(VFW_E_UNSUPPORTED_STREAM)142 ENTRY(VFW_E_NO_TRANSPORT)143 ENTRY(VFW_S_STREAM_OFF)144 ENTRY(VFW_S_CANT_CUE)145 ENTRY(VFW_E_BAD_VIDEOCD)146 ENTRY(VFW_S_NO_STOP_TIME)147 ENTRY(VFW_E_OUT_OF_VIDEO_MEMORY)148 ENTRY(VFW_E_VP_NEGOTIATION_FAILED)149 ENTRY(VFW_E_DDRAW_CAPS_NOT_SUITABLE)150 ENTRY(VFW_E_NO_VP_HARDWARE)151 ENTRY(VFW_E_NO_CAPTURE_HARDWARE)152 ENTRY(VFW_E_DVD_OPERATION_INHIBITED)153 ENTRY(VFW_E_DVD_INVALIDDOMAIN)154 ENTRY(VFW_E_DVD_NO_BUTTON)155 ENTRY(VFW_E_DVD_GRAPHNOTREADY)156 ENTRY(VFW_E_DVD_RENDERFAIL)157 ENTRY(VFW_E_DVD_DECNOTENOUGH)158 ENTRY(VFW_E_DDRAW_VERSION_NOT_SUITABLE)159 ENTRY(VFW_E_COPYPROT_FAILED)160 ENTRY(VFW_S_NOPREVIEWPIN)161 ENTRY(VFW_E_TIME_EXPIRED)162 ENTRY(VFW_S_DVD_NON_ONE_SEQUENTIAL)163 ENTRY(VFW_E_DVD_WRONG_SPEED)164 ENTRY(VFW_E_DVD_MENU_DOES_NOT_EXIST)165 ENTRY(VFW_E_DVD_CMD_CANCELLED)166 ENTRY(VFW_E_DVD_STATE_WRONG_VERSION)167 ENTRY(VFW_E_DVD_STATE_CORRUPT)168 ENTRY(VFW_E_DVD_STATE_WRONG_DISC)169 ENTRY(VFW_E_DVD_INCOMPATIBLE_REGION)170 ENTRY(VFW_E_DVD_NO_ATTRIBUTES)171 ENTRY(VFW_E_DVD_NO_GOUP_PGC)172 ENTRY(VFW_E_DVD_LOW_PARENTAL_LEVEL)173 ENTRY(VFW_E_DVD_NOT_IN_KARAOKE_MODE)174 ENTRY(VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLE)175 ENTRY(VFW_S_DVD_NOT_ACCURATE)176 ENTRY(VFW_E_FRAME_STEP_UNSUPPORTED)177 ENTRY(VFW_E_DVD_STREAM_DISABLED)178 ENTRY(VFW_E_DVD_TITLE_UNKNOWN)179 ENTRY(VFW_E_DVD_INVALID_DISC)180 ENTRY(VFW_E_DVD_NO_RESUME_INFORMATION)181 ENTRY(VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD)182 ENTRY(VFW_E_PIN_ALREADY_BLOCKED)183 ENTRY(VFW_E_CERTIFICATION_FAILURE)184 #undefENTRY185 }186 187 return NULL;33 switch ( hr ) 34 { 35 #define ENTRY(x) case x: return (const char*)#x; 36 /* some known codes */ 37 ENTRY(S_OK) 38 ENTRY(S_FALSE) 39 ENTRY(E_FAIL) 40 ENTRY(E_POINTER) 41 ENTRY(E_NOTIMPL) 42 ENTRY(E_NOINTERFACE) 43 ENTRY(E_OUTOFMEMORY) 44 ENTRY(CLASS_E_CLASSNOTAVAILABLE) 45 ENTRY(CLASS_E_NOAGGREGATION) 46 47 /* vfwmsgs.h */ 48 ENTRY(VFW_S_NO_MORE_ITEMS) 49 ENTRY(VFW_E_BAD_KEY) 50 ENTRY(VFW_E_INVALIDMEDIATYPE) 51 ENTRY(VFW_E_INVALIDSUBTYPE) 52 ENTRY(VFW_E_NEED_OWNER) 53 ENTRY(VFW_E_ENUM_OUT_OF_SYNC) 54 ENTRY(VFW_E_ALREADY_CONNECTED) 55 ENTRY(VFW_E_FILTER_ACTIVE) 56 ENTRY(VFW_E_NO_TYPES) 57 ENTRY(VFW_E_NO_ACCEPTABLE_TYPES) 58 ENTRY(VFW_E_INVALID_DIRECTION) 59 ENTRY(VFW_E_NOT_CONNECTED) 60 ENTRY(VFW_E_NO_ALLOCATOR) 61 ENTRY(VFW_E_RUNTIME_ERROR) 62 ENTRY(VFW_E_BUFFER_NOTSET) 63 ENTRY(VFW_E_BUFFER_OVERFLOW) 64 ENTRY(VFW_E_BADALIGN) 65 ENTRY(VFW_E_ALREADY_COMMITTED) 66 ENTRY(VFW_E_BUFFERS_OUTSTANDING) 67 ENTRY(VFW_E_NOT_COMMITTED) 68 ENTRY(VFW_E_SIZENOTSET) 69 ENTRY(VFW_E_NO_CLOCK) 70 ENTRY(VFW_E_NO_SINK) 71 ENTRY(VFW_E_NO_INTERFACE) 72 ENTRY(VFW_E_NOT_FOUND) 73 ENTRY(VFW_E_CANNOT_CONNECT) 74 ENTRY(VFW_E_CANNOT_RENDER) 75 ENTRY(VFW_E_CHANGING_FORMAT) 76 ENTRY(VFW_E_NO_COLOR_KEY_SET) 77 ENTRY(VFW_E_NOT_OVERLAY_CONNECTION) 78 ENTRY(VFW_E_NOT_SAMPLE_CONNECTION) 79 ENTRY(VFW_E_PALETTE_SET) 80 ENTRY(VFW_E_COLOR_KEY_SET) 81 ENTRY(VFW_E_NO_COLOR_KEY_FOUND) 82 ENTRY(VFW_E_NO_PALETTE_AVAILABLE) 83 ENTRY(VFW_E_NO_DISPLAY_PALETTE) 84 ENTRY(VFW_E_TOO_MANY_COLORS) 85 ENTRY(VFW_E_STATE_CHANGED) 86 ENTRY(VFW_E_NOT_STOPPED) 87 ENTRY(VFW_E_NOT_PAUSED) 88 ENTRY(VFW_E_NOT_RUNNING) 89 ENTRY(VFW_E_WRONG_STATE) 90 ENTRY(VFW_E_START_TIME_AFTER_END) 91 ENTRY(VFW_E_INVALID_RECT) 92 ENTRY(VFW_E_TYPE_NOT_ACCEPTED) 93 ENTRY(VFW_E_SAMPLE_REJECTED) 94 ENTRY(VFW_E_SAMPLE_REJECTED_EOS) 95 ENTRY(VFW_S_DUPLICATE_NAME) 96 ENTRY(VFW_E_DUPLICATE_NAME) 97 ENTRY(VFW_E_TIMEOUT) 98 ENTRY(VFW_E_INVALID_FILE_FORMAT) 99 ENTRY(VFW_E_ENUM_OUT_OF_RANGE) 100 ENTRY(VFW_E_CIRCULAR_GRAPH) 101 ENTRY(VFW_E_NOT_ALLOWED_TO_SAVE) 102 ENTRY(VFW_E_TIME_ALREADY_PASSED) 103 ENTRY(VFW_E_ALREADY_CANCELLED) 104 ENTRY(VFW_E_CORRUPT_GRAPH_FILE) 105 ENTRY(VFW_E_ADVISE_ALREADY_SET) 106 ENTRY(VFW_S_STATE_INTERMEDIATE) 107 ENTRY(VFW_E_NO_MODEX_AVAILABLE) 108 ENTRY(VFW_E_NO_ADVISE_SET) 109 ENTRY(VFW_E_NO_FULLSCREEN) 110 ENTRY(VFW_E_IN_FULLSCREEN_MODE) 111 ENTRY(VFW_E_UNKNOWN_FILE_TYPE) 112 ENTRY(VFW_E_CANNOT_LOAD_SOURCE_FILTER) 113 ENTRY(VFW_S_PARTIAL_RENDER) 114 ENTRY(VFW_E_FILE_TOO_SHORT) 115 ENTRY(VFW_E_INVALID_FILE_VERSION) 116 ENTRY(VFW_S_SOME_DATA_IGNORED) 117 ENTRY(VFW_S_CONNECTIONS_DEFERRED) 118 ENTRY(VFW_E_INVALID_CLSID) 119 ENTRY(VFW_E_INVALID_MEDIA_TYPE) 120 ENTRY(VFW_E_SAMPLE_TIME_NOT_SET) 121 ENTRY(VFW_S_RESOURCE_NOT_NEEDED) 122 ENTRY(VFW_E_MEDIA_TIME_NOT_SET) 123 ENTRY(VFW_E_NO_TIME_FORMAT_SET) 124 ENTRY(VFW_E_MONO_AUDIO_HW) 125 ENTRY(VFW_S_MEDIA_TYPE_IGNORED) 126 ENTRY(VFW_E_NO_DECOMPRESSOR) 127 ENTRY(VFW_E_NO_AUDIO_HARDWARE) 128 ENTRY(VFW_S_VIDEO_NOT_RENDERED) 129 ENTRY(VFW_S_AUDIO_NOT_RENDERED) 130 ENTRY(VFW_E_RPZA) 131 ENTRY(VFW_S_RPZA) 132 ENTRY(VFW_E_PROCESSOR_NOT_SUITABLE) 133 ENTRY(VFW_E_UNSUPPORTED_AUDIO) 134 ENTRY(VFW_E_UNSUPPORTED_VIDEO) 135 ENTRY(VFW_E_MPEG_NOT_CONSTRAINED) 136 ENTRY(VFW_E_NOT_IN_GRAPH) 137 ENTRY(VFW_S_ESTIMATED) 138 ENTRY(VFW_E_NO_TIME_FORMAT) 139 ENTRY(VFW_E_READ_ONLY) 140 ENTRY(VFW_S_RESERVED) 141 ENTRY(VFW_E_BUFFER_UNDERFLOW) 142 ENTRY(VFW_E_UNSUPPORTED_STREAM) 143 ENTRY(VFW_E_NO_TRANSPORT) 144 ENTRY(VFW_S_STREAM_OFF) 145 ENTRY(VFW_S_CANT_CUE) 146 ENTRY(VFW_E_BAD_VIDEOCD) 147 ENTRY(VFW_S_NO_STOP_TIME) 148 ENTRY(VFW_E_OUT_OF_VIDEO_MEMORY) 149 ENTRY(VFW_E_VP_NEGOTIATION_FAILED) 150 ENTRY(VFW_E_DDRAW_CAPS_NOT_SUITABLE) 151 ENTRY(VFW_E_NO_VP_HARDWARE) 152 ENTRY(VFW_E_NO_CAPTURE_HARDWARE) 153 ENTRY(VFW_E_DVD_OPERATION_INHIBITED) 154 ENTRY(VFW_E_DVD_INVALIDDOMAIN) 155 ENTRY(VFW_E_DVD_NO_BUTTON) 156 ENTRY(VFW_E_DVD_GRAPHNOTREADY) 157 ENTRY(VFW_E_DVD_RENDERFAIL) 158 ENTRY(VFW_E_DVD_DECNOTENOUGH) 159 ENTRY(VFW_E_DDRAW_VERSION_NOT_SUITABLE) 160 ENTRY(VFW_E_COPYPROT_FAILED) 161 ENTRY(VFW_S_NOPREVIEWPIN) 162 ENTRY(VFW_E_TIME_EXPIRED) 163 ENTRY(VFW_S_DVD_NON_ONE_SEQUENTIAL) 164 ENTRY(VFW_E_DVD_WRONG_SPEED) 165 ENTRY(VFW_E_DVD_MENU_DOES_NOT_EXIST) 166 ENTRY(VFW_E_DVD_CMD_CANCELLED) 167 ENTRY(VFW_E_DVD_STATE_WRONG_VERSION) 168 ENTRY(VFW_E_DVD_STATE_CORRUPT) 169 ENTRY(VFW_E_DVD_STATE_WRONG_DISC) 170 ENTRY(VFW_E_DVD_INCOMPATIBLE_REGION) 171 ENTRY(VFW_E_DVD_NO_ATTRIBUTES) 172 ENTRY(VFW_E_DVD_NO_GOUP_PGC) 173 ENTRY(VFW_E_DVD_LOW_PARENTAL_LEVEL) 174 ENTRY(VFW_E_DVD_NOT_IN_KARAOKE_MODE) 175 ENTRY(VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLE) 176 ENTRY(VFW_S_DVD_NOT_ACCURATE) 177 ENTRY(VFW_E_FRAME_STEP_UNSUPPORTED) 178 ENTRY(VFW_E_DVD_STREAM_DISABLED) 179 ENTRY(VFW_E_DVD_TITLE_UNKNOWN) 180 ENTRY(VFW_E_DVD_INVALID_DISC) 181 ENTRY(VFW_E_DVD_NO_RESUME_INFORMATION) 182 ENTRY(VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD) 183 ENTRY(VFW_E_PIN_ALREADY_BLOCKED) 184 ENTRY(VFW_E_CERTIFICATION_FAILURE) 185 #undef ENTRY 186 } 187 188 return NULL; 188 189 } 189 190 190 191 /*********************************************************************** 191 * AMGetErrorTextA(quartz.@)192 * AMGetErrorTextA (quartz.@) 192 193 */ 193 194 DWORD WINAPI AMGetErrorTextA(HRESULT hr, LPSTR pszbuf, DWORD dwBufLen) 194 195 { 195 LPCSTRlpszRes;196 DWORD len;197 198 lpszRes = hresult_to_string( hr );199 if ( lpszRes == NULL )200 return 0;201 len = (DWORD)(strlen(lpszRes)+1);202 if ( len > dwBufLen )203 return 0;204 205 memcpy( pszbuf, lpszRes, len );206 return len;196 LPCSTR lpszRes; 197 DWORD len; 198 199 lpszRes = hresult_to_string( hr ); 200 if ( lpszRes == NULL ) 201 return 0; 202 len = (DWORD)(strlen(lpszRes)+1); 203 if ( len > dwBufLen ) 204 return 0; 205 206 memcpy( pszbuf, lpszRes, len ); 207 return len; 207 208 } 208 209 209 210 /*********************************************************************** 210 * AMGetErrorTextW(quartz.@)211 * AMGetErrorTextW (quartz.@) 211 212 */ 212 213 DWORD WINAPI AMGetErrorTextW(HRESULT hr, LPWSTR pwszbuf, DWORD dwBufLen) 213 214 { 214 CHARszBuf[MAX_ERROR_TEXT_LEN+1];215 DWORDdwLen;216 217 dwLen = AMGetErrorTextA(hr,szBuf,MAX_ERROR_TEXT_LEN);218 if ( dwLen == 0 )219 return 0;220 szBuf[dwLen] = 0;221 222 QUARTZ_strncpyAtoW( pwszbuf, szBuf, dwBufLen );223 224 return lstrlenW( pwszbuf );225 } 215 CHAR szBuf[MAX_ERROR_TEXT_LEN+1]; 216 DWORD dwLen; 217 218 dwLen = AMGetErrorTextA(hr,szBuf,MAX_ERROR_TEXT_LEN); 219 if ( dwLen == 0 ) 220 return 0; 221 szBuf[dwLen] = 0; 222 223 QUARTZ_strncpyAtoW( pwszbuf, szBuf, dwBufLen ); 224 225 return lstrlenW( pwszbuf ); 226 }
Note:
See TracChangeset
for help on using the changeset viewer.
