From 0304a3e998d917be8bcf2ad5680ab500c9b646c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hentschel?= Date: Wed, 23 Mar 2011 19:29:59 +0100 Subject: [PATCH] uxtheme: Add OpenThemeDataEx. --- dlls/uxtheme/system.c | 17 ++++++++++++++--- dlls/uxtheme/uxtheme.spec | 2 +- include/uxtheme.h | 5 +++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/dlls/uxtheme/system.c b/dlls/uxtheme/system.c index b84e978dba8..60e55ee8796 100644 --- a/dlls/uxtheme/system.c +++ b/dlls/uxtheme/system.c @@ -630,16 +630,19 @@ static LPWSTR UXTHEME_GetWindowProperty(HWND hwnd, ATOM aProp, LPWSTR pszBuffer, } /*********************************************************************** - * OpenThemeData (UXTHEME.@) + * OpenThemeDataEx (UXTHEME.61) */ -HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR pszClassList) +HTHEME WINAPI OpenThemeDataEx(HWND hwnd, LPCWSTR pszClassList, DWORD flags) { WCHAR szAppBuff[256]; WCHAR szClassBuff[256]; LPCWSTR pszAppName; LPCWSTR pszUseClassList; HTHEME hTheme = NULL; - TRACE("(%p,%s)\n", hwnd, debugstr_w(pszClassList)); + TRACE("(%p,%s, %x)\n", hwnd, debugstr_w(pszClassList), flags); + + if(flags) + FIXME("unhandled flags: %x\n", flags); if(bThemeActive) { @@ -658,6 +661,14 @@ HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR pszClassList) return hTheme; } +/*********************************************************************** + * OpenThemeData (UXTHEME.@) + */ +HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist) +{ + return OpenThemeDataEx(hwnd, classlist, 0); +} + /*********************************************************************** * GetWindowTheme (UXTHEME.@) * diff --git a/dlls/uxtheme/uxtheme.spec b/dlls/uxtheme/uxtheme.spec index f44aa6e04bf..198957a1191 100644 --- a/dlls/uxtheme/uxtheme.spec +++ b/dlls/uxtheme/uxtheme.spec @@ -38,7 +38,7 @@ 46 stub -noname ClassicAdjustWindowRectEx 48 stub -noname GetThemeParseErrorInfo 60 stub -noname CreateThemeDataFromObjects -61 stub -noname OpenThemeDataEx +61 stdcall OpenThemeDataEx(ptr wstr long) 62 stub -noname ServerClearStockObjects 63 stub -noname MarkSelection diff --git a/include/uxtheme.h b/include/uxtheme.h index ef369dc8527..8e65f56a472 100644 --- a/include/uxtheme.h +++ b/include/uxtheme.h @@ -160,6 +160,10 @@ HTHEME WINAPI GetWindowTheme(HWND); #define HTTB_SIZINGTEMPLATE 0x0100 #define HTTB_SYSTEMSIZINGMARGINS 0x0200 +#define OTD_FORCE_RECT_SIZING 0x0001 +#define OTD_NONCLIENT 0x0002 +#define OTD_VALIDBITS (OTD_FORCE_RECT_SIZING | OTD_NONCLIENT) + HRESULT WINAPI HitTestThemeBackground(HTHEME,HDC,int,int,DWORD,const RECT*, HRGN,POINT,WORD*); BOOL WINAPI IsAppThemed(void); @@ -168,6 +172,7 @@ BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME,int,int); BOOL WINAPI IsThemeDialogTextureEnabled(HWND); BOOL WINAPI IsThemePartDefined(HTHEME,int,int); HTHEME WINAPI OpenThemeData(HWND,LPCWSTR); +HTHEME WINAPI OpenThemeDataEx(HWND,LPCWSTR,DWORD); void WINAPI SetThemeAppProperties(DWORD); HRESULT WINAPI SetWindowTheme(HWND,LPCWSTR,LPCWSTR);