|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Retrieving Network Errors
When one of the WNet functions returns WN_EXTENDED_ERROR, an application can call the WNetGetLastError function to get more information about the error that occurred. This information is usually specific to the network provider.
The following example illustrates an application-defined error-handling function (NetErrorHandler) that takes three arguments: a window handle, the error code returned by one of the WNet functions, and the name of the function that produced the error. If the error code is WN_EXTENDED_ERROR, NetErrorHandler calls WNetGetLastError to get extended error information.
BOOL WINAPI NetErrorHandler(HWND hwnd, DWORD dwErrorCode, LPSTR lpszFunction) { DWORD dwWNetResult, dwLastError; CHAR szError[256]; CHAR szCaption[256]; CHAR szDescription[256]; CHAR szProvider[256]; // The following code performs standard error-handling. if (dwErrorCode != ERROR_EXTENDED_ERROR) { wsprintf((LPSTR) szError, "%s failed; \nResult is %ld",
lpszFunction, dwErrorCode); wsprintf((LPSTR) szCaption, "%s error", lpszFunction); MessageBox(hwnd, (LPSTR) szError, (LPSTR) szCaption, MB_OK); return TRUE; } // The following code performs error-handling when the // ERROR_EXTENDED_ERROR return value indicates that WNetGetLastError // can retrieve additional information. else { dwWNetResult = WNetGetLastError(&dwLastError, (LPSTR) szDescription, // buffer for error description
sizeof(szDescription), (LPSTR) szProvider, // buffer for provider name sizeof(szProvider)); if(dwWNetResult != NO_ERROR) { wsprintf((LPSTR) szError, "WNetGetLastError failed; error %ld", dwWNetResult); MessageBox(hwnd, (LPSTR) szError, "WNetGetLastError", MB_OK); return FALSE; } wsprintf((LPSTR) szError, "%s failed with code %ld;\n%s",
(LPSTR) szProvider, dwLastError, (LPSTR) szDescription); wsprintf((LPSTR) szCaption, "%s error", lpszFunction); MessageBox(hwnd, (LPSTR) szError, (LPSTR) szCaption, MB_OK); return TRUE; } }
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Поиск Сетевых Ошибок
Когда один из возврата функций WNet WN_EXTENDED_ERROR, приложение может назвать функцию WNetGetLastError, чтобы получать больше информации об ошибке, что происходил. Эта информация обычно специфическая сетевому поставщику.
Следующий пример иллюстрирует определенную прикладную ошибку-обработку функции (NetErrorHandler), что берет три аргумента: ручка окна, код ошибки возвращался одной из функций WNet, и имя функции, которые производили ошибку. Если код ошибки является WN_EXTENDED_ERROR, вызовами NetErrorHandler WNetGetLastError, чтобы расширять информацию ошибки.
BOOL WINAPI NetErrorHandler(HWND hwnd, DWORD dwErrorCode, LPSTR lpszFunction) { DWORD dwWNetResult, dwLastError; СИМВОЛЬНЫЙ szError[256]; СИМВОЛ szCaption[256]; СИМВОЛ szDescription[256]; СИМВОЛ szProvider[256]; // Следующее кода выполняет стандартную ошибку-обработку. если (dwErrorCode != ERROR_EXTENDED_ERROR) { wsprintf szError((LPSTR), "%s терпел неудачу; \nResult - %ld",
lpszFunction, dwErrorCode); wsprintf((LPSTR) szCaption, "%s ошибка", lpszFunction); MessageBox szError(hwnd, (LPSTR), (LPSTR) szCaption, MB_OK); возвращайтесь ВЕРНО; } // Следующее кода выполняет ошибку-обработку когда // обратная величина ERROR_EXTENDED_ERROR указывает, что WNetGetLastError // может извлечь дополнительную информацию. еще { dwWNetResult = WNetGetLastError(&dwLastError, (LPSTR) szDescription, // БУФЕР для описания ошибки
sizeof(szDescription), (LPSTR) szProvider, // буфер для имени поставщика sizeof(szProvider)); если szError(dwWNetResult != NO_ERROR) { wsprintf((LPSTR), "WNetGetLastError потерпевший неудачу; ошибка %ld", dwWNetResult); MessageBox szError(hwnd, (LPSTR), "WNetGetLastError", MB_OK); обратная ЛОЖЬ; } wsprintf szError((LPSTR), "%s терпел неудачу кодом %ld;\n%s",
(LPSTR) szProvider, dwLastError, (LPSTR) szDescription); wsprintf((LPSTR) szCaption, "%s ошибка", lpszFunction); MessageBox szError(hwnd, (LPSTR), (LPSTR) szCaption, MB_OK); возвращайтесь ВЕРНО; } }
|
|
|
|
| |