Implementation of the User32.PrintWindow

Josselin Bardet namjos at gmail.com
Fri Jun 5 08:37:32 CDT 2009


Nikolay Sivov a écrit :
> As I already said in bugzilla:
> - use SendMessageW
> - add FIXME for unused flags or use them
> - no need for brackets around SendMessage
> - add a simple test (if native send this message - you can check it 
> easily with Spy in Windows)
>
Proposed implementation:
Adding in include/winuser.h

/* PrintWindow() flags */
#define PW_CLIENTONLY   0x00000001

_________________________________________

Adding in dlls/user32/user32.spec

@ stdcall PrintWindow(long long long)

_________________________________________

Adding in dlls/user32/painting.c


/*************************************************************************
 *              PrintWindow (USER32.@)
 *
 */
BOOL WINAPI PrintWindow( HWND hwnd, HDC hdcBlt, UINT nFlags)
{
    UINT flags = PRF_CHILDREN | PRF_CLIENT | PRF_ERASEBKGND | PRF_OWNED;

    if (nFlags & PW_CLIENTONLY == 0)    flags |= PRF_NONCLIENT;
    return SendMessageW( hwnd, WM_PRINT, (WPARAM)hdcBlt, (LPARAM)flags );
}

_________________________________________

I can remake a patch if you think it's good



More information about the wine-devel mailing list