Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
6f3ed5fd
Commit
6f3ed5fd
authored
Jun 12, 2022
by
Jacek Caban
Committed by
Alexandre Julliard
Jun 15, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
win32u: Move NtUserInvalidateRect and NtUserInvalidateRgn implementation from user32.
Signed-off-by:
Jacek Caban
<
jacek@codeweavers.com
>
parent
dad8044f
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
85 additions
and
72 deletions
+85
-72
button.c
dlls/user32/button.c
+6
-6
combo.c
dlls/user32/combo.c
+7
-7
edit.c
dlls/user32/edit.c
+3
-3
listbox.c
dlls/user32/listbox.c
+14
-14
menu.c
dlls/user32/menu.c
+2
-2
painting.c
dlls/user32/painting.c
+0
-35
scroll.c
dlls/user32/scroll.c
+1
-1
user32.spec
dlls/user32/user32.spec
+2
-2
dce.c
dlls/win32u/dce.c
+30
-0
gdiobj.c
dlls/win32u/gdiobj.c
+2
-0
win32u.spec
dlls/win32u/win32u.spec
+2
-2
win32u_private.h
dlls/win32u/win32u_private.h
+2
-0
wrappers.c
dlls/win32u/wrappers.c
+12
-0
ntuser.h
include/ntuser.h
+2
-0
No files found.
dlls/user32/button.c
View file @
6f3ed5fd
...
...
@@ -382,7 +382,7 @@ LRESULT ButtonWndProc_common(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
if
(
unicode
)
DefWindowProcW
(
hWnd
,
WM_SETTEXT
,
wParam
,
lParam
);
else
DefWindowProcA
(
hWnd
,
WM_SETTEXT
,
wParam
,
lParam
);
if
(
btn_type
==
BS_GROUPBOX
)
/* Yes, only for BS_GROUPBOX */
InvalidateRect
(
hWnd
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
hWnd
,
NULL
,
TRUE
);
else
paint_button
(
hWnd
,
btn_type
,
ODA_DRAWENTIRE
);
return
1
;
/* success. FIXME: check text length */
...
...
@@ -390,7 +390,7 @@ LRESULT ButtonWndProc_common(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
case
WM_SETFONT
:
set_button_font
(
hWnd
,
(
HFONT
)
wParam
);
if
(
lParam
)
InvalidateRect
(
hWnd
,
NULL
,
TRUE
);
if
(
lParam
)
NtUser
InvalidateRect
(
hWnd
,
NULL
,
TRUE
);
break
;
case
WM_GETFONT
:
...
...
@@ -415,11 +415,11 @@ LRESULT ButtonWndProc_common(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
if
(
style
&
BS_NOTIFY
)
BUTTON_NOTIFY_PARENT
(
hWnd
,
BN_KILLFOCUS
);
InvalidateRect
(
hWnd
,
NULL
,
FALSE
);
NtUser
InvalidateRect
(
hWnd
,
NULL
,
FALSE
);
break
;
case
WM_SYSCOLORCHANGE
:
InvalidateRect
(
hWnd
,
NULL
,
FALSE
);
NtUser
InvalidateRect
(
hWnd
,
NULL
,
FALSE
);
break
;
case
BM_SETSTYLE
:
...
...
@@ -429,7 +429,7 @@ LRESULT ButtonWndProc_common(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
/* Only redraw if lParam flag is set.*/
if
(
lParam
)
InvalidateRect
(
hWnd
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
hWnd
,
NULL
,
TRUE
);
break
;
...
...
@@ -452,7 +452,7 @@ LRESULT ButtonWndProc_common(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
return
0
;
}
oldHbitmap
=
(
HBITMAP
)
SetWindowLongPtrW
(
hWnd
,
HIMAGE_GWL_OFFSET
,
lParam
);
InvalidateRect
(
hWnd
,
NULL
,
FALSE
);
NtUser
InvalidateRect
(
hWnd
,
NULL
,
FALSE
);
return
(
LRESULT
)
oldHbitmap
;
case
BM_GETIMAGE
:
...
...
dlls/user32/combo.c
View file @
6f3ed5fd
...
...
@@ -1084,8 +1084,8 @@ BOOL COMBO_FlipListbox( LPHEADCOMBO lphc, BOOL ok, BOOL bRedrawButton )
* CBRepaintButton
*/
static
void
CBRepaintButton
(
LPHEADCOMBO
lphc
)
{
InvalidateRect
(
lphc
->
self
,
&
lphc
->
buttonRect
,
TRUE
);
{
NtUser
InvalidateRect
(
lphc
->
self
,
&
lphc
->
buttonRect
,
TRUE
);
UpdateWindow
(
lphc
->
self
);
}
...
...
@@ -1104,7 +1104,7 @@ static void COMBO_SetFocus( LPHEADCOMBO lphc )
/* lphc->wState |= CBF_FOCUSED; */
if
(
!
(
lphc
->
wState
&
CBF_EDIT
)
)
InvalidateRect
(
lphc
->
self
,
&
lphc
->
textRect
,
TRUE
);
NtUser
InvalidateRect
(
lphc
->
self
,
&
lphc
->
textRect
,
TRUE
);
CB_NOTIFY
(
lphc
,
CBN_SETFOCUS
);
lphc
->
wState
|=
CBF_FOCUSED
;
...
...
@@ -1130,7 +1130,7 @@ static void COMBO_KillFocus( LPHEADCOMBO lphc )
/* redraw text */
if
(
!
(
lphc
->
wState
&
CBF_EDIT
)
)
InvalidateRect
(
lphc
->
self
,
&
lphc
->
textRect
,
TRUE
);
NtUser
InvalidateRect
(
lphc
->
self
,
&
lphc
->
textRect
,
TRUE
);
CB_NOTIFY
(
lphc
,
CBN_KILLFOCUS
);
}
...
...
@@ -1561,7 +1561,7 @@ static LRESULT COMBO_SelectString( LPHEADCOMBO lphc, INT start, LPARAM pText, BO
CBUpdateEdit
(
lphc
,
index
);
else
{
InvalidateRect
(
lphc
->
self
,
&
lphc
->
textRect
,
TRUE
);
NtUser
InvalidateRect
(
lphc
->
self
,
&
lphc
->
textRect
,
TRUE
);
}
}
return
(
LRESULT
)
index
;
...
...
@@ -1854,7 +1854,7 @@ LRESULT ComboWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPARAM lPar
EnableWindow
(
lphc
->
hWndLBox
,
(
BOOL
)
wParam
);
/* Force the control to repaint when the enabled state changes. */
InvalidateRect
(
lphc
->
self
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
lphc
->
self
,
NULL
,
TRUE
);
return
TRUE
;
case
WM_SETREDRAW
:
if
(
wParam
)
...
...
@@ -2003,7 +2003,7 @@ LRESULT ComboWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPARAM lPar
if
(
(
lphc
->
wState
&
CBF_EDIT
)
&&
CB_HASSTRINGS
(
lphc
)
)
SendMessageW
(
lphc
->
hWndEdit
,
WM_SETTEXT
,
0
,
(
LPARAM
)
L""
);
else
InvalidateRect
(
lphc
->
self
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
lphc
->
self
,
NULL
,
TRUE
);
return
TRUE
;
case
CB_INITSTORAGE
:
return
SendMessageW
(
lphc
->
hWndLBox
,
LB_INITSTORAGE
,
wParam
,
lParam
);
...
...
dlls/user32/edit.c
View file @
6f3ed5fd
...
...
@@ -1421,7 +1421,7 @@ static void EDIT_UpdateTextRegion(EDITSTATE *es, HRGN hrgn, BOOL bErase)
es
->
flags
&=
~
EF_UPDATE
;
EDIT_NOTIFY_PARENT
(
es
,
EN_UPDATE
);
}
InvalidateRgn
(
es
->
hwndSelf
,
hrgn
,
bErase
);
NtUser
InvalidateRgn
(
es
->
hwndSelf
,
hrgn
,
bErase
);
}
...
...
@@ -1436,7 +1436,7 @@ static void EDIT_UpdateText(EDITSTATE *es, const RECT *rc, BOOL bErase)
es
->
flags
&=
~
EF_UPDATE
;
EDIT_NOTIFY_PARENT
(
es
,
EN_UPDATE
);
}
InvalidateRect
(
es
->
hwndSelf
,
rc
,
bErase
);
NtUser
InvalidateRect
(
es
->
hwndSelf
,
rc
,
bErase
);
}
/*********************************************************************
...
...
@@ -4873,7 +4873,7 @@ LRESULT EditWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, B
}
if
(
old_style
^
es
->
style
)
InvalidateRect
(
es
->
hwndSelf
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
es
->
hwndSelf
,
NULL
,
TRUE
);
result
=
1
;
break
;
...
...
dlls/user32/listbox.c
View file @
6f3ed5fd
...
...
@@ -443,7 +443,7 @@ static LRESULT LISTBOX_SetTopItem( LB_DESCR *descr, INT index, BOOL scroll )
SW_INVALIDATE
|
SW_ERASE
|
SW_SCROLLCHILDREN
);
}
else
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
descr
->
top_item
=
index
;
LISTBOX_UpdateScroll
(
descr
);
return
LB_OKAY
;
...
...
@@ -465,7 +465,7 @@ static void LISTBOX_UpdatePage( LB_DESCR *descr )
if
(
page_size
==
descr
->
page_size
)
return
;
descr
->
page_size
=
page_size
;
if
(
descr
->
style
&
LBS_MULTICOLUMN
)
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
LISTBOX_SetTopItem
(
descr
,
descr
->
top_item
,
FALSE
);
}
...
...
@@ -510,7 +510,7 @@ static void LISTBOX_UpdateSize( LB_DESCR *descr )
/* Invalidate the focused item so it will be repainted correctly */
if
(
LISTBOX_GetItemRect
(
descr
,
descr
->
focus_item
,
&
rect
)
==
1
)
{
InvalidateRect
(
descr
->
self
,
&
rect
,
FALSE
);
NtUser
InvalidateRect
(
descr
->
self
,
&
rect
,
FALSE
);
}
}
...
...
@@ -741,7 +741,7 @@ static void LISTBOX_SetRedraw( LB_DESCR *descr, BOOL on )
descr
->
style
&=
~
LBS_NOREDRAW
;
if
(
descr
->
style
&
LBS_DISPLAYCHANGED
)
{
/* page was changed while setredraw false, refresh automatically */
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
if
((
descr
->
top_item
+
descr
->
page_size
)
>
descr
->
nb_items
)
{
/* reset top of page if less than number of items/page */
descr
->
top_item
=
descr
->
nb_items
-
descr
->
page_size
;
...
...
@@ -1246,14 +1246,14 @@ static void LISTBOX_InvalidateItems( LB_DESCR *descr, INT index )
return
;
}
rect
.
bottom
=
descr
->
height
;
InvalidateRect
(
descr
->
self
,
&
rect
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
&
rect
,
TRUE
);
if
(
descr
->
style
&
LBS_MULTICOLUMN
)
{
/* Repaint the other columns */
rect
.
left
=
rect
.
right
;
rect
.
right
=
descr
->
width
;
rect
.
top
=
0
;
InvalidateRect
(
descr
->
self
,
&
rect
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
&
rect
,
TRUE
);
}
}
}
...
...
@@ -1263,7 +1263,7 @@ static void LISTBOX_InvalidateItemRect( LB_DESCR *descr, INT index )
RECT
rect
;
if
(
LISTBOX_GetItemRect
(
descr
,
index
,
&
rect
)
==
1
)
InvalidateRect
(
descr
->
self
,
&
rect
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
&
rect
,
TRUE
);
}
/***********************************************************************
...
...
@@ -1314,7 +1314,7 @@ static LRESULT LISTBOX_SetItemHeight( LB_DESCR *descr, INT index, INT height, BO
LISTBOX_UpdatePage
(
descr
);
LISTBOX_UpdateScroll
(
descr
);
if
(
repaint
)
InvalidateRect
(
descr
->
self
,
0
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
0
,
TRUE
);
}
return
LB_OKAY
;
}
...
...
@@ -1339,12 +1339,12 @@ static void LISTBOX_SetHorizontalPos( LB_DESCR *descr, INT pos )
RECT
rect
;
/* Invalidate the focused item so it will be repainted correctly */
if
(
LISTBOX_GetItemRect
(
descr
,
descr
->
focus_item
,
&
rect
)
==
1
)
InvalidateRect
(
descr
->
self
,
&
rect
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
&
rect
,
TRUE
);
NtUserScrollWindowEx
(
descr
->
self
,
diff
,
0
,
NULL
,
NULL
,
0
,
NULL
,
SW_INVALIDATE
|
SW_ERASE
|
SW_SCROLLCHILDREN
);
}
else
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
}
...
...
@@ -1863,7 +1863,7 @@ static LRESULT LISTBOX_SetCount( LB_DESCR *descr, UINT count )
}
else
SendMessageW
(
descr
->
self
,
LB_RESETCONTENT
,
0
,
0
);
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
return
LB_OKAY
;
}
...
...
@@ -2696,7 +2696,7 @@ LRESULT ListBoxWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
case
LB_RESETCONTENT
:
LISTBOX_ResetContent
(
descr
);
LISTBOX_UpdateScroll
(
descr
);
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
return
0
;
case
LB_ADDSTRING
:
...
...
@@ -3076,7 +3076,7 @@ LRESULT ListBoxWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
return
LISTBOX_Destroy
(
descr
);
case
WM_ENABLE
:
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
NtUser
InvalidateRect
(
descr
->
self
,
NULL
,
TRUE
);
return
0
;
case
WM_SETREDRAW
:
...
...
@@ -3102,7 +3102,7 @@ LRESULT ListBoxWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
return
(
LRESULT
)
descr
->
font
;
case
WM_SETFONT
:
LISTBOX_SetFont
(
descr
,
(
HFONT
)
wParam
);
if
(
lParam
)
InvalidateRect
(
descr
->
self
,
0
,
TRUE
);
if
(
lParam
)
NtUser
InvalidateRect
(
descr
->
self
,
0
,
TRUE
);
return
0
;
case
WM_SETFOCUS
:
descr
->
in_focus
=
TRUE
;
...
...
dlls/user32/menu.c
View file @
6f3ed5fd
...
...
@@ -1728,14 +1728,14 @@ MENU_EnsureMenuItemVisible(LPPOPUPMENU lppop, UINT wIndex, HDC hdc)
{
arrow_rect
.
top
=
0
;
arrow_rect
.
bottom
=
lppop
->
items_rect
.
top
;
InvalidateRect
(
lppop
->
hWnd
,
&
arrow_rect
,
FALSE
);
NtUser
InvalidateRect
(
lppop
->
hWnd
,
&
arrow_rect
,
FALSE
);
}
if
(
nOldPos
+
scroll_height
==
lppop
->
nTotalHeight
||
lppop
->
nScrollPos
+
scroll_height
==
lppop
->
nTotalHeight
)
{
arrow_rect
.
top
=
lppop
->
items_rect
.
bottom
;
arrow_rect
.
bottom
=
lppop
->
Height
;
InvalidateRect
(
lppop
->
hWnd
,
&
arrow_rect
,
FALSE
);
NtUser
InvalidateRect
(
lppop
->
hWnd
,
&
arrow_rect
,
FALSE
);
}
}
}
...
...
dlls/user32/painting.c
View file @
6f3ed5fd
...
...
@@ -63,41 +63,6 @@ BOOL WINAPI UpdateWindow( HWND hwnd )
/***********************************************************************
* InvalidateRgn (USER32.@)
*/
BOOL
WINAPI
InvalidateRgn
(
HWND
hwnd
,
HRGN
hrgn
,
BOOL
erase
)
{
if
(
!
hwnd
)
{
SetLastError
(
ERROR_INVALID_WINDOW_HANDLE
);
return
FALSE
;
}
return
NtUserRedrawWindow
(
hwnd
,
NULL
,
hrgn
,
RDW_INVALIDATE
|
(
erase
?
RDW_ERASE
:
0
)
);
}
/***********************************************************************
* InvalidateRect (USER32.@)
*
* MSDN: if hwnd parameter is NULL, InvalidateRect invalidates and redraws
* all windows and sends WM_ERASEBKGND and WM_NCPAINT.
*/
BOOL
WINAPI
InvalidateRect
(
HWND
hwnd
,
const
RECT
*
rect
,
BOOL
erase
)
{
UINT
flags
=
RDW_INVALIDATE
|
(
erase
?
RDW_ERASE
:
0
);
if
(
!
hwnd
)
{
flags
=
RDW_ALLCHILDREN
|
RDW_INVALIDATE
|
RDW_FRAME
|
RDW_ERASE
|
RDW_ERASENOW
;
rect
=
NULL
;
}
return
NtUserRedrawWindow
(
hwnd
,
rect
,
0
,
flags
);
}
/***********************************************************************
* ValidateRgn (USER32.@)
*/
BOOL
WINAPI
ValidateRgn
(
HWND
hwnd
,
HRGN
hrgn
)
...
...
dlls/user32/scroll.c
View file @
6f3ed5fd
...
...
@@ -1507,7 +1507,7 @@ LRESULT WINAPI USER_ScrollBarProc( HWND hwnd, UINT message, WPARAM wParam, LPARA
rect
.
bottom
=
rect
.
top
+
thumbSize
;
}
NtUserHideCaret
(
hwnd
);
InvalidateRect
(
hwnd
,
&
rect
,
0
);
NtUserInvalidateRect
(
hwnd
,
&
rect
,
0
);
DestroyCaret
();
}
break
;
...
...
dlls/user32/user32.spec
View file @
6f3ed5fd
...
...
@@ -448,8 +448,8 @@
@ stdcall InternalGetWindowIcon(ptr long) NtUserInternalGetWindowIcon
@ stdcall InternalGetWindowText(long ptr long) NtUserInternalGetWindowText
@ stdcall IntersectRect(ptr ptr ptr)
@ stdcall InvalidateRect(long ptr long)
@ stdcall InvalidateRgn(long long long)
@ stdcall InvalidateRect(long ptr long)
NtUserInvalidateRect
@ stdcall InvalidateRgn(long long long)
NtUserInvalidateRgn
@ stdcall InvertRect(long ptr)
@ stdcall -import IsCharAlphaA(long)
@ stdcall -import IsCharAlphaNumericA(long)
...
...
dlls/win32u/dce.c
View file @
6f3ed5fd
...
...
@@ -1576,6 +1576,36 @@ INT WINAPI NtUserExcludeUpdateRgn( HDC hdc, HWND hwnd )
}
/***********************************************************************
* NtUserInvalidateRgn (win32u.@)
*/
BOOL
WINAPI
NtUserInvalidateRgn
(
HWND
hwnd
,
HRGN
hrgn
,
BOOL
erase
)
{
if
(
!
hwnd
)
{
SetLastError
(
ERROR_INVALID_WINDOW_HANDLE
);
return
FALSE
;
}
return
NtUserRedrawWindow
(
hwnd
,
NULL
,
hrgn
,
RDW_INVALIDATE
|
(
erase
?
RDW_ERASE
:
0
)
);
}
/***********************************************************************
* NtUserInvalidateRect (win32u.@)
*/
BOOL
WINAPI
NtUserInvalidateRect
(
HWND
hwnd
,
const
RECT
*
rect
,
BOOL
erase
)
{
UINT
flags
=
RDW_INVALIDATE
|
(
erase
?
RDW_ERASE
:
0
);
if
(
!
hwnd
)
{
flags
=
RDW_ALLCHILDREN
|
RDW_INVALIDATE
|
RDW_FRAME
|
RDW_ERASE
|
RDW_ERASENOW
;
rect
=
NULL
;
}
return
NtUserRedrawWindow
(
hwnd
,
rect
,
0
,
flags
);
}
/***********************************************************************
* NtUserLockWindowUpdate (win32u.@)
*/
BOOL
WINAPI
NtUserLockWindowUpdate
(
HWND
hwnd
)
...
...
dlls/win32u/gdiobj.c
View file @
6f3ed5fd
...
...
@@ -1189,6 +1189,8 @@ static struct unix_funcs unix_funcs =
NtUserGetWindowPlacement
,
NtUserHideCaret
,
NtUserInternalGetWindowIcon
,
NtUserInvalidateRect
,
NtUserInvalidateRgn
,
NtUserIsClipboardFormatAvailable
,
NtUserMapVirtualKeyEx
,
NtUserMessageCall
,
...
...
dlls/win32u/win32u.spec
View file @
6f3ed5fd
...
...
@@ -1047,8 +1047,8 @@
@ stdcall NtUserInternalGetWindowIcon(ptr long)
@ stdcall -syscall NtUserInternalGetWindowText(long ptr long)
@ stub NtUserInternalToUnicode
@ st
ub NtUserInvalidateRect
@ st
ub NtUserInvalidateRgn
@ st
dcall NtUserInvalidateRect(long ptr long)
@ st
dcall NtUserInvalidateRgn(long long long)
@ stub NtUserIsChildWindowDpiMessageEnabled
@ stdcall NtUserIsClipboardFormatAvailable(long)
@ stub NtUserIsMouseInPointerEnabled
...
...
dlls/win32u/win32u_private.h
View file @
6f3ed5fd
...
...
@@ -251,6 +251,8 @@ struct unix_funcs
BOOL
(
WINAPI
*
pNtUserGetWindowPlacement
)(
HWND
hwnd
,
WINDOWPLACEMENT
*
placement
);
BOOL
(
WINAPI
*
pNtUserHideCaret
)(
HWND
hwnd
);
HICON
(
WINAPI
*
pNtUserInternalGetWindowIcon
)(
HWND
hwnd
,
UINT
type
);
BOOL
(
WINAPI
*
pNtUserInvalidateRect
)(
HWND
hwnd
,
const
RECT
*
rect
,
BOOL
erase
);
BOOL
(
WINAPI
*
pNtUserInvalidateRgn
)(
HWND
hwnd
,
HRGN
hrgn
,
BOOL
erase
);
BOOL
(
WINAPI
*
pNtUserIsClipboardFormatAvailable
)(
UINT
format
);
UINT
(
WINAPI
*
pNtUserMapVirtualKeyEx
)(
UINT
code
,
UINT
type
,
HKL
layout
);
LRESULT
(
WINAPI
*
pNtUserMessageCall
)(
HWND
hwnd
,
UINT
msg
,
WPARAM
wparam
,
LPARAM
lparam
,
...
...
dlls/win32u/wrappers.c
View file @
6f3ed5fd
...
...
@@ -1048,6 +1048,18 @@ HICON WINAPI NtUserInternalGetWindowIcon( HWND hwnd, UINT type )
return
unix_funcs
->
pNtUserInternalGetWindowIcon
(
hwnd
,
type
);
}
BOOL
WINAPI
NtUserInvalidateRect
(
HWND
hwnd
,
const
RECT
*
rect
,
BOOL
erase
)
{
if
(
!
unix_funcs
)
return
FALSE
;
return
unix_funcs
->
pNtUserInvalidateRect
(
hwnd
,
rect
,
erase
);
}
BOOL
WINAPI
NtUserInvalidateRgn
(
HWND
hwnd
,
HRGN
hrgn
,
BOOL
erase
)
{
if
(
!
unix_funcs
)
return
FALSE
;
return
unix_funcs
->
pNtUserInvalidateRgn
(
hwnd
,
hrgn
,
erase
);
}
BOOL
WINAPI
NtUserIsClipboardFormatAvailable
(
UINT
format
)
{
if
(
!
unix_funcs
)
return
FALSE
;
...
...
include/ntuser.h
View file @
6f3ed5fd
...
...
@@ -617,6 +617,8 @@ NTSTATUS WINAPI NtUserInitializeClientPfnArrays( const struct user_client_procs
HICON
WINAPI
NtUserInternalGetWindowIcon
(
HWND
hwnd
,
UINT
type
);
INT
WINAPI
NtUserInternalGetWindowText
(
HWND
hwnd
,
WCHAR
*
text
,
INT
count
);
BOOL
WINAPI
NtUserIsClipboardFormatAvailable
(
UINT
format
);
BOOL
WINAPI
NtUserInvalidateRect
(
HWND
hwnd
,
const
RECT
*
rect
,
BOOL
erase
);
BOOL
WINAPI
NtUserInvalidateRgn
(
HWND
hwnd
,
HRGN
hrgn
,
BOOL
erase
);
BOOL
WINAPI
NtUserKillTimer
(
HWND
hwnd
,
UINT_PTR
id
);
BOOL
WINAPI
NtUserLockWindowUpdate
(
HWND
hwnd
);
UINT
WINAPI
NtUserMapVirtualKeyEx
(
UINT
code
,
UINT
type
,
HKL
layout
);
...
...
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