See my links in https://jira.reactos.org/browse/CORE-4420 for more details ;-)
Hermès -----Message d'origine----- De : Ros-dev [mailto:ros-dev-boun...@reactos.org] De la part de Peter Hater Envoyé : mercredi 3 mai 2017 20:23 À : ros-dev@reactos.org Objet : Re: [ros-dev] [ros-diffs] [gadamopoulos] 74457: [UXTHEME] -Use GdiDrawStream in UXTHEME_DrawImageGlyph and UXTHEME_DrawImageBackground. Hi, Why not use constant for 0x44727753 and rename unknown1 and unknown2 to srcImageType and dstImageType (or something similar) and use defines for these types also 1 = OriginalImage, 9 = NineGridImage (or similar). This will make code a little bit less magical :) IMHO BR, Peter > On May 3, 2017, at 14:13, gadamopou...@svn.reactos.org wrote: > > Author: gadamopoulos > Date: Wed May 3 11:13:23 2017 > New Revision: 74457 > > URL: http://svn.reactos.org/svn/reactos?rev=74457&view=rev > Log: > [UXTHEME] -Use GdiDrawStream in UXTHEME_DrawImageGlyph and > UXTHEME_DrawImageBackground. > > Modified: > trunk/reactos/dll/win32/uxtheme/draw.c > trunk/reactos/dll/win32/uxtheme/uxthemep.h > > Modified: trunk/reactos/dll/win32/uxtheme/draw.c > URL: > http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/dra > w.c?rev=74457&r1=74456&r2=74457&view=diff > ============================================================================== > --- trunk/reactos/dll/win32/uxtheme/draw.c [iso-8859-1] (original) > +++ trunk/reactos/dll/win32/uxtheme/draw.c [iso-8859-1] Wed May 3 > 11:13:23 2017 > @@ -269,163 +269,6 @@ > return S_OK; > } > > -/*********************************************************************** > - * UXTHEME_StretchBlt > - * > - * Pseudo TransparentBlt/StretchBlt > - */ > -static inline BOOL UXTHEME_StretchBlt(HDC hdcDst, int nXOriginDst, int > nYOriginDst, int nWidthDst, int nHeightDst, > - HDC hdcSrc, int nXOriginSrc, int > nYOriginSrc, int nWidthSrc, int nHeightSrc, > - INT transparent, COLORREF transcolor) > -{ > - static const BLENDFUNCTION blendFunc = > - { > - AC_SRC_OVER, /* BlendOp */ > - 0, /* BlendFlag */ > - 255, /* SourceConstantAlpha */ > - AC_SRC_ALPHA /* AlphaFormat */ > - }; > - > - BOOL ret = TRUE; > - int old_stretch_mode; > - POINT old_brush_org; > - > - old_stretch_mode = SetStretchBltMode(hdcDst, HALFTONE); > - SetBrushOrgEx(hdcDst, nXOriginDst, nYOriginDst, &old_brush_org); > - > - if (transparent == ALPHABLEND_BINARY) { > - /* Ensure we don't pass any negative values to TransparentBlt */ > - ret = TransparentBlt(hdcDst, nXOriginDst, nYOriginDst, > abs(nWidthDst), abs(nHeightDst), > - hdcSrc, nXOriginSrc, nYOriginSrc, > abs(nWidthSrc), abs(nHeightSrc), > - transcolor); > - } else if ((transparent == ALPHABLEND_NONE) || > - !AlphaBlend(hdcDst, nXOriginDst, nYOriginDst, nWidthDst, nHeightDst, > - hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc, > - blendFunc)) > - { > - ret = StretchBlt(hdcDst, nXOriginDst, nYOriginDst, nWidthDst, > nHeightDst, > - hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, > nHeightSrc, > - SRCCOPY); > - } > - > - SetBrushOrgEx(hdcDst, old_brush_org.x, old_brush_org.y, NULL); > - SetStretchBltMode(hdcDst, old_stretch_mode); > - > - return ret; > -} > - > -/*********************************************************************** > - * UXTHEME_Blt > - * > - * Simplify sending same width/height for both source and dest > - */ > -static inline BOOL UXTHEME_Blt(HDC hdcDest, int nXOriginDest, int > nYOriginDest, int nWidthDest, int nHeightDest, > - HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, > - INT transparent, COLORREF transcolor) > -{ > - return UXTHEME_StretchBlt(hdcDest, nXOriginDest, nYOriginDest, > nWidthDest, nHeightDest, > - hdcSrc, nXOriginSrc, nYOriginSrc, nWidthDest, > nHeightDest, > - transparent, transcolor); > -} > - > -/*********************************************************************** > - * UXTHEME_SizedBlt > - * > - * Stretches or tiles, depending on sizingtype. > - */ > -static inline BOOL UXTHEME_SizedBlt (HDC hdcDst, int nXOriginDst, int > nYOriginDst, > - int nWidthDst, int nHeightDst, > - HDC hdcSrc, int nXOriginSrc, int > nYOriginSrc, > - int nWidthSrc, int nHeightSrc, > - int sizingtype, > - INT transparent, COLORREF transcolor) > -{ > - if (sizingtype == ST_TILE) > - { > - HDC hdcTemp; > - BOOL result = FALSE; > - > - if (!nWidthSrc || !nHeightSrc) return TRUE; > - > - /* For destination width/height less than or equal to source > - width/height, do not bother with memory bitmap optimization */ > - if (nWidthSrc >= nWidthDst && nHeightSrc >= nHeightDst) > - { > - int bltWidth = min (nWidthDst, nWidthSrc); > - int bltHeight = min (nHeightDst, nHeightSrc); > - > - return UXTHEME_Blt (hdcDst, nXOriginDst, nYOriginDst, bltWidth, > bltHeight, > - hdcSrc, nXOriginSrc, nYOriginSrc, > - transparent, transcolor); > - } > - > - /* Create a DC with a bitmap consisting of a tiling of the source > - bitmap, with standard GDI functions. This is faster than an > - iteration with UXTHEME_Blt(). */ > - hdcTemp = CreateCompatibleDC(hdcSrc); > - if (hdcTemp != 0) > - { > - HBITMAP bitmapTemp; > - HBITMAP bitmapOrig; > - int nWidthTemp, nHeightTemp; > - int xOfs, xRemaining; > - int yOfs, yRemaining; > - int growSize; > - > - /* Calculate temp dimensions of integer multiples of source > dimensions */ > - nWidthTemp = ((nWidthDst + nWidthSrc - 1) / nWidthSrc) * > nWidthSrc; > - nHeightTemp = ((nHeightDst + nHeightSrc - 1) / nHeightSrc) * > nHeightSrc; > - bitmapTemp = CreateCompatibleBitmap(hdcSrc, nWidthTemp, > nHeightTemp); > - bitmapOrig = SelectObject(hdcTemp, bitmapTemp); > - > - /* Initial copy of bitmap */ > - BitBlt(hdcTemp, 0, 0, nWidthSrc, nHeightSrc, hdcSrc, > nXOriginSrc, nYOriginSrc, SRCCOPY); > - > - /* Extend bitmap in the X direction. Growth of width is > exponential */ > - xOfs = nWidthSrc; > - xRemaining = nWidthTemp - nWidthSrc; > - growSize = nWidthSrc; > - while (xRemaining > 0) > - { > - growSize = min(growSize, xRemaining); > - BitBlt(hdcTemp, xOfs, 0, growSize, nHeightSrc, hdcTemp, 0, > 0, SRCCOPY); > - xOfs += growSize; > - xRemaining -= growSize; > - growSize *= 2; > - } > - > - /* Extend bitmap in the Y direction. Growth of height is > exponential */ > - yOfs = nHeightSrc; > - yRemaining = nHeightTemp - nHeightSrc; > - growSize = nHeightSrc; > - while (yRemaining > 0) > - { > - growSize = min(growSize, yRemaining); > - BitBlt(hdcTemp, 0, yOfs, nWidthTemp, growSize, hdcTemp, 0, > 0, SRCCOPY); > - yOfs += growSize; > - yRemaining -= growSize; > - growSize *= 2; > - } > - > - /* Use temporary hdc for source */ > - result = UXTHEME_Blt (hdcDst, nXOriginDst, nYOriginDst, > nWidthDst, nHeightDst, > - hdcTemp, 0, 0, > - transparent, transcolor); > - > - SelectObject(hdcTemp, bitmapOrig); > - DeleteObject(bitmapTemp); > - } > - DeleteDC(hdcTemp); > - return result; > - } > - else > - { > - return UXTHEME_StretchBlt (hdcDst, nXOriginDst, nYOriginDst, > nWidthDst, nHeightDst, > - hdcSrc, nXOriginSrc, nYOriginSrc, > nWidthSrc, nHeightSrc, > - transparent, transcolor); > - } > -} > - > /* Get transparency parameters passed to UXTHEME_StretchBlt() - the > parameters > * depend on whether the image has full alpha or whether it is > * color-transparent or just opaque. */ @@ -468,8 +311,6 @@ { > HRESULT hr; > HBITMAP bmpSrc = NULL; > - HDC hdcSrc = NULL; > - HGDIOBJ oldSrc = NULL; > RECT rcSrc; > INT transparent = 0; > COLORREF transparentcolor; > @@ -477,18 +318,13 @@ > int halign = HA_CENTER; > POINT dstSize; > POINT srcSize; > - POINT topleft; > BOOL hasAlpha; > + RECT rcDst; > + GDI_DRAW_STREAM DrawStream; > > hr = UXTHEME_LoadImage(hTheme, hdc, iPartId, iStateId, pRect, TRUE, > &bmpSrc, &rcSrc, &hasAlpha); > if(FAILED(hr)) return hr; > - hdcSrc = CreateCompatibleDC(hdc); > - if(!hdcSrc) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > - return hr; > - } > - oldSrc = SelectObject(hdcSrc, bmpSrc); > > dstSize.x = pRect->right-pRect->left; > dstSize.y = pRect->bottom-pRect->top; @@ -500,22 +336,37 @@ > GetThemeEnumValue(hTheme, iPartId, iStateId, TMT_VALIGN, &valign); > GetThemeEnumValue(hTheme, iPartId, iStateId, TMT_HALIGN, &halign); > > - topleft.x = pRect->left; > - topleft.y = pRect->top; > - if(halign == HA_CENTER) topleft.x += (dstSize.x/2)-(srcSize.x/2); > - else if(halign == HA_RIGHT) topleft.x += dstSize.x-srcSize.x; > - if(valign == VA_CENTER) topleft.y += (dstSize.y/2)-(srcSize.y/2); > - else if(valign == VA_BOTTOM) topleft.y += dstSize.y-srcSize.y; > - > - if(!UXTHEME_Blt(hdc, topleft.x, topleft.y, srcSize.x, srcSize.y, > - hdcSrc, rcSrc.left, rcSrc.top, > - transparent, transparentcolor)) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > - } > - > - SelectObject(hdcSrc, oldSrc); > - DeleteDC(hdcSrc); > - return hr; > + rcDst = *pRect; > + if(halign == HA_CENTER) rcDst.left += (dstSize.x/2)-(srcSize.x/2); > + else if(halign == HA_RIGHT) rcDst.left += dstSize.x-srcSize.x; > + if(valign == VA_CENTER) rcDst.top += (dstSize.y/2)-(srcSize.y/2); > + else if(valign == VA_BOTTOM) rcDst.top += dstSize.y-srcSize.y; > + > + rcDst.right = rcDst.left + srcSize.x; > + rcDst.bottom = rcDst.top + srcSize.y; > + > + DrawStream.signature = 0x44727753; > + DrawStream.reserved = 0; > + DrawStream.unknown1 = 1; > + DrawStream.unknown2 = 9; > + DrawStream.hDC = hdc; > + DrawStream.hImage = bmpSrc; > + DrawStream.crTransparent = transparentcolor; > + DrawStream.rcSrc = rcSrc; > + DrawStream.rcDest = rcDst; > + DrawStream.leftSizingMargin = 0; > + DrawStream.rightSizingMargin = 0; > + DrawStream.topSizingMargin = 0; > + DrawStream.bottomSizingMargin = 0; > + DrawStream.drawOption = DS_TRUESIZE; > + > + if (transparent == ALPHABLEND_FULL) > + DrawStream.drawOption |= DS_TRANSPARENTALPHA; > + else if (transparent == ALPHABLEND_BINARY) > + DrawStream.drawOption |= DS_TRANSPARENTCLR; > + > + GdiDrawStream(hdc, sizeof(DrawStream), &DrawStream); > + return HRESULT_FROM_WIN32(GetLastError()); > } > > /********************************************************************* > ** > @@ -655,40 +506,33 @@ > const DTBGOPTS *pOptions) { > HRESULT hr = S_OK; > - HBITMAP bmpSrc, bmpSrcResized = NULL; > - HGDIOBJ oldSrc; > - HDC hdcSrc, hdcOrigSrc = NULL; > + HBITMAP bmpSrc; > RECT rcSrc; > RECT rcDst; > POINT dstSize; > - POINT srcSize; > POINT drawSize; > int sizingtype = ST_STRETCH; > INT transparent; > COLORREF transparentcolor = 0; > BOOL hasAlpha; > - > - hr = UXTHEME_LoadImage(hTheme, hdc, iPartId, iStateId, pRect, FALSE, > - &bmpSrc, &rcSrc, &hasAlpha); > - if(FAILED(hr)) return hr; > - hdcSrc = CreateCompatibleDC(hdc); > - if(!hdcSrc) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > + MARGINS sm; > + GDI_DRAW_STREAM DrawStream; > + > + hr = UXTHEME_LoadImage(hTheme, hdc, iPartId, iStateId, pRect, FALSE, > &bmpSrc, &rcSrc, &hasAlpha); > + if(FAILED(hr)) > return hr; > - } > - oldSrc = SelectObject(hdcSrc, bmpSrc); > + get_transparency (hTheme, iPartId, iStateId, hasAlpha, > + &transparent, &transparentcolor, FALSE); > > rcDst = *pRect; > - > - get_transparency (hTheme, iPartId, iStateId, hasAlpha, &transparent, > - &transparentcolor, FALSE); > - > dstSize.x = rcDst.right-rcDst.left; > dstSize.y = rcDst.bottom-rcDst.top; > - srcSize.x = rcSrc.right-rcSrc.left; > - srcSize.y = rcSrc.bottom-rcSrc.top; > - > + > + GetThemeMargins(hTheme, hdc, iPartId, iStateId, > + TMT_SIZINGMARGINS, NULL, &sm); > GetThemeEnumValue(hTheme, iPartId, iStateId, TMT_SIZINGTYPE, > &sizingtype); > + > + /*FIXME: Is this ever used? */ > + /*GetThemeBool(hTheme, iPartId, iStateId, TMT_BORDERONLY, > + &borderonly);*/ > + > if(sizingtype == ST_TRUESIZE) { > int valign = VA_CENTER, halign = HA_CENTER; > > @@ -706,161 +550,36 @@ > rcDst.top = rcDst.bottom - drawSize.y; > rcDst.right = rcDst.left + drawSize.x; > rcDst.bottom = rcDst.top + drawSize.y; > - if(!UXTHEME_StretchBlt(hdc, rcDst.left, rcDst.top, drawSize.x, > drawSize.y, > - hdcSrc, rcSrc.left, rcSrc.top, srcSize.x, > srcSize.y, > - transparent, transparentcolor)) > - hr = HRESULT_FROM_WIN32(GetLastError()); > - } > - else { > - HDC hdcDst = NULL; > - MARGINS sm; > - POINT org; > - > - dstSize.x = abs(dstSize.x); > - dstSize.y = abs(dstSize.y); > - > - GetThemeMargins(hTheme, hdc, iPartId, iStateId, TMT_SIZINGMARGINS, > NULL, &sm); > - > - /* Resize source image if destination smaller than margins */ > -#ifndef __REACTOS__ > - /* Revert Wine Commit 2b650fa as it breaks themed Explorer Toolbar > Separators > - FIXME: Revisit this when the bug is fixed. CORE-9636 and Wine Bug > #38538 */ > - if (sm.cyTopHeight + sm.cyBottomHeight > dstSize.y || sm.cxLeftWidth > + sm.cxRightWidth > dstSize.x) { > - if (sm.cyTopHeight + sm.cyBottomHeight > dstSize.y) { > - sm.cyTopHeight = MulDiv(sm.cyTopHeight, dstSize.y, > srcSize.y); > - sm.cyBottomHeight = dstSize.y - sm.cyTopHeight; > - srcSize.y = dstSize.y; > - } > - > - if (sm.cxLeftWidth + sm.cxRightWidth > dstSize.x) { > - sm.cxLeftWidth = MulDiv(sm.cxLeftWidth, dstSize.x, > srcSize.x); > - sm.cxRightWidth = dstSize.x - sm.cxLeftWidth; > - srcSize.x = dstSize.x; > - } > - > - hdcOrigSrc = hdcSrc; > - hdcSrc = CreateCompatibleDC(NULL); > - bmpSrcResized = CreateBitmap(srcSize.x, srcSize.y, 1, 32, NULL); > - SelectObject(hdcSrc, bmpSrcResized); > - > - UXTHEME_StretchBlt(hdcSrc, 0, 0, srcSize.x, srcSize.y, > hdcOrigSrc, rcSrc.left, rcSrc.top, > - rcSrc.right - rcSrc.left, rcSrc.bottom - > rcSrc.top, transparent, transparentcolor); > - > - rcSrc.left = 0; > - rcSrc.top = 0; > - rcSrc.right = srcSize.x; > - rcSrc.bottom = srcSize.y; > - } > -#endif /* __REACTOS__ */ > - > - hdcDst = hdc; > - OffsetViewportOrgEx(hdcDst, rcDst.left, rcDst.top, &org); > - > - /* Upper left corner */ > - if(!UXTHEME_Blt(hdcDst, 0, 0, sm.cxLeftWidth, sm.cyTopHeight, > - hdcSrc, rcSrc.left, rcSrc.top, > - transparent, transparentcolor)) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > - goto draw_error; > - } > - /* Upper right corner */ > - if(!UXTHEME_Blt (hdcDst, dstSize.x-sm.cxRightWidth, 0, > - sm.cxRightWidth, sm.cyTopHeight, > - hdcSrc, rcSrc.right-sm.cxRightWidth, rcSrc.top, > - transparent, transparentcolor)) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > - goto draw_error; > - } > - /* Lower left corner */ > - if(!UXTHEME_Blt (hdcDst, 0, dstSize.y-sm.cyBottomHeight, > - sm.cxLeftWidth, sm.cyBottomHeight, > - hdcSrc, rcSrc.left, rcSrc.bottom-sm.cyBottomHeight, > - transparent, transparentcolor)) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > - goto draw_error; > - } > - /* Lower right corner */ > - if(!UXTHEME_Blt (hdcDst, dstSize.x-sm.cxRightWidth, > dstSize.y-sm.cyBottomHeight, > - sm.cxRightWidth, sm.cyBottomHeight, > - hdcSrc, rcSrc.right-sm.cxRightWidth, > rcSrc.bottom-sm.cyBottomHeight, > - transparent, transparentcolor)) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > - goto draw_error; > - } > - > - if ((sizingtype == ST_STRETCH) || (sizingtype == ST_TILE)) { > - int destCenterWidth = dstSize.x - (sm.cxLeftWidth + > sm.cxRightWidth); > - int srcCenterWidth = srcSize.x - (sm.cxLeftWidth + > sm.cxRightWidth); > - int destCenterHeight = dstSize.y - (sm.cyTopHeight + > sm.cyBottomHeight); > - int srcCenterHeight = srcSize.y - (sm.cyTopHeight + > sm.cyBottomHeight); > - > - if(destCenterWidth > 0) { > - /* Center top */ > - if(!UXTHEME_SizedBlt (hdcDst, sm.cxLeftWidth, 0, > - destCenterWidth, sm.cyTopHeight, > - hdcSrc, rcSrc.left+sm.cxLeftWidth, > rcSrc.top, > - srcCenterWidth, sm.cyTopHeight, > - sizingtype, transparent, > transparentcolor)) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > - goto draw_error; > - } > - /* Center bottom */ > - if(!UXTHEME_SizedBlt (hdcDst, sm.cxLeftWidth, > dstSize.y-sm.cyBottomHeight, > - destCenterWidth, sm.cyBottomHeight, > - hdcSrc, rcSrc.left+sm.cxLeftWidth, > rcSrc.bottom-sm.cyBottomHeight, > - srcCenterWidth, sm.cyBottomHeight, > - sizingtype, transparent, > transparentcolor)) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > - goto draw_error; > - } > - } > - if(destCenterHeight > 0) { > - /* Left center */ > - if(!UXTHEME_SizedBlt (hdcDst, 0, sm.cyTopHeight, > - sm.cxLeftWidth, destCenterHeight, > - hdcSrc, rcSrc.left, > rcSrc.top+sm.cyTopHeight, > - sm.cxLeftWidth, srcCenterHeight, > - sizingtype, > - transparent, transparentcolor)) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > - goto draw_error; > - } > - /* Right center */ > - if(!UXTHEME_SizedBlt (hdcDst, dstSize.x-sm.cxRightWidth, > sm.cyTopHeight, > - sm.cxRightWidth, destCenterHeight, > - hdcSrc, rcSrc.right-sm.cxRightWidth, > rcSrc.top+sm.cyTopHeight, > - sm.cxRightWidth, srcCenterHeight, > - sizingtype, transparent, > transparentcolor)) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > - goto draw_error; > - } > - } > - if(destCenterHeight > 0 && destCenterWidth > 0) { > - BOOL borderonly = FALSE; > - GetThemeBool(hTheme, iPartId, iStateId, TMT_BORDERONLY, > &borderonly); > - if(!borderonly) { > - /* Center */ > - if(!UXTHEME_SizedBlt (hdcDst, sm.cxLeftWidth, > sm.cyTopHeight, > - destCenterWidth, destCenterHeight, > - hdcSrc, rcSrc.left+sm.cxLeftWidth, > rcSrc.top+sm.cyTopHeight, > - srcCenterWidth, srcCenterHeight, > - sizingtype, transparent, > transparentcolor)) { > - hr = HRESULT_FROM_WIN32(GetLastError()); > - goto draw_error; > - } > - } > - } > - } > - > -draw_error: > - SetViewportOrgEx (hdcDst, org.x, org.y, NULL); > - } > - SelectObject(hdcSrc, oldSrc); > - DeleteDC(hdcSrc); > - if (bmpSrcResized) DeleteObject(bmpSrcResized); > - if (hdcOrigSrc) DeleteDC(hdcOrigSrc); > - *pRect = rcDst; > - return hr; > + *pRect = rcDst; > + } > + > + DrawStream.signature = 0x44727753; > + DrawStream.reserved = 0; > + DrawStream.unknown1 = 1; > + DrawStream.unknown2 = 9; > + DrawStream.hDC = hdc; > + DrawStream.hImage = bmpSrc; > + DrawStream.crTransparent = transparentcolor; > + DrawStream.rcSrc = rcSrc; > + DrawStream.rcDest = rcDst; > + DrawStream.leftSizingMargin = sm.cxLeftWidth; > + DrawStream.rightSizingMargin = sm.cxRightWidth; > + DrawStream.topSizingMargin = sm.cyTopHeight; > + DrawStream.bottomSizingMargin = sm.cyBottomHeight; > + DrawStream.drawOption = 0; > + > + if (transparent == ALPHABLEND_FULL) > + DrawStream.drawOption |= DS_TRANSPARENTALPHA; > + else if (transparent == ALPHABLEND_BINARY) > + DrawStream.drawOption |= DS_TRANSPARENTCLR; > + > + if (sizingtype == ST_TILE) > + DrawStream.drawOption |= DS_TILE; > + else if (sizingtype == ST_TRUESIZE) > + DrawStream.drawOption |= DS_TRUESIZE; > + > + GdiDrawStream(hdc, sizeof(DrawStream), &DrawStream); > + return HRESULT_FROM_WIN32(GetLastError()); > } > > /********************************************************************* > ** > @@ -1050,7 +769,9 @@ > /* This should never happen, and hence I don't know what to return */ > hr = E_FAIL; > } > +#if 0 > if(SUCCEEDED(hr)) > +#endif > { > RECT rcGlyph = *pRect; > MARGINS margin; > > Modified: trunk/reactos/dll/win32/uxtheme/uxthemep.h > URL: > http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/uxt > hemep.h?rev=74457&r1=74456&r2=74457&view=diff > ============================================================================== > --- trunk/reactos/dll/win32/uxtheme/uxthemep.h [iso-8859-1] (original) > +++ trunk/reactos/dll/win32/uxtheme/uxthemep.h [iso-8859-1] Wed May 3 > 11:13:23 2017 > @@ -14,6 +14,7 @@ > #include <winnls.h> > #include <windowsx.h> > #include <undocuser.h> > +#include <undocgdi.h> > #include <uxtheme.h> > #include <uxundoc.h> > #include <vfwmsgs.h> > > > _______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev _______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev