Eric Pouech : dbghelp: Implemented SymLoadModuleExW.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu May 11 05:56:14 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 922a7bd1912e8600bbfc6caf83ba5f6903f3098b
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=922a7bd1912e8600bbfc6caf83ba5f6903f3098b
Author: Eric Pouech <eric.pouech at wanadoo.fr>
Date: Wed May 10 21:35:15 2006 +0200
dbghelp: Implemented SymLoadModuleExW.
---
dlls/dbghelp/dbghelp.spec | 2 +-
dlls/dbghelp/module.c | 34 ++++++++++++++++++++++++++++++++++
include/dbghelp.h | 2 ++
3 files changed, 37 insertions(+), 1 deletions(-)
diff --git a/dlls/dbghelp/dbghelp.spec b/dlls/dbghelp/dbghelp.spec
index 8641f43..1f753db 100644
--- a/dlls/dbghelp/dbghelp.spec
+++ b/dlls/dbghelp/dbghelp.spec
@@ -117,7 +117,7 @@
@ stdcall SymLoadModule(long long str str long long)
@ stdcall SymLoadModule64(long long str str double long)
@ stdcall SymLoadModuleEx(long long str str double long ptr long)
-@ stub SymLoadModuleExW
+@ stdcall SymLoadModuleExW(long long wstr wstr double long ptr long)
@ stdcall SymMatchFileName(str str ptr ptr)
@ stub SymMatchFileNameW
@ stdcall SymMatchString(str str long)
diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c
index 2076ccc..6cc6c06 100644
--- a/dlls/dbghelp/module.c
+++ b/dlls/dbghelp/module.c
@@ -30,6 +30,7 @@ #include "psapi.h"
#include "winreg.h"
#include "winternl.h"
#include "wine/debug.h"
+#include "winnls.h"
WINE_DEFAULT_DEBUG_CHANNEL(dbghelp);
@@ -463,6 +464,39 @@ DWORD64 WINAPI SymLoadModuleEx(HANDLE h
}
/***********************************************************************
+ * SymLoadModuleExW (DBGHELP.@)
+ */
+DWORD64 WINAPI SymLoadModuleExW(HANDLE hProcess, HANDLE hFile, PCWSTR wImageName,
+ PCWSTR wModuleName, DWORD64 BaseOfDll, DWORD DllSize,
+ PMODLOAD_DATA Data, DWORD Flags)
+{
+ LPSTR ImageName, ModuleName;
+ unsigned len;
+ BOOL ret;
+
+ if (wImageName)
+ {
+ len = WideCharToMultiByte(CP_ACP,0, wImageName, -1, NULL, 0, NULL, NULL);
+ ImageName = HeapAlloc(GetProcessHeap(), 0, len);
+ WideCharToMultiByte(CP_ACP,0, wImageName, -1, ImageName, len, NULL, NULL);
+ }
+ else ImageName = NULL;
+ if (wModuleName)
+ {
+ len = WideCharToMultiByte(CP_ACP,0, wModuleName, -1, NULL, 0, NULL, NULL);
+ ModuleName = HeapAlloc(GetProcessHeap(), 0, len);
+ WideCharToMultiByte(CP_ACP,0, wModuleName, -1, ModuleName, len, NULL, NULL);
+ }
+ else ModuleName = NULL;
+
+ ret = SymLoadModuleEx(hProcess, hFile, ImageName, ModuleName,
+ BaseOfDll, DllSize, Data, Flags);
+ HeapFree(GetProcessHeap(), 0, ImageName);
+ HeapFree(GetProcessHeap(), 0, ModuleName);
+ return ret;
+}
+
+/***********************************************************************
* SymLoadModule64 (DBGHELP.@)
*/
DWORD64 WINAPI SymLoadModule64(HANDLE hProcess, HANDLE hFile, PCSTR ImageName,
diff --git a/include/dbghelp.h b/include/dbghelp.h
index 49f4d7e..45916c1 100644
--- a/include/dbghelp.h
+++ b/include/dbghelp.h
@@ -763,6 +763,8 @@ DWORD WINAPI SymLoadModule(HANDLE, HAN
DWORD64 WINAPI SymLoadModule64(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD);
DWORD64 WINAPI SymLoadModuleEx(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD,
PMODLOAD_DATA, DWORD);
+DWORD64 WINAPI SymLoadModuleExW(HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD,
+ PMODLOAD_DATA, DWORD);
BOOL WINAPI SymUnloadModule(HANDLE, DWORD);
BOOL WINAPI SymUnloadModule64(HANDLE, DWORD64);
More information about the wine-cvs
mailing list