Release 961208
Sun Dec 8 14:51:57 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [configure.in]
Added check to see if the compiler supports building a DLL when
the --with-dll option is used.
* [controls/listbox.c]
Don't send LBN_SELCHANGE too often.
Added WM_CHARTOITEM support.
* [Make.rules.in] [library/Makefile.in]
Build winestub.o and link it with Winelib programs.
* [objects/text.c]
Added support for '&&' in DrawText().
* [tools/build.c]
Added -o option.
Sat Dec 7 12:07:07 1996 Andrew Lewycky <plewycky@oise.utoronto.ca>
* [win32/thread.c]
GetCurrentThread(): return -2 (current thread pseudo-handle).
GetCurrentThreadId(): return GetCurrentTask().
* [objects/font.c] [if1632/gdi32.spec]
GetTextExtentPoint32{A,W}Buggy(): for future bug-compatibility.
* [win32/findfile.c]
FindClose(): ignore INVALID_HANDLE_VALUE (like Win95).
* [windows/hook.c] [include/hook.h] [if1632/user.spec]
[if1632/user32.spec] [windows/focus.c] [windows/message.c]
[windows/nonclient.c] [windows/win.c] [windows/winpos.c]
Hooks rewritten to support Win32.
* [misc/winsock.c]
WINSOCK_select(): need to put sockets with errors into exceptfds.
WINSOCK_socket(): fix error return.
* [windows/win.c]
SetWindowWord(): call SetParent on GWW_HWNDPARENT.
Wed Dec 4 22:03:05 1996 Andrew Taylor <andrew@riscan.com>
* [files/dos_fs.c]
Check if buf is NULL before copying string in GetFullPathName32A().
Wed Dec 4 21:40:59 1996 Robert Pouliot <krynos@clic.net>
* [graphics/wing.c] [if1632/wing.spec]
Implemented many WinG functions, but some don't seem to
work correctly (probably due to the one not done).
Wed Dec 4 03:38:25 1996 Lee Jaekil <juria@puma.kaitech.re.kr>
* [misc/main.c]
Implemented a few more of the SystemParametersInfo() cases.
Sun Dec 1 22:30:00 1996 Alex Korobka <alex@trantor.pharm.sunysb.edu>
* [controls/button.c]
Improved focus rectangle painting.
* [windows/dialog.c] [windows/defdlg.c]
Fixed IE3.0 problems with DWL_MSGRESULT.
Sun Dec 1 20:49:32 1996 Albrecht Kleine <kleine@ak.sax.de>
* [files/profile.c]
Changed error handling in PROFILE_SetString().
diff --git a/windows/win.c b/windows/win.c
index 2b48de3..56cfa04 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -579,36 +579,20 @@
hwndLinkAfter = (cs->style & WS_CHILD) ? HWND_BOTTOM : HWND_TOP;
- if (HOOK_GetHook( WH_CBT, GetTaskQueue(0) ))
+ if (HOOK_IsHooked( WH_CBT ))
{
- CBT_CREATEWND16* cbtc;
+ CBT_CREATEWND32A cbtc;
- if ((cbtc = SEGPTR_NEW(CBT_CREATEWND16)))
- {
- /* Dummy message params to use WINPROC_MapMsg functions */
- UINT16 msg;
- WPARAM16 wparam;
- LPARAM lparam;
-
- /* Map the CREATESTRUCT to 16-bit format */
- lparam = (LPARAM)cs;
- if (unicode)
- WINPROC_MapMsg32WTo16( WM_CREATE, 0, &msg, &wparam, &lparam );
- else
- WINPROC_MapMsg32ATo16( WM_CREATE, 0, &msg, &wparam, &lparam );
- cbtc->lpcs = (CREATESTRUCT16 *)lparam;
- cbtc->hwndInsertAfter = hwndLinkAfter;
- wmcreate = !HOOK_CallHooks( WH_CBT, HCBT_CREATEWND, hwnd,
- (LPARAM)SEGPTR_GET(cbtc) );
- WINPROC_UnmapMsg32ATo16( WM_CREATE, 0, lparam );
- SEGPTR_FREE(cbtc);
- if (!wmcreate)
- {
- dprintf_win(stddeb,"CreateWindowEx: CBT-hook returned 0\n" );
- USER_HEAP_FREE( hwnd );
- return 0;
- }
- }
+ cbtc.lpcs = cs;
+ cbtc.hwndInsertAfter = hwndLinkAfter;
+ wmcreate = !HOOK_CallHooks32A( WH_CBT, HCBT_CREATEWND, hwnd,
+ (LPARAM)&cbtc );
+ if (!wmcreate)
+ {
+ dprintf_win(stddeb, "CreateWindowEx: CBT-hook returned 0\n");
+ USER_HEAP_FREE( hwnd );
+ return 0;
+ }
}
/* Set the window procedure */
@@ -817,7 +801,7 @@
/* Call WH_SHELL hook */
if (!(wndPtr->dwStyle & WS_CHILD) && !wndPtr->owner)
- HOOK_CallHooks( WH_SHELL, HSHELL_WINDOWCREATED, hwnd, 0 );
+ HOOK_CallHooks16( WH_SHELL, HSHELL_WINDOWCREATED, hwnd, 0 );
dprintf_win(stddeb, "CreateWindowEx: returning %04x\n", hwnd);
return hwnd;
@@ -1019,12 +1003,12 @@
/* Call hooks */
- if( HOOK_CallHooks( WH_CBT, HCBT_DESTROYWND, hwnd, 0L) )
+ if( HOOK_CallHooks16( WH_CBT, HCBT_DESTROYWND, hwnd, 0L) )
return FALSE;
if (!(wndPtr->dwStyle & WS_CHILD) && !wndPtr->owner)
{
- HOOK_CallHooks( WH_SHELL, HSHELL_WINDOWDESTROYED, hwnd, 0L );
+ HOOK_CallHooks16( WH_SHELL, HSHELL_WINDOWDESTROYED, hwnd, 0L );
/* FIXME: clean up palette - see "Internals" p.352 */
}
@@ -1406,6 +1390,7 @@
{
case GWW_ID: ptr = (WORD *)&wndPtr->wIDmenu; break;
case GWW_HINSTANCE: ptr = (WORD *)&wndPtr->hInstance; break;
+ case GWW_HWNDPARENT: return SetParent( hwnd, newval );
default:
fprintf( stderr, "SetWindowWord: invalid offset %d\n", offset );
return 0;