mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-18 21:18:14 +00:00
Bugfix: Don't call GetVersionExA too early, to avoid breaking
automatic emulated Windows version detection.
This commit is contained in:
parent
260cd4ec94
commit
79077f3253
|
@ -146,7 +146,6 @@ static HMODULE16 BUILTIN_DoLoadModule16( const WIN16_DESCRIPTOR *descr )
|
||||||
NE_MODULE *pModule;
|
NE_MODULE *pModule;
|
||||||
int minsize;
|
int minsize;
|
||||||
SEGTABLEENTRY *pSegTable;
|
SEGTABLEENTRY *pSegTable;
|
||||||
OSVERSIONINFOA versionInfo;
|
|
||||||
|
|
||||||
HMODULE16 hModule = GLOBAL_CreateBlock( GMEM_MOVEABLE, descr->module_start,
|
HMODULE16 hModule = GLOBAL_CreateBlock( GMEM_MOVEABLE, descr->module_start,
|
||||||
descr->module_size, 0,
|
descr->module_size, 0,
|
||||||
|
@ -159,13 +158,6 @@ static HMODULE16 BUILTIN_DoLoadModule16( const WIN16_DESCRIPTOR *descr )
|
||||||
pModule = (NE_MODULE *)GlobalLock16( hModule );
|
pModule = (NE_MODULE *)GlobalLock16( hModule );
|
||||||
pModule->self = hModule;
|
pModule->self = hModule;
|
||||||
|
|
||||||
/* Set expected_version according to the emulated Windows version */
|
|
||||||
|
|
||||||
versionInfo.dwOSVersionInfoSize = sizeof(versionInfo);
|
|
||||||
if ( GetVersionExA( &versionInfo ) )
|
|
||||||
pModule->expected_version = (versionInfo.dwMajorVersion & 0xff) << 8
|
|
||||||
| (versionInfo.dwMinorVersion & 0xff);
|
|
||||||
|
|
||||||
/* Allocate the code segment */
|
/* Allocate the code segment */
|
||||||
|
|
||||||
pSegTable = NE_SEG_TABLE( pModule );
|
pSegTable = NE_SEG_TABLE( pModule );
|
||||||
|
|
|
@ -341,7 +341,6 @@ HMODULE MODULE_CreateDummyModule( const OFSTRUCT *ofs, LPCSTR modName )
|
||||||
char *pStr,*s;
|
char *pStr,*s;
|
||||||
int len;
|
int len;
|
||||||
const char* basename;
|
const char* basename;
|
||||||
OSVERSIONINFOA versionInfo;
|
|
||||||
|
|
||||||
INT of_size = sizeof(OFSTRUCT) - sizeof(ofs->szPathName)
|
INT of_size = sizeof(OFSTRUCT) - sizeof(ofs->szPathName)
|
||||||
+ strlen(ofs->szPathName) + 1;
|
+ strlen(ofs->szPathName) + 1;
|
||||||
|
@ -379,13 +378,6 @@ HMODULE MODULE_CreateDummyModule( const OFSTRUCT *ofs, LPCSTR modName )
|
||||||
pModule->expected_version = 0x030a;
|
pModule->expected_version = 0x030a;
|
||||||
pModule->self = hModule;
|
pModule->self = hModule;
|
||||||
|
|
||||||
/* Set expected_version according to the emulated Windows version */
|
|
||||||
versionInfo.dwOSVersionInfoSize = sizeof(versionInfo);
|
|
||||||
if ( GetVersionExA( &versionInfo ) )
|
|
||||||
pModule->expected_version = (versionInfo.dwMajorVersion & 0xff) << 8
|
|
||||||
| (versionInfo.dwMinorVersion & 0xff);
|
|
||||||
|
|
||||||
|
|
||||||
/* Set loaded file information */
|
/* Set loaded file information */
|
||||||
memcpy( pModule + 1, ofs, of_size );
|
memcpy( pModule + 1, ofs, of_size );
|
||||||
((OFSTRUCT *)(pModule+1))->cBytes = of_size - 1;
|
((OFSTRUCT *)(pModule+1))->cBytes = of_size - 1;
|
||||||
|
|
|
@ -1388,7 +1388,26 @@ INT16 WINAPI GetModuleUsage16( HINSTANCE16 hModule )
|
||||||
WORD WINAPI GetExpWinVer16( HMODULE16 hModule )
|
WORD WINAPI GetExpWinVer16( HMODULE16 hModule )
|
||||||
{
|
{
|
||||||
NE_MODULE *pModule = NE_GetPtr( hModule );
|
NE_MODULE *pModule = NE_GetPtr( hModule );
|
||||||
return pModule ? pModule->expected_version : 0;
|
if ( !pModule ) return 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* For built-in modules, fake the expected version the module should
|
||||||
|
* have according to the Windows version emulated by Wine
|
||||||
|
*
|
||||||
|
* FIXME: Should we really do this for Win32 dummy modules as well?
|
||||||
|
*/
|
||||||
|
if ( (pModule->flags & NE_FFLAGS_BUILTIN)
|
||||||
|
|| (pModule->flags & NE_FFLAGS_WIN32) )
|
||||||
|
{
|
||||||
|
OSVERSIONINFOA versionInfo;
|
||||||
|
versionInfo.dwOSVersionInfoSize = sizeof(versionInfo);
|
||||||
|
|
||||||
|
if ( GetVersionExA( &versionInfo ) )
|
||||||
|
return (versionInfo.dwMajorVersion & 0xff) << 8
|
||||||
|
| (versionInfo.dwMinorVersion & 0xff);
|
||||||
|
}
|
||||||
|
|
||||||
|
return pModule->expected_version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue