|
|
//--------------------------------------------------------------------
// ErrorHandling - header
// Copyright (C) Microsoft Corporation, 1999
//
// Created by: Louis Thomas (louisth), 8-10-99
//
// Macro definitions for CertSrv style error handling
//
#ifndef ERROR_HANDLING_H
#define ERROR_HANDLING_H
#define _Verify(expression, hr, label) \
if (!(expression)) { \ wprintf(L"Verify failed: '%ws' is false.\n", L## #expression); \ hr=E_UNEXPECTED; \ goto label; \ }
#define _IgnoreError(hr, errorsource) \
wprintf(L##errorsource L" failed with 0x%08X, ignored.\n", hr);
#define _JumpError(hr, label, errorsource) \
wprintf(L##errorsource L" failed with 0x%08X.\n", hr); \ goto label;
#define _JumpErrorStr(hr, label, errorsource, wstr) \
wprintf(L##errorsource L"(%ws) failed with 0x%08X.\n", wstr, hr); \ goto label;
#define _JumpIfError(hr, label, errorsource) \
if (FAILED(hr)) { \ wprintf(L##errorsource L" failed with 0x%08X.\n", hr); \ goto label; \ }
#define _JumpIfErrorStr(hr, label, errorsource, wstr) \
if (FAILED(hr)) { \ wprintf(L##errorsource L"(%ws) failed with 0x%08X.\n", wstr, hr); \ goto label; \ }
#define _JumpIfOutOfMemory(hr, label, pointer) \
if (NULL==(pointer)) { \ hr=E_OUTOFMEMORY; \ wprintf(L"Out of memory.\n"); \ goto label; \ }
#define _TrapException(hr) \
__except(hr=myHExceptionCode(GetExceptionInformation()), EXCEPTION_EXECUTE_HANDLER) {}
#define _TeardownError(hr, hr2, errorsource) \
if (FAILED(hr2)) { \ wprintf(L##errorsource L" failed with 0x%08X during teardown.\n", hr2); \ if (!FAILED(hr)) { \ hr=hr2; \ } \ }
#endif ERROR_HANDLING_H
|