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

Alexandre Julliard julliard at winehq.org
Mon Nov 10 07:44:04 CST 2008


Module: wine
Branch: master
Commit: 6a78ea4d6cbacd63f938ecb69a9f104f9f79d465
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6a78ea4d6cbacd63f938ecb69a9f104f9f79d465

Author: Reece Dunn <msclrhd at googlemail.com>
Date:   Mon Nov 10 09:35:59 2008 +0000

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

---

 dlls/uxtheme/Makefile.in  |    1 +
 dlls/uxtheme/buffer.c     |   77 +++++++++++++++++++++++++++++++++++++++++++++
 dlls/uxtheme/uxtheme.spec |    4 ++
 include/uxtheme.h         |   28 ++++++++++++++++
 4 files changed, 110 insertions(+), 0 deletions(-)

diff --git a/dlls/uxtheme/Makefile.in b/dlls/uxtheme/Makefile.in
index da6944f..fb1c44d 100644
--- a/dlls/uxtheme/Makefile.in
+++ b/dlls/uxtheme/Makefile.in
@@ -8,6 +8,7 @@ IMPORTS   = user32 gdi32 advapi32 kernel32
 DELAYIMPORTS = msimg32
 
 C_SRCS = \
+	buffer.c \
 	draw.c \
 	main.c \
 	metric.c \
diff --git a/dlls/uxtheme/buffer.c b/dlls/uxtheme/buffer.c
new file mode 100644
index 0000000..af004d0
--- /dev/null
+++ b/dlls/uxtheme/buffer.c
@@ -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;
+}
diff --git a/dlls/uxtheme/uxtheme.spec b/dlls/uxtheme/uxtheme.spec
index 6b367b5..2646a15 100644
--- a/dlls/uxtheme/uxtheme.spec
+++ b/dlls/uxtheme/uxtheme.spec
@@ -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)
diff --git a/include/uxtheme.h b/include/uxtheme.h
index 8ee63b6..ef369dc 100644
--- a/include/uxtheme.h
+++ b/include/uxtheme.h
@@ -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




More information about the wine-cvs mailing list