win32u: Move GetShellWindow implementation from user32.

This commit is contained in:
Jacek Caban 2022-12-09 12:36:22 +01:00 committed by Alexandre Julliard
parent ae7effbd78
commit 67c3fff7cd
5 changed files with 26 additions and 11 deletions

View file

@ -112,17 +112,7 @@ BOOL WINAPI SetShellWindow(HWND hwndShell)
*/
HWND WINAPI GetShellWindow(void)
{
HWND hwndShell = 0;
SERVER_START_REQ(set_global_windows)
{
req->flags = 0;
if (!wine_server_call_err(req))
hwndShell = wine_server_ptr_handle( reply->old_shell_window );
}
SERVER_END_REQ;
return hwndShell;
return NtUserGetShellWindow();
}

View file

@ -2150,3 +2150,18 @@ void toggle_caret( HWND hwnd )
if (ret && !hidden) display_caret( hwnd, &r );
}
HWND get_shell_window(void)
{
HWND hwnd = 0;
SERVER_START_REQ(set_global_windows)
{
req->flags = 0;
if (!wine_server_call_err(req))
hwnd = wine_server_ptr_handle( reply->old_shell_window );
}
SERVER_END_REQ;
return hwnd;
}

View file

@ -5437,6 +5437,9 @@ ULONG_PTR WINAPI NtUserCallNoParam( ULONG code )
case NtUserCallNoParam_GetProcessDefaultLayout:
return process_layout;
case NtUserCallNoParam_GetShellWindow:
return HandleToUlong( get_shell_window() );
case NtUserCallNoParam_ReleaseCapture:
return release_capture();

View file

@ -271,6 +271,7 @@ extern HWND get_capture(void) DECLSPEC_HIDDEN;
extern BOOL get_cursor_pos( POINT *pt ) DECLSPEC_HIDDEN;
extern HWND get_focus(void) DECLSPEC_HIDDEN;
extern DWORD get_input_state(void) DECLSPEC_HIDDEN;
extern HWND get_shell_window(void) DECLSPEC_HIDDEN;
extern BOOL WINAPI release_capture(void) DECLSPEC_HIDDEN;
extern BOOL set_capture_window( HWND hwnd, UINT gui_flags, HWND *prev_ret ) DECLSPEC_HIDDEN;
extern BOOL set_caret_blink_time( unsigned int time ) DECLSPEC_HIDDEN;

View file

@ -910,6 +910,7 @@ enum
NtUserCallNoParam_GetDialogBaseUnits,
NtUserCallNoParam_GetInputState,
NtUserCallNoParam_GetProcessDefaultLayout,
NtUserCallNoParam_GetShellWindow,
NtUserCallNoParam_ReleaseCapture,
/* temporary exports */
NtUserExitingThread,
@ -941,6 +942,11 @@ static inline DWORD NtUserGetProcessDefaultLayout(void)
return NtUserCallNoParam( NtUserCallNoParam_GetProcessDefaultLayout );
}
static inline HWND NtUserGetShellWindow(void)
{
return UlongToHandle( NtUserCallNoParam( NtUserCallNoParam_GetShellWindow ));
}
static inline BOOL NtUserReleaseCapture(void)
{
return NtUserCallNoParam( NtUserCallNoParam_ReleaseCapture );