Commit 40f30565 authored by Kevin Koltzau's avatar Kevin Koltzau Committed by Alexandre Julliard

Added stubs for all functions.

parent 40774be8
......@@ -2,3 +2,4 @@ Makefile
uxtheme.dll.dbg.c
uxtheme.spec.c
uxtheme.spec.def
version.res
......@@ -7,7 +7,13 @@ IMPORTS = gdi32 user32 advapi32 kernel32 ntdll
EXTRALIBS = $(LIBUNICODE)
C_SRCS = \
main.c
draw.c \
main.c \
metric.c \
property.c \
system.c
RC_SRCS = version.rc
@MAKE_DLL_RULES@
......
/*
* Win32 5.1 Theme drawing
*
* Copyright (C) 2003 Kevin Koltzau
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "config.h"
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "wingdi.h"
#include "uxtheme.h"
#include "uxthemedll.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
/***********************************************************************
* EnableThemeDialogTexture (UXTHEME.@)
*/
HRESULT WINAPI EnableThemeDialogTexture(HWND hwnd, DWORD dwFlags)
{
FIXME("%p 0x%08lx: stub\n", hwnd, dwFlags);
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* IsThemeDialogTextureEnabled (UXTHEME.@)
*/
BOOL WINAPI IsThemeDialogTextureEnabled(void)
{
FIXME("stub\n");
return FALSE;
}
/***********************************************************************
* DrawThemeParentBackground (UXTHEME.@)
*/
HRESULT WINAPI DrawThemeParentBackground(HWND hwnd, HDC hdc, RECT *prc)
{
FIXME("stub\n");
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* DrawThemeBackground (UXTHEME.@)
*/
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, const RECT *pRect,
const RECT *pClipRect)
{
FIXME("%d %d: stub\n", iPartId, iStateId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* DrawThemeBackgroundEx (UXTHEME.@)
*/
HRESULT WINAPI DrawThemeBackgroundEx(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, const RECT *pRect,
const DTBGOPTS *pOptions)
{
FIXME("%d %d: stub\n", iPartId, iStateId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* DrawThemeEdge (UXTHEME.@)
*/
HRESULT WINAPI DrawThemeEdge(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, const RECT *pDestRect, UINT uEdge,
UINT uFlags, RECT *pContentRect)
{
FIXME("%d %d 0x%08x 0x%08x: stub\n", iPartId, iStateId, uEdge, uFlags);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* DrawThemeIcon (UXTHEME.@)
*/
HRESULT WINAPI DrawThemeIcon(HTHEME hTheme, HDC hdc, int iPartId, int iStateId,
const RECT *pRect, HIMAGELIST himl, int iImageIndex)
{
FIXME("%d %d: stub\n", iPartId, iStateId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* DrawThemeText (UXTHEME.@)
*/
HRESULT WINAPI DrawThemeText(HTHEME hTheme, HDC hdc, int iPartId, int iStateId,
LPCWSTR pszText, int iCharCount, DWORD dwTextFlags,
DWORD dwTextFlags2, const RECT *pRect)
{
FIXME("%d %d: stub\n", iPartId, iStateId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeBackgroundContentRect (UXTHEME.@)
*/
HRESULT WINAPI GetThemeBackgroundContentRect(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId,
const RECT *pBoundingRect,
RECT *pContentRect)
{
FIXME("%d %d: stub\n", iPartId, iStateId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeBackgroundExtent (UXTHEME.@)
*/
HRESULT WINAPI GetThemeBackgroundExtent(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, const RECT *pContentRect,
RECT *pExtentRect)
{
FIXME("%d %d: stub\n", iPartId, iStateId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeBackgroundRegion (UXTHEME.@)
*/
HRESULT WINAPI GetThemeBackgroundRegion(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, const RECT *pRect,
HRGN *pRegion)
{
FIXME("%d %d: stub\n", iPartId, iStateId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemePartSize (UXTHEME.@)
*/
HRESULT WINAPI GetThemePartSize(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, RECT *prc, THEMESIZE eSize,
SIZE *psz)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, eSize);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeTextExtent (UXTHEME.@)
*/
HRESULT WINAPI GetThemeTextExtent(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, LPCWSTR pszText, int iCharCount,
DWORD dwTextFlags, const RECT *pBoundingRect,
RECT *pExtentRect)
{
FIXME("%d %d: stub\n", iPartId, iStateId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeTextMetrics (UXTHEME.@)
*/
HRESULT WINAPI GetThemeTextMetrics(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, TEXTMETRICW *ptm)
{
FIXME("%d %d: stub\n", iPartId, iStateId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* IsThemeBackgroundPartiallyTransparent (UXTHEME.@)
*/
BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME hTheme, int iPartId,
int iStateId)
{
FIXME("%d %d: stub\n", iPartId, iStateId);
return FALSE;
}
......@@ -24,57 +24,25 @@
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "wingdi.h"
#include "uxtheme.h"
#include "uxthemedll.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
/***********************************************************************/
/* For the moment, do nothing here. */
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
{
TRACE("%p 0x%lx %p: stub\n", hInstDLL, fdwReason, lpv);
switch(fdwReason) {
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hInstDLL);
break;
case DLL_PROCESS_DETACH:
break;
UXTHEME_InitSystem();
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
BOOL WINAPI IsAppThemed(void)
{
FIXME("\n");
return FALSE;
}
BOOL WINAPI IsThemeActive(void)
{
FIXME("\n");
return FALSE;
}
HRESULT WINAPI EnableThemeDialogTexture(HWND hwnd, DWORD dwFlags) {
FIXME("%p 0x%08lx\n", hwnd, dwFlags);
return ERROR_CALL_NOT_IMPLEMENTED;
}
HRESULT WINAPI EnableTheming(BOOL fEnable) {
FIXME("%d\n", fEnable);
return ERROR_CALL_NOT_IMPLEMENTED;
}
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR pszClassList) {
FIXME("%p %s\n", hwnd, debugstr_w(pszClassList));
return NULL;
}
HRESULT WINAPI SetWindowTheme(HWND hwnd, LPCWSTR pszSubAppName,
LPCWSTR pszSubIdList) {
FIXME("%p %s %s\n", hwnd, debugstr_w(pszSubAppName),
debugstr_w(pszSubIdList));
return ERROR_CALL_NOT_IMPLEMENTED;
}
/*
* Win32 5.1 Theme metrics
*
* Copyright (C) 2003 Kevin Koltzau
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "config.h"
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "wingdi.h"
#include "uxtheme.h"
#include "uxthemedll.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
/***********************************************************************
* GetThemeSysBool (UXTHEME.@)
*/
BOOL WINAPI GetThemeSysBool(HTHEME hTheme, int iBoolID)
{
FIXME("%d: stub\n", iBoolID);
return FALSE;
}
/***********************************************************************
* GetThemeSysColor (UXTHEME.@)
*/
COLORREF WINAPI GetThemeSysColor(HTHEME hTheme, int iColorID)
{
FIXME("%d: stub\n", iColorID);
return FALSE;
}
/***********************************************************************
* GetThemeSysColorBrush (UXTHEME.@)
*/
HBRUSH WINAPI GetThemeSysColorBrush(HTHEME hTheme, int iColorID)
{
FIXME("%d: stub\n", iColorID);
return FALSE;
}
/***********************************************************************
* GetThemeSysFont (UXTHEME.@)
*/
HRESULT WINAPI GetThemeSysFont(HTHEME hTheme, int iFontID, LOGFONTW *plf)
{
FIXME("%d: stub\n", iFontID);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeSysInt (UXTHEME.@)
*/
HRESULT WINAPI GetThemeSysInt(HTHEME hTheme, int iIntID, int *piValue)
{
FIXME("%d: stub\n", iIntID);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeSysSize (UXTHEME.@)
*/
int WINAPI GetThemeSysSize(HTHEME hTheme, int iSizeID)
{
FIXME("%d: stub\n", iSizeID);
return 0;
}
/***********************************************************************
* GetThemeSysString (UXTHEME.@)
*/
HRESULT WINAPI GetThemeSysString(HTHEME hTheme, int iStringID,
LPWSTR pszStringBuff, int cchMaxStringChars)
{
FIXME("%d: stub\n", iStringID);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/*
* Win32 5.1 Theme properties
*
* Copyright (C) 2003 Kevin Koltzau
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "config.h"
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "wingdi.h"
#include "uxtheme.h"
#include "uxthemedll.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
/***********************************************************************
* GetThemeDocumentationProperty (UXTHEME.@)
*/
HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR pszThemeName,
LPCWSTR pszPropertyName,
LPWSTR pszValueBuff,
int cchMaxValChars)
{
FIXME("%s %s: stub\n", debugstr_w(pszThemeName), debugstr_w(pszPropertyName));
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeBool (UXTHEME.@)
*/
HRESULT WINAPI GetThemeBool(HTHEME hTheme, int iPartId, int iStateId,
int iPropId, BOOL *pfVal)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeColor (UXTHEME.@)
*/
HRESULT WINAPI GetThemeColor(HTHEME hTheme, int iPartId, int iStateId,
int iPropId, COLORREF *pColor)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeEnumValue (UXTHEME.@)
*/
HRESULT WINAPI GetThemeEnumValue(HTHEME hTheme, int iPartId, int iStateId,
int iPropId, int *piVal)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeFilename (UXTHEME.@)
*/
HRESULT WINAPI GetThemeFilename(HTHEME hTheme, int iPartId, int iStateId,
int iPropId, LPWSTR pszThemeFilename,
int cchMaxBuffChars)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeFont (UXTHEME.@)
*/
HRESULT WINAPI GetThemeFont(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, int iPropId, LOGFONTW *pFont)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeInt (UXTHEME.@)
*/
HRESULT WINAPI GetThemeInt(HTHEME hTheme, int iPartId, int iStateId,
int iPropId, int *piVal)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeIntList (UXTHEME.@)
*/
HRESULT WINAPI GetThemeIntList(HTHEME hTheme, int iPartId, int iStateId,
int iPropId, INTLIST *pIntList)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemePosition (UXTHEME.@)
*/
HRESULT WINAPI GetThemePosition(HTHEME hTheme, int iPartId, int iStateId,
int iPropId, POINT *pPoint)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeRect (UXTHEME.@)
*/
HRESULT WINAPI GetThemeRect(HTHEME hTheme, int iPartId, int iStateId,
int iPropId, RECT *pRect)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeString (UXTHEME.@)
*/
HRESULT WINAPI GetThemeString(HTHEME hTheme, int iPartId, int iStateId,
int iPropId, LPWSTR pszBuff, int cchMaxBuffChars)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeMargins (UXTHEME.@)
*/
HRESULT WINAPI GetThemeMargins(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, int iPropId, RECT *prc,
MARGINS *pMargins)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeMetric (UXTHEME.@)
*/
HRESULT WINAPI GetThemeMetric(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, int iPropId, int *piVal)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemePropertyOrigin (UXTHEME.@)
*/
HRESULT WINAPI GetThemePropertyOrigin(HTHEME hTheme, int iPartId, int iStateId,
int iPropId, PROPERTYORIGIN *pOrigin)
{
FIXME("%d %d %d: stub\n", iPartId, iStateId, iPropId);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/*
* Win32 5.1 Theme system
*
* Copyright (C) 2003 Kevin Koltzau
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "config.h"
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "wingdi.h"
#include "uxtheme.h"
#include "uxthemedll.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
/***********************************************************************
* Defines and global variables
*/
DWORD dwThemeAppProperties = STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS;
ATOM atWindowTheme;
ATOM atSubAppName;
ATOM atSubIdList;
/***********************************************************************/
/***********************************************************************
* UXTHEME_InitSystem
*/
void UXTHEME_InitSystem()
{
const WCHAR szWindowTheme[] = {
'u','x','_','t','h','e','m','e','\0'
};
const WCHAR szSubAppName[] = {
'u','x','_','s','u','b','a','p','p','\0'
};
const WCHAR szSubIdList[] = {
'u','x','_','s','u','b','i','d','l','s','t','\0'
};
atWindowTheme = GlobalAddAtomW(szWindowTheme);
atSubAppName = GlobalAddAtomW(szSubAppName);
atSubIdList = GlobalAddAtomW(szSubIdList);
}
/***********************************************************************
* IsAppThemed (UXTHEME.@)
*/
BOOL WINAPI IsAppThemed(void)
{
FIXME("stub\n");
return FALSE;
}
/***********************************************************************
* IsThemeActive (UXTHEME.@)
*/
BOOL WINAPI IsThemeActive(void)
{
FIXME("stub\n");
return FALSE;
}
/***********************************************************************
* EnableTheming (UXTHEME.@)
*
* NOTES
* This is a global and persistant change
*/
HRESULT WINAPI EnableTheming(BOOL fEnable)
{
FIXME("%d: stub\n", fEnable);
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* OpenThemeData (UXTHEME.@)
*/
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR pszClassList)
{
FIXME("%p %s: stub\n", hwnd, debugstr_w(pszClassList));
return NULL;
}
/***********************************************************************
* GetWindowTheme (UXTHEME.@)
*
* Retrieve the last theme opened for a window
*/
HTHEME WINAPI GetWindowTheme(HWND hwnd)
{
TRACE("(%p)\n", hwnd);
return GetPropW(hwnd, MAKEINTATOMW(atWindowTheme));
}
/***********************************************************************
* UXTHEME_SetWindowProperty
*
* I'm using atoms as there may be large numbers of duplicated strings
* and they do the work of keeping memory down as a cause of that quite nicely
*/
HRESULT UXTHEME_SetWindowProperty(HWND hwnd, ATOM aProp, LPCWSTR pszValue)
{
ATOM oldValue = (ATOM)(size_t)RemovePropW(hwnd, MAKEINTATOMW(aProp));
if(oldValue)
DeleteAtom(oldValue);
if(pszValue) {
ATOM atValue = AddAtomW(pszValue);
if(!atValue
|| !SetPropW(hwnd, MAKEINTATOMW(aProp), (LPWSTR)MAKEINTATOMW(atValue))) {
HRESULT hr = HRESULT_FROM_WIN32(GetLastError());
if(atValue) DeleteAtom(atValue);
return hr;
}
}
return S_OK;
}
/***********************************************************************
* SetWindowTheme (UXTHEME.@)
*
* Persistant through the life of the window, even after themes change
*/
HRESULT WINAPI SetWindowTheme(HWND hwnd, LPCWSTR pszSubAppName,
LPCWSTR pszSubIdList)
{
HRESULT hr;
TRACE("(%p,%s,%s)\n", hwnd, debugstr_w(pszSubAppName),
debugstr_w(pszSubIdList));
hr = UXTHEME_SetWindowProperty(hwnd, atSubAppName, pszSubAppName);
if(SUCCEEDED(hr))
hr = UXTHEME_SetWindowProperty(hwnd, atSubIdList, pszSubIdList);
return hr;
}
/***********************************************************************
* GetCurrentThemeName (UXTHEME.@)
*/
HRESULT WINAPI GetCurrentThemeName(LPWSTR pszThemeFileName, int dwMaxNameChars,
LPWSTR pszColorBuff, int cchMaxColorChars,
LPWSTR pszSizeBuff, int cchMaxSizeChars)
{
FIXME("stub\n");
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* GetThemeAppProperties (UXTHEME.@)
*/
DWORD WINAPI GetThemeAppProperties(void)
{
return dwThemeAppProperties;
}
/***********************************************************************
* SetThemeAppProperties (UXTHEME.@)
*/
void WINAPI SetThemeAppProperties(DWORD dwFlags)
{
TRACE("(0x%08lx)\n", dwFlags);
dwThemeAppProperties = dwFlags;
}
/***********************************************************************
* CloseThemeData (UXTHEME.@)
*/
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
{
FIXME("stub\n");
if(!hTheme)
return E_HANDLE;
return S_OK;
}
/***********************************************************************
* HitTestThemeBackground (UXTHEME.@)
*/
HRESULT WINAPI HitTestThemeBackground(HTHEME hTheme, HDC hdc, int iPartId,
int iStateId, DWORD dwOptions,
const RECT *pRect, HRGN hrgn,
POINT ptTest, WORD *pwHitTestCode)
{
FIXME("%d %d 0x%08lx: stub\n", iPartId, iStateId, dwOptions);
if(!hTheme)
return E_HANDLE;
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* IsThemePartDefined (UXTHEME.@)
*/
BOOL WINAPI IsThemePartDefined(HTHEME hTheme, int iPartId, int iStateId)
{
FIXME("%d %d: stub\n", iPartId, iStateId);
return FALSE;
}
/**********************************************************************
* Undocumented functions
*/
/**********************************************************************
* QueryThemeServices (UXTHEME.1)
*
* RETURNS
* some kind of status flag
*/
DWORD WINAPI QueryThemeServices()
{
FIXME("stub\n");
return 3; /* This is what is returned under XP in most cases */
}
/**********************************************************************
* OpenThemeFile (UXTHEME.2)
*
* Opens a theme file, which can be used to change the current theme, etc
*
* PARAMS
* pszThemeFileName Path to a msstyles theme file
* pszColorName Color defined in the theme, eg. NormalColor
* pszSizeName Size defined in the theme, eg. NormalSize
* hThemeFile Handle to theme file
*/
HRESULT WINAPI OpenThemeFile(LPCWSTR pszThemeFileName, LPCWSTR pszColorName,
LPCWSTR pszSizeName, HTHEMEFILE *hThemeFile,
DWORD unknown)
{
FIXME("%s,%s,%s,%ld: stub\n", debugstr_w(pszThemeFileName),
debugstr_w(pszColorName),
debugstr_w(pszSizeName), unknown);
return ERROR_CALL_NOT_IMPLEMENTED;
}
/**********************************************************************
* CloseThemeFile (UXTHEME.3)
*
* Releases theme file handle returned by OpenThemeFile
*
* PARAMS
* hThemeFile Handle to theme file
*/
HRESULT WINAPI CloseThemeFile(HTHEMEFILE hThemeFile)
{
FIXME("stub\n");
return S_OK;
}
/**********************************************************************
* ApplyTheme (UXTHEME.4)
*
* Set a theme file to be the currently active theme
*
* PARAMS
* hThemeFile Handle to theme file
* unknown See notes
* hWnd Window requesting the theme change
*
* NOTES
* I'm not sure what the second parameter is (the datatype is likely wrong), other then this:
* Under XP if I pass
* char b[] = "";
* the theme is applied with the screen redrawing really badly (flickers)
* char b[] = "\0"; where \0 can be one or more of any character, makes no difference
* the theme is applied smoothly (screen does not flicker)
* char *b = "\0" or NULL; where \0 can be zero or more of any character, makes no difference
* the function fails returning invalid parameter...very strange
*/
HRESULT WINAPI ApplyTheme(HTHEMEFILE hThemeFile, char *unknown, HWND hWnd)
{
FIXME("%s: stub\n", unknown);
return ERROR_CALL_NOT_IMPLEMENTED;
}
/**********************************************************************
* GetThemeDefaults (UXTHEME.7)
*
* Get the default color & size for a theme
*
* PARAMS
* pszThemeFileName Path to a msstyles theme file
* pszColorName Buffer to recieve the default color name
* dwColorNameLen Length, in characters, of color name buffer
* pszSizeName Buffer to recieve the default size name
* dwSizeNameLen Length, in characters, of size name buffer
*/
HRESULT WINAPI GetThemeDefaults(LPCWSTR pszThemeFileName, LPWSTR pszColorName,
DWORD dwColorNameLen, LPWSTR pszSizeName,
DWORD dwSizeNameLen)
{
FIXME("%s: stub\n", debugstr_w(pszThemeFileName));
return ERROR_CALL_NOT_IMPLEMENTED;
}
/**********************************************************************
* EnumThemes (UXTHEME.8)
*
* Enumerate available themes, calls specified EnumThemeProc for each
* theme found. Passes lpData through to callback function.
*
* PARAMS
* pszThemePath Path containing themes
* callback Called for each theme found in path
* lpData Passed through to callback
*/
HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, EnumThemeProc callback,
LPVOID lpData)
{
FIXME("%s: stub\n", debugstr_w(pszThemePath));
return ERROR_CALL_NOT_IMPLEMENTED;
}
/**********************************************************************
* EnumThemeColors (UXTHEME.9)
*
* Enumerate theme colors available with a particular size
*
* PARAMS
* pszThemeFileName Path to a msstyles theme file
* pszSizeName Theme size to enumerate available colors
* If NULL the default theme size is used
* dwColorNum Color index to retrieve, increment from 0
* pszColorName Output color name
*
* RETURNS
* S_OK on success
* E_PROP_ID_UNSUPPORTED when dwColorName does not refer to a color
* or when pszSizeName does not refer to a valid size
*
* NOTES
* XP fails with E_POINTER when pszColorName points to a buffer smaller then 605
* characters
*/
HRESULT WINAPI EnumThemeColors(LPWSTR pszThemeFileName, LPWSTR pszSizeName,
DWORD dwColorNum, LPWSTR pszColorName)
{
FIXME("%s %s %ld: stub\n", debugstr_w(pszThemeFileName),
debugstr_w(pszSizeName), dwColorNum);
return ERROR_CALL_NOT_IMPLEMENTED;
}
/**********************************************************************
* EnumThemeSizes (UXTHEME.10)
*
* Enumerate theme colors available with a particular size
*
* PARAMS
* pszThemeFileName Path to a msstyles theme file
* pszColorName Theme color to enumerate available sizes
* If NULL the default theme color is used
* dwSizeNum Size index to retrieve, increment from 0
* pszSizeName Output size name
*
* RETURNS
* S_OK on success
* E_PROP_ID_UNSUPPORTED when dwSizeName does not refer to a size
* or when pszColorName does not refer to a valid color
*
* NOTES
* XP fails with E_POINTER when pszSizeName points to a buffer smaller then 605
* characters
*/
HRESULT WINAPI EnumThemeSizes(LPWSTR pszThemeFileName, LPWSTR pszColorName,
DWORD dwSizeNum, LPWSTR pszSizeName)
{
FIXME("%s %s %ld: stub\n", debugstr_w(pszThemeFileName), debugstr_w(pszColorName), dwSizeNum);
return ERROR_CALL_NOT_IMPLEMENTED;
}
/**********************************************************************
* ParseThemeIniFile (UXTHEME.11)
*
* Enumerate data in a theme INI file.
*
* PARAMS
* pszIniFileName Path to a theme ini file
* pszUnknown Cannot be NULL, L"" is valid
* callback Called for each found entry
* lpData Passed through to callback
*
* RETURNS
* S_OK on success
* 0x800706488 (Unknown property) when enumeration is canceled from callback
*
* NOTES
* When pszUnknown is NULL the callback is never called, the value does not seem to surve
* any other purpose
*/
HRESULT WINAPI ParseThemeIniFile(LPCWSTR pszIniFileName, LPWSTR pszUnknown,
ParseThemeIniFileProc callback, LPVOID lpData)
{
FIXME("%s %s: stub\n", debugstr_w(pszIniFileName), debugstr_w(pszUnknown));
return ERROR_CALL_NOT_IMPLEMENTED;
}
@ stub CloseThemeData
@ stub DrawThemeBackground
@ stub DrawThemeBackgroundEx
@ stub DrawThemeEdge
@ stub DrawThemeIcon
@ stub DrawThemeParentBackground
@ stub DrawThemeText
# Undocumented functions - Names derived from debug symbols
1 stdcall QueryThemeServices()
2 stdcall OpenThemeFile(wstr wstr wstr ptr long)
3 stdcall CloseThemeFile(ptr)
4 stdcall ApplyTheme(ptr ptr ptr)
7 stdcall GetThemeDefaults(wstr wstr long wstr long)
8 stdcall EnumThemes(wstr ptr ptr)
9 stdcall EnumThemeColors(wstr wstr long wstr)
10 stdcall EnumThemeSizes(wstr wstr long wstr)
11 stdcall ParseThemeIniFile(wstr wstr ptr ptr)
13 stub DrawNCPreview
14 stub RegisterDefaultTheme
15 stub DumpLoadedThemeToTextFile
16 stub OpenThemeDataFromFile
17 stub OpenThemeFileFromData
18 stub GetThemeSysSize96
19 stub GetThemeSysFont96
20 stub SessionAllocate
21 stub SessionFree
22 stub ThemeHooksOn
23 stub ThemeHooksOff
24 stub AreThemeHooksActive
25 stub GetCurrentChangeNumber
26 stub GetNewChangeNumber
27 stub SetGlobalTheme
28 stub GetGlobalTheme
29 stub CheckThemeSignature
30 stub LoadTheme
31 stub InitUserTheme
32 stub InitUserRegistry
33 stub ReestablishServerConnection
34 stub ThemeHooksInstall
35 stub ThemeHooksRemove
36 stub RefreshThemeForTS
43 stub ClassicGetSystemMetrics
44 stub ClassicSystemParametersInfoA
45 stub ClassicSystemParametersInfoW
46 stub ClassicAdjustWindowRectEx
48 stub GetThemeParseErrorInfo
60 stub CreateThemeDataFromObjects
61 stub OpenThemeDataEx
62 stub ServerClearStockObjects
63 stub MarkSelection
# Standard functions
@ stdcall CloseThemeData(ptr)
@ stdcall DrawThemeBackground(ptr ptr long long ptr ptr)
@ stdcall DrawThemeBackgroundEx(ptr ptr long long ptr ptr)
@ stdcall DrawThemeEdge(ptr ptr long long ptr long long ptr)
@ stdcall DrawThemeIcon(ptr ptr long long ptr ptr long)
@ stdcall DrawThemeParentBackground(ptr ptr ptr)
@ stdcall DrawThemeText(ptr ptr long long wstr long long long ptr)
@ stdcall EnableThemeDialogTexture(ptr long)
@ stdcall EnableTheming(long)
@ stub GetCurrentThemeName
@ stub GetThemeAppProperties
@ stub GetThemeBackgroundContentRect
@ stub GetThemeBackgroundExtent
@ stub GetThemeBackgroundRegion
@ stub GetThemeBool
@ stub GetThemeColor
@ stub GetThemeDocumentationProperty
@ stub GetThemeEnumValue
@ stub GetThemeFilename
@ stub GetThemeFont
@ stub GetThemeInt
@ stub GetThemeIntList
@ stub GetThemeMargins
@ stub GetThemeMetric
@ stub GetThemePartSize
@ stub GetThemePosition
@ stub GetThemePropertyOrigin
@ stub GetThemeRect
@ stub GetThemeString
@ stub GetThemeSysBool
@ stub GetThemeSysColor
@ stub GetThemeSysColorBrush
@ stub GetThemeSysFont
@ stub GetThemeSysInt
@ stub GetThemeSysSize
@ stub GetThemeSysString
@ stub GetThemeTextExtent
@ stub GetThemeTextMetrics
@ stub GetWindowTheme
@ stub HitTestThemeBackground
@ stdcall GetCurrentThemeName(wstr long wstr long wstr long)
@ stdcall GetThemeAppProperties()
@ stdcall GetThemeBackgroundContentRect(ptr ptr long long ptr ptr)
@ stdcall GetThemeBackgroundExtent(ptr ptr long long ptr ptr)
@ stdcall GetThemeBackgroundRegion(ptr ptr long long ptr ptr)
@ stdcall GetThemeBool(ptr long long long ptr)
@ stdcall GetThemeColor(ptr long long long ptr)
@ stdcall GetThemeDocumentationProperty(wstr wstr wstr long)
@ stdcall GetThemeEnumValue(ptr long long long ptr)
@ stdcall GetThemeFilename(ptr long long long wstr long)
@ stdcall GetThemeFont(ptr ptr long long long ptr)
@ stdcall GetThemeInt(ptr long long long ptr)
@ stdcall GetThemeIntList(ptr long long long ptr)
@ stdcall GetThemeMargins(ptr ptr long long long ptr ptr)
@ stdcall GetThemeMetric(ptr ptr long long long ptr)
@ stdcall GetThemePartSize(ptr ptr long long ptr long ptr)
@ stdcall GetThemePosition(ptr long long long ptr)
@ stdcall GetThemePropertyOrigin(ptr long long long ptr)
@ stdcall GetThemeRect(ptr long long long ptr)
@ stdcall GetThemeString(ptr long long long wstr long)
@ stdcall GetThemeSysBool(ptr long)
@ stdcall GetThemeSysColor(ptr long)
@ stdcall GetThemeSysColorBrush(ptr long)
@ stdcall GetThemeSysFont(ptr long ptr)
@ stdcall GetThemeSysInt(ptr long ptr)
@ stdcall GetThemeSysSize(ptr long)
@ stdcall GetThemeSysString(ptr long wstr long)
@ stdcall GetThemeTextExtent(ptr ptr long long wstr long long ptr ptr)
@ stdcall GetThemeTextMetrics(ptr ptr long long ptr)
@ stdcall GetWindowTheme(ptr)
@ stdcall HitTestThemeBackground(ptr ptr long long long ptr ptr long ptr)
@ stdcall IsAppThemed()
@ stdcall IsThemeActive()
@ stub IsThemeBackgroundPartiallyTransparent
@ stub IsThemeDialogTextureEnabled
@ stub IsThemePartDefined
@ stdcall IsThemeBackgroundPartiallyTransparent(ptr long long)
@ stdcall IsThemeDialogTextureEnabled()
@ stdcall IsThemePartDefined(ptr long long)
@ stdcall OpenThemeData(ptr wstr)
@ stub SetThemeAppProperties
@ stdcall SetThemeAppProperties(long)
@ stdcall SetWindowTheme(ptr wstr wstr)
/*
* Internal uxtheme defines & declarations
*
* Copyright (C) 2003 Kevin Koltzau
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_UXTHEMEDLL_H
#define __WINE_UXTHEMEDLL_H
typedef HANDLE HTHEMEFILE;
/**********************************************************************
* EnumThemeProc
*
* Callback function for EnumThemes.
*
* RETURNS
* TRUE to continue enumeration, FALSE to stop
*
* PARAMS
* lpReserved Always 0
* pszThemeFileName Full path to theme msstyles file
* pszThemeName Display name for theme
* pszToolTip Tooltip name for theme
* lpReserved2 Always 0
* lpData Value passed through lpData from EnumThemes
*/
typedef BOOL (CALLBACK *EnumThemeProc)(LPVOID lpReserved, LPCWSTR pszThemeFileName,
LPCWSTR pszThemeName, LPCWSTR pszToolTip, LPVOID lpReserved2,
LPVOID lpData);
/**********************************************************************
* ParseThemeIniFileProc
*
* Callback function for ParseThemeIniFile.
*
* RETURNS
* TRUE to continue enumeration, FALSE to stop
*
* PARAMS
* dwType Entry type
* pszParam1 Use defined by entry type
* pszParam2 Use defined by entry type
* pszParam3 Use defined by entry type
* dwParam Use defined by entry type
* lpData Value passed through lpData from ParseThemeIniFile
*
* NOTES
* I dont know what the valid entry types are
*/
typedef BOOL (CALLBACK*ParseThemeIniFileProc)(DWORD dwType, LPWSTR pszParam1,
LPWSTR pszParam2, LPWSTR pszParam3,
DWORD dwParam, LPVOID lpData);
/* Declarations for undocumented functions for use internally */
DWORD WINAPI QueryThemeServices();
HRESULT WINAPI OpenThemeFile(LPCWSTR pszThemeFileName, LPCWSTR pszColorName,
LPCWSTR pszSizeName, HTHEMEFILE *hThemeFile,
DWORD unknown);
HRESULT WINAPI CloseThemeFile(HTHEMEFILE hThemeFile);
HRESULT WINAPI ApplyTheme(HTHEMEFILE hThemeFile, char *unknown, HWND hWnd);
HRESULT WINAPI GetThemeDefaults(LPCWSTR pszThemeFileName, LPWSTR pszColorName,
DWORD dwColorNameLen, LPWSTR pszSizeName,
DWORD dwSizeNameLen);
HRESULT WINAPI EnumThemes(LPCWSTR pszThemePath, EnumThemeProc callback,
LPVOID lpData);
HRESULT WINAPI EnumThemeColors(LPWSTR pszThemeFileName, LPWSTR pszSizeName,
DWORD dwColorNum, LPWSTR pszColorName);
HRESULT WINAPI EnumThemeSizes(LPWSTR pszThemeFileName, LPWSTR pszColorName,
DWORD dwSizeNum, LPWSTR pszSizeName);
HRESULT WINAPI ParseThemeIniFile(LPCWSTR pszIniFileName, LPWSTR pszUnknown,
ParseThemeIniFileProc callback, LPVOID lpData);
extern void UXTHEME_InitSystem(void);
#endif
/*
* Copyright (C) 2003 Kevin Koltzau
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define WINE_FILENAME_STR "uxtheme.dll"
#include <wine/wine_common_ver.rc>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment