21 #ifndef __MSVCRT_CPPEXCEPT_H 22 #define __MSVCRT_CPPEXCEPT_H 26 #define CXX_FRAME_MAGIC_VC6 0x19930520 27 #define CXX_FRAME_MAGIC_VC7 0x19930521 28 #define CXX_FRAME_MAGIC_VC8 0x19930522 29 #define CXX_EXCEPTION 0xe06d7363 31 #define FUNC_DESCR_SYNCHRONOUS 1 82 #define CLASS_IS_SIMPLE_TYPE 1 83 #define CLASS_HAS_VIRTUAL_BASE_CLASS 4 121 unsigned int destructor;
122 unsigned int custom_handler;
123 unsigned int type_info_table;
132 if (!
info)
return "{}";
140 if (!
object)
return NULL;
149 offset_ptr = (
int *)(*(
char **)
object + off->
vbase_offset);
150 object = (
char *)
object + *offset_ptr;
158 #define DEFINE_EXCEPTION_TYPE_INFO(type, base_no, cl1, cl2) \ 160 static const cxx_type_info type ## _cxx_type_info = { \ 162 & type ##_type_info, \ 165 (cxx_copy_ctor)THISCALL(MSVCRT_ ## type ##_copy_ctor) \ 168 static const cxx_type_info_table type ## _type_info_table = { \ 171 & type ## _cxx_type_info, \ 177 static const cxx_exception_type type ## _exception_type = { \ 179 (cxx_copy_ctor)THISCALL(MSVCRT_ ## type ## _dtor), \ 181 & type ## _type_info_table \ 186 #define DEFINE_EXCEPTION_TYPE_INFO(type, base_no, cl1, cl2) \ 188 static cxx_type_info type ## _cxx_type_info = { \ 196 static cxx_type_info_table type ## _type_info_table = { \ 205 static cxx_exception_type type ##_exception_type = { \ 212 static void init_ ## type ## _cxx(char *base) \ 214 type ## _cxx_type_info.type_info = (char *)&type ## _type_info - base; \ 215 type ## _cxx_type_info.copy_ctor = (char *)MSVCRT_ ## type ## _copy_ctor - base; \ 216 type ## _type_info_table.info[0] = (char *)&type ## _cxx_type_info - base; \ 217 type ## _type_info_table.info[1] = (char *)cl1 - base; \ 218 type ## _type_info_table.info[2] = (char *)cl2 - base; \ 219 type ## _exception_type.destructor = (char *)MSVCRT_ ## type ## _dtor - base; \ 220 type ## _exception_type.type_info_table = (char *)&type ## _type_info_table - base; \
struct _EXCEPTION_RECORD * PEXCEPTION_RECORD
void(* cxx_copy_ctor)(void)
void WINAPI _CxxThrowException(exception *, const cxx_exception_type *)
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
static const char * dbgstr_type_info(const type_info *info)
const type_info * type_info
struct __cxx_type_info cxx_type_info
const char * wine_dbg_sprintf(const char *format,...)
cxx_exc_custom_handler custom_handler
DWORD(* cxx_exc_custom_handler)(PEXCEPTION_RECORD, cxx_exception_frame *, PCONTEXT, EXCEPTION_REGISTRATION_RECORD **, const cxx_function_descr *, int nested_trylevel, EXCEPTION_REGISTRATION_RECORD *nested_frame, DWORD unknown3)
struct __type_info type_info
struct __cxx_exception_type cxx_exception_type
struct __exception exception
const cxx_type_info_table * type_info_table
static void * get_this_pointer(const this_ptr_offsets *off, void *object)
int CDECL _XcptFilter(NTSTATUS, PEXCEPTION_POINTERS)
struct __cxx_type_info_table cxx_type_info_table