*sigh* this time with patch (thanks Andreas). On Sat, Aug 10, 2002 at 01:17:09PM +0200, Michael Stefaniuc wrote: > Some additional informations to the attached patch: > - dosn't use the macros from wownt32.h like described in bug #90 because > this would mean to link against wow32.dll and Alexandre dosn't seem to > like it. The HACCEL_{16,32} macros used are functionaly equivalent to > what's in wownt32.h . > - internaly wine uses HACCEL16 (but passes only HACCEL between the > funtions). I didn't changed that due to following comments: > /* YES, Accel16! */ > > License: LGPL, X11 > Changelog: > Michael Stefaniuc <mstefani@redhat.com> > - Convert HACCEL to a void* > > bye > michael -- Michael Stefaniuc Tel.: +49-711-96437-199 System Administration Fax.: +49-711-96437-111 Red Hat GmbH Email: mstefani@redhat.com Hauptstaetterstr. 58 http://www.redhat.de/ D-70178 Stuttgart
Index: controls/menu.c =================================================================== RCS file: /home/wine/wine/controls/menu.c,v retrieving revision 1.144 diff -u -r1.144 menu.c --- controls/menu.c 4 Jun 2002 23:08:16 -0000 1.144 +++ controls/menu.c 10 Aug 2002 10:54:17 -0000 @@ -51,6 +51,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(menu); WINE_DECLARE_DEBUG_CHANNEL(accel); +#define HACCEL_16(h32) (LOWORD(h32)) + /* internal popup menu window messages */ #define MM_SETMENUHANDLE (WM_USER + 0) @@ -4995,7 +4997,7 @@ WARN_(accel)("msg null; should hang here to be win compatible\n"); return 0; } - if (!hAccel || !(lpAccelTbl = (LPACCEL16) LockResource16(hAccel))) + if (!hAccel || !(lpAccelTbl = (LPACCEL16) LockResource16(HACCEL_16(hAccel)))) { WARN_(accel)("invalid accel handle=%x\n", hAccel); return 0; Index: dlls/ole32/ole2.c =================================================================== RCS file: /home/wine/wine/dlls/ole32/ole2.c,v retrieving revision 1.32 diff -u -r1.32 ole2.c --- dlls/ole32/ole2.c 31 May 2002 23:25:50 -0000 1.32 +++ dlls/ole32/ole2.c 10 Aug 2002 10:54:19 -0000 @@ -48,6 +48,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(ole); WINE_DECLARE_DEBUG_CHANNEL(accel); +#define HACCEL_16(h32) (LOWORD(h32)) + /****************************************************************************** * These are static/global variables and internal data structures that the * OLE module uses to maintain it's state. @@ -1431,7 +1433,7 @@ int i; if(!lpMsg) return FALSE; - if (!hAccel || !(lpAccelTbl = (LPACCEL16)LockResource16(hAccel))) + if (!hAccel || !(lpAccelTbl = (LPACCEL16)LockResource16(HACCEL_16(hAccel)))) { WARN_(accel)("invalid accel handle=%04x\n", hAccel); return FALSE; Index: dlls/user/msg16.c =================================================================== RCS file: /home/wine/wine/dlls/user/msg16.c,v retrieving revision 1.10 diff -u -r1.10 msg16.c --- dlls/user/msg16.c 5 Jul 2002 00:23:02 -0000 1.10 +++ dlls/user/msg16.c 10 Aug 2002 10:54:21 -0000 @@ -30,6 +30,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(msg); +#define HACCEL_32(h16) ((HACCEL)(ULONG_PTR)(h16)) + DWORD USER16_AlertableWait = 0; /*********************************************************************** @@ -449,7 +451,7 @@ /* msg32.hwnd not used */ msg32.wParam = msg->wParam; msg32.lParam = msg->lParam; - return TranslateAccelerator( WIN_Handle32(hwnd), hAccel, &msg32 ); + return TranslateAccelerator( WIN_Handle32(hwnd), HACCEL_32(hAccel), &msg32 ); } Index: dlls/user/resource.c =================================================================== RCS file: /home/wine/wine/dlls/user/resource.c,v retrieving revision 1.12 diff -u -r1.12 resource.c --- dlls/user/resource.c 31 May 2002 23:40:53 -0000 1.12 +++ dlls/user/resource.c 10 Aug 2002 10:54:21 -0000 @@ -30,6 +30,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(resource); WINE_DECLARE_DEBUG_CHANNEL(accel); +/* HANDLE16 <-> HANDLE conversions */ +#define HACCEL_32(h16) ((HACCEL)(ULONG_PTR)(h16)) +#define HACCEL_16(h32) (LOWORD(h32)) + /* this is the 8 byte accel struct used in Win32 resources (internal only) */ typedef struct { @@ -70,7 +74,8 @@ HACCEL WINAPI LoadAcceleratorsW(HINSTANCE instance,LPCWSTR lpTableName) { HRSRC hRsrc; - HACCEL hMem,hRetval=0; + HACCEL hMem; + HACCEL16 hRetval=0; DWORD size; if (HIWORD(lpTableName)) @@ -103,7 +108,7 @@ } } TRACE_(accel)("returning HACCEL 0x%x\n", hRsrc); - return hRetval; + return HACCEL_32(hRetval); } /*********************************************************************** @@ -144,7 +149,7 @@ INT entries) { int i,xsize; - LPACCEL16 accel = (LPACCEL16)GlobalLock16(src); + LPACCEL16 accel = (LPACCEL16)GlobalLock16(HACCEL_16(src)); BOOL done = FALSE; /* Do parameter checking to avoid the explosions and the screaming @@ -154,7 +159,7 @@ (LPVOID)src, (LPVOID)dst, entries); return 0; } - xsize = GlobalSize16(src)/sizeof(ACCEL16); + xsize = GlobalSize16(HACCEL_16(src))/sizeof(ACCEL16); if (xsize>entries) entries=xsize; i=0; @@ -213,7 +218,7 @@ /* Allocate memory and copy the table. */ - hAccel = GlobalAlloc16(0,cEntries*sizeof(ACCEL16)); + hAccel = HACCEL_32(GlobalAlloc16(0,cEntries*sizeof(ACCEL16))); TRACE_(accel)("handle %x\n", hAccel); if(!hAccel) { @@ -221,7 +226,7 @@ SetLastError(ERROR_NOT_ENOUGH_MEMORY); return (HACCEL)NULL; } - accel = GlobalLock16(hAccel); + accel = GlobalLock16(HACCEL_16(hAccel)); for (i=0;i<cEntries;i++) { accel[i].fVirt = lpaccel[i].fVirt; accel[i].key = lpaccel[i].key; @@ -259,7 +264,7 @@ /* Allocate memory and copy the table. */ - hAccel = GlobalAlloc16(0,cEntries*sizeof(ACCEL16)); + hAccel = HACCEL_32(GlobalAlloc16(0,cEntries*sizeof(ACCEL16))); TRACE_(accel)("handle %x\n", hAccel); if(!hAccel) { @@ -267,7 +272,7 @@ SetLastError(ERROR_NOT_ENOUGH_MEMORY); return (HACCEL)NULL; } - accel = GlobalLock16(hAccel); + accel = GlobalLock16(HACCEL_16(hAccel)); for (i=0;i<cEntries;i++) { @@ -303,7 +308,7 @@ */ BOOL WINAPI DestroyAcceleratorTable( HACCEL handle ) { - return !GlobalFree16(handle); + return !GlobalFree16(HACCEL_16(handle)); } /********************************************************************** Index: include/windef.h =================================================================== RCS file: /home/wine/wine/include/windef.h,v retrieving revision 1.68 diff -u -r1.68 windef.h --- include/windef.h 29 Jul 2002 00:14:59 -0000 1.68 +++ include/windef.h 10 Aug 2002 10:54:21 -0000 @@ -71,7 +71,7 @@ /* Handle types that exist both in Win16 and Win32. */ typedef int HFILE; -DECLARE_OLD_HANDLE(HACCEL); +DECLARE_HANDLE(HACCEL); DECLARE_OLD_HANDLE(HBITMAP); DECLARE_OLD_HANDLE(HBRUSH); DECLARE_HANDLE(HCOLORSPACE);
Attachment:
pgp00033.pgp
Description: PGP signature