3 * Copyright (c) 1996, Onno Hovers (onno@stack.urc.tue.nl)
6 #ifndef __WINE_EXCEPT_H
7 #define __WINE_EXCEPT_H
12 * the function pointer to a exception handler
15 /* forward definition */
16 struct __EXCEPTION_FRAME
;
18 typedef DWORD (CALLBACK
*PEXCEPTION_HANDLER
)( PEXCEPTION_RECORD pexcrec
,
19 struct __EXCEPTION_FRAME
*pestframe
,
24 * The exception frame, used for registering exception handlers
25 * Win32 cares only about this, but compilers generally emit
26 * larger exception frames for their own use.
29 typedef struct __EXCEPTION_FRAME
31 struct __EXCEPTION_FRAME
*Prev
;
32 PEXCEPTION_HANDLER Handler
;
33 } EXCEPTION_FRAME
, *PEXCEPTION_FRAME
;
36 * Function definitions
39 void WINAPI
RaiseException(DWORD exccode
, DWORD excflags
,
40 DWORD nargs
, const LPDWORD pargs
,
41 PCONTEXT pcontext
/* Wine additional parameter */);
44 * this undocumented function is called when an exception
45 * handler wants all the frames to be unwound. RtlUnwind
46 * calls all exception handlers with the EH_UNWIND or
47 * EH_EXIT_UNWIND flags set in the exception record
49 * This prototype assumes RtlUnwind takes the same
50 * parameters as OS/2 2.0 DosUnwindException
51 * Disassembling RtlUnwind shows this is true, except for
52 * the TargetEIP parameter, which is unused. There is
53 * a fourth parameter, that is used as the eax in the
57 void WINAPI
RtlUnwind( PEXCEPTION_FRAME pestframe
,
59 PEXCEPTION_RECORD pexcrec
,
61 PCONTEXT pcontext
/* Wine additional parameter */ );
63 #endif /* __WINE_EXCEPT_H */