comparison loader/win32.c @ 26441:586d7ee3c106

Add support for msn siren audio coced via binary dll sirenacm.dll Based on a patch by Ruuds "roadrunnerswife" "users sourceforge net" Closes bugzilla #963
author rtogni
date Sun, 20 Apr 2008 16:06:41 +0000
parents eb82d1524b6d
children cea51ac82475
comparison
equal deleted inserted replaced
26440:9dc0b217fce4 26441:586d7ee3c106
4044 } 4044 }
4045 return 0; 4045 return 0;
4046 } 4046 }
4047 #endif 4047 #endif
4048 4048
4049 /* Fake _initterm_e from msvcr80.dll, needed by sirenacm.dll
4050 * NOTE: If I make this an alias for _initterm, then sirenacm.dll tries to call
4051 other uninmplemented functions; keep this in mind if some future codec needs
4052 a real implementation of this function */
4053 static int exp_initterm_e(INITTERMFUNC *start, INITTERMFUNC *end)
4054 {
4055 dbgprintf("_initterm_e(0x%x, 0x%x)\n", start, end);
4056 return 0;
4057 }
4058
4049 static void* exp__dllonexit() 4059 static void* exp__dllonexit()
4050 { 4060 {
4051 // FIXME extract from WINE 4061 // FIXME extract from WINE
4052 return NULL; 4062 return NULL;
4053 } 4063 }
4815 static WIN_BOOL WINAPI expEnumDisplaySettingsA(LPCSTR name ,DWORD n, 4825 static WIN_BOOL WINAPI expEnumDisplaySettingsA(LPCSTR name ,DWORD n,
4816 LPDEVMODEA devmode) 4826 LPDEVMODEA devmode)
4817 { 4827 {
4818 dbgprintf("EnumDisplaySettingsA (dummy) => 1\n"); 4828 dbgprintf("EnumDisplaySettingsA (dummy) => 1\n");
4819 return 1; 4829 return 1;
4830 }
4831
4832 // Fake implementation of _decode_pointer from msvcr80.dll, needed by sirenacm.dll
4833 // NOTE: undocumented function, probably the declaration is not right
4834 static int exp_decode_pointer(void *ptr)
4835 {
4836 dbgprintf("_decode_pointer (0x%08x)\n", ptr);
4837 return 0;
4820 } 4838 }
4821 4839
4822 struct exports 4840 struct exports
4823 { 4841 {
4824 char name[64]; 4842 char name[64];
5245 struct exports exp_shlwapi[]={ 5263 struct exports exp_shlwapi[]={
5246 FF(PathFindExtensionA, -1) 5264 FF(PathFindExtensionA, -1)
5247 FF(PathFindFileNameA, -1) 5265 FF(PathFindFileNameA, -1)
5248 }; 5266 };
5249 5267
5268 struct exports exp_msvcr80[]={
5269 FF(_CIpow,-1)
5270 FF(_CIsin,-1)
5271 FF(_CIcos,-1)
5272 FF(_CIsqrt,-1)
5273 FF(memset,-1)
5274 FF(_initterm_e, -1)
5275 FF(_initterm, -1)
5276 FF(_decode_pointer, -1)
5277 };
5278
5250 #define LL(X) \ 5279 #define LL(X) \
5251 {#X".dll", sizeof(exp_##X)/sizeof(struct exports), exp_##X}, 5280 {#X".dll", sizeof(exp_##X)/sizeof(struct exports), exp_##X},
5252 5281
5253 struct libs libraries[]={ 5282 struct libs libraries[]={
5254 LL(kernel32) 5283 LL(kernel32)
5270 #ifdef QTX 5299 #ifdef QTX
5271 LL(ddraw) 5300 LL(ddraw)
5272 #endif 5301 #endif
5273 LL(comdlg32) 5302 LL(comdlg32)
5274 LL(shlwapi) 5303 LL(shlwapi)
5304 LL(msvcr80)
5275 }; 5305 };
5276 5306
5277 static WIN_BOOL WINAPI ext_stubs(void) 5307 static WIN_BOOL WINAPI ext_stubs(void)
5278 { 5308 {
5279 volatile int idx = 0xdeadabcd; 5309 volatile int idx = 0xdeadabcd;