Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
� 1998 Seagate Software, Inc. All rights reserved.
Module Name:
RsOpt.h
Abstract:
Special error handling macros for RsOptCom and RsCln.
Author:
Carl Hagerstrom [carlh] 20-Aug-1998
Revision History:
--*/
#ifndef _RSOPT_H
#define _RSOPT_H
#define RsOptThrow(hr) throw ((HRESULT)hr)
#define RsOptLastError (HRESULT_FROM_WIN32(GetLastError()))
#define RsOptAffirm(cond,hr) if (!(cond)) RsOptThrow(hr)
#define RsOptAffirmStatus(stat) RsOptAffirm(stat, RsOptLastError)
#define RsOptAffirmPointer(ptr) RsOptAffirm(ptr, E_POINTER)
#define RsOptAffirmAlloc(ptr) RsOptAffirm(ptr, E_OUTOFMEMORY)
#define RsOptAffirmHr(hr) \
{ \ HRESULT lHr; \ lHr = (hr); \ RsOptAffirm(SUCCEEDED(lHr), lHr); \ }
#define RsOptAffirmHandle(hndl) \
{ \ HANDLE _hndl; \ _hndl = (hndl); \ RsOptAffirm(_hndl && _hndl != INVALID_HANDLE_VALUE, RsOptLastError); \ }
#define RsOptAffirmNtStatus(ntstat) \
{ \ NTSTATUS _ntstat; \ _ntstat = (ntstat); \ RsOptAffirm(NT_SUCCESS(_ntstat), HRESULT_FROM_NT(_ntstat)); \ }
#define RsOptAffirmDw(hr) \
{ \ HRESULT _hr; \ _hr = (hr); \ RsOptAffirm(SUCCEEDED(_hr), _hr); \ }
#define RsOptAffirmWin32(stat) \
{ \ LONG _stat; \ _stat = (stat); \ RsOptAffirm(_stat == ERROR_SUCCESS, HRESULT_FROM_WIN32(_stat)); \ }
#define RsOptCatch(retval) \
catch(HRESULT _retval) \ { \ retval = _retval; \ }
#endif // _RSOPT_H
|