home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warphead.zip / H / BENTOERR.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  2KB  |  77 lines

  1. /* @(#)Z 1.3 com/src/bento/BentoErr.h, odstorage, od96os2, odos29646d 96/11/15 16:00:45 (96/10/29 09:10:36) */
  2. /*====START_GENERATED_PROLOG======================================
  3.  */
  4. /*
  5.  *   COMPONENT_NAME: odstorage
  6.  *
  7.  *   CLASSES: none
  8.  *
  9.  *   ORIGINS: 27
  10.  *
  11.  *
  12.  *   (C) COPYRIGHT International Business Machines Corp. 1995,1996
  13.  *   All Rights Reserved
  14.  *   Licensed Materials - Property of IBM
  15.  *   US Government Users Restricted Rights - Use, duplication or
  16.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  17.  *       
  18.  *   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  19.  *   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  20.  *   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  21.  *   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  22.  *   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  23.  *   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  24.  *   OR PERFORMANCE OF THIS SOFTWARE.
  25.  */
  26. /*====END_GENERATED_PROLOG========================================
  27.  */
  28.  
  29. #ifndef _BENTOERR_
  30. #define _BENTOERR_
  31.  
  32. #define SaveEv() \
  33.        ODError savedNonSOMError, savedSOMError; \
  34.        savedSOMError = ODGetSOMException(ev); \
  35.        if (savedSOMError == kODNoError) \
  36.           savedNonSOMError = ErrorCode(); \
  37.        SetErrorCodeEv(ev, kODNoError); 
  38.  
  39. #define RestoreEv() \
  40.        if (savedSOMError == kODNoError) \
  41.           SetErrorCodeEv(ev, savedNonSOMError); \
  42.        else \
  43.           ODSetSOMException(ev, savedSOMError);
  44.  
  45. #define SaveAndRestoreEv1(object1) \
  46.     { \
  47.        SaveEv() \
  48.        try \
  49.        { \
  50.           ODReleaseObject(ev, object1); \
  51.        } \
  52.        catch (ODException _exception) \
  53.        { \
  54.           SetErrorCodeEv(ev, kODNoError); \
  55.        } \
  56.        RestoreEv() \
  57.     } 
  58.  
  59. #define SaveAndRestoreEv2(object1, object2) \
  60.     { \
  61.        SaveEv() \
  62.        try \
  63.        { \
  64.           if (object1) \
  65.              ODReleaseObject(ev, object1); \
  66.           if (object2) \
  67.              ODReleaseObject(ev, object2); \
  68.        } \
  69.        catch (ODException _exception) \
  70.        { \
  71.           SetErrorCodeEv(ev, kODNoError); \
  72.        } \
  73.        RestoreEv() \
  74.     }
  75.  
  76. #endif
  77.