user32: Make user.exe into a stand-alone 16-bit module.

This commit is contained in:
Alexandre Julliard 2009-12-23 20:01:37 +01:00
parent 4b4b6a48cb
commit 8aa83d326a
25 changed files with 193 additions and 99 deletions

1
.gitignore vendored
View File

@ -119,7 +119,6 @@ dlls/sti/sti_wia.h
dlls/sti/sti_wia_p.c
dlls/urlmon/urlmon_urlmon.h
dlls/urlmon/urlmon_urlmon_p.c
dlls/user.exe16
dlls/wprocs.dll16
include/activaut.h
include/activdbg.h

9
configure vendored
View File

@ -16880,6 +16880,14 @@ ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS
dlls/urlmon/tests/Makefile: dlls/urlmon/tests/Makefile.in dlls/Maketest.rules"
ac_config_files="$ac_config_files dlls/urlmon/tests/Makefile"
ALL_MAKEFILES="$ALL_MAKEFILES \\
dlls/user.exe16/Makefile"
test "x$enable_win16" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\
user.exe16"
ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS
dlls/user.exe16/Makefile: dlls/user.exe16/Makefile.in dlls/Makedll.rules"
ac_config_files="$ac_config_files dlls/user.exe16/Makefile"
ALL_MAKEFILES="$ALL_MAKEFILES \\
dlls/user32/Makefile"
test "x$enable_user32" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\
@ -19264,6 +19272,7 @@ do
"dlls/url/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/url/Makefile" ;;
"dlls/urlmon/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/urlmon/Makefile" ;;
"dlls/urlmon/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/urlmon/tests/Makefile" ;;
"dlls/user.exe16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/user.exe16/Makefile" ;;
"dlls/user32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/user32/Makefile" ;;
"dlls/user32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/user32/tests/Makefile" ;;
"dlls/userenv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/userenv/Makefile" ;;

View File

@ -2495,6 +2495,7 @@ WINE_CONFIG_MAKEFILE([dlls/updspapi/Makefile],[dlls/Makedll.rules],[dlls],[ALL_D
WINE_CONFIG_MAKEFILE([dlls/url/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/urlmon/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/urlmon/tests/Makefile],[dlls/Maketest.rules],[dlls],[ALL_TEST_DIRS],[enable_tests])
WINE_CONFIG_MAKEFILE([dlls/user.exe16/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS],[enable_win16])
WINE_CONFIG_MAKEFILE([dlls/user32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/user32/tests/Makefile],[dlls/Maketest.rules],[dlls],[ALL_TEST_DIRS],[enable_tests])
WINE_CONFIG_MAKEFILE([dlls/userenv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])

View File

@ -19,7 +19,6 @@ DOCSUBDIRS = $(DLLSUBDIRS)
WIN16_FILES = \
krnl386.exe16 \
user.exe16 \
wprocs.dll16
@MAKE_RULES@
@ -33,9 +32,6 @@ all: $(BUILDSUBDIRS) @WIN16_FILES@
krnl386.exe16:
echo "kernel32.dll" >$@
user.exe16:
echo "user32.dll" >$@
wprocs.dll16:
echo "winedos.dll" >$@

View File

@ -0,0 +1,24 @@
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = user.exe16
IMPORTS = user32 gdi32 kernel32 ntdll
EXTRADLLFLAGS = -Wb,--subsystem,win16,--main-module,user32.dll,--heap,65520
EXTRARCFLAGS = -O res16
C_SRCS = \
bidi.c \
comm.c \
dialog.c \
hook.c \
message.c \
network.c \
user.c \
window.c
RC_SRCS = version.rc
@MAKE_DLL_RULES@
@DEPENDENCIES@ # everything below this line is overwritten by make depend

View File

@ -63,7 +63,6 @@
#include "windef.h"
#include "winbase.h"
#include "wine/winuser16.h"
#include "controls.h"
#include "user_private.h"
#include "wine/debug.h"
@ -448,7 +447,7 @@ INT16 WINAPI OpenComm16(LPCSTR device,UINT16 cbInQueue,UINT16 cbOutQueue)
int port;
HANDLE handle;
TRACE("%s, %d, %d\n", device, cbInQueue, cbOutQueue);
TRACE("%s, %d, %d\n", device, cbInQueue, cbOutQueue);
if (strlen(device) < 4)
return IE_BADID;
@ -535,7 +534,7 @@ INT16 WINAPI CloseComm16(INT16 cid)
{
struct DosDeviceStruct *ptr;
TRACE("cid=%d\n", cid);
TRACE("cid=%d\n", cid);
if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no cid=%d found!\n", cid);
return -1;
@ -590,7 +589,7 @@ INT16 WINAPI ClearCommBreak16(INT16 cid)
{
struct DosDeviceStruct *ptr;
TRACE("cid=%d\n", cid);
TRACE("cid=%d\n", cid);
if (!(ptr = GetDeviceStruct(cid))) {
FIXME("no cid=%d found!\n", cid);
return -1;
@ -607,7 +606,7 @@ LONG WINAPI EscapeCommFunction16(UINT16 cid,UINT16 nFunction)
{
struct DosDeviceStruct *ptr;
TRACE("cid=%d, function=%d\n", cid, nFunction);
TRACE("cid=%d, function=%d\n", cid, nFunction);
switch(nFunction) {
case GETMAXCOM:
@ -669,7 +668,7 @@ INT16 WINAPI FlushComm16(INT16 cid,INT16 fnQueue)
DWORD queue;
struct DosDeviceStruct *ptr;
TRACE("cid=%d, queue=%d\n", cid, fnQueue);
TRACE("cid=%d, queue=%d\n", cid, fnQueue);
if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no cid=%d found!\n", cid);
return -1;
@ -727,7 +726,7 @@ INT16 WINAPI GetCommError16(INT16 cid,LPCOMSTAT16 lpStat)
lpStat->cbOutQue = comm_outbuf(ptr);
lpStat->cbInQue = comm_inbuf(ptr);
TRACE("cid %d, error %d, stat %d in %d out %d, stol %x\n",
TRACE("cid %d, error %d, stat %d in %d out %d, stol %x\n",
cid, ptr->commerror, lpStat->status, lpStat->cbInQue,
lpStat->cbOutQue, *stol);
}
@ -749,7 +748,7 @@ SEGPTR WINAPI SetCommEventMask16(INT16 cid,UINT16 fuEvtMask)
struct DosDeviceStruct *ptr;
unsigned char *stol;
TRACE("cid %d,mask %d\n",cid,fuEvtMask);
TRACE("cid %d,mask %d\n",cid,fuEvtMask);
if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!\n",cid);
return 0;
@ -778,7 +777,7 @@ UINT16 WINAPI GetCommEventMask16(INT16 cid,UINT16 fnEvtClear)
struct DosDeviceStruct *ptr;
WORD events;
TRACE("cid %d, mask %d\n", cid, fnEvtClear);
TRACE("cid %d, mask %d\n", cid, fnEvtClear);
if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!\n",cid);
return 0;
@ -802,7 +801,7 @@ INT16 WINAPI SetCommState16(LPDCB16 lpdcb)
struct DosDeviceStruct *ptr;
DCB dcb;
TRACE("cid %d, ptr %p\n", lpdcb->Id, lpdcb);
TRACE("cid %d, ptr %p\n", lpdcb->Id, lpdcb);
if ((ptr = GetDeviceStruct(lpdcb->Id)) == NULL) {
FIXME("no handle for cid = %0x!\n",lpdcb->Id);
return -1;
@ -838,7 +837,7 @@ INT16 WINAPI SetCommState16(LPDCB16 lpdcb)
dcb.BaudRate = 115200;
else
dcb.BaudRate = lpdcb->BaudRate;
}
}
dcb.ByteSize=lpdcb->ByteSize;
dcb.StopBits=lpdcb->StopBits;
@ -876,7 +875,7 @@ INT16 WINAPI GetCommState16(INT16 cid, LPDCB16 lpdcb)
struct DosDeviceStruct *ptr;
DCB dcb;
TRACE("cid %d, ptr %p\n", cid, lpdcb);
TRACE("cid %d, ptr %p\n", cid, lpdcb);
if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!\n",cid);
return -1;
@ -903,7 +902,7 @@ INT16 WINAPI TransmitCommChar16(INT16 cid,CHAR chTransmit)
{
struct DosDeviceStruct *ptr;
TRACE("cid %d, data %d\n", cid, chTransmit);
TRACE("cid %d, data %d\n", cid, chTransmit);
if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!\n",cid);
return -1;
@ -946,7 +945,7 @@ INT16 WINAPI UngetCommChar16(INT16 cid,CHAR chUnget)
{
struct DosDeviceStruct *ptr;
TRACE("cid %d (char %d)\n", cid, chUnget);
TRACE("cid %d (char %d)\n", cid, chUnget);
if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!\n",cid);
return -1;
@ -979,7 +978,7 @@ INT16 WINAPI ReadComm16(INT16 cid,LPSTR lpvBuf,INT16 cbRead)
struct DosDeviceStruct *ptr;
LPSTR orgBuf = lpvBuf;
TRACE("cid %d, ptr %p, length %d\n", cid, lpvBuf, cbRead);
TRACE("cid %d, ptr %p, length %d\n", cid, lpvBuf, cbRead);
if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!\n",cid);
return -1;
@ -1000,7 +999,7 @@ INT16 WINAPI ReadComm16(INT16 cid,LPSTR lpvBuf,INT16 cbRead)
length = 1;
} else
length = 0;
length = 0;
/* read from receive buffer */
while (length < cbRead) {
@ -1031,7 +1030,7 @@ INT16 WINAPI WriteComm16(INT16 cid, LPSTR lpvBuf, INT16 cbWrite)
int status, length;
struct DosDeviceStruct *ptr;
TRACE("cid %d, ptr %p, length %d\n",
TRACE("cid %d, ptr %p, length %d\n",
cid, lpvBuf, cbWrite);
if ((ptr = GetDeviceStruct(cid)) == NULL) {
FIXME("no handle for cid = %0x!\n",cid);

View File

@ -27,8 +27,6 @@
#include "winbase.h"
#include "wownt32.h"
#include "wine/winuser16.h"
#include "controls.h"
#include "win.h"
#include "user_private.h"
#include "wine/debug.h"
@ -64,6 +62,7 @@ typedef struct
LPCSTR faceName;
} DLG_TEMPLATE;
#define DIALOG_CLASS_ATOM MAKEINTATOM(32770)
/***********************************************************************
* DIALOG_EnableOwner

View File

@ -28,7 +28,6 @@
#include "winuser.h"
#include "wownt32.h"
#include "wine/winuser16.h"
#include "controls.h"
#include "user_private.h"
#include "wine/debug.h"

View File

@ -28,10 +28,8 @@
#include "wine/winuser16.h"
#include "wownt32.h"
#include "winerror.h"
#include "win.h"
#include "dde.h"
#include "user_private.h"
#include "controls.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(msg);

View File

@ -31,8 +31,6 @@
#include "winbase.h"
#include "wownt32.h"
#include "user_private.h"
#include "win.h"
#include "controls.h"
#include "wine/list.h"
#include "wine/debug.h"
@ -2927,7 +2925,6 @@ DWORD WINAPI FormatMessage16(
WORD nSize,
LPDWORD args ) /* [in] NOTE: va_list *args */
{
#ifdef __i386__
/* This implementation is completely dependent on the format of the va_list on x86 CPUs */
LPSTR target,t;
DWORD talloced;
@ -3098,9 +3095,6 @@ DWORD WINAPI FormatMessage16(
return (dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) ?
strlen(allocstring):
strlen(lpBuffer);
#else
return 0;
#endif /* __i386__ */
}
#undef ADD_TO_T

View File

@ -0,0 +1,132 @@
/*
* USER private definitions
*
* Copyright 1993, 2009 Alexandre Julliard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_USER_PRIVATE_H
#define __WINE_USER_PRIVATE_H
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "winreg.h"
#include "winternl.h"
#include "wine/windef16.h"
/* Wow handlers */
/* the structures must match the corresponding ones in user32 */
struct wow_handlers16
{
LRESULT (*button_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*combo_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*edit_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*listbox_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*mdiclient_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*scrollbar_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*static_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
DWORD (*wait_message)(DWORD,const HANDLE*,DWORD,DWORD,DWORD);
HWND (*create_window)(CREATESTRUCTW*,LPCWSTR,HINSTANCE,BOOL);
LRESULT (*call_window_proc)(HWND,UINT,WPARAM,LPARAM,LRESULT*,void*);
LRESULT (*call_dialog_proc)(HWND,UINT,WPARAM,LPARAM,LRESULT*,void*);
HICON (*alloc_icon_handle)(UINT);
struct tagCURSORICONINFO *(*get_icon_ptr)(HICON);
void (*release_icon_ptr)(HICON,struct tagCURSORICONINFO*);
int (*free_icon_handle)(HICON);
};
struct wow_handlers32
{
LRESULT (*button_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*combo_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*edit_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*listbox_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*mdiclient_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*scrollbar_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
LRESULT (*static_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
DWORD (*wait_message)(DWORD,const HANDLE*,DWORD,DWORD,DWORD);
HWND (*create_window)(CREATESTRUCTW*,LPCWSTR,HINSTANCE,BOOL);
HWND (*get_win_handle)(HWND);
WNDPROC (*alloc_winproc)(WNDPROC,BOOL);
struct tagDIALOGINFO *(*get_dialog_info)(HWND,BOOL);
INT (*dialog_box_loop)(HWND,HWND);
};
extern struct wow_handlers32 wow_handlers32 DECLSPEC_HIDDEN;
extern HWND create_window16(CREATESTRUCTW*,LPCWSTR,HINSTANCE,BOOL) DECLSPEC_HIDDEN;
extern void free_module_classes(HINSTANCE16) DECLSPEC_HIDDEN;
extern void register_wow_handlers(void) DECLSPEC_HIDDEN;
extern void WINAPI UserRegisterWowHandlers( const struct wow_handlers16 *new,
struct wow_handlers32 *orig );
static inline HWND WIN_Handle32( HWND16 hwnd16 )
{
return wow_handlers32.get_win_handle( (HWND)(ULONG_PTR)hwnd16 );
}
typedef LRESULT (*winproc_callback_t)( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp,
LRESULT *result, void *arg );
typedef LRESULT (*winproc_callback16_t)( HWND16 hwnd, UINT16 msg, WPARAM16 wp, LPARAM lp,
LRESULT *result, void *arg );
extern WNDPROC16 WINPROC_GetProc16( WNDPROC proc, BOOL unicode ) DECLSPEC_HIDDEN;
extern WNDPROC WINPROC_AllocProc16( WNDPROC16 func ) DECLSPEC_HIDDEN;
extern LRESULT WINPROC_CallProc16To32A( winproc_callback_t callback, HWND16 hwnd, UINT16 msg,
WPARAM16 wParam, LPARAM lParam, LRESULT *result, void *arg ) DECLSPEC_HIDDEN;
extern LRESULT WINPROC_CallProc32ATo16( winproc_callback16_t callback, HWND hwnd, UINT msg,
WPARAM wParam, LPARAM lParam, LRESULT *result, void *arg ) DECLSPEC_HIDDEN;
extern LRESULT HOOK_CallHooks( INT id, INT code, WPARAM wparam, LPARAM lparam, BOOL unicode ) DECLSPEC_HIDDEN;
#define GET_WORD(ptr) (*(const WORD *)(ptr))
#define GET_DWORD(ptr) (*(const DWORD *)(ptr))
#define WM_SYSTIMER 0x0118
/* Dialog info structure (must match the user32 one) */
typedef struct tagDIALOGINFO
{
HWND hwndFocus; /* Current control with focus */
HFONT hUserFont; /* Dialog font */
HMENU hMenu; /* Dialog menu */
UINT xBaseUnit; /* Dialog units (depends on the font) */
UINT yBaseUnit;
INT idResult; /* EndDialog() result / default pushbutton ID */
UINT flags; /* EndDialog() called for this dialog */
} DIALOGINFO;
#define DF_END 0x0001
#define DF_OWNERENABLED 0x0002
/* HANDLE16 <-> HANDLE conversions */
#define HCURSOR_16(h32) (LOWORD(h32))
#define HICON_16(h32) (LOWORD(h32))
#define HINSTANCE_16(h32) (LOWORD(h32))
#define HCURSOR_32(h16) ((HCURSOR)(ULONG_PTR)(h16))
#define HICON_32(h16) ((HICON)(ULONG_PTR)(h16))
#define HINSTANCE_32(h16) ((HINSTANCE)(ULONG_PTR)(h16))
#define HMODULE_32(h16) ((HMODULE)(ULONG_PTR)(h16))
extern DWORD USER16_AlertableWait DECLSPEC_HIDDEN;
extern WORD USER_HeapSel DECLSPEC_HIDDEN;
#endif /* __WINE_USER_PRIVATE_H */

View File

@ -20,8 +20,6 @@
#include "wine/winuser16.h"
#include "wownt32.h"
#include "win.h"
#include "controls.h"
#include "user_private.h"
#include "wine/list.h"
#include "wine/server.h"
@ -1599,10 +1597,12 @@ ATOM WINAPI RegisterClassEx16( const WNDCLASSEX16 *wc )
*/
BOOL16 WINAPI GetClassInfoEx16( HINSTANCE16 hInst16, SEGPTR name, WNDCLASSEX16 *wc )
{
static HMODULE user32_module;
WNDCLASSEXA wc32;
HINSTANCE hInstance;
BOOL ret;
if (!user32_module) user32_module = GetModuleHandleA( "user32.dll" );
if (hInst16 == GetModuleHandle16("user")) hInstance = user32_module;
else hInstance = HINSTANCE_32(GetExePtr( hInst16 ));

View File

@ -8,9 +8,6 @@ IMPORTLIB = user32
IMPORTS = gdi32 advapi32 kernel32 ntdll
DELAYIMPORTS = imm32
SPEC_SRCS16 = \
user.exe.spec
C_SRCS = \
button.c \
caret.c \
@ -57,16 +54,6 @@ C_SRCS = \
winstation.c \
wsprintf.c
C_SRCS16 = \
bidi16.c \
comm16.c \
dialog16.c \
hook16.c \
msg16.c \
network.c \
user16.c \
wnd16.c
RC_SRCS = \
resources/user32_Bg.rc \
resources/user32_Ca.rc \
@ -101,19 +88,8 @@ RC_SRCS = \
SVG_SRCS = resources/oic_winlogo.svg
RC_SRCS16 = \
resources/version16.rc
EXTRASUBDIRS = resources
@MAKE_DLL_RULES@
# Special rules for 16-bit resource and spec files
user.exe.spec.o: user.exe.spec resources/version16.res
$(WINEBUILD) $(WINEBUILDFLAGS) --dll -o $@ --heap 65520 --main-module $(MODULE) --res resources/version16.res --export $(SRCDIR)/user.exe.spec
resources/version16.res: resources/version16.rc
$(LDPATH) $(RC16) $(RC16FLAGS) -fo$@ $(SRCDIR)/resources/version16.rc
@DEPENDENCIES@ # everything below this line is overwritten by make depend

View File

@ -22,7 +22,6 @@
#define __WINE_CONTROLS_H
#include "winuser.h"
#include "wine/winbase16.h"
/* Built-in class names (see _Undocumented_Windows_ p.418) */
#define POPUPMENU_CLASS_ATOM MAKEINTATOM(32768) /* PopupMenu */
@ -87,6 +86,7 @@ extern LRESULT WINAPI MessageWndProc(HWND,UINT,WPARAM,LPARAM) DECLSPEC_HIDDEN;
/* Wow handlers */
/* the structures must match the corresponding ones in user.exe */
struct wow_handlers16
{
LRESULT (*button_proc)(HWND,UINT,WPARAM,LPARAM,BOOL);
@ -133,19 +133,6 @@ extern LRESULT MDIClientWndProc_common(HWND,UINT,WPARAM,LPARAM,BOOL) DECLSPEC_HI
extern LRESULT ScrollBarWndProc_common(HWND,UINT,WPARAM,LPARAM,BOOL) DECLSPEC_HIDDEN;
extern LRESULT StaticWndProc_common(HWND,UINT,WPARAM,LPARAM,BOOL) DECLSPEC_HIDDEN;
/* 16-bit support */
extern struct wow_handlers32 wow_handlers32 DECLSPEC_HIDDEN;
extern HWND create_window16(CREATESTRUCTW*,LPCWSTR,HINSTANCE,BOOL) DECLSPEC_HIDDEN;
extern void free_module_classes(HINSTANCE16) DECLSPEC_HIDDEN;
extern void register_wow_handlers(void) DECLSPEC_HIDDEN;
extern void WINAPI UserRegisterWowHandlers( const struct wow_handlers16 *new,
struct wow_handlers32 *orig );
static inline HWND WIN_Handle32( HWND16 hwnd16 )
{
return wow_handlers32.get_win_handle( (HWND)(ULONG_PTR)hwnd16 );
}
/* Class functions */
struct tagCLASS; /* opaque structure */
struct tagWND;
@ -235,7 +222,7 @@ typedef struct
extern BOOL COMBO_FlipListbox( LPHEADCOMBO, BOOL, BOOL ) DECLSPEC_HIDDEN;
/* Dialog info structure */
/* Dialog info structure (note: shared with user.exe) */
typedef struct tagDIALOGINFO
{
HWND hwndFocus; /* Current control with focus */

View File

@ -30,6 +30,7 @@
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winnls.h"
#include "controls.h"
static HBRUSH hbrushPattern;

View File

@ -1649,7 +1649,7 @@ static LRESULT EDIT_EM_Scroll(EDITSTATE *es, INT action)
if(dy)
EDIT_EM_LineScroll(es, 0, dy);
}
return MAKELONG((INT16)dy, (BOOL16)TRUE);
return MAKELONG(dy, TRUE);
}
@ -4980,7 +4980,7 @@ const struct builtin_class_descr EDIT_builtin_class =
CS_DBLCLKS | CS_PARENTDC, /* style */
WINPROC_EDIT, /* proc */
#ifdef __i386__
sizeof(EDITSTATE *) + sizeof(HLOCAL16), /* extra */
sizeof(EDITSTATE *) + sizeof(WORD), /* extra */
#else
sizeof(EDITSTATE *), /* extra */
#endif

View File

@ -39,6 +39,7 @@
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "wine/winbase16.h"
#include "wine/unicode.h"
#include "user_private.h"
#include "controls.h"

View File

@ -25,6 +25,7 @@
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winnls.h"
#include "win.h"
#include "user_private.h"
#include "controls.h"

View File

@ -29,6 +29,7 @@
#include "controls.h"
#include "user_private.h"
#include "win.h"
#include "wine/winbase16.h"
#include "wine/unicode.h"
#include "wine/debug.h"

View File

@ -28,9 +28,6 @@
#include "winuser.h"
#include "winreg.h"
#include "winternl.h"
#include "wine/windef16.h"
extern WORD USER_HeapSel DECLSPEC_HIDDEN;
#define GET_WORD(ptr) (*(const WORD *)(ptr))
#define GET_DWORD(ptr) (*(const DWORD *)(ptr))
@ -205,7 +202,6 @@ static inline BOOL is_broadcast( HWND hwnd )
}
extern HMODULE user32_module DECLSPEC_HIDDEN;
extern DWORD USER16_AlertableWait DECLSPEC_HIDDEN;
extern HBRUSH SYSCOLOR_55AABrush DECLSPEC_HIDDEN;
struct dce;
@ -231,11 +227,7 @@ extern BOOL USER_SetWindowPos( WINDOWPOS * winpos ) DECLSPEC_HIDDEN;
typedef LRESULT (*winproc_callback_t)( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp,
LRESULT *result, void *arg );
typedef LRESULT (*winproc_callback16_t)( HWND16 hwnd, UINT16 msg, WPARAM16 wp, LPARAM lp,
LRESULT *result, void *arg );
extern WNDPROC16 WINPROC_GetProc16( WNDPROC proc, BOOL unicode ) DECLSPEC_HIDDEN;
extern WNDPROC WINPROC_AllocProc16( WNDPROC16 func ) DECLSPEC_HIDDEN;
extern WNDPROC WINPROC_GetProc( WNDPROC proc, BOOL unicode ) DECLSPEC_HIDDEN;
extern WNDPROC WINPROC_AllocProc( WNDPROC func, BOOL unicode ) DECLSPEC_HIDDEN;
extern BOOL WINPROC_IsUnicode( WNDPROC proc, BOOL def_val ) DECLSPEC_HIDDEN;
@ -243,10 +235,6 @@ extern BOOL WINPROC_IsUnicode( WNDPROC proc, BOOL def_val ) DECLSPEC_HIDDEN;
extern LRESULT WINPROC_CallProcAtoW( winproc_callback_t callback, HWND hwnd, UINT msg,
WPARAM wParam, LPARAM lParam, LRESULT *result, void *arg,
enum wm_char_mapping mapping ) DECLSPEC_HIDDEN;
extern LRESULT WINPROC_CallProc16To32A( winproc_callback_t callback, HWND16 hwnd, UINT16 msg,
WPARAM16 wParam, LPARAM lParam, LRESULT *result, void *arg ) DECLSPEC_HIDDEN;
extern LRESULT WINPROC_CallProc32ATo16( winproc_callback16_t callback, HWND hwnd, UINT msg,
WPARAM wParam, LPARAM lParam, LRESULT *result, void *arg ) DECLSPEC_HIDDEN;
extern INT_PTR WINPROC_CallDlgProcA( DLGPROC func, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ) DECLSPEC_HIDDEN;
extern INT_PTR WINPROC_CallDlgProcW( DLGPROC func, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ) DECLSPEC_HIDDEN;
@ -270,16 +258,6 @@ extern void SPY_ExitMessage( INT iFlag, HWND hwnd, UINT msg,
LRESULT lReturn, WPARAM wParam, LPARAM lParam ) DECLSPEC_HIDDEN;
extern int SPY_Init(void) DECLSPEC_HIDDEN;
/* HANDLE16 <-> HANDLE conversions */
#define HCURSOR_16(h32) (LOWORD(h32))
#define HICON_16(h32) (LOWORD(h32))
#define HINSTANCE_16(h32) (LOWORD(h32))
#define HCURSOR_32(h16) ((HCURSOR)(ULONG_PTR)(h16))
#define HICON_32(h16) ((HICON)(ULONG_PTR)(h16))
#define HINSTANCE_32(h16) ((HINSTANCE)(ULONG_PTR)(h16))
#define HMODULE_32(h16) ((HMODULE)(ULONG_PTR)(h16))
#include "pshpack1.h"
typedef struct

View File

@ -26,7 +26,6 @@
#include <winbase.h>
#include <wingdi.h>
#include <winuser.h>
#include <wine/windef16.h>
#include "user_private.h"