32-bit clipboard support.
[wine/multimedia.git] / include / except.h
blobc954177bd756a2075d36844f7794097c1690d31a
1 /*
2 * except.h
3 * Copyright (c) 1996, Onno Hovers (onno@stack.urc.tue.nl)
4 */
6 #ifndef __WINE_EXCEPT_H
7 #define __WINE_EXCEPT_H
9 #include "winnt.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,
20 PCONTEXT pcontext,
21 LPVOID pdispatcher);
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;
37 * this undocumented function is called when an exception
38 * handler wants all the frames to be unwound. RtlUnwind
39 * calls all exception handlers with the EH_UNWIND or
40 * EH_EXIT_UNWIND flags set in the exception record
42 * This prototype assumes RtlUnwind takes the same
43 * parameters as OS/2 2.0 DosUnwindException
44 * Disassembling RtlUnwind shows this is true, except for
45 * the TargetEIP parameter, which is unused. There is
46 * a fourth parameter, that is used as the eax in the
47 * context.
49 void WINAPI RtlUnwind( PEXCEPTION_FRAME pestframe,
50 LPVOID unusedEIP,
51 PEXCEPTION_RECORD pexcrec,
52 DWORD contextEAX );
54 #endif /* __WINE_EXCEPT_H */