diff --git a/reactos/dll/win32/uxtheme/buffer.c b/reactos/dll/win32/uxtheme/buffer.c index afe749e3f3b..bd5ba34c6a7 100644 --- a/reactos/dll/win32/uxtheme/buffer.c +++ b/reactos/dll/win32/uxtheme/buffer.c @@ -67,3 +67,106 @@ HRESULT WINAPI EndBufferedPaint(HPAINTBUFFER hPaintBuffer, BOOL fUpdateTarget) FIXME("Stub (%p %d)\n", hPaintBuffer, fUpdateTarget); return S_OK; } + +#ifndef __REACTOS__ + +/*********************************************************************** + * BufferedPaintClear (UXTHEME.@) + */ +HRESULT WINAPI BufferedPaintClear(HPAINTBUFFER hBufferedPaint, const RECT *prc) +{ + FIXME("Stub (%p %p)\n", hBufferedPaint, prc); + return E_NOTIMPL; +} + +/*********************************************************************** + * BufferedPaintSetAlpha (UXTHEME.@) + */ +HRESULT WINAPI BufferedPaintSetAlpha(HPAINTBUFFER hBufferedPaint, const RECT *prc, BYTE alpha) +{ + FIXME("Stub (%p %p %u)\n", hBufferedPaint, prc, alpha); + return E_NOTIMPL; +} + +/*********************************************************************** + * GetBufferedPaintBits (UXTHEME.@) + */ +HRESULT WINAPI GetBufferedPaintBits(HPAINTBUFFER hBufferedPaint, RGBQUAD **ppbBuffer, + int *pcxRow) +{ + FIXME("Stub (%p %p %p)\n", hBufferedPaint, ppbBuffer, pcxRow); + return E_NOTIMPL; +} + +/*********************************************************************** + * GetBufferedPaintDC (UXTHEME.@) + */ +HDC WINAPI GetBufferedPaintDC(HPAINTBUFFER hBufferedPaint) +{ + FIXME("Stub (%p)\n", hBufferedPaint); + return NULL; +} + +/*********************************************************************** + * GetBufferedPaintTargetDC (UXTHEME.@) + */ +HDC WINAPI GetBufferedPaintTargetDC(HPAINTBUFFER hBufferedPaint) +{ + FIXME("Stub (%p)\n", hBufferedPaint); + return NULL; +} + +/*********************************************************************** + * GetBufferedPaintTargetRect (UXTHEME.@) + */ +HRESULT WINAPI GetBufferedPaintTargetRect(HPAINTBUFFER hBufferedPaint, RECT *prc) +{ + FIXME("Stub (%p %p)\n", hBufferedPaint, prc); + return E_NOTIMPL; +} + +/*********************************************************************** + * BeginBufferedAnimation (UXTHEME.@) + */ +HANIMATIONBUFFER WINAPI BeginBufferedAnimation(HWND hwnd, HDC hdcTarget, const RECT *rcTarget, + BP_BUFFERFORMAT dwFormat, BP_PAINTPARAMS *pPaintParams, + BP_ANIMATIONPARAMS *pAnimationParams, HDC *phdcFrom, + HDC *phdcTo) +{ + FIXME("Stub (%p %p %p %u %p %p %p %p)\n", hwnd, hdcTarget, rcTarget, dwFormat, + pPaintParams, pAnimationParams, phdcFrom, phdcTo); + + return NULL; +} + +/*********************************************************************** + * BufferedPaintRenderAnimation (UXTHEME.@) + */ +BOOL WINAPI BufferedPaintRenderAnimation(HWND hwnd, HDC hdcTarget) +{ + FIXME("Stub (%p %p)\n", hwnd, hdcTarget); + + return FALSE; +} + +/*********************************************************************** + * BufferedPaintStopAllAnimations (UXTHEME.@) + */ +HRESULT WINAPI BufferedPaintStopAllAnimations(HWND hwnd) +{ + FIXME("Stub (%p)\n", hwnd); + + return E_NOTIMPL; +} + +/*********************************************************************** + * EndBufferedAnimation (UXTHEME.@) + */ +HRESULT WINAPI EndBufferedAnimation(HANIMATIONBUFFER hbpAnimation, BOOL fUpdateTarget) +{ + FIXME("Stub (%p %u)\n", hbpAnimation, fUpdateTarget); + + return E_NOTIMPL; +} + +#endif /* __REACTOS__ */ diff --git a/reactos/dll/win32/uxtheme/draw.c b/reactos/dll/win32/uxtheme/draw.c index ab005fc5628..2863d177bda 100644 --- a/reactos/dll/win32/uxtheme/draw.c +++ b/reactos/dll/win32/uxtheme/draw.c @@ -82,9 +82,9 @@ HRESULT WINAPI DrawThemeParentBackground(HWND hwnd, HDC hdc, RECT *prc) if(!hParent) hParent = hwnd; if(prc) { - CopyRect(&rt, prc); + rt = *prc; MapWindowPoints(hwnd, hParent, (LPPOINT)&rt, 2); - + clip = CreateRectRgn(0,0,1,1); hasClip = GetClipRgn(hdc, clip); if(hasClip == -1) @@ -126,7 +126,7 @@ HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, opts.dwFlags = 0; if(pClipRect) { opts.dwFlags |= DTBG_CLIPRECT; - CopyRect(&opts.rcClip, pClipRect); + opts.rcClip = *pClipRect; } return DrawThemeBackgroundEx(hTheme, hdc, iPartId, iStateId, pRect, &opts); } @@ -562,7 +562,7 @@ static HRESULT get_image_part_size (HTHEME hTheme, HDC hdc, int iPartId, int sizingtype = ST_STRETCH; BOOL uniformsizing = FALSE; - CopyRect(&rcDst, prc); + rcDst = *prc; dstSize.x = rcDst.right-rcDst.left; dstSize.y = rcDst.bottom-rcDst.top; @@ -670,7 +670,7 @@ static HRESULT UXTHEME_DrawImageBackground(HTHEME hTheme, HDC hdc, int iPartId, } oldSrc = SelectObject(hdcSrc, bmpSrc); - CopyRect(&rcDst, pRect); + rcDst = *pRect; get_transparency (hTheme, iPartId, iStateId, hasAlpha, &transparent, &transparentcolor, FALSE); @@ -743,7 +743,7 @@ static HRESULT UXTHEME_DrawImageBackground(HTHEME hTheme, HDC hdc, int iPartId, rcSrc.right = srcSize.x; rcSrc.bottom = srcSize.y; } -#endif +#endif /* __REACTOS__ */ hdcDst = hdc; OffsetViewportOrgEx(hdcDst, rcDst.left, rcDst.top, &org); @@ -851,7 +851,7 @@ draw_error: DeleteDC(hdcSrc); if (bmpSrcResized) DeleteObject(bmpSrcResized); if (hdcOrigSrc) DeleteDC(hdcOrigSrc); - CopyRect(pRect, &rcDst); + *pRect = rcDst; return hr; } @@ -989,7 +989,7 @@ static HRESULT UXTHEME_DrawBorderBackground(HTHEME hTheme, HDC hdc, int iPartId, HRESULT hr; RECT rt; - CopyRect(&rt, pRect); + rt = *pRect; hr = UXTHEME_DrawBorderRectangle(hTheme, hdc, iPartId, iStateId, &rt, pOptions); if(FAILED(hr)) @@ -1031,7 +1031,7 @@ HRESULT WINAPI DrawThemeBackgroundEx(HTHEME hTheme, HDC hdc, int iPartId, else IntersectClipRect(hdc, opts->rcClip.left, opts->rcClip.top, opts->rcClip.right, opts->rcClip.bottom); } - CopyRect(&rt, pRect); + rt = *pRect; if(bgtype == BT_IMAGEFILE) hr = UXTHEME_DrawImageBackground(hTheme, hdc, iPartId, iStateId, &rt, opts); @@ -1614,7 +1614,7 @@ HRESULT WINAPI DrawThemeIcon(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, FIXME("%d %d: stub\n", iPartId, iStateId); if(!hTheme) return E_HANDLE; - return ERROR_CALL_NOT_IMPLEMENTED; + return E_NOTIMPL; } /*********************************************************************** @@ -1710,7 +1710,7 @@ HRESULT WINAPI GetThemeBackgroundContentRect(HTHEME hTheme, HDC hdc, int iPartId /* If nothing was found, leave unchanged */ } - TRACE("left:%d,top:%d,right:%d,bottom:%d\n", pContentRect->left, pContentRect->top, pContentRect->right, pContentRect->bottom); + TRACE("%s\n", wine_dbgstr_rect(pContentRect)); return S_OK; } @@ -1758,7 +1758,7 @@ HRESULT WINAPI GetThemeBackgroundExtent(HTHEME hTheme, HDC hdc, int iPartId, /* If nothing was found, leave unchanged */ } - TRACE("left:%d,top:%d,right:%d,bottom:%d\n", pExtentRect->left, pExtentRect->top, pExtentRect->right, pExtentRect->bottom); + TRACE("%s\n", wine_dbgstr_rect(pExtentRect)); return S_OK; } @@ -2015,8 +2015,8 @@ HRESULT WINAPI GetThemeTextExtent(HTHEME hTheme, HDC hdc, int iPartId, return E_HANDLE; if(pBoundingRect) - CopyRect(&rt, pBoundingRect); - + rt = *pBoundingRect; + hr = GetThemeFont(hTheme, hdc, iPartId, iStateId, TMT_FONT, &logfont); if(SUCCEEDED(hr)) { hFont = CreateFontIndirectW(&logfont); @@ -2027,7 +2027,7 @@ HRESULT WINAPI GetThemeTextExtent(HTHEME hTheme, HDC hdc, int iPartId, oldFont = SelectObject(hdc, hFont); DrawTextW(hdc, pszText, iCharCount, &rt, dwTextFlags|DT_CALCRECT); - CopyRect(pExtentRect, &rt); + *pExtentRect = rt; if(hFont) { SelectObject(hdc, oldFont); diff --git a/reactos/dll/win32/uxtheme/metric.c b/reactos/dll/win32/uxtheme/metric.c index 77deddb6ecf..f2bf9368fbe 100644 --- a/reactos/dll/win32/uxtheme/metric.c +++ b/reactos/dll/win32/uxtheme/metric.c @@ -225,3 +225,17 @@ HRESULT WINAPI GetThemeSysString(HTHEME hTheme, int iStringID, return MSSTYLES_GetPropertyString(tp, pszStringBuff, cchMaxStringChars); return E_PROP_ID_UNSUPPORTED; } + +#ifndef __REACTOS__ +/*********************************************************************** + * GetThemeTransitionDuration (UXTHEME.@) + */ +HRESULT WINAPI GetThemeTransitionDuration(HTHEME hTheme, int iPartId, int iStateIdFrom, + int iStateIdTo, int iPropId, DWORD *pdwDuration) +{ + FIXME("(%p, %u, %u, %u, %u, %p) stub\n", hTheme, iPartId, iStateIdFrom, iStateIdTo, + iPropId, pdwDuration); + + return E_NOTIMPL; +} +#endif diff --git a/reactos/dll/win32/uxtheme/system.c b/reactos/dll/win32/uxtheme/system.c index cb0ca8d4a2f..9624b33510a 100644 --- a/reactos/dll/win32/uxtheme/system.c +++ b/reactos/dll/win32/uxtheme/system.c @@ -699,8 +699,8 @@ OpenThemeDataInternal(PTHEME_FILE ThemeFile, HWND hwnd, LPCWSTR pszClassList, DW 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(!pszClassList) { SetLastError(E_POINTER); @@ -894,7 +894,7 @@ HRESULT WINAPI HitTestThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, FIXME("%d %d 0x%08x: stub\n", iPartId, iStateId, dwOptions); if(!hTheme) return E_HANDLE; - return ERROR_CALL_NOT_IMPLEMENTED; + return E_NOTIMPL; } /*********************************************************************** @@ -1320,7 +1320,7 @@ 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; + return E_NOTIMPL; } /********************************************************************** diff --git a/reactos/dll/win32/uxtheme/uxini.c b/reactos/dll/win32/uxtheme/uxini.c index 9779aba4278..42088e4fd9c 100644 --- a/reactos/dll/win32/uxtheme/uxini.c +++ b/reactos/dll/win32/uxtheme/uxini.c @@ -32,7 +32,7 @@ typedef struct _UXINI_FILE { LPCWSTR lpIni; LPCWSTR lpCurLoc; LPCWSTR lpEnd; -} UXINI_FILE; +} UXINI_FILE, *PUXINI_FILE; /***********************************************************************/