diff --git a/reactos/dll/win32/user32/windows/nonclient.c b/reactos/dll/win32/user32/windows/nonclient.c index b870ff9c7bc..8b27ed1d30b 100644 --- a/reactos/dll/win32/user32/windows/nonclient.c +++ b/reactos/dll/win32/user32/windows/nonclient.c @@ -1102,13 +1102,13 @@ DrawCaption(HWND hWnd, HDC hDC, LPCRECT lprc, UINT uFlags) } /* - * @unimplemented + * @implemented */ BOOL STDCALL DrawCaptionTempW( - HWND hwnd, - HDC hdc, + HWND hWnd, + HDC hDC, const RECT *rect, HFONT hFont, HICON hIcon, @@ -1116,12 +1116,11 @@ DrawCaptionTempW( UINT uFlags ) { - UNIMPLEMENTED; - return FALSE; + return NtUserDrawCaptionTemp(hWnd, hDC, rect, hFont, hIcon, str, uFlags); } /* - * @unimplemented + * @implemented */ BOOL STDCALL @@ -1135,8 +1134,21 @@ DrawCaptionTempA( UINT uFlags ) { - UNIMPLEMENTED; - return FALSE; + LPWSTR strW; + INT len; + BOOL ret = FALSE; + + if (!(uFlags & DC_TEXT) || !str) + return DrawCaptionTempW(hwnd, hdc, rect, hFont, hIcon, NULL, uFlags); + + len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0); + if ((strW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)))) + { + MultiByteToWideChar(CP_ACP, 0, str, -1, strW, len ); + ret = DrawCaptionTempW(hwnd, hdc, rect, hFont, hIcon, strW, uFlags); + HeapFree(GetProcessHeap(), 0, strW); + } + return ret; } /*********************************************************************** diff --git a/reactos/include/reactos/win32k/ntuser.h b/reactos/include/reactos/win32k/ntuser.h index dec3284547e..e3f0a557495 100644 --- a/reactos/include/reactos/win32k/ntuser.h +++ b/reactos/include/reactos/win32k/ntuser.h @@ -716,16 +716,16 @@ NtUserDrawCaption( LPCRECT lpRc, UINT uFlags); -DWORD +BOOL STDCALL NtUserDrawCaptionTemp( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2, - DWORD Unknown3, - DWORD Unknown4, - DWORD Unknown5, - DWORD Unknown6); + HWND hWnd, + HDC hDC, + const RECT *rect, + HFONT hFont, + HICON hIcon, + LPCWSTR str, + UINT uFlags); BOOL NTAPI diff --git a/reactos/subsystems/win32/win32k/ntuser/ntstubs.c b/reactos/subsystems/win32/win32k/ntuser/ntstubs.c index 71fbe2718ab..dd043db2c7c 100644 --- a/reactos/subsystems/win32/win32k/ntuser/ntstubs.c +++ b/reactos/subsystems/win32/win32k/ntuser/ntstubs.c @@ -180,20 +180,19 @@ NtUserDrawAnimatedRects( return 0; } -DWORD +BOOL STDCALL NtUserDrawCaptionTemp( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2, - DWORD Unknown3, - DWORD Unknown4, - DWORD Unknown5, - DWORD Unknown6) + HWND hWnd, + HDC hDC, + const RECT *rect, + HFONT hFont, + HICON hIcon, + LPCWSTR str, + UINT uFlags) { UNIMPLEMENTED - - return 0; + return FALSE; } BOOL