uxtheme: Add stubs for the double buffer drawing API in Vista.

This commit is contained in:
Reece Dunn 2008-11-10 09:35:59 +00:00 committed by Alexandre Julliard
parent f571ecd23c
commit 6a78ea4d6c
4 changed files with 110 additions and 0 deletions

View File

@ -8,6 +8,7 @@ IMPORTS = user32 gdi32 advapi32 kernel32
DELAYIMPORTS = msimg32
C_SRCS = \
buffer.c \
draw.c \
main.c \
metric.c \

77
dlls/uxtheme/buffer.c Normal file
View File

@ -0,0 +1,77 @@
/*
* uxtheme Double-buffered Drawing API
*
* Copyright (C) 2008 Reece H. Dunn
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include <stdlib.h>
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "wingdi.h"
#include "vfwmsgs.h"
#include "uxtheme.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
/***********************************************************************
* BufferedPaintInit (UXTHEME.@)
*/
HRESULT WINAPI BufferedPaintInit(VOID)
{
FIXME("Stub ()\n");
return S_OK;
}
/***********************************************************************
* BufferedPaintUnInit (UXTHEME.@)
*/
HRESULT WINAPI BufferedPaintUnInit(VOID)
{
FIXME("Stub ()\n");
return S_OK;
}
/***********************************************************************
* BeginBufferedPaint (UXTHEME.@)
*/
HPAINTBUFFER WINAPI BeginBufferedPaint(HDC hdcTarget,
const RECT * prcTarget,
BP_BUFFERFORMAT dwFormat,
BP_PAINTPARAMS *pPaintParams,
HDC *phdc)
{
FIXME("Stub (%p %p %d %p %p)\n", hdcTarget, prcTarget, dwFormat,
pPaintParams, phdc);
return NULL;
}
/***********************************************************************
* EndBufferedPaint (UXTHEME.@)
*/
HRESULT WINAPI EndBufferedPaint(HPAINTBUFFER hPaintBuffer, BOOL fUpdateTarget)
{
FIXME("Stub (%p %d)\n", hPaintBuffer, fUpdateTarget);
return S_OK;
}

View File

@ -43,6 +43,9 @@
63 stub -noname MarkSelection
# Standard functions
@ stdcall BeginBufferedPaint(ptr ptr long ptr ptr)
@ stdcall BufferedPaintInit()
@ stdcall BufferedPaintUnInit()
@ stdcall CloseThemeData(ptr)
@ stdcall DrawThemeBackground(ptr ptr long long ptr ptr)
@ stdcall DrawThemeBackgroundEx(ptr ptr long long ptr ptr)
@ -52,6 +55,7 @@
@ stdcall DrawThemeText(ptr ptr long long wstr long long long ptr)
@ stdcall EnableThemeDialogTexture(ptr long)
@ stdcall EnableTheming(long)
@ stdcall EndBufferedPaint(ptr long)
@ stdcall GetCurrentThemeName(wstr long wstr long wstr long)
@ stdcall GetThemeAppProperties()
@ stdcall GetThemeBackgroundContentRect(ptr ptr long long ptr ptr)

View File

@ -172,4 +172,32 @@ void WINAPI SetThemeAppProperties(DWORD);
HRESULT WINAPI SetWindowTheme(HWND,LPCWSTR,LPCWSTR);
/* Double-buffered Drawing API */
typedef HANDLE HPAINTBUFFER;
HRESULT WINAPI BufferedPaintInit(VOID);
HRESULT WINAPI BufferedPaintUnInit(VOID);
typedef enum _BP_BUFFERFORMAT
{
BPBF_COMPATIBLEBITMAP,
BPBF_DIB,
BPBF_TOPDOWNDIB,
BPBF_TOPDOWNMONODIB
} BP_BUFFERFORMAT;
typedef struct _BP_PAINTPARAMS
{
DWORD cbSize;
DWORD dwFlags;
const RECT *prcExclude;
const BLENDFUNCTION *pBlendFunction;
} BP_PAINTPARAMS, *PBP_PAINTPARAMS;
HPAINTBUFFER WINAPI BeginBufferedPaint(HDC, const RECT *, BP_BUFFERFORMAT,
BP_PAINTPARAMS *,HDC *);
HRESULT WINAPI EndBufferedPaint(HPAINTBUFFER, BOOL);
#endif