Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
cf2e57d0
Commit
cf2e57d0
authored
Oct 31, 2002
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Split out some more 16-bit code.
parent
306a60d1
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
148 additions
and
185 deletions
+148
-185
listbox.c
controls/listbox.c
+0
-13
user16.c
dlls/user/user16.c
+144
-0
user32.spec
dlls/user/user32.spec
+0
-2
mmsystem.c
dlls/winmm/mmsystem.c
+1
-1
winpos.c
dlls/x11drv/winpos.c
+0
-1
win.c
windows/win.c
+0
-165
winpos.c
windows/winpos.c
+3
-3
No files found.
controls/listbox.c
View file @
cf2e57d0
...
...
@@ -3005,19 +3005,6 @@ static LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
SendMessageA
(
descr
->
owner
,
msg
,
wParam
,
lParam
);
break
;
case
WM_DROPOBJECT
:
case
WM_QUERYDROPOBJECT
:
case
WM_DRAGSELECT
:
case
WM_DRAGMOVE
:
if
(
!
descr
->
lphc
)
{
LPDRAGINFO16
dragInfo
=
MapSL
(
lParam
);
dragInfo
->
l
=
LISTBOX_GetItemFromPoint
(
descr
,
dragInfo
->
pt
.
x
,
dragInfo
->
pt
.
y
);
return
SendMessage16
(
HWND_16
(
descr
->
owner
),
msg
,
wParam
,
lParam
);
}
break
;
default:
if
((
msg
>=
WM_USER
)
&&
(
msg
<
0xc000
))
WARN
(
"[%04x]: unknown msg %04x wp %08x lp %08lx
\n
"
,
...
...
dlls/user/user16.c
View file @
cf2e57d0
...
...
@@ -22,6 +22,7 @@
#include "winbase.h"
#include "wownt32.h"
#include "user.h"
#include "win.h"
/* handle to handle 16 conversions */
#define HANDLE_16(h32) (LOWORD(h32))
...
...
@@ -267,6 +268,149 @@ BOOL16 WINAPI DestroyCursor16(HCURSOR16 hCursor)
return
DestroyIcon32
(
hCursor
,
0
);
}
/*******************************************************************
* DRAG_QueryUpdate16
*
* Recursively find a child that contains spDragInfo->pt point
* and send WM_QUERYDROPOBJECT. Helper for DragObject16.
*/
static
BOOL
DRAG_QueryUpdate16
(
HWND
hQueryWnd
,
SEGPTR
spDragInfo
)
{
BOOL
bResult
=
0
;
WPARAM
wParam
;
POINT
pt
,
old_pt
;
LPDRAGINFO16
ptrDragInfo
=
MapSL
(
spDragInfo
);
RECT
tempRect
;
HWND
child
;
if
(
!
IsWindowEnabled
(
hQueryWnd
))
return
FALSE
;
old_pt
.
x
=
ptrDragInfo
->
pt
.
x
;
old_pt
.
y
=
ptrDragInfo
->
pt
.
y
;
pt
=
old_pt
;
ScreenToClient
(
hQueryWnd
,
&
pt
);
child
=
ChildWindowFromPointEx
(
hQueryWnd
,
pt
,
CWP_SKIPINVISIBLE
);
if
(
!
child
)
return
FALSE
;
if
(
child
!=
hQueryWnd
)
{
wParam
=
0
;
if
(
DRAG_QueryUpdate16
(
child
,
spDragInfo
))
return
TRUE
;
}
else
{
GetClientRect
(
hQueryWnd
,
&
tempRect
);
wParam
=
!
PtInRect
(
&
tempRect
,
pt
);
}
ptrDragInfo
->
pt
.
x
=
pt
.
x
;
ptrDragInfo
->
pt
.
y
=
pt
.
y
;
ptrDragInfo
->
hScope
=
HWND_16
(
hQueryWnd
);
bResult
=
SendMessage16
(
HWND_16
(
hQueryWnd
),
WM_QUERYDROPOBJECT
,
wParam
,
spDragInfo
);
if
(
!
bResult
)
{
ptrDragInfo
->
pt
.
x
=
old_pt
.
x
;
ptrDragInfo
->
pt
.
y
=
old_pt
.
y
;
}
return
bResult
;
}
/******************************************************************************
* DragObject (USER.464)
*/
DWORD
WINAPI
DragObject16
(
HWND16
hwndScope
,
HWND16
hWnd
,
UINT16
wObj
,
HANDLE16
hOfStruct
,
WORD
szList
,
HCURSOR16
hCursor
)
{
MSG
msg
;
LPDRAGINFO16
lpDragInfo
;
SEGPTR
spDragInfo
;
HCURSOR
hOldCursor
=
0
,
hBummer
=
0
;
HGLOBAL16
hDragInfo
=
GlobalAlloc16
(
GMEM_SHARE
|
GMEM_ZEROINIT
,
2
*
sizeof
(
DRAGINFO16
));
HCURSOR
hCurrentCursor
=
0
;
HWND16
hCurrentWnd
=
0
;
lpDragInfo
=
(
LPDRAGINFO16
)
GlobalLock16
(
hDragInfo
);
spDragInfo
=
K32WOWGlobalLock16
(
hDragInfo
);
if
(
!
lpDragInfo
||
!
spDragInfo
)
return
0L
;
if
(
!
(
hBummer
=
LoadCursorA
(
0
,
MAKEINTRESOURCEA
(
OCR_NO
))))
{
GlobalFree16
(
hDragInfo
);
return
0L
;
}
if
(
hCursor
)
hOldCursor
=
SetCursor
(
HCURSOR_32
(
hCursor
));
lpDragInfo
->
hWnd
=
hWnd
;
lpDragInfo
->
hScope
=
0
;
lpDragInfo
->
wFlags
=
wObj
;
lpDragInfo
->
hList
=
szList
;
/* near pointer! */
lpDragInfo
->
hOfStruct
=
hOfStruct
;
lpDragInfo
->
l
=
0L
;
SetCapture
(
HWND_32
(
hWnd
)
);
ShowCursor
(
TRUE
);
do
{
GetMessageW
(
&
msg
,
0
,
WM_MOUSEFIRST
,
WM_MOUSELAST
);
*
(
lpDragInfo
+
1
)
=
*
lpDragInfo
;
lpDragInfo
->
pt
.
x
=
msg
.
pt
.
x
;
lpDragInfo
->
pt
.
y
=
msg
.
pt
.
y
;
/* update DRAGINFO struct */
if
(
DRAG_QueryUpdate16
(
WIN_Handle32
(
hwndScope
),
spDragInfo
)
>
0
)
hCurrentCursor
=
HCURSOR_32
(
hCursor
);
else
{
hCurrentCursor
=
hBummer
;
lpDragInfo
->
hScope
=
0
;
}
if
(
hCurrentCursor
)
SetCursor
(
hCurrentCursor
);
/* send WM_DRAGLOOP */
SendMessage16
(
hWnd
,
WM_DRAGLOOP
,
(
WPARAM16
)(
hCurrentCursor
!=
hBummer
),
(
LPARAM
)
spDragInfo
);
/* send WM_DRAGSELECT or WM_DRAGMOVE */
if
(
hCurrentWnd
!=
lpDragInfo
->
hScope
)
{
if
(
hCurrentWnd
)
SendMessage16
(
hCurrentWnd
,
WM_DRAGSELECT
,
0
,
(
LPARAM
)
MAKELONG
(
LOWORD
(
spDragInfo
)
+
sizeof
(
DRAGINFO16
),
HIWORD
(
spDragInfo
))
);
hCurrentWnd
=
lpDragInfo
->
hScope
;
if
(
hCurrentWnd
)
SendMessage16
(
hCurrentWnd
,
WM_DRAGSELECT
,
1
,
(
LPARAM
)
spDragInfo
);
}
else
if
(
hCurrentWnd
)
SendMessage16
(
hCurrentWnd
,
WM_DRAGMOVE
,
0
,
(
LPARAM
)
spDragInfo
);
}
while
(
msg
.
message
!=
WM_LBUTTONUP
&&
msg
.
message
!=
WM_NCLBUTTONUP
);
ReleaseCapture
();
ShowCursor
(
FALSE
);
if
(
hCursor
)
SetCursor
(
hOldCursor
);
if
(
hCurrentCursor
!=
hBummer
)
msg
.
lParam
=
SendMessage16
(
lpDragInfo
->
hScope
,
WM_DROPOBJECT
,
(
WPARAM16
)
hWnd
,
(
LPARAM
)
spDragInfo
);
else
msg
.
lParam
=
0
;
GlobalFree16
(
hDragInfo
);
return
(
DWORD
)(
msg
.
lParam
);
}
/**********************************************************************
* DrawFrameControl (USER.656)
*/
...
...
dlls/user/user32.spec
View file @
cf2e57d0
...
...
@@ -672,7 +672,6 @@ init UserClientDllInitialize
@ stdcall DialogBoxIndirectParam16(long long long long long) DialogBoxIndirectParam16
@ stdcall GetDriverModuleHandle16(long) GetDriverModuleHandle16
@ stdcall OpenDriver16(str str long) OpenDriver16
@ stdcall PostAppMessage16(long long long long) PostAppMessage16
@ stdcall SendDriverMessage16(long long long long) SendDriverMessage16
@ stdcall UserYield16() UserYield16
...
...
@@ -696,7 +695,6 @@ init UserClientDllInitialize
@ cdecl WINPOS_ShowIconTitle(long long) WINPOS_ShowIconTitle
@ cdecl WIN_FindWndPtr(long) WIN_FindWndPtr
@ cdecl WIN_GetPtr(long) WIN_GetPtr
@ cdecl WIN_Handle32(long) WIN_Handle32
@ cdecl WIN_LinkWindow(long long long) WIN_LinkWindow
@ cdecl WIN_ListChildren(long) WIN_ListChildren
@ cdecl WIN_ListParents(long) WIN_ListParents
...
...
dlls/winmm/mmsystem.c
View file @
cf2e57d0
...
...
@@ -1813,7 +1813,7 @@ void WINAPI mmTaskBlock16(HINSTANCE16 WINE_UNUSED hInst)
LRESULT
WINAPI
mmTaskSignal16
(
HTASK16
ht
)
{
TRACE
(
"(%04x);
\n
"
,
ht
);
return
Post
AppMessage16
(
ht
,
WM_USER
,
0
,
0
);
return
Post
ThreadMessageW
(
HTASK_32
(
ht
),
WM_USER
,
0
,
0
);
}
/**************************************************************************
...
...
dlls/x11drv/winpos.c
View file @
cf2e57d0
...
...
@@ -749,7 +749,6 @@ static BOOL fixup_flags( WINDOWPOS *winpos )
/* hwndInsertAfter must be a sibling of the window */
if
((
winpos
->
hwndInsertAfter
!=
HWND_TOP
)
&&
(
winpos
->
hwndInsertAfter
!=
HWND_BOTTOM
))
{
winpos
->
hwndInsertAfter
=
WIN_GetFullHandle
(
winpos
->
hwndInsertAfter
);
if
(
GetAncestor
(
winpos
->
hwndInsertAfter
,
GA_PARENT
)
!=
wndPtr
->
parent
)
ret
=
FALSE
;
else
{
...
...
windows/win.c
View file @
cf2e57d0
...
...
@@ -3134,76 +3134,6 @@ BOOL WINAPI SetWindowContextHelpId( HWND hwnd, DWORD id )
/*******************************************************************
* DRAG_QueryUpdate16
*
* recursively find a child that contains spDragInfo->pt point
* and send WM_QUERYDROPOBJECT
*/
static
BOOL16
DRAG_QueryUpdate16
(
HWND
hQueryWnd
,
SEGPTR
spDragInfo
)
{
BOOL16
wParam
,
bResult
=
0
;
POINT
pt
,
client_pt
;
LPDRAGINFO16
ptrDragInfo
=
MapSL
(
spDragInfo
);
RECT
tempRect
;
if
(
!
ptrDragInfo
)
return
FALSE
;
CONV_POINT16TO32
(
&
ptrDragInfo
->
pt
,
&
pt
);
GetWindowRect
(
hQueryWnd
,
&
tempRect
);
if
(
!
PtInRect
(
&
tempRect
,
pt
)
||
!
IsWindowEnabled
(
hQueryWnd
))
return
FALSE
;
if
(
!
IsIconic
(
hQueryWnd
))
{
GetClientRect
(
hQueryWnd
,
&
tempRect
);
MapWindowPoints
(
hQueryWnd
,
0
,
(
LPPOINT
)
&
tempRect
,
2
);
if
(
PtInRect
(
&
tempRect
,
pt
))
{
int
i
;
HWND
*
list
=
WIN_ListChildren
(
hQueryWnd
);
wParam
=
0
;
if
(
list
)
{
for
(
i
=
0
;
list
[
i
];
i
++
)
{
if
(
GetWindowLongW
(
list
[
i
],
GWL_STYLE
)
&
WS_VISIBLE
)
{
GetWindowRect
(
list
[
i
],
&
tempRect
);
if
(
PtInRect
(
&
tempRect
,
pt
))
break
;
}
}
if
(
list
[
i
])
{
if
(
IsWindowEnabled
(
list
[
i
]
))
bResult
=
DRAG_QueryUpdate16
(
list
[
i
],
spDragInfo
);
}
HeapFree
(
GetProcessHeap
(),
0
,
list
);
}
if
(
bResult
)
return
bResult
;
}
else
wParam
=
1
;
}
else
wParam
=
1
;
client_pt
=
pt
;
ScreenToClient
(
hQueryWnd
,
&
client_pt
);
ptrDragInfo
->
pt
.
x
=
client_pt
.
x
;
ptrDragInfo
->
pt
.
y
=
client_pt
.
y
;
ptrDragInfo
->
hScope
=
HWND_16
(
hQueryWnd
);
bResult
=
SendMessage16
(
HWND_16
(
hQueryWnd
),
WM_QUERYDROPOBJECT
,
(
WPARAM16
)
wParam
,
spDragInfo
);
if
(
!
bResult
)
CONV_POINT32TO16
(
&
pt
,
&
ptrDragInfo
->
pt
);
return
bResult
;
}
/*******************************************************************
* DragDetect (USER32.@)
*/
BOOL
WINAPI
DragDetect
(
HWND
hWnd
,
POINT
pt
)
...
...
@@ -3246,101 +3176,6 @@ BOOL WINAPI DragDetect( HWND hWnd, POINT pt )
}
/******************************************************************************
* DragObject (USER.464)
*/
DWORD
WINAPI
DragObject16
(
HWND16
hwndScope
,
HWND16
hWnd
,
UINT16
wObj
,
HANDLE16
hOfStruct
,
WORD
szList
,
HCURSOR16
hCursor
)
{
MSG
msg
;
LPDRAGINFO16
lpDragInfo
;
SEGPTR
spDragInfo
;
HCURSOR
hOldCursor
=
0
,
hBummer
=
0
;
HGLOBAL16
hDragInfo
=
GlobalAlloc16
(
GMEM_SHARE
|
GMEM_ZEROINIT
,
2
*
sizeof
(
DRAGINFO16
));
HCURSOR
hCurrentCursor
=
0
;
HWND16
hCurrentWnd
=
0
;
lpDragInfo
=
(
LPDRAGINFO16
)
GlobalLock16
(
hDragInfo
);
spDragInfo
=
K32WOWGlobalLock16
(
hDragInfo
);
if
(
!
lpDragInfo
||
!
spDragInfo
)
return
0L
;
if
(
!
(
hBummer
=
LoadCursorA
(
0
,
MAKEINTRESOURCEA
(
OCR_NO
))))
{
GlobalFree16
(
hDragInfo
);
return
0L
;
}
if
(
hCursor
)
hOldCursor
=
SetCursor
(
HCURSOR_32
(
hCursor
));
lpDragInfo
->
hWnd
=
hWnd
;
lpDragInfo
->
hScope
=
0
;
lpDragInfo
->
wFlags
=
wObj
;
lpDragInfo
->
hList
=
szList
;
/* near pointer! */
lpDragInfo
->
hOfStruct
=
hOfStruct
;
lpDragInfo
->
l
=
0L
;
SetCapture
(
WIN_Handle32
(
hWnd
));
ShowCursor
(
TRUE
);
do
{
GetMessageW
(
&
msg
,
0
,
WM_MOUSEFIRST
,
WM_MOUSELAST
);
*
(
lpDragInfo
+
1
)
=
*
lpDragInfo
;
lpDragInfo
->
pt
.
x
=
msg
.
pt
.
x
;
lpDragInfo
->
pt
.
y
=
msg
.
pt
.
y
;
/* update DRAGINFO struct */
TRACE_
(
msg
)(
"lpDI->hScope = %04x
\n
"
,
lpDragInfo
->
hScope
);
if
(
DRAG_QueryUpdate16
(
WIN_Handle32
(
hwndScope
),
spDragInfo
)
>
0
)
hCurrentCursor
=
HCURSOR_32
(
hCursor
);
else
{
hCurrentCursor
=
hBummer
;
lpDragInfo
->
hScope
=
0
;
}
if
(
hCurrentCursor
)
SetCursor
(
hCurrentCursor
);
/* send WM_DRAGLOOP */
SendMessage16
(
hWnd
,
WM_DRAGLOOP
,
(
WPARAM16
)(
hCurrentCursor
!=
hBummer
),
(
LPARAM
)
spDragInfo
);
/* send WM_DRAGSELECT or WM_DRAGMOVE */
if
(
hCurrentWnd
!=
lpDragInfo
->
hScope
)
{
if
(
hCurrentWnd
)
SendMessage16
(
hCurrentWnd
,
WM_DRAGSELECT
,
0
,
(
LPARAM
)
MAKELONG
(
LOWORD
(
spDragInfo
)
+
sizeof
(
DRAGINFO16
),
HIWORD
(
spDragInfo
))
);
hCurrentWnd
=
lpDragInfo
->
hScope
;
if
(
hCurrentWnd
)
SendMessage16
(
hCurrentWnd
,
WM_DRAGSELECT
,
1
,
(
LPARAM
)
spDragInfo
);
}
else
if
(
hCurrentWnd
)
SendMessage16
(
hCurrentWnd
,
WM_DRAGMOVE
,
0
,
(
LPARAM
)
spDragInfo
);
}
while
(
msg
.
message
!=
WM_LBUTTONUP
&&
msg
.
message
!=
WM_NCLBUTTONUP
);
ReleaseCapture
();
ShowCursor
(
FALSE
);
if
(
hCursor
)
SetCursor
(
hOldCursor
);
if
(
hCurrentCursor
!=
hBummer
)
msg
.
lParam
=
SendMessage16
(
lpDragInfo
->
hScope
,
WM_DROPOBJECT
,
(
WPARAM16
)
hWnd
,
(
LPARAM
)
spDragInfo
);
else
msg
.
lParam
=
0
;
GlobalFree16
(
hDragInfo
);
return
(
DWORD
)(
msg
.
lParam
);
}
/******************************************************************************
* GetWindowModuleFileNameA (USER32.@)
*/
UINT
WINAPI
GetWindowModuleFileNameA
(
HWND
hwnd
,
LPSTR
lpszFileName
,
UINT
cchFileNameMax
)
...
...
windows/winpos.c
View file @
cf2e57d0
...
...
@@ -1177,8 +1177,8 @@ BOOL WINAPI SetWindowPos( HWND hwnd, HWND hwndInsertAfter,
hwnd
,
hwndInsertAfter
,
x
,
y
,
cx
,
cy
,
flags
);
if
(
TRACE_ON
(
win
))
dump_winpos_flags
(
flags
);
winpos
.
hwnd
=
hwnd
;
winpos
.
hwndInsertAfter
=
hwndInsertAfter
;
winpos
.
hwnd
=
WIN_GetFullHandle
(
hwnd
)
;
winpos
.
hwndInsertAfter
=
WIN_GetFullHandle
(
hwndInsertAfter
)
;
winpos
.
x
=
x
;
winpos
.
y
=
y
;
winpos
.
cx
=
cx
;
...
...
@@ -1242,7 +1242,7 @@ HDWP WINAPI DeferWindowPos( HDWP hdwp, HWND hwnd, HWND hwndAfter,
/* Merge with the other changes */
if
(
!
(
flags
&
SWP_NOZORDER
))
{
pDWP
->
winPos
[
i
].
hwndInsertAfter
=
hwndAfter
;
pDWP
->
winPos
[
i
].
hwndInsertAfter
=
WIN_GetFullHandle
(
hwndAfter
)
;
}
if
(
!
(
flags
&
SWP_NOMOVE
))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment