dbghelp: Implemented SearchTreeForFileW.

This commit is contained in:
Eric Pouech 2007-02-21 21:55:41 +01:00 committed by Alexandre Julliard
parent c0be0032de
commit 9e1f9ec19e
3 changed files with 25 additions and 6 deletions

View File

@ -26,8 +26,8 @@
@ stdcall MapDebugInformation(long str str long) @ stdcall MapDebugInformation(long str str long)
@ stdcall MiniDumpReadDumpStream(ptr long ptr ptr ptr) @ stdcall MiniDumpReadDumpStream(ptr long ptr ptr ptr)
@ stdcall MiniDumpWriteDump(ptr long ptr long long long long) @ stdcall MiniDumpWriteDump(ptr long ptr long long long long)
@ stdcall SearchTreeForFile(str str str) @ stdcall SearchTreeForFile(str str ptr)
@ stub SearchTreeForFileW @ stdcall SearchTreeForFileW(wstr wstr ptr)
@ stdcall StackWalk(long long long ptr ptr ptr ptr ptr ptr) @ stdcall StackWalk(long long long ptr ptr ptr ptr ptr ptr)
@ stdcall StackWalk64(long long long ptr ptr ptr ptr ptr ptr) @ stdcall StackWalk64(long long long ptr ptr ptr ptr ptr ptr)
@ stub SymAddSymbol @ stub SymAddSymbol

View File

@ -272,15 +272,33 @@ static BOOL do_search(const char* file, char* buffer, BOOL recurse,
return found; return found;
} }
/***********************************************************************
* SearchTreeForFileW (DBGHELP.@)
*/
BOOL WINAPI SearchTreeForFileW(PCWSTR root, PCWSTR file, PWSTR buffer)
{
TRACE("(%s, %s, %p)\n",
debugstr_w(root), debugstr_w(file), buffer);
strcpyW(buffer, root);
return do_searchW(file, buffer, TRUE, NULL, NULL);
}
/*********************************************************************** /***********************************************************************
* SearchTreeForFile (DBGHELP.@) * SearchTreeForFile (DBGHELP.@)
*/ */
BOOL WINAPI SearchTreeForFile(PCSTR root, PCSTR file, PSTR buffer) BOOL WINAPI SearchTreeForFile(PCSTR root, PCSTR file, PSTR buffer)
{ {
TRACE("(%s, %s, %p)\n", WCHAR rootW[MAX_PATH];
debugstr_a(root), debugstr_a(file), buffer); WCHAR fileW[MAX_PATH];
strcpy(buffer, root); WCHAR bufferW[MAX_PATH];
return do_search(file, buffer, TRUE, NULL, NULL); BOOL ret;
MultiByteToWideChar(CP_ACP, 0, root, -1, rootW, MAX_PATH);
MultiByteToWideChar(CP_ACP, 0, file, -1, fileW, MAX_PATH);
ret = SearchTreeForFileW(rootW, fileW, bufferW);
if (ret)
WideCharToMultiByte(CP_ACP, 0, bufferW, -1, buffer, MAX_PATH, NULL, NULL);
return ret;
} }
/****************************************************************** /******************************************************************

View File

@ -1020,6 +1020,7 @@ BOOL WINAPI SymSetSearchPathW(HANDLE, PCWSTR);
DWORD WINAPI GetTimestampForLoadedLibrary(HMODULE); DWORD WINAPI GetTimestampForLoadedLibrary(HMODULE);
BOOL WINAPI MakeSureDirectoryPathExists(PCSTR); BOOL WINAPI MakeSureDirectoryPathExists(PCSTR);
BOOL WINAPI SearchTreeForFile(PCSTR, PCSTR, PSTR); BOOL WINAPI SearchTreeForFile(PCSTR, PCSTR, PSTR);
BOOL WINAPI SearchTreeForFileW(PCWSTR, PCWSTR, PWSTR);
typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACK)(LPCSTR, PVOID); typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACK)(LPCSTR, PVOID);
BOOL WINAPI EnumDirTree(HANDLE, PCSTR, PCSTR, PSTR, PENUMDIRTREE_CALLBACK, void*); BOOL WINAPI EnumDirTree(HANDLE, PCSTR, PCSTR, PSTR, PENUMDIRTREE_CALLBACK, void*);
typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACKW)(LPCWSTR, PVOID); typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACKW)(LPCWSTR, PVOID);