dbghelp: Implement SymEnumerateSymbols64.
authorJon Griffiths <jon_p_griffiths@yahoo.com>
Fri, 20 Jun 2008 03:02:44 +0000 (20:02 -0700)
committerAlexandre Julliard <julliard@winehq.org>
Sat, 21 Jun 2008 09:13:37 +0000 (11:13 +0200)
dlls/dbghelp/dbghelp.spec
dlls/dbghelp/symbol.c

index d29b8808f2681d08cdd38701669948fdf3a7e07c..b95a9e728bfd332894d10ee624f8b9a173868ff5 100644 (file)
@@ -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
index 1d7edb8463d7737d4e911306c208195169b8ccf5..f4f2d11644a49296efd75a9809dad49971249e50 100644 (file)
@@ -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.@)
  *