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 */