diff options
Diffstat (limited to 'loader/win32.c')
-rw-r--r-- | loader/win32.c | 54 |
1 files changed, 53 insertions, 1 deletions
diff --git a/loader/win32.c b/loader/win32.c index 712e24d0ab..e03ee4c0a5 100644 --- a/loader/win32.c +++ b/loader/win32.c @@ -3666,7 +3666,7 @@ static WIN_BOOL WINAPI expWriteFile(HANDLE h,LPCVOID pv,DWORD size,LPDWORD wr,LP static DWORD WINAPI expSetFilePointer(HANDLE h, LONG val, LPLONG ext, DWORD whence) { int wh; - dbgprintf("SetFilePointer(%d, 0x%x, 0x%x = %d, %d)\n", h, val, ext, *ext, whence); + dbgprintf("SetFilePointer(%d, 0x%x, 0x%x = %d, %d)\n", h, val, ext, ext ? *ext : NULL, whence); //why would DLL want temporary file with >2Gb size? switch(whence) { @@ -4046,6 +4046,16 @@ static int exp_initterm(INITTERMFUNC *start, INITTERMFUNC *end) } #endif +/* Fake _initterm_e from msvcr80.dll, needed by sirenacm.dll + * NOTE: If I make this an alias for _initterm, then sirenacm.dll tries to call + other uninmplemented functions; keep this in mind if some future codec needs + a real implementation of this function */ +static int exp_initterm_e(INITTERMFUNC *start, INITTERMFUNC *end) +{ + dbgprintf("_initterm_e(0x%x, 0x%x)\n", start, end); + return 0; +} + static void* exp__dllonexit() { // FIXME extract from WINE @@ -4819,6 +4829,30 @@ static WIN_BOOL WINAPI expEnumDisplaySettingsA(LPCSTR name ,DWORD n, return 1; } +// Fake implementation of _decode_pointer from msvcr80.dll, needed by sirenacm.dll +// NOTE: undocumented function, probably the declaration is not right +static int exp_decode_pointer(void *ptr) +{ + dbgprintf("_decode_pointer (0x%08x)\n", ptr); + return 0; +} + +/* Fake implementation of sdt::_Lockit::_Lockit(void) from msvcp60.dll + Needed by SCLS.DLL */ +static int exp_0Lockit_dummy(void) +{ + dbgprintf("0Lockit_dummy (??0_Lockit@std@@QAE@XZ)\n"); + return 0; +} + +/* Fake implementation of sdt::_Lockit::~_Lockit(void) from msvcp60.dll + Needed by SCLS.DLL */ +static int exp_1Lockit_dummy(void) +{ + dbgprintf("1Lockit_dummy (??1_Lockit@std@@QAE@XZ)\n"); + return 0; +} + struct exports { char name[64]; @@ -5247,6 +5281,22 @@ struct exports exp_shlwapi[]={ FF(PathFindFileNameA, -1) }; +struct exports exp_msvcr80[]={ + FF(_CIpow,-1) + FF(_CIsin,-1) + FF(_CIcos,-1) + FF(_CIsqrt,-1) + FF(memset,-1) + FF(_initterm_e, -1) + FF(_initterm, -1) + FF(_decode_pointer, -1) +}; + +struct exports exp_msvcp60[]={ + {"??0_Lockit@std@@QAE@XZ", -1, exp_0Lockit_dummy}, + {"??1_Lockit@std@@QAE@XZ", -1, exp_1Lockit_dummy} +}; + #define LL(X) \ {#X".dll", sizeof(exp_##X)/sizeof(struct exports), exp_##X}, @@ -5272,6 +5322,8 @@ struct libs libraries[]={ #endif LL(comdlg32) LL(shlwapi) + LL(msvcr80) + LL(msvcp60) }; static WIN_BOOL WINAPI ext_stubs(void) |