diff --git a/dll/win32/dbghelp/compat.h b/dll/win32/dbghelp/compat.h index 3a6137eca9a..e281347d0ee 100644 --- a/dll/win32/dbghelp/compat.h +++ b/dll/win32/dbghelp/compat.h @@ -1299,7 +1299,9 @@ typedef struct API_VERSION typedef enum { SYMOPT_EX_DISABLEACCESSTIMEUPDATE, - SYMOPT_EX_MAX + SYMOPT_EX_MAX, +/* __WINESRC__ */ + SYMOPT_EX_WINE_NATIVE_MODULES = 1000 } IMAGEHLP_EXTENDED_OPTIONS; // cvconst.h diff --git a/dll/win32/dbghelp/dbghelp.c b/dll/win32/dbghelp/dbghelp.c index 3c3350d8213..b4f435fd584 100644 --- a/dll/win32/dbghelp/dbghelp.c +++ b/dll/win32/dbghelp/dbghelp.c @@ -70,6 +70,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp); */ unsigned dbghelp_options = SYMOPT_UNDNAME; +BOOL dbghelp_opt_native = FALSE; static struct process* process_first /* = NULL */; @@ -473,8 +474,19 @@ DWORD WINAPI SymGetOptions(void) */ BOOL WINAPI SymSetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option, BOOL value) { - FIXME("%d, %d\n", option, value); - return FALSE; + BOOL old = FALSE; + + switch(option) + { + case SYMOPT_EX_WINE_NATIVE_MODULES: + old = dbghelp_opt_native; + dbghelp_opt_native = value; + break; + default: + FIXME("Unsupported option %d with value %d\n", option, value); + } + + return old; } /****************************************************************** @@ -483,7 +495,14 @@ BOOL WINAPI SymSetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option, BOOL value) */ BOOL WINAPI SymGetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option) { - FIXME("%d\n", option); + switch(option) + { + case SYMOPT_EX_WINE_NATIVE_MODULES: + return dbghelp_opt_native; + default: + FIXME("Unsupported option %d\n", option); + } + return FALSE; } diff --git a/dll/win32/dbghelp/dbghelp_private.h b/dll/win32/dbghelp/dbghelp_private.h index 565399ebcc1..e5b3bfce8ed 100644 --- a/dll/win32/dbghelp/dbghelp_private.h +++ b/dll/win32/dbghelp/dbghelp_private.h @@ -127,6 +127,8 @@ void* hash_table_iter_up(struct hash_table_iter* hti) DECLSPEC_HIDDEN; extern unsigned dbghelp_options DECLSPEC_HIDDEN; +extern BOOL dbghelp_opt_native DECLSPEC_HIDDEN; + /* some more Wine extensions */ #define SYMOPT_WINE_WITH_NATIVE_MODULES 0x40000000 diff --git a/sdk/include/psdk/dbghelp.h b/sdk/include/psdk/dbghelp.h index 549155229c5..40eca402a4a 100644 --- a/sdk/include/psdk/dbghelp.h +++ b/sdk/include/psdk/dbghelp.h @@ -2316,7 +2316,11 @@ typedef struct _IMAGE_DEBUG_INFORMATION typedef enum { SYMOPT_EX_DISABLEACCESSTIMEUPDATE, - SYMOPT_EX_MAX + SYMOPT_EX_MAX, + +#ifdef __WINESRC__ + SYMOPT_EX_WINE_NATIVE_MODULES = 1000, +#endif } IMAGEHLP_EXTENDED_OPTIONS; PIMAGE_DEBUG_INFORMATION diff --git a/sdk/tools/winesync/dbghelp.cfg b/sdk/tools/winesync/dbghelp.cfg index 58583d4c5fe..b503937e428 100644 --- a/sdk/tools/winesync/dbghelp.cfg +++ b/sdk/tools/winesync/dbghelp.cfg @@ -4,4 +4,4 @@ files: include/dbghelp.h: sdk/include/psdk/dbghelp.h include/wine/mscvpdb.h: sdk/include/reactos/wine/mscvpdb.h tags: - wine: 3fed8787251882c70eeadefb230cd2ff4b251ac2 + wine: fa5e5df71db231f6fca9c7a40792c17e9bbe5027