summaryrefslogtreecommitdiff
path: root/src/libw32dll/wine/module.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libw32dll/wine/module.c')
-rw-r--r--src/libw32dll/wine/module.c43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/libw32dll/wine/module.c b/src/libw32dll/wine/module.c
index 559f93201..4393f7f00 100644
--- a/src/libw32dll/wine/module.c
+++ b/src/libw32dll/wine/module.c
@@ -130,8 +130,10 @@ static WIN_BOOL MODULE_InitDll( WINE_MODREF *wm, DWORD type, LPVOID lpReserved )
{
WIN_BOOL retv = TRUE;
+#ifdef LOG
static LPCSTR typeName[] = { "PROCESS_DETACH", "PROCESS_ATTACH",
"THREAD_ATTACH", "THREAD_DETACH" };
+#endif
assert( wm );
@@ -353,7 +355,6 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR libname, HANDLE hfile, DWORD flags)
{
WINE_MODREF *wm = 0;
char* listpath[] = { "", "", "/usr/lib/win32", "/usr/local/lib/win32", 0 };
- extern char* win32_def_path;
char path[512];
char checked[2000];
int i = -1;
@@ -428,10 +429,10 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR libname, HANDLE hfile, DWORD flags)
// dispatch_addr = GetProcAddress(wm->module, "theQuickTimeDispatcher", TRUE);
dispatch_addr = PE_FindExportedFunction(wm, "theQuickTimeDispatcher", TRUE);
- if (dispatch_addr == 0x62924c30)
+ if (dispatch_addr == (void *)0x62924c30)
{
printf ("wine/module: QuickTime5 DLLs found\n");
- ptr = 0x62b75ca4; // dispatch_ptr
+ ptr = (void **)0x62b75ca4; // dispatch_ptr
for (i=0;i<5;i++) ((char*)0x6299e842)[i]=0x90; // make_new_region ?
for (i=0;i<28;i++) ((char*)0x6299e86d)[i]=0x90; // call__call_CreateCompatibleDC ?
for (i=0;i<5;i++) ((char*)0x6299e898)[i]=0x90; // jmp_to_call_loadbitmap ?
@@ -456,10 +457,10 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR libname, HANDLE hfile, DWORD flags)
((char *)0x6288e0ae)[0] = 0xc3; // font/dc remover
for (i=0;i<24;i++) ((char*)0x6287a1ad)[i]=0x90; // destroy window
#endif
- } else if (dispatch_addr == 0x6693b330)
+ } else if (dispatch_addr == (void *)0x6693b330)
{
printf ("wine/module: QuickTime6 DLLs found\n");
- ptr = 0x66bb9524; // dispatcher_ptr
+ ptr = (void **)0x66bb9524; // dispatcher_ptr
for (i=0;i<5;i++) ((char *)0x66a730cc)[i]=0x90; // make_new_region
for (i=0;i<28;i++) ((char *)0x66a730f7)[i]=0x90; // call__call_CreateCompatibleDC
for (i=0;i<5;i++) ((char *)0x66a73122)[i]=0x90; // jmp_to_call_loadbitmap
@@ -467,9 +468,9 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR libname, HANDLE hfile, DWORD flags)
for (i=0;i<96;i++) ((char *)0x66aac852)[i]=0x90; // disable threads
} else
{
- printf ("wine/module: Unsupported QuickTime version (0x%x)\n",
+ printf ("wine/module: Unsupported QuickTime version (%p)\n",
dispatch_addr);
- return NULL;
+ return 0;
}
printf ("wine/module: QuickTime.qts patched!!! old entry=%p\n",ptr[0]);
@@ -559,13 +560,13 @@ FARPROC WINAPI GetProcAddress( HMODULE hModule, LPCSTR function )
#ifdef DEBUG_QTX_API
-struct ComponentParameters {
- unsigned char flags; /* call modifiers: sync/async, deferred, immed, etc */
- unsigned char paramSize; /* size in bytes of actual parameters passed to this call */
- short what; /* routine selector, negative for Component management calls */
- long params[1]; /* actual parameters for the indicated routine */
-};
-typedef struct ComponentParameters ComponentParameters;
+struct ComponentParameters {
+ unsigned char flags; /* call modifiers: sync/async, deferred, immed, etc */
+ unsigned char paramSize; /* size in bytes of actual parameters passed to this call */
+ short what; /* routine selector, negative for Component management calls */
+ long params[1]; /* actual parameters for the indicated routine */
+};
+typedef struct ComponentParameters ComponentParameters;
static char* component_func(int what){
switch(what){
@@ -722,15 +723,15 @@ static int report_func(void *stack_base, int stack_size, reg386_t *reg, u_int32_
// memory management:
case 0x150011: //NewPtrClear
case 0x150012: //NewPtrSysClear
- reg->eax=malloc(((u_int32_t *)stack_base)[1]);
- memset(reg->eax,0,((u_int32_t *)stack_base)[1]);
+ reg->eax=(u_int32_t)malloc(((u_int32_t *)stack_base)[1]);
+ memset((void *)reg->eax,0,((u_int32_t *)stack_base)[1]);
#ifdef DEBUG_QTX_API
printf("%*sLEAVE(%d): EMULATED! 0x%X\n",ret_i*2,"",ret_i, reg->eax);
#endif
return 1;
case 0x15000F: //NewPtr
case 0x150010: //NewPtrSys
- reg->eax=malloc(((u_int32_t *)stack_base)[1]);
+ reg->eax=(u_int32_t)malloc(((u_int32_t *)stack_base)[1]);
#ifdef DEBUG_QTX_API
printf("%*sLEAVE(%d): EMULATED! 0x%X\n",ret_i*2,"",ret_i, reg->eax);
#endif
@@ -739,7 +740,7 @@ static int report_func(void *stack_base, int stack_size, reg386_t *reg, u_int32_
if(((u_int32_t *)stack_base)[1]>=0x60000000)
printf("WARNING! Invalid Ptr handle!\n");
else
- free(((u_int32_t *)stack_base)[1]);
+ free((void *)(((u_int32_t *)stack_base)[1]));
reg->eax=0;
#ifdef DEBUG_QTX_API
printf("%*sLEAVE(%d): EMULATED! 0x%X\n",ret_i*2,"",ret_i, reg->eax);
@@ -840,8 +841,10 @@ static int report_func(void *stack_base, int stack_size, reg386_t *reg, u_int32_
static int report_func_ret(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags)
{
+#ifdef DEBUG_QTX_API
int i;
short err;
+#endif
// restore ret addr:
--ret_i;
@@ -953,8 +956,8 @@ FARPROC MODULE_GetProcAddress(
fprintf(stderr,"theQuickTimeDispatcher caught -> %p\n",retproc);
report_entry = report_func;
report_ret = report_func_ret;
- wrapper_target=retproc;
- retproc=wrapper;
+ wrapper_target=(void *)retproc;
+ retproc=(void *)wrapper;
}
}