home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / excptn.zip / excptn / EXCPTN.H < prev    next >
C/C++ Source or Header  |  1994-11-23  |  3KB  |  97 lines

  1. #ifndef INCL_EXCEPT_H
  2. #define INCL_EXCEPT_H
  3.  
  4. #ifdef __USE_PRAGMA_PACK__
  5. #pragma pack (4)
  6. #endif
  7.  
  8. #define CONTINUABLE 0
  9. #define NON_CONTINUABLE 1
  10.  
  11. #define EXCPT_DIO_ERR 0x60000001
  12. #define EXCPT_FAILURE 0xE0000002
  13. #define EXCPT_SYS_ERR 0xE0000003
  14. #define EXCPT_SET2BIG 0xE0010001
  15. #define EXCPT_MEMERR1 0xE0020001
  16. #define EXCPT_MEMERR2 0xE0020002
  17. #define EXCPT_MEMERR3 0xE0020003
  18. #define EXCPT_MEMERR4 0xE0020004
  19. #define EXCPT_MEMERR5 0xE0020005
  20. #define EXCPT_MEMERR6 0xE0020006
  21. #define EXCPT_MEMERR7 0xE0020007
  22. #define EXCPT_MEMERR8 0xE0020008
  23. #define EXCPT_MEMERR9 0xE0020009
  24. #define EXCPT_MEMERRA 0xE002000A
  25. #define EXCPT_MEMERRB 0xE002000B
  26. #define EXCPT_MEMERRC 0xE002000C
  27. #define EXCPT_MEMERRD 0xE002000D
  28. #define EXCPT_MEMERRE 0xE002000E
  29. #define EXCPT_MEMERRF 0xE002000F
  30. #define EXCPT_UNSHADO 0x60030001
  31. #define EXCPT_XYOUTSD 0x60040001
  32. #define EXCPT_CTRE_DF 0xE0050001
  33. #define EXCPT_NO_LOG  0x60050002
  34. #define EXCPT_VAL_CNV 0x60060001
  35. #define EXCPT_VAL_DB1 0x60060002
  36. #define EXCPT_VAL_DB2 0x60060003
  37. #define EXCPT_VAL_DB3 0x60060004
  38. #define EXCPT_VAL_DB4 0x60060005
  39.  
  40. typedef struct {
  41.     int num_par;
  42.     unsigned char len1;
  43.     unsigned char len2;
  44.     unsigned char len3;
  45.     char texts[1];
  46. }FAIL_EXCPT, *pFAIL_EXCPT;
  47.  
  48. typedef struct _link_excpt_ {
  49.     ULONG exception_code;
  50.     int (_System *hndlr) ();
  51.     struct _link_excpt_ *next;
  52. }EXCPT_INFO, *pEXCPT_INFO;
  53.  
  54. #define EXCPT_CONT   0
  55. #define EXCPT_SRCH   1
  56. #define EXCPT_UNLINK 2
  57.  
  58. typedef struct {
  59. #ifdef __OS2__
  60.     EXCEPTIONREGISTRATIONRECORD exrr;
  61. #endif
  62.     pEXCPT_INFO excpt_info;
  63. }EXCPT_STRUCT, *pEXCPT_STRUCT;
  64.  
  65.  
  66. #ifdef __OS2__
  67.  
  68.         #define EXCEPTION_STRUCTURE EXCPT_STRUCT excpt_struct
  69.         #define INIT_EXCEPTION_HANDLER ExcptInitialize(&excpt_struct)
  70.         #define FINI_EXCEPTION_HANDLER ExcptTerminate(&excpt_struct)
  71.         #define ExcptLinkHandler(a,b) _ExcptLinkHandler((a),(b),&excpt_struct.excpt_info)
  72.  
  73.         extern void COMMON ExcptInitialize(pEXCPT_STRUCT);
  74.         extern void COMMON ExcptTerminate(pEXCPT_STRUCT);
  75.         #ifdef __OS2__
  76.         extern ULONG APIENTRY ExcptHndlr(PEXCEPTIONREPORTRECORD,
  77.                                     PEXCEPTIONREGISTRATIONRECORD,
  78.                                     PCONTEXTRECORD,
  79.                                     PVOID);
  80.         #endif
  81.         extern void COMMON _ExcptLinkHandler(unsigned long, void(_System *)(), pEXCPT_INFO *);
  82.  
  83. #else /* __SVR3__ , __WinNT__ */
  84.  
  85.         #define EXCEPTION_STRUCTURE
  86.         #define INIT_EXCEPTION_HANDLER
  87.         #define FINI_EXCEPTION_HANDLER
  88.         #define ExcptLinkHandler(a,b)
  89. #endif
  90. extern void COMMON ExcptPost(unsigned long, unsigned, const char *, unsigned long);
  91. extern int COMMON Fail(const char *, const char *, const char *, int);
  92.  
  93. #ifdef __USE_PRAGMA_PACK__
  94. #pragma pack (1)
  95. #endif
  96. #endif
  97.