Changeset 6710 for trunk/src/quartz/amerror.c
- Timestamp:
- Sep 15, 2001, 11:28:23 AM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/quartz/amerror.c
r6649 r6710 1 /* $Id: amerror.c,v 1.2 2001-09-05 13:36:34 bird Exp $ */2 1 3 2 #include "config.h" … … 20 19 LPWSTR QUARTZ_strncpyAtoW( LPWSTR lpwstr, LPCSTR lpstr, INT wbuflen ) 21 20 { 22 INTlen;23 24 25 26 27 21 INT len; 22 23 len = MultiByteToWideChar( CP_ACP, 0, lpstr, -1, lpwstr, wbuflen ); 24 if ( len == 0 ) 25 *lpwstr = 0; 26 return lpwstr; 28 27 } 29 28 … … 31 30 static LPCSTR hresult_to_string( HRESULT hr ) 32 31 { 33 34 35 #define ENTRY(x) case x: return (const char*)#x; 36 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 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 #undefENTRY186 187 188 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 #undef ENTRY 185 } 186 187 return NULL; 189 188 } 190 189 191 190 /*********************************************************************** 192 * AMGetErrorTextA(quartz.@)191 * AMGetErrorTextA (quartz.@) 193 192 */ 194 193 DWORD WINAPI AMGetErrorTextA(HRESULT hr, LPSTR pszbuf, DWORD dwBufLen) 195 194 { 196 LPCSTRlpszRes;197 198 199 200 201 202 203 204 205 206 207 195 LPCSTR lpszRes; 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; 208 207 } 209 208 210 209 /*********************************************************************** 211 * AMGetErrorTextW(quartz.@)210 * AMGetErrorTextW (quartz.@) 212 211 */ 213 212 DWORD WINAPI AMGetErrorTextW(HRESULT hr, LPWSTR pwszbuf, DWORD dwBufLen) 214 213 { 215 CHARszBuf[MAX_ERROR_TEXT_LEN+1];216 DWORDdwLen;217 218 219 220 221 222 223 224 225 226 } 214 CHAR szBuf[MAX_ERROR_TEXT_LEN+1]; 215 DWORD dwLen; 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 }
Note:
See TracChangeset
for help on using the changeset viewer.