From 1cef2974ab2eb6cfe4436f3889531893048cae6b Mon Sep 17 00:00:00 2001 From: Joshua Thielen Date: Fri, 5 Jul 2002 00:16:41 +0000 Subject: [PATCH] Changed GetModuleFileNameA to use GetCurrentTask instead of MODULE32_LookupHMODULE when called by a 16-bit task. --- loader/module.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/loader/module.c b/loader/module.c index f3a9a640450..049904c51e8 100644 --- a/loader/module.c +++ b/loader/module.c @@ -1033,13 +1033,20 @@ DWORD WINAPI GetModuleFileNameA( LPSTR lpFileName, /* [out] filenamebuffer */ DWORD size ) /* [in] size of filenamebuffer */ { - WINE_MODREF *wm; - RtlEnterCriticalSection( &loader_section ); lpFileName[0] = 0; - if ((wm = MODULE32_LookupHMODULE( hModule ))) - lstrcpynA( lpFileName, wm->filename, size ); + if (!hModule && !(NtCurrentTeb()->tibflags & TEBF_WIN32)) + { + /* 16-bit task - get current NE module name */ + NE_MODULE *pModule = NE_GetPtr( GetCurrentTask() ); + if (pModule) GetLongPathNameA(NE_MODULE_NAME(pModule), lpFileName, size); + } + else + { + WINE_MODREF *wm = MODULE32_LookupHMODULE( hModule ); + if (wm) lstrcpynA( lpFileName, wm->filename, size ); + } RtlLeaveCriticalSection( &loader_section ); TRACE("%s\n", lpFileName ); @@ -1694,4 +1701,3 @@ SEGPTR WINAPI HasGPHandler16( SEGPTR address ) return 0; } -