diff --git a/dlls/dbghelp/dbghelp.spec b/dlls/dbghelp/dbghelp.spec index d29b8808f26..b95a9e728bf 100644 --- a/dlls/dbghelp/dbghelp.spec +++ b/dlls/dbghelp/dbghelp.spec @@ -48,7 +48,7 @@ @ stdcall SymEnumerateModules64(long ptr ptr) @ stdcall SymEnumerateModulesW64(long ptr ptr) @ stdcall SymEnumerateSymbols(long long ptr ptr) -@ stub SymEnumerateSymbols64 +@ stdcall SymEnumerateSymbols64(long double ptr ptr) @ stub SymEnumerateSymbolsW @ stub SymEnumerateSymbolsW64 @ stub SymFindDebugInfoFile diff --git a/dlls/dbghelp/symbol.c b/dlls/dbghelp/symbol.c index 1d7edb8463d..f4f2d11644a 100644 --- a/dlls/dbghelp/symbol.c +++ b/dlls/dbghelp/symbol.c @@ -1055,6 +1055,33 @@ BOOL WINAPI SymEnumerateSymbols(HANDLE hProcess, DWORD BaseOfDll, return SymEnumSymbols(hProcess, BaseOfDll, NULL, sym_enumerate_cb, &se); } +struct sym_enumerate64 +{ + void* ctx; + PSYM_ENUMSYMBOLS_CALLBACK64 cb; +}; + +static BOOL CALLBACK sym_enumerate_cb64(PSYMBOL_INFO syminfo, ULONG size, void* ctx) +{ + struct sym_enumerate64* se = (struct sym_enumerate64*)ctx; + return (se->cb)(syminfo->Name, syminfo->Address, syminfo->Size, se->ctx); +} + +/*********************************************************************** + * SymEnumerateSymbols64 (DBGHELP.@) + */ +BOOL WINAPI SymEnumerateSymbols64(HANDLE hProcess, DWORD64 BaseOfDll, + PSYM_ENUMSYMBOLS_CALLBACK64 EnumSymbolsCallback, + PVOID UserContext) +{ + struct sym_enumerate64 se; + + se.ctx = UserContext; + se.cb = EnumSymbolsCallback; + + return SymEnumSymbols(hProcess, BaseOfDll, NULL, sym_enumerate_cb64, &se); +} + /****************************************************************** * SymFromAddr (DBGHELP.@) *