/**************************************************
*
*        VC++ v6 (should work with v2 and above)
*
*        Compiler: cl lvSupport.c -c -Zl
*
	Last change: PI 17/10/2003 14:22:00
**************************************************/
#include <windows.h>
#include <xpppar.h>
#include <xppcon.h>
#include <error.ch>



XPPRET XPPENTRY WLPRINTWINDOW(XppParamList paramList)
{
    HWND hWnd;
    HDC hDCMem;
    RECT rect;
    HBITMAP hBmp;
    HGDIOBJ hOld;

    hWnd   = (HWND) _parnl( paramList, 1 );

    hDCMem = CreateCompatibleDC(NULL);

    GetWindowRect(hWnd, & rect);

    hBmp = NULL;

    {
        HDC hDC = GetDC(hWnd);
        hBmp = CreateCompatibleBitmap(hDC, rect.right - rect.left, rect.bottom - rect.top);
        ReleaseDC(hWnd, hDC);
    }

    hOld = SelectObject(hDCMem, hBmp);
    SendMessage(hWnd, WM_PRINT, (WPARAM) hDCMem, PRF_CHILDREN | PRF_CLIENT | PRF_ERASEBKGND | PRF_NONCLIENT | PRF_OWNED);

    SelectObject(hDCMem, hOld);
    DeleteObject(hDCMem);

    OpenClipboard(hWnd);

    EmptyClipboard(); 
    SetClipboardData(CF_BITMAP, hBmp);
    CloseClipboard();
    _ret(paramList);
}


