Added ERROR_sig.
[wine/multimedia.git] / include / except.h
blob979fb0c92c0de26c01dde3564b22443013c65dd8
1 /*
2 * except.h
3 * Copyright (c) 1996 Onno Hovers (onno@stack.urc.tue.nl)
4 * Copyright (c) 1999 Alexandre Julliard
5 */
7 #ifndef __WINE_EXCEPT_H
8 #define __WINE_EXCEPT_H
10 #include <setjmp.h>
11 #include "winnt.h"
12 #include "thread.h"
15 * the function pointer to a exception handler
18 /* forward definition */
19 struct __EXCEPTION_FRAME;
21 typedef DWORD (CALLBACK *PEXCEPTION_HANDLER)( PEXCEPTION_RECORD pexcrec,
22 struct __EXCEPTION_FRAME *pestframe,
23 PCONTEXT pcontext,
24 struct __EXCEPTION_FRAME **pdispatcher);
27 * The exception frame, used for registering exception handlers
28 * Win32 cares only about this, but compilers generally emit
29 * larger exception frames for their own use.
32 typedef struct __EXCEPTION_FRAME
34 struct __EXCEPTION_FRAME *Prev;
35 PEXCEPTION_HANDLER Handler;
36 } EXCEPTION_FRAME, *PEXCEPTION_FRAME;
39 void WINAPI RtlUnwind(PEXCEPTION_FRAME,LPVOID,PEXCEPTION_RECORD,DWORD);
41 static inline EXCEPTION_FRAME *EXC_push_frame( EXCEPTION_FRAME *frame )
43 TEB * teb = NtCurrentTeb();
44 frame->Prev = teb->except;
45 teb->except = frame;
46 return frame;
49 static inline EXCEPTION_FRAME *EXC_pop_frame( EXCEPTION_FRAME *frame )
51 NtCurrentTeb()->except = frame->Prev;
52 return frame->Prev;
55 #endif /* __WINE_EXCEPT_H */