Patch 2/2 for SmartForms Installer: GetModuleFileNameW called by 16-bit task.
Joshua Thielen
thielen at netprince.net
Fri Jun 21 23:37:25 CDT 2002
This patch fixes another error encountered in the Smart Forms installer
(somewhat related to bug 575).
The SmartForms installer (a 16-bit NE EXE) calls GetModuleFileNameW
through a 32-bit procedure using CallProc32. Since the task is 16-bit,
GetCurrentTask must be used instead of MODULE32_LookupHMODULE.
Oops I forgot a changelog on the previous patch.
Modified Files:
wine/loader/module.c
Changelog:
Changed GetModuleFileNameA to use GetCurrentTask instead of
MODULE32_LookupHMODULE when called by a 16-bit task.
License:
GPL
X11
Josh Thielen
-------------- next part --------------
Index: wine/loader/module.c
===================================================================
RCS file: /home/wine/wine/loader/module.c,v
retrieving revision 1.150
diff -u -r1.150 module.c
--- wine/loader/module.c 2 Apr 2002 19:47:30 -0000 1.150
+++ wine/loader/module.c 22 Jun 2002 03:20:45 -0000
@@ -1247,8 +1247,17 @@
RtlEnterCriticalSection( &loader_section );
lpFileName[0] = 0;
- if ((wm = MODULE32_LookupHMODULE( hModule )))
+ if(!hModule && !(NtCurrentTeb()->tibflags &= TEBF_WIN32)) {
+ /* 16-bit task - get current NE module name */
+ NE_MODULE *pModule;
+ hModule = GetCurrentTask();
+
+ if ((pModule = NE_GetPtr( hModule ))) {
+ GetLongPathNameA(NE_MODULE_NAME(pModule), lpFileName, size);
+ }
+ } else if ((wm = MODULE32_LookupHMODULE( hModule ))) {
lstrcpynA( lpFileName, wm->filename, size );
+ }
RtlLeaveCriticalSection( &loader_section );
TRACE("%s\n", lpFileName );
More information about the wine-patches
mailing list