;/*
;    Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
;
;    This library is free software; you can redistribute it and/or
;    modify it under the terms of the GNU Library General Public
;    License as published by the Free Software Foundation; either
;    version 2 of the License, or (at your option) any later version.
;
;    This library is distributed in the hope that it will be useful,
;    but WITHOUT ANY WARRANTY; without even the implied warranty of
;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;    Library General Public License for more details.
;
;    You should have received a copy of the GNU Library General Public License
;    along with this library; see the file COPYING.LIB.  If not, write to
;    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;    Boston, MA 02110-1301, USA.
;*/

;HDC __stdcall _HBeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint);

PUBLIC  _HBeginPaint

_TEXT   SEGMENT

_HBeginPaint PROC
     mov  r10,rcx
     mov  eax,1017h
     syscall
     ret
_HBeginPaint ENDP

_TEXT   ENDS

;BOOL __stdcall _HEndPaint(HWND hWnd, const PAINTSTRUCT* lpPaint);

PUBLIC  _HEndPaint

_TEXT   SEGMENT

_HEndPaint PROC
    mov  r10,rcx
    mov  eax,1019h
    syscall
    ret
_HEndPaint ENDP

_TEXT   ENDS

END
