Author: akhaldi Date: Sun Jun 5 18:52:20 2016 New Revision: 71540 URL: http://svn.reactos.org/svn/reactos?rev=71540&view=rev Log: [COMCTL32] Sync with Wine Staging 1.9.11. CORE-11368
Modified: trunk/reactos/dll/win32/comctl32/CMakeLists.txt trunk/reactos/dll/win32/comctl32/animate.c trunk/reactos/dll/win32/comctl32/comboex.c trunk/reactos/dll/win32/comctl32/comctl32_ros.diff trunk/reactos/dll/win32/comctl32/datetime.c trunk/reactos/dll/win32/comctl32/header.c trunk/reactos/dll/win32/comctl32/imagelist.c trunk/reactos/dll/win32/comctl32/listview.c trunk/reactos/dll/win32/comctl32/monthcal.c trunk/reactos/dll/win32/comctl32/pager.c trunk/reactos/dll/win32/comctl32/progress.c trunk/reactos/dll/win32/comctl32/propsheet.c trunk/reactos/dll/win32/comctl32/rebar.c trunk/reactos/dll/win32/comctl32/status.c trunk/reactos/dll/win32/comctl32/syslink.c trunk/reactos/dll/win32/comctl32/tab.c trunk/reactos/dll/win32/comctl32/toolbar.c trunk/reactos/dll/win32/comctl32/tooltips.c trunk/reactos/dll/win32/comctl32/trackbar.c trunk/reactos/media/doc/README.WINE Modified: trunk/reactos/dll/win32/comctl32/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/CMakeLists.txt?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/CMakeLists.txt [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -4,8 +4,8 @@ -D_WINE -D_COMCTL32_) -remove_definitions(-D_WIN32_WINNT=0x502) -add_definitions(-D_WIN32_WINNT=0x600) +remove_definitions(-D_WIN32_WINNT=0x502 -DWINVER=0x502) +add_definitions(-D_WIN32_WINNT=0x600 -DWINVER=0x600) include_directories(BEFORE ${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine) spec2def(comctl32.dll comctl32.spec ADD_IMPORTLIB) Modified: trunk/reactos/dll/win32/comctl32/animate.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/animate.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/animate.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/animate.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -303,10 +303,7 @@ HBITMAP hbmOld2 = SelectObject(hdcFinal, hbmFinal); RECT rect; - rect.left = 0; - rect.top = 0; - rect.right = nWidth; - rect.bottom = nHeight; + SetRect(&rect, 0, 0, nWidth, nHeight); if(!infoPtr->hbrushBG) infoPtr->hbrushBG = GetCurrentObject(hDC, OBJ_BRUSH); Modified: trunk/reactos/dll/win32/comctl32/comboex.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/comboex.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/comboex.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/comboex.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -1301,7 +1301,7 @@ RECT exrc, cbrc, edrc; GetWindowRect (infoPtr->hwndSelf, &exrc); GetWindowRect (infoPtr->hwndCombo, &cbrc); - edrc.left = edrc.top = edrc.right = edrc.bottom = -1; + SetRect(&edrc, -1, -1, -1, -1); if (infoPtr->hwndEdit) GetWindowRect (infoPtr->hwndEdit, &edrc); TRACE("window rects ex=(%s), cb=(%s), ed=(%s)\n", wine_dbgstr_rect(&exrc), wine_dbgstr_rect(&cbrc), @@ -1456,10 +1456,7 @@ x = xbase + xioff; y = dis->rcItem.top + (dis->rcItem.bottom - dis->rcItem.top - txtsize.cy) / 2; - rect.left = x; - rect.right = x + txtsize.cx; - rect.top = dis->rcItem.top + 1; - rect.bottom = dis->rcItem.bottom - 1; + SetRect(&rect, x, dis->rcItem.top + 1, x + txtsize.cx, dis->rcItem.bottom - 1); TRACE("drawing item %d text, rect=(%s)\n", dis->itemID, wine_dbgstr_rect(&rect)); ExtTextOutW (dis->hDC, x, y, ETO_OPAQUE | ETO_CLIPPED, Modified: trunk/reactos/dll/win32/comctl32/comctl32_ros.diff URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/comctl32_ros.diff?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/comctl32_ros.diff [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/comctl32_ros.diff [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -1,28 +1,87 @@ +diff -pudN e:\wine\dlls\comctl32/comctl32.h e:\reactos\dll\win32\comctl32/comctl32.h +--- e:\wine\dlls\comctl32/comctl32.h 2016-05-31 18:00:02 +0100 ++++ e:\reactos\dll\win32\comctl32/comctl32.h 2014-03-05 11:47:40 +0100 +@@ -53,67 +53,6 @@ + extern HMODULE COMCTL32_hModule DECLSPEC_HIDDEN; + extern HBRUSH COMCTL32_hPattern55AABrush DECLSPEC_HIDDEN; + +-/* Property sheet / Wizard */ +-#define IDD_PROPSHEET 1006 +-#define IDD_WIZARD 1020 +- +-#define IDC_TABCONTROL 12320 +-#define IDC_APPLY_BUTTON 12321 +-#define IDC_BACK_BUTTON 12323 +-#define IDC_NEXT_BUTTON 12324 +-#define IDC_FINISH_BUTTON 12325 +-#define IDC_SUNKEN_LINE 12326 +-#define IDC_SUNKEN_LINEHEADER 12327 +- +-#define IDS_CLOSE 4160 +- +-/* Toolbar customization dialog */ +-#define IDD_TBCUSTOMIZE 200 +- +-#define IDC_AVAILBTN_LBOX 201 +-#define IDC_RESET_BTN 202 +-#define IDC_TOOLBARBTN_LBOX 203 +-#define IDC_REMOVE_BTN 204 +-#define IDC_HELP_BTN 205 +-#define IDC_MOVEUP_BTN 206 +-#define IDC_MOVEDN_BTN 207 +- +-#define IDS_SEPARATOR 1024 +- +-/* Toolbar imagelist bitmaps */ +-#define IDB_STD_SMALL 120 +-#define IDB_STD_LARGE 121 +-#define IDB_VIEW_SMALL 124 +-#define IDB_VIEW_LARGE 125 +-#define IDB_HIST_SMALL 130 +-#define IDB_HIST_LARGE 131 +- +-#define IDM_TODAY 4163 +-#define IDM_GOTODAY 4164 +- +-/* Treeview Checkboxes */ +- +-#define IDT_CHECK 401 +- +- +-/* Cursors */ +-#define IDC_MOVEBUTTON 102 +-#define IDC_COPY 104 +-#define IDC_DIVIDER 106 +-#define IDC_DIVIDEROPEN 107 +- +- +-/* DragList resources */ +-#define IDI_DRAGARROW 501 +- +-/* HOTKEY internal strings */ +-#define HKY_NONE 2048 +- +-/* Tooltip icons */ +-#define IDI_TT_INFO_SM 22 +-#define IDI_TT_WARN_SM 25 +-#define IDI_TT_ERROR_SM 28 +- + typedef struct + { + COLORREF clrBtnHighlight; /* COLOR_BTNHIGHLIGHT */ +@@ -149,8 +88,6 @@ INT Str_GetPtrAtoW (LPCSTR lpSrc, LPWST + BOOL Str_SetPtrAtoW (LPWSTR *lppDest, LPCSTR lpSrc) DECLSPEC_HIDDEN; + BOOL Str_SetPtrWtoA (LPSTR *lppDest, LPCWSTR lpSrc) DECLSPEC_HIDDEN; + +-#define COMCTL32_VERSION_MINOR 81 +- + /* Our internal stack structure of the window procedures to subclass */ + typedef struct _SUBCLASSPROCS { + SUBCLASSPROC subproc; diff -pudN e:\wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commctrl.c ---- e:\wine\dlls\comctl32/commctrl.c 2015-02-21 17:13:09 +0100 -+++ e:\reactos\dll\win32\comctl32/commctrl.c 2015-08-27 22:05:04 +0100 -@@ -52,25 +52,26 @@ - * -- ICC_WIN95_CLASSES - */ - --#include <stdarg.h> --#include <string.h> --#include <stdlib.h> -+#include "comctl32.h" - --#include "windef.h" --#include "winbase.h" --#include "wingdi.h" --#include "winuser.h" --#include "winnls.h" --#include "commctrl.h" --#include "winerror.h" --#include "winreg.h" - #define NO_SHLWAPI_STREAM --#include "shlwapi.h" --#include "comctl32.h" --#include "wine/debug.h" -+#include <shlwapi.h> +--- e:\wine\dlls\comctl32/commctrl.c 2016-05-31 18:00:02 +0100 ++++ e:\reactos\dll\win32\comctl32/commctrl.c 2016-03-01 20:00:53 +0100 +@@ -60,6 +60,19 @@ WINE_DEFAULT_DEBUG_CHANNEL(commctrl); @@ -42,7 +101,7 @@ static LRESULT WINAPI COMCTL32_SubclassProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); -@@ -92,6 +93,67 @@ static const WCHAR strCC32SubclassInfo[] +@@ -81,6 +94,67 @@ static const WCHAR strCC32SubclassInfo[] 'C','C','3','2','S','u','b','c','l','a','s','s','I','n','f','o',0 }; @@ -110,7 +169,7 @@ /*********************************************************************** * DllMain [Internal] -@@ -928,6 +990,12 @@ HRESULT WINAPI DllGetVersion (DLLVERSION +@@ -917,6 +991,12 @@ HRESULT WINAPI DllGetVersion (DLLVERSION HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline) { TRACE("(%u, %s): stub\n", bInstall, debugstr_w(cmdline)); @@ -123,17 +182,18 @@ return S_OK; } -@@ -1591,12 +1659,114 @@ LRESULT WINAPI SetPathWordBreakProc(HWND +@@ -1580,33 +1660,114 @@ LRESULT WINAPI SetPathWordBreakProc(HWND * * Draw text with shadow. */ --int WINAPI DrawShadowText(HDC hdc, LPCWSTR pszText, UINT cch, RECT *rect, DWORD dwFlags, +-int WINAPI DrawShadowText(HDC hdc, LPCWSTR text, UINT length, RECT *rect, DWORD flags, +- COLORREF crText, COLORREF crShadow, int offset_x, int offset_y) +int WINAPI DrawShadowText(HDC hdc, LPCWSTR pszText, UINT cch, RECT *prc, DWORD dwFlags, - COLORREF crText, COLORREF crShadow, int ixOffset, int iyOffset) ++ COLORREF crText, COLORREF crShadow, int ixOffset, int iyOffset) { -- FIXME("(%p, %s, %d, %p, %d, 0x%08x, 0x%08x, %d, %d): stub\n", hdc, debugstr_w(pszText), cch, rect, dwFlags, -- crText, crShadow, ixOffset, iyOffset); -- return DrawTextW(hdc, pszText, cch, rect, DT_LEFT); +- int bkmode, ret; +- COLORREF clr; +- RECT r; + COLORREF crOldText; + RECT rcText; + INT iRet, x, y, x2, y2; @@ -143,7 +203,9 @@ + HDC hdcMem; + HFONT hOldFont; + BLENDFUNCTION bf; -+ + +- FIXME("(%p, %s, %d, %p, 0x%08x, 0x%08x, 0x%08x, %d, %d): semi-stub\n", hdc, debugstr_w(text), +- length, rect, flags, crText, crShadow, offset_x, offset_y); + /* Create 32 bit DIB section for the shadow */ + ZeroMemory(&bi, sizeof(bi)); + bi.bmiHeader.biSize = sizeof(bi.bmiHeader); @@ -158,7 +220,9 @@ + ERR("CreateDIBSection failed\n"); + return 0; + } -+ + +- bkmode = SetBkMode(hdc, TRANSPARENT); +- clr = SetTextColor(hdc, crShadow); + /* Create memory device context for new DIB section and select it */ + hdcMem = CreateCompatibleDC(hdc); + if(!hdcMem) @@ -167,9 +231,14 @@ + DeleteObject(hbm); + return 0; + } -+ + +- /* FIXME: for shadow we need to render normally, blur it, and blend with current background. */ +- r = *rect; +- OffsetRect(&r, 1, 1); +- DrawTextW(hdc, text, length, &r, flags); + hbmOld = (HBITMAP)SelectObject(hdcMem, hbm); -+ + +- SetTextColor(hdc, crText); + /* Draw text on our helper bitmap */ + hOldFont = (HFONT)SelectObject(hdcMem, GetCurrentObject(hdc, OBJ_FONT)); + SetTextColor(hdcMem, RGB(16, 16, 16)); @@ -178,10 +247,14 @@ + SetRect(&rcText, 0, 0, prc->right - prc->left, prc->bottom - prc->top); + DrawTextW(hdcMem, pszText, cch, &rcText, dwFlags); + SelectObject(hdcMem, hOldFont); -+ + +- /* with text color on top of a shadow */ +- ret = DrawTextW(hdc, text, length, rect, flags); + /* Flush GDI so data pointed by pBits is valid */ + GdiFlush(); -+ + +- SetTextColor(hdc, clr); +- SetBkMode(hdc, bkmode); + /* Set alpha of pixels (forget about colors for now. They will be changed in next loop). + We copy text image 4*5 times and each time alpha is added */ + for (x = 0; x < bi.bmiHeader.biWidth; ++x) @@ -189,7 +262,8 @@ + { + BYTE *pDest = &pBits[(y * bi.bmiHeader.biWidth + x) * 4]; + UINT Alpha = 0; -+ + +- return ret; + for (x2 = x - 4 + 1; x2 <= x; ++x2) + for (y2 = y; y2 < y + 5; ++y2) + { @@ -242,9 +316,9 @@ } /*********************************************************************** -@@ -1646,3 +1816,15 @@ HRESULT WINAPI LoadIconWithScaleDown(HIN - FIXME("stub: %p %s %d %d %p\n", hinst, wine_dbgstr_w(name), cx, cy, icon); - return E_NOTIMPL; +@@ -1695,3 +1856,15 @@ HRESULT WINAPI LoadIconMetric(HINSTANCE + + return LoadIconWithScaleDown(hinst, name, cx, cy, icon); } + +/*********************************************************************** @@ -259,9 +333,9 @@ + return TRUE; +} diff -pudN e:\wine\dlls\comctl32/imagelist.c e:\reactos\dll\win32\comctl32/imagelist.c ---- e:\wine\dlls\comctl32/imagelist.c 2015-02-21 17:13:09 +0100 -+++ e:\reactos\dll\win32\comctl32/imagelist.c 2015-08-27 22:05:04 +0100 -@@ -33,27 +33,14 @@ +--- e:\wine\dlls\comctl32/imagelist.c 2016-05-31 18:00:02 +0100 ++++ e:\reactos\dll\win32\comctl32/imagelist.c 2016-06-05 19:39:00 +0100 +@@ -33,7 +33,7 @@ * * TODO: * - Add support for ILD_PRESERVEALPHA, ILD_SCALE, ILD_DPISCALE @@ -270,54 +344,42 @@ * - Thread-safe locking */ --#include <stdarg.h> --#include <stdlib.h> --#include <string.h> -- --#define COBJMACROS -- --#include "winerror.h" --#include "windef.h" --#include "winbase.h" --#include "objbase.h" --#include "wingdi.h" --#include "winuser.h" --#include "commctrl.h" - #include "comctl32.h" --#include "commoncontrols.h" --#include "wine/debug.h" --#include "wine/exception.h" -+ -+#include <commoncontrols.h> -+#include <wine/exception.h> - - WINE_DEFAULT_DEBUG_CHANNEL(imagelist); - -@@ -1246,7 +1233,7 @@ ImageList_DrawEx (HIMAGELIST himl, INT i - } - - --static BOOL alpha_blend_image( HIMAGELIST himl, HDC dest_dc, int dest_x, int dest_y, +@@ -1229,8 +1229,11 @@ ImageList_DrawEx (HIMAGELIST himl, INT i + return ImageList_DrawIndirect (&imldp); + } + +- ++#ifdef __REACTOS__ +static BOOL alpha_blend_image( HIMAGELIST himl, HDC srce_dc, HDC dest_dc, int dest_x, int dest_y, ++#else + static BOOL alpha_blend_image( HIMAGELIST himl, HDC dest_dc, int dest_x, int dest_y, ++#endif int src_x, int src_y, int cx, int cy, BLENDFUNCTION func, UINT style, COLORREF blend_col ) { -@@ -1271,9 +1258,9 @@ static BOOL alpha_blend_image( HIMAGELIS +@@ -1255,9 +1258,17 @@ static BOOL alpha_blend_image( HIMAGELIS info->bmiHeader.biYPelsPerMeter = 0; info->bmiHeader.biClrUsed = 0; info->bmiHeader.biClrImportant = 0; -- if (!(bmp = CreateDIBSection( himl->hdcImage, info, DIB_RGB_COLORS, &bits, 0, 0 ))) goto done; ++#ifdef __REACTOS__ + if (!(bmp = CreateDIBSection( srce_dc, info, DIB_RGB_COLORS, &bits, 0, 0 ))) goto done; ++#else + if (!(bmp = CreateDIBSection( himl->hdcImage, info, DIB_RGB_COLORS, &bits, 0, 0 ))) goto done; ++#endif SelectObject( hdc, bmp ); -- BitBlt( hdc, 0, 0, cx, cy, himl->hdcImage, src_x, src_y, SRCCOPY ); ++#ifdef __REACTOS__ + BitBlt( hdc, 0, 0, cx, cy, srce_dc, src_x, src_y, SRCCOPY ); ++#else + BitBlt( hdc, 0, 0, cx, cy, himl->hdcImage, src_x, src_y, SRCCOPY ); ++#endif if (blend_col != CLR_NONE) { -@@ -1346,6 +1333,66 @@ done: +@@ -1330,6 +1341,68 @@ done: return ret; } ++#ifdef __REACTOS__ +HDC saturate_image( HIMAGELIST himl, HDC dest_dc, int dest_x, int dest_y, + int src_x, int src_y, int cx, int cy, COLORREF rgbFg) +{ @@ -377,14 +439,16 @@ + /* return the handle to our desaturated dc, that will substitute its original counterpart in the next calls */ + return hdc; +} ++#endif /* __REACTOS__ */ + /************************************************************************* * ImageList_DrawIndirect [COMCTL32.@] * -@@ -1422,6 +1469,21 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR +@@ -1406,6 +1479,23 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR oldImageFg = SetTextColor( hImageDC, RGB( 0, 0, 0 ) ); oldImageBk = SetBkColor( hImageDC, RGB( 0xff, 0xff, 0xff ) ); ++#ifdef __REACTOS__ + /* + * If the ILS_SATURATE bit is enabled we should multiply the + * RGB colors of the original image by the contents of rgbFg. @@ -399,40 +463,50 @@ + pt.x = 0; + pt.y = 0; + } ++#endif + has_alpha = (himl->has_alpha && himl->has_alpha[pimldp->i]); if (!bMask && (has_alpha || (fState & ILS_ALPHA))) { -@@ -1442,7 +1504,7 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR +@@ -1426,7 +1516,11 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR if (bIsTransparent) { -- bResult = alpha_blend_image( himl, pimldp->hdcDst, pimldp->x, pimldp->y, ++#ifdef __REACTOS__ + bResult = alpha_blend_image( himl, hImageListDC, pimldp->hdcDst, pimldp->x, pimldp->y, ++#else + bResult = alpha_blend_image( himl, pimldp->hdcDst, pimldp->x, pimldp->y, ++#endif pt.x, pt.y, cx, cy, func, fStyle, blend_col ); goto end; } -@@ -1452,7 +1514,7 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR +@@ -1436,7 +1530,11 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR hOldBrush = SelectObject (hImageDC, CreateSolidBrush (colour)); PatBlt( hImageDC, 0, 0, cx, cy, PATCOPY ); -- alpha_blend_image( himl, hImageDC, 0, 0, pt.x, pt.y, cx, cy, func, fStyle, blend_col ); ++#ifdef __REACTOS__ + alpha_blend_image( himl, hImageListDC, hImageDC, 0, 0, pt.x, pt.y, cx, cy, func, fStyle, blend_col ); ++#else + alpha_blend_image( himl, hImageDC, 0, 0, pt.x, pt.y, cx, cy, func, fStyle, blend_col ); ++#endif DeleteObject (SelectObject (hImageDC, hOldBrush)); bResult = BitBlt( pimldp->hdcDst, pimldp->x, pimldp->y, cx, cy, hImageDC, 0, 0, SRCCOPY ); goto end; -@@ -1546,7 +1608,6 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR +@@ -1530,7 +1628,9 @@ ImageList_DrawIndirect (IMAGELISTDRAWPAR } } -- if (fState & ILS_SATURATE) FIXME("ILS_SATURATE: unimplemented!\n"); ++#ifndef __REACTOS__ + if (fState & ILS_SATURATE) FIXME("ILS_SATURATE: unimplemented!\n"); ++#endif if (fState & ILS_GLOW) FIXME("ILS_GLOW: unimplemented!\n"); if (fState & ILS_SHADOW) FIXME("ILS_SHADOW: unimplemented!\n"); +Common subdirectories: e:\wine\dlls\comctl32/lang and e:\reactos\dll\win32\comctl32/lang diff -pudN e:\wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listview.c ---- e:\wine\dlls\comctl32/listview.c 2015-04-05 20:44:57 +0100 -+++ e:\reactos\dll\win32\comctl32/listview.c 2015-08-27 22:05:04 +0100 -@@ -306,6 +287,9 @@ typedef struct tagLISTVIEW_INFO +--- e:\wine\dlls\comctl32/listview.c 2016-05-31 18:00:02 +0100 ++++ e:\reactos\dll\win32\comctl32/listview.c 2016-06-05 19:39:00 +0100 +@@ -287,6 +287,9 @@ typedef struct tagLISTVIEW_INFO COLORREF clrBk; COLORREF clrText; COLORREF clrTextBk; @@ -442,7 +516,7 @@ /* font */ HFONT hDefaultFont; -@@ -1698,8 +1682,24 @@ static inline BOOL LISTVIEW_GetItemW(con +@@ -1678,8 +1681,24 @@ static inline BOOL LISTVIEW_GetItemW(con /* used to handle collapse main item column case */ static inline BOOL LISTVIEW_DrawFocusRect(const LISTVIEW_INFO *infoPtr, HDC hdc) { @@ -467,7 +541,7 @@ } /* Listview invalidation functions: use _only_ these functions to invalidate */ -@@ -4682,7 +4682,12 @@ static void LISTVIEW_DrawItemPart(LISTVI +@@ -4671,7 +4690,12 @@ static void LISTVIEW_DrawItemPart(LISTVI if (infoPtr->uView == LV_VIEW_DETAILS && infoPtr->dwLvExStyle & LVS_EX_GRIDLINES) rcLabel.bottom--; @@ -481,7 +555,7 @@ } /*** -@@ -5228,7 +5233,11 @@ enddraw: +@@ -5212,7 +5236,11 @@ enddraw: /* Draw marquee rectangle if appropriate */ if (infoPtr->bMarqueeSelect) @@ -493,7 +567,7 @@ if (cdmode & CDRF_NOTIFYPOSTPAINT) notify_postpaint(infoPtr, &nmlvcd); -@@ -8024,6 +8033,9 @@ static BOOL LISTVIEW_SetBkColor(LISTVIEW +@@ -8013,6 +8041,9 @@ static BOOL LISTVIEW_SetBkColor(LISTVIEW { TRACE("(color=%x)\n", color); @@ -503,7 +577,7 @@ if(infoPtr->clrBk != color) { if (infoPtr->clrBk != CLR_NONE) DeleteObject(infoPtr->hBkBrush); infoPtr->clrBk = color; -@@ -8702,7 +8714,7 @@ static DWORD LISTVIEW_SetIconSpacing(LIS +@@ -8688,7 +8719,7 @@ static DWORD LISTVIEW_SetIconSpacing(LIS return oldspacing; } @@ -512,7 +586,7 @@ { INT cx, cy; -@@ -8713,8 +8725,8 @@ static inline void set_icon_size(SIZE *s +@@ -8699,8 +8730,8 @@ static inline void set_icon_size(SIZE *s } else { @@ -523,7 +597,7 @@ } } -@@ -9451,6 +9463,9 @@ static LRESULT LISTVIEW_NCCreate(HWND hw +@@ -9435,6 +9466,9 @@ static LRESULT LISTVIEW_NCCreate(HWND hw infoPtr->clrText = CLR_DEFAULT; infoPtr->clrTextBk = CLR_DEFAULT; LISTVIEW_SetBkColor(infoPtr, comctl32_color.clrWindow); @@ -533,7 +607,7 @@ /* set default values */ infoPtr->nFocusedItem = -1; -@@ -11735,6 +11750,14 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg +@@ -11718,6 +11752,14 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg case WM_SYSCOLORCHANGE: COMCTL32_RefreshSysColors(); @@ -549,9 +623,9 @@ /* case WM_TIMER: */ diff -pudN e:\wine\dlls\comctl32/propsheet.c e:\reactos\dll\win32\comctl32/propsheet.c ---- e:\wine\dlls\comctl32/propsheet.c 2015-03-21 14:04:48 +0100 -+++ e:\reactos\dll\win32\comctl32/propsheet.c 2015-08-27 22:05:04 +0100 -@@ -2432,12 +2416,19 @@ static void PROPSHEET_SetWizButtons(HWND +--- e:\wine\dlls\comctl32/propsheet.c 2016-05-31 18:00:02 +0100 ++++ e:\reactos\dll\win32\comctl32/propsheet.c 2016-06-05 19:39:01 +0100 +@@ -2355,12 +2355,19 @@ static void PROPSHEET_SetWizButtons(HWND HWND hwndFinish = GetDlgItem(hwndDlg, IDC_FINISH_BUTTON); BOOL enable_finish = ((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags & PSWIZB_DISABLEDFINISH); @@ -571,7 +645,7 @@ /* set the default pushbutton to an enabled button */ if (enable_finish) SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0); -@@ -2447,6 +2438,7 @@ static void PROPSHEET_SetWizButtons(HWND +@@ -2370,6 +2377,7 @@ static void PROPSHEET_SetWizButtons(HWND SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0); else SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0); @@ -579,7 +653,7 @@ if (!psInfo->hasFinish) { -@@ -2466,6 +2458,25 @@ static void PROPSHEET_SetWizButtons(HWND +@@ -2389,6 +2397,25 @@ static void PROPSHEET_SetWizButtons(HWND ShowWindow(hwndNext, SW_SHOW); } } @@ -606,8 +680,8 @@ /****************************************************************************** diff -pudN e:\wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c ---- e:\wine\dlls\comctl32/rebar.c 2015-04-05 20:44:57 +0100 -+++ e:\reactos\dll\win32\comctl32/rebar.c 2015-08-27 22:05:04 +0100 +--- e:\wine\dlls\comctl32/rebar.c 2016-05-31 18:00:02 +0100 ++++ e:\reactos\dll\win32\comctl32/rebar.c 2016-06-05 19:39:01 +0100 @@ -50,7 +50,6 @@ * - WM_QUERYNEWPALETTE * - WM_RBUTTONDOWN @@ -616,7 +690,7 @@ * - WM_VKEYTOITEM * - WM_WININICHANGE * Notifications: -@@ -1844,16 +1828,43 @@ static LRESULT REBAR_EraseBkGnd (const R +@@ -1821,16 +1820,43 @@ static LRESULT REBAR_EraseBkGnd (const R RECT cr; COLORREF old = CLR_NONE, new; HTHEME theme = GetWindowTheme (infoPtr->hwndSelf); @@ -660,7 +734,7 @@ /* draw band separator between rows */ if (lpBand->iRow != oldrow) { oldrow = lpBand->iRow; -@@ -1878,6 +1889,9 @@ static LRESULT REBAR_EraseBkGnd (const R +@@ -1855,6 +1881,9 @@ static LRESULT REBAR_EraseBkGnd (const R } TRACE ("drawing band separator bottom (%s)\n", wine_dbgstr_rect(&rcRowSep)); @@ -670,7 +744,7 @@ } } -@@ -1888,6 +1902,9 @@ static LRESULT REBAR_EraseBkGnd (const R +@@ -1865,6 +1894,9 @@ static LRESULT REBAR_EraseBkGnd (const R if (infoPtr->dwStyle & CCS_VERT) { rcSep.bottom = rcSep.top; rcSep.top -= SEP_WIDTH_SIZE; @@ -680,7 +754,7 @@ if (theme) DrawThemeEdge (theme, hdc, RP_BAND, 0, &rcSep, EDGE_ETCHED, BF_BOTTOM, NULL); else -@@ -1896,6 +1913,9 @@ static LRESULT REBAR_EraseBkGnd (const R +@@ -1873,6 +1905,9 @@ static LRESULT REBAR_EraseBkGnd (const R else { rcSep.right = rcSep.left; rcSep.left -= SEP_WIDTH_SIZE; @@ -690,7 +764,7 @@ if (theme) DrawThemeEdge (theme, hdc, RP_BAND, 0, &rcSep, EDGE_ETCHED, BF_RIGHT, NULL); else -@@ -1926,6 +1946,9 @@ static LRESULT REBAR_EraseBkGnd (const R +@@ -1903,6 +1938,9 @@ static LRESULT REBAR_EraseBkGnd (const R #endif } @@ -700,7 +774,7 @@ if (theme) { /* When themed, the background color is ignored (but not a -@@ -1933,6 +1956,7 @@ static LRESULT REBAR_EraseBkGnd (const R +@@ -1910,6 +1948,7 @@ static LRESULT REBAR_EraseBkGnd (const R DrawThemeBackground (theme, hdc, 0, 0, &cr, &rcBand); } else @@ -708,7 +782,7 @@ { old = SetBkColor (hdc, new); TRACE("%s background color=0x%06x, band %s\n", -@@ -1943,7 +1967,26 @@ static LRESULT REBAR_EraseBkGnd (const R +@@ -1920,7 +1959,26 @@ static LRESULT REBAR_EraseBkGnd (const R if (lpBand->clrBack != CLR_NONE) SetBkColor (hdc, old); } @@ -735,12 +809,15 @@ return TRUE; } -@@ -2912,12 +2955,22 @@ REBAR_ShowBand (REBAR_INFO *infoPtr, INT +@@ -2889,12 +2947,26 @@ REBAR_ShowBand (REBAR_INFO *infoPtr, INT static LRESULT --REBAR_SizeToRect (REBAR_INFO *infoPtr, const RECT *lpRect) ++#ifdef __REACTOS__ +REBAR_SizeToRect (REBAR_INFO *infoPtr, WPARAM flags, RECT *lpRect) ++#else + REBAR_SizeToRect (REBAR_INFO *infoPtr, const RECT *lpRect) ++#endif { if (!lpRect) return FALSE; @@ -759,7 +836,7 @@ return TRUE; } -@@ -3224,7 +3277,11 @@ REBAR_NCCalcSize (const REBAR_INFO *info +@@ -3201,7 +3273,11 @@ REBAR_NCCalcSize (const REBAR_INFO *info else if ((theme = GetWindowTheme (infoPtr->hwndSelf))) { /* FIXME: should use GetThemeInt */ @@ -771,16 +848,19 @@ } TRACE("new client=(%s)\n", wine_dbgstr_rect(rect)); return 0; -@@ -3675,7 +3732,7 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, +@@ -3652,7 +3728,11 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, return REBAR_ShowBand (infoPtr, wParam, lParam); case RB_SIZETORECT: -- return REBAR_SizeToRect (infoPtr, (LPCRECT)lParam); ++#ifdef __REACTOS__ + return REBAR_SizeToRect (infoPtr, wParam, (LPRECT)lParam); ++#else + return REBAR_SizeToRect (infoPtr, (LPCRECT)lParam); ++#endif /* Messages passed to parent */ -@@ -3758,6 +3815,11 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, +@@ -3735,6 +3815,11 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, case WM_SYSCOLORCHANGE: COMCTL32_RefreshSysColors(); @@ -793,8 +873,8 @@ /* case WM_VKEYTOITEM: supported according to ControlSpy */ diff -pudN e:\wine\dlls\comctl32/toolbar.c e:\reactos\dll\win32\comctl32/toolbar.c ---- e:\wine\dlls\comctl32/toolbar.c 2015-07-14 15:44:34 +0100 -+++ e:\reactos\dll\win32\comctl32/toolbar.c 2015-09-08 13:22:39 +0100 +--- e:\wine\dlls\comctl32/toolbar.c 2016-05-31 18:00:02 +0100 ++++ e:\reactos\dll\win32\comctl32/toolbar.c 2016-06-05 19:39:01 +0100 @@ -33,11 +33,9 @@ * - TBSTYLE_REGISTERDROP * - TBSTYLE_EX_DOUBLEBUFFER @@ -807,7 +887,7 @@ * - WM_WININICHANGE * - Notifications: * - NM_CHAR -@@ -139,6 +123,10 @@ typedef struct +@@ -125,6 +123,10 @@ typedef struct INT nOldHit; INT nHotItem; /* index of the "hot" item */ SIZE szPadding; /* padding values around button */ @@ -818,7 +898,7 @@ INT iTopMargin; /* the top margin */ INT iListGap; /* default gap between text and image for toolbar with list style */ HFONT hDefaultFont; -@@ -204,12 +192,24 @@ typedef enum +@@ -190,12 +192,24 @@ typedef enum #define ARROW_HEIGHT 3 #define INSERTMARK_WIDTH 2 @@ -843,7 +923,7 @@ /* how wide to treat the bitmap if it isn't present */ #define NONLIST_NOTEXT_OFFSET 2 -@@ -253,7 +253,12 @@ static LRESULT TOOLBAR_SetButtonInfo(TOO +@@ -239,7 +253,12 @@ static LRESULT TOOLBAR_SetButtonInfo(TOO static inline int default_top_margin(const TOOLBAR_INFO *infoPtr) { @@ -856,7 +936,7 @@ } static inline BOOL TOOLBAR_HasDropDownArrows(DWORD exStyle) -@@ -737,10 +742,14 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in +@@ -723,10 +742,14 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in const NMTBCUSTOMDRAW *tbcd, DWORD dwItemCDFlag) { HIMAGELIST himl = NULL; @@ -872,7 +952,7 @@ if (tbcd->nmcd.uItemState & (CDIS_DISABLED | CDIS_INDETERMINATE)) { -@@ -748,7 +757,22 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in +@@ -734,7 +757,22 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in if (!himl) { himl = TOOLBAR_GetImageListForDrawing(infoPtr, btnPtr, IMAGE_LIST_DEFAULT, &index); @@ -895,7 +975,7 @@ } } else if (tbcd->nmcd.uItemState & CDIS_CHECKED || -@@ -779,9 +803,34 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in +@@ -765,9 +803,34 @@ TOOLBAR_DrawImage(const TOOLBAR_INFO *in index, himl, left, top, offset); if (draw_masked) @@ -930,7 +1010,7 @@ } /* draws a blank frame for a toolbar button */ -@@ -898,14 +947,15 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO * +@@ -884,14 +947,15 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO * InflateRect(&rcsep, -infoPtr->szPadding.cx, -infoPtr->szPadding.cy); TOOLBAR_DrawFlatHorizontalSeparator (&rcsep, hdc, infoPtr); } @@ -954,7 +1034,7 @@ } /* get a pointer to the text */ -@@ -1042,7 +1092,11 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO * +@@ -1028,7 +1092,11 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO * } } @@ -966,7 +1046,7 @@ { int partId = drawSepDropDownArrow ? TP_SPLITBUTTON : TP_BUTTON; int stateId = TS_NORMAL; -@@ -1059,7 +1113,12 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO * +@@ -1045,7 +1113,12 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO * DrawThemeBackground (theme, hdc, partId, stateId, &rc, NULL); } @@ -979,7 +1059,7 @@ TOOLBAR_DrawFrame(infoPtr, &tbcd, &rc, dwItemCDFlag); if (drawSepDropDownArrow) -@@ -1587,9 +1646,14 @@ static inline SIZE TOOLBAR_MeasureButton +@@ -1571,9 +1644,14 @@ static inline SIZE TOOLBAR_MeasureButton /* ... add on the necessary padding */ if (bValidImageList) { @@ -994,7 +1074,7 @@ sizeButton.cy += LISTPAD_CY; } else -@@ -1606,7 +1670,11 @@ static inline SIZE TOOLBAR_MeasureButton +@@ -1590,7 +1668,11 @@ static inline SIZE TOOLBAR_MeasureButton { if (bHasBitmap) { @@ -1006,7 +1086,7 @@ if (sizeString.cy > 0) sizeButton.cy += 1 + sizeString.cy; sizeButton.cx = infoPtr->szPadding.cx + -@@ -1711,7 +1779,14 @@ TOOLBAR_LayoutToolbar(TOOLBAR_INFO *info +@@ -1695,7 +1777,14 @@ TOOLBAR_LayoutToolbar(TOOLBAR_INFO *info { if (btnPtr->cx) cx = btnPtr->cx; @@ -1021,7 +1101,7 @@ { SIZE sz; HDC hdc; -@@ -1970,6 +2045,17 @@ TOOLBAR_RelayEvent (HWND hwndTip, HWND h +@@ -1954,6 +2043,17 @@ TOOLBAR_RelayEvent (HWND hwndTip, HWND h SendMessageW (hwndTip, TTM_RELAYEVENT, 0, (LPARAM)&msg); } @@ -1039,7 +1119,7 @@ static void TOOLBAR_TooltipAddTool(const TOOLBAR_INFO *infoPtr, const TBUTTON_INFO *button) { -@@ -3551,6 +3637,36 @@ TOOLBAR_GetMaxSize (const TOOLBAR_INFO * +@@ -3535,6 +3635,36 @@ TOOLBAR_GetMaxSize (const TOOLBAR_INFO * return TRUE; } @@ -1076,7 +1156,7 @@ /* << TOOLBAR_GetObject >> */ -@@ -4806,6 +4922,44 @@ TOOLBAR_SetMaxTextRows (TOOLBAR_INFO *in +@@ -4790,6 +4920,44 @@ TOOLBAR_SetMaxTextRows (TOOLBAR_INFO *in return TRUE; } @@ -1121,16 +1201,18 @@ /* MSDN gives slightly wrong info on padding. * 1. It is not only used on buttons with the BTNS_AUTOSIZE style -@@ -6052,6 +6206,8 @@ TOOLBAR_NCCreate (HWND hwnd, WPARAM wPar +@@ -6030,6 +6198,10 @@ TOOLBAR_NCCreate (HWND hwnd, WPARAM wPar infoPtr->clrBtnShadow = CLR_DEFAULT; infoPtr->szPadding.cx = DEFPAD_CX; infoPtr->szPadding.cy = DEFPAD_CY; ++#ifdef __REACTOS__ + infoPtr->szSpacing.cx = DEFSPACE_CX; + infoPtr->szSpacing.cy = DEFSPACE_CY; ++#endif infoPtr->iListGap = DEFLISTGAP; infoPtr->iTopMargin = default_top_margin(infoPtr); infoPtr->dwStyle = lpcs->style; -@@ -6461,7 +6617,7 @@ TOOLBAR_SysColorChange (void) +@@ -6439,7 +6611,7 @@ TOOLBAR_SysColorChange (void) return 0; } @@ -1139,7 +1221,7 @@ /* update theme after a WM_THEMECHANGED message */ static LRESULT theme_changed (HWND hwnd) { -@@ -6470,7 +6626,7 @@ static LRESULT theme_changed (HWND hwnd) +@@ -6448,7 +6620,7 @@ static LRESULT theme_changed (HWND hwnd) OpenThemeData (hwnd, themeClass); return 0; } @@ -1148,7 +1230,7 @@ static LRESULT WINAPI ToolbarWindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -@@ -6575,6 +6731,10 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg, +@@ -6553,6 +6725,10 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg, case TB_GETMAXSIZE: return TOOLBAR_GetMaxSize (infoPtr, (LPSIZE)lParam); @@ -1159,7 +1241,7 @@ /* case TB_GETOBJECT: */ /* 4.71 */ -@@ -6716,6 +6876,11 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg, +@@ -6694,6 +6870,11 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg, case TB_SETMAXTEXTROWS: return TOOLBAR_SetMaxTextRows (infoPtr, wParam); @@ -1171,12 +1253,10 @@ case TB_SETPADDING: return TOOLBAR_SetPadding (infoPtr, lParam); -@@ -6855,8 +7020,12 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg, - case WM_SYSCOLORCHANGE: +@@ -6835,7 +7016,11 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg, return TOOLBAR_SysColorChange (); -- case WM_THEMECHANGED: -+ case WM_THEMECHANGED: + case WM_THEMECHANGED: +#ifdef __REACTOS__ + return TOOLBAR_ThemeChanged(hwnd); +#else @@ -1186,9 +1266,9 @@ /* case WM_WININICHANGE: */ diff -pudN e:\wine\dlls\comctl32/tooltips.c e:\reactos\dll\win32\comctl32/tooltips.c ---- e:\wine\dlls\comctl32/tooltips.c 2015-05-25 19:35:13 +0100 -+++ e:\reactos\dll\win32\comctl32/tooltips.c 2015-08-27 22:05:04 +0100 -@@ -2009,7 +1996,36 @@ TOOLTIPS_NCHitTest (const TOOLTIPS_INFO +--- e:\wine\dlls\comctl32/tooltips.c 2016-05-31 18:00:02 +0100 ++++ e:\reactos\dll\win32\comctl32/tooltips.c 2016-06-05 19:39:01 +0100 +@@ -2013,7 +2013,36 @@ TOOLTIPS_NCHitTest (const TOOLTIPS_INFO static LRESULT TOOLTIPS_NotifyFormat (TOOLTIPS_INFO *infoPtr, WPARAM wParam, LPARAM lParam) { @@ -1226,16 +1306,16 @@ return 0; } diff -pudN e:\wine\dlls\comctl32/treeview.c e:\reactos\dll\win32\comctl32/treeview.c ---- e:\wine\dlls\comctl32/treeview.c 2015-07-14 15:44:34 +0100 -+++ e:\reactos\dll\win32\comctl32/treeview.c 2015-08-27 22:05:04 +0100 -@@ -2890,7 +2868,14 @@ TREEVIEW_Refresh(TREEVIEW_INFO *infoPtr, +--- e:\wine\dlls\comctl32/treeview.c 2016-05-31 18:00:02 +0100 ++++ e:\reactos\dll\win32\comctl32/treeview.c 2016-03-01 20:00:54 +0100 +@@ -2888,7 +2888,14 @@ TREEVIEW_Refresh(TREEVIEW_INFO *infoPtr, } } + // + // FIXME: This is correct, but is causes and infinite loop of WM_PAINT + // messages, resulting in continuous painting of the scroll bar in reactos. -+ // Comment out until the real bug is found ++ // Comment out until the real bug is found. CORE-4912 + // +#ifndef __REACTOS__ TREEVIEW_UpdateScrollBars(infoPtr); Modified: trunk/reactos/dll/win32/comctl32/datetime.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/datetime.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/datetime.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/datetime.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -771,10 +771,7 @@ GetTextExtentPoint32W (hdc, txt, strlenW(txt), &size); } - selection.left = 0; - selection.top = 0; - selection.right = size.cx; - selection.bottom = size.cy; + SetRect(&selection, 0, 0, size.cx, size.cy); /* center rectangle */ OffsetRect(&selection, (field->right + field->left - size.cx)/2, (field->bottom - size.cy)/2); @@ -1543,7 +1540,6 @@ DATETIME_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { DATETIME_INFO *infoPtr = ((DATETIME_INFO *)GetWindowLongPtrW (hwnd, 0)); - LRESULT ret; TRACE ("%x, %lx, %lx\n", uMsg, wParam, lParam); @@ -1559,8 +1555,7 @@ return DATETIME_SetSystemTime (infoPtr, wParam, (SYSTEMTIME *) lParam); case DTM_GETRANGE: - ret = SendMessageW (infoPtr->hMonthCal, MCM_GETRANGE, wParam, lParam); - return ret ? ret : 1; /* bug emulation */ + return SendMessageW (infoPtr->hMonthCal, MCM_GETRANGE, wParam, lParam); case DTM_SETRANGE: return SendMessageW (infoPtr->hMonthCal, MCM_SETRANGE, wParam, lParam); Modified: trunk/reactos/dll/win32/comctl32/header.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/header.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/header.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/header.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -70,6 +70,7 @@ INT iHotItem; /* index of hot item (cursor is over this item) */ INT iHotDivider; /* index of the hot divider (used while dragging an item or by HDM_SETHOTDIVIDER) */ INT iMargin; /* width of the margin that surrounds a bitmap */ + INT filter_change_timeout; /* change timeout set with HDM_SETFILTERCHANGETIMEOUT */ HIMAGELIST himl; /* handle to an image list (may be 0) */ HEADER_ITEM *items; /* pointer to array of HEADER_ITEM's */ @@ -991,7 +992,7 @@ lpItem->iImage = I_IMAGECALLBACK; } -static LRESULT +static HIMAGELIST HEADER_CreateDragImage (HEADER_INFO *infoPtr, INT iItem) { HEADER_ITEM *lpItem; @@ -1005,7 +1006,7 @@ HFONT hFont; if (iItem >= infoPtr->uNumItem) - return FALSE; + return NULL; if (!infoPtr->bRectsValid) HEADER_SetItemBounds(infoPtr); @@ -1033,12 +1034,12 @@ DeleteDC(hMemoryDC); if (hMemory == NULL) /* if anything failed */ - return FALSE; - + return NULL; + himl = ImageList_Create(width, height, ILC_COLORDDB, 1, 1); ImageList_Add(himl, hMemory, NULL); DeleteObject(hMemory); - return (LRESULT)himl; + return himl; } static LRESULT @@ -1526,6 +1527,7 @@ infoPtr->iMargin = 3*GetSystemMetrics(SM_CXEDGE); infoPtr->nNotifyFormat = SendMessageW (infoPtr->hwndNotify, WM_NOTIFYFORMAT, (WPARAM)hwnd, NF_QUERY); + infoPtr->filter_change_timeout = 1000; hdc = GetDC (0); hOldFont = SelectObject (hdc, GetStockObject (SYSTEM_FONT)); @@ -1822,7 +1824,7 @@ { if (!HEADER_SendNotifyWithHDItemT(infoPtr, HDN_BEGINDRAG, infoPtr->iMoveItem, NULL)) { - HIMAGELIST hDragItem = (HIMAGELIST)HEADER_CreateDragImage(infoPtr, infoPtr->iMoveItem); + HIMAGELIST hDragItem = HEADER_CreateDragImage(infoPtr, infoPtr->iMoveItem); if (hDragItem != NULL) { HEADER_ITEM *lpItem = &infoPtr->items[infoPtr->iMoveItem]; @@ -2040,6 +2042,14 @@ return 0; } +static INT HEADER_SetFilterChangeTimeout(HEADER_INFO *infoPtr, INT timeout) +{ + INT old_timeout = infoPtr->filter_change_timeout; + + if (timeout != 0) + infoPtr->filter_change_timeout = timeout; + return old_timeout; +} static LRESULT WINAPI HEADER_WindowProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) @@ -2053,7 +2063,7 @@ /* case HDM_CLEARFILTER: */ case HDM_CREATEDRAGIMAGE: - return HEADER_CreateDragImage (infoPtr, (INT)wParam); + return (LRESULT)HEADER_CreateDragImage (infoPtr, (INT)wParam); case HDM_DELETEITEM: return HEADER_DeleteItem (infoPtr, (INT)wParam); @@ -2098,7 +2108,8 @@ case HDM_SETBITMAPMARGIN: return HEADER_SetBitmapMargin(infoPtr, (INT)wParam); -/* case HDM_SETFILTERCHANGETIMEOUT: */ + case HDM_SETFILTERCHANGETIMEOUT: + return HEADER_SetFilterChangeTimeout(infoPtr, (INT)lParam); case HDM_SETHOTDIVIDER: return HEADER_SetHotDivider(infoPtr, wParam, lParam); Modified: trunk/reactos/dll/win32/comctl32/imagelist.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/imagelist.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/imagelist.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/imagelist.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -917,11 +917,7 @@ InternalDrag.y = y; /* draw the drag image and save the background */ - if (!ImageList_DragShowNolock(TRUE)) { - return FALSE; - } - - return TRUE; + return ImageList_DragShowNolock(TRUE); } Modified: trunk/reactos/dll/win32/comctl32/listview.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/listview.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/listview.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/listview.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -316,7 +316,7 @@ /* painting */ BOOL bIsDrawing; /* Drawing in progress */ INT nMeasureItemHeight; /* WM_MEASUREITEM result */ - BOOL bRedraw; /* WM_SETREDRAW switch */ + BOOL redraw; /* WM_SETREDRAW switch */ /* misc */ DWORD iVersion; /* CCM_[G,S]ETVERSION */ @@ -828,31 +828,30 @@ NMITEMACTIVATE nmia; LVITEMW item; - if (htInfo) { - nmia.uNewState = 0; - nmia.uOldState = 0; - nmia.uChanged = 0; - nmia.uKeyFlags = 0; - - item.mask = LVIF_PARAM|LVIF_STATE; - item.iItem = htInfo->iItem; - item.iSubItem = 0; - item.stateMask = (UINT)-1; - if (LISTVIEW_GetItemT(infoPtr, &item, TRUE)) { - nmia.lParam = item.lParam; - nmia.uOldState = item.state; - nmia.uNewState = item.state | LVIS_ACTIVATING; - nmia.uChanged = LVIF_STATE; - } - - nmia.iItem = htInfo->iItem; - nmia.iSubItem = htInfo->iSubItem; - nmia.ptAction = htInfo->pt; - - if (GetKeyState(VK_SHIFT) & 0x8000) nmia.uKeyFlags |= LVKF_SHIFT; - if (GetKeyState(VK_CONTROL) & 0x8000) nmia.uKeyFlags |= LVKF_CONTROL; - if (GetKeyState(VK_MENU) & 0x8000) nmia.uKeyFlags |= LVKF_ALT; - } + nmia.uNewState = 0; + nmia.uOldState = 0; + nmia.uChanged = 0; + nmia.uKeyFlags = 0; + + item.mask = LVIF_PARAM|LVIF_STATE; + item.iItem = htInfo->iItem; + item.iSubItem = 0; + item.stateMask = (UINT)-1; + if (LISTVIEW_GetItemT(infoPtr, &item, TRUE)) { + nmia.lParam = item.lParam; + nmia.uOldState = item.state; + nmia.uNewState = item.state | LVIS_ACTIVATING; + nmia.uChanged = LVIF_STATE; + } + + nmia.iItem = htInfo->iItem; + nmia.iSubItem = htInfo->iSubItem; + nmia.ptAction = htInfo->pt; + + if (GetKeyState(VK_SHIFT) & 0x8000) nmia.uKeyFlags |= LVKF_SHIFT; + if (GetKeyState(VK_CONTROL) & 0x8000) nmia.uKeyFlags |= LVKF_CONTROL; + if (GetKeyState(VK_MENU) & 0x8000) nmia.uKeyFlags |= LVKF_ALT; + notify_hdr(infoPtr, LVN_ITEMACTIVATE, (LPNMHDR)&nmia); } @@ -1706,7 +1705,7 @@ static inline BOOL is_redrawing(const LISTVIEW_INFO *infoPtr) { - return infoPtr->bRedraw; + return infoPtr->redraw; } static inline void LISTVIEW_InvalidateRect(const LISTVIEW_INFO *infoPtr, const RECT* rect) @@ -3123,7 +3122,11 @@ RANGE *newrng = Alloc(sizeof(RANGE)); if (!newrng) goto fail; *newrng = *((RANGE*)DPA_GetPtr(ranges->hdpa, i)); - DPA_SetPtr(clone->hdpa, i, newrng); + if (!DPA_SetPtr(clone->hdpa, i, newrng)) + { + Free(newrng); + goto fail; + } } return clone; @@ -4749,7 +4752,7 @@ - CDDS_ITEMPREPAINT - CDDS_ITEMPREPAINT|CDDS_SUBITEM | => sent n times, where n is number of subitems, - CDDS_ITEMPOSTPAINT|CDDS_SUBITEM | including item iself + CDDS_ITEMPOSTPAINT|CDDS_SUBITEM | including item itself - CDDS_ITEMPOSTPAINT other styles: @@ -4795,11 +4798,6 @@ if (cdsubitemmode & CDRF_NOTIFYSUBITEMDRAW) subitemstage = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPREPAINT, &nmlvcd); - else - { - nmlvcd.clrTextBk = infoPtr->clrTextBk; - nmlvcd.clrText = infoPtr->clrText; - } if (subitems->nItem == 0 || (cdmode & CDRF_NOTIFYITEMDRAW)) prepaint_setup(infoPtr, hdc, &nmlvcd, FALSE); @@ -5450,9 +5448,7 @@ hOldbmp = SelectObject(hdc, hbmp); hOldFont = SelectObject(hdc, infoPtr->hFont); - rcItem.left = rcItem.top = 0; - rcItem.right = size.cx; - rcItem.bottom = size.cy; + SetRect(&rcItem, 0, 0, size.cx, size.cy); FillRect(hdc, &rcItem, infoPtr->hBkBrush); pos.x = pos.y = 0; @@ -5761,10 +5757,9 @@ if (infoPtr->uView == LV_VIEW_DETAILS) return; /* now for LISTs, we have to deal with the columns to the right */ - rcScroll.left = (nItemCol + 1) * infoPtr->nItemWidth; - rcScroll.top = 0; - rcScroll.right = (infoPtr->nItemCount / nPerCol + 1) * infoPtr->nItemWidth; - rcScroll.bottom = nPerCol * infoPtr->nItemHeight; + SetRect(&rcScroll, (nItemCol + 1) * infoPtr->nItemWidth, 0, + (infoPtr->nItemCount / nPerCol + 1) * infoPtr->nItemWidth, + nPerCol * infoPtr->nItemHeight); OffsetRect(&rcScroll, Origin.x, Origin.y); if (IntersectRect(&rcScroll, &rcScroll, &infoPtr->rcList)) InvalidateRect(infoPtr->hwndSelf, &rcScroll, TRUE); @@ -8492,10 +8487,7 @@ hbm_mask = CreateBitmap(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 1, 1, NULL); ReleaseDC(infoPtr->hwndSelf, hdc_wnd); - rc.left = rc.top = 0; - rc.right = GetSystemMetrics(SM_CXSMICON); - rc.bottom = GetSystemMetrics(SM_CYSMICON); - + SetRect(&rc, 0, 0, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON)); hbm_orig = SelectObject(hdc, hbm_mask); FillRect(hdc, &rc, hbr_white); InflateRect(&rc, -2, -2); @@ -8855,10 +8847,8 @@ if (infoPtr->uView == LV_VIEW_DETAILS) { - rcErase.left = 0; - rcErase.top = nFrom * infoPtr->nItemHeight; - rcErase.right = infoPtr->nItemWidth; - rcErase.bottom = nTo * infoPtr->nItemHeight; + SetRect(&rcErase, 0, nFrom * infoPtr->nItemHeight, infoPtr->nItemWidth, + nTo * infoPtr->nItemHeight); OffsetRect(&rcErase, Origin.x, Origin.y); if (IntersectRect(&rcErase, &rcErase, &infoPtr->rcList)) LISTVIEW_InvalidateRect(infoPtr, &rcErase); @@ -9484,7 +9474,7 @@ infoPtr->nFocusedItem = -1; infoPtr->nSelectionMark = -1; infoPtr->nHotItem = -1; - infoPtr->bRedraw = TRUE; + infoPtr->redraw = TRUE; infoPtr->bNoItemMetrics = TRUE; infoPtr->bDoChangeNotify = TRUE; infoPtr->autoSpacing = TRUE; @@ -10076,7 +10066,7 @@ LISTVIEW_InvalidateRect(infoPtr, &infoPtr->marqueeRect); ReleaseCapture(); - SetRect(&infoPtr->marqueeRect, 0, 0, 0, 0); + SetRectEmpty(&infoPtr->marqueeRect); infoPtr->bMarqueeSelect = FALSE; infoPtr->bScrolling = FALSE; @@ -10345,8 +10335,8 @@ ReleaseCapture(); } - SetRect(&infoPtr->marqueeRect, 0, 0, 0, 0); - SetRect(&infoPtr->marqueeDrawRect, 0, 0, 0, 0); + SetRectEmpty(&infoPtr->marqueeRect); + SetRectEmpty(&infoPtr->marqueeDrawRect); infoPtr->bDragging = FALSE; infoPtr->bMarqueeSelect = FALSE; @@ -10967,22 +10957,21 @@ * * PARAMETER(S): * [I] infoPtr : valid pointer to the listview structure - * [I] bRedraw: state of redraw flag - * - * RETURN: - * DefWinProc return value - */ -static LRESULT LISTVIEW_SetRedraw(LISTVIEW_INFO *infoPtr, BOOL bRedraw) -{ - TRACE("infoPtr->bRedraw=%d, bRedraw=%d\n", infoPtr->bRedraw, bRedraw); - - /* we cannot use straight equality here because _any_ non-zero value is TRUE */ - if ((infoPtr->bRedraw && bRedraw) || (!infoPtr->bRedraw && !bRedraw)) return 0; - - infoPtr->bRedraw = bRedraw; - - if(!bRedraw) return 0; - + * [I] redraw: state of redraw flag + * + * RETURN: + * Zero. + */ +static LRESULT LISTVIEW_SetRedraw(LISTVIEW_INFO *infoPtr, BOOL redraw) +{ + TRACE("old=%d, new=%d\n", infoPtr->redraw, redraw); + + if (infoPtr->redraw == !!redraw) + return 0; + + if (!(infoPtr->redraw = !!redraw)) + return 0; + if (is_autoarrange(infoPtr)) LISTVIEW_Arrange(infoPtr, LVA_DEFAULT); LISTVIEW_UpdateScroll(infoPtr); Modified: trunk/reactos/dll/win32/comctl32/monthcal.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/monthcal.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/monthcal.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/monthcal.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -102,7 +102,6 @@ HFONT hFont; HFONT hBoldFont; int textHeight; - int textWidth; int height_increment; int width_increment; INT delta; /* scroll rate; # of months that the */ @@ -1140,6 +1139,18 @@ } } +static int get_localized_dayname(const MONTHCAL_INFO *infoPtr, unsigned int day, WCHAR *buff, unsigned int count) +{ + LCTYPE lctype; + + if (infoPtr->dwStyle & MCS_SHORTDAYSOFWEEK) + lctype = LOCALE_SSHORTESTDAYNAME1 + day; + else + lctype = LOCALE_SABBREVDAYNAME1 + day; + + return GetLocaleInfoW(LOCALE_USER_DEFAULT, lctype, buff, count); +} + /* paint a calendar area */ static void MONTHCAL_PaintCalendar(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps, INT calIdx) { @@ -1180,7 +1191,7 @@ i = infoPtr->firstDay; for(j = 0; j < 7; j++) { - GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SABBREVDAYNAME1 + (i+j+6)%7, buf, countof(buf)); + get_localized_dayname(infoPtr, (i + j + 6) % 7, buf, countof(buf)); DrawTextW(hdc, buf, strlenW(buf), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE); OffsetRect(&r, infoPtr->width_increment, 0); } @@ -1435,6 +1446,9 @@ if ((limits & GDTR_MIN && !MONTHCAL_ValidateDate(&range[0])) || (limits & GDTR_MAX && !MONTHCAL_ValidateDate(&range[1]))) return FALSE; + + infoPtr->rangeValid = 0; + infoPtr->minDate = infoPtr->maxDate = st_null; if (limits & GDTR_MIN) { @@ -1487,7 +1501,7 @@ { TRACE("%p\n", range); - if(!range) return FALSE; + if (!range) return 0; range[1] = infoPtr->maxDate; range[0] = infoPtr->minDate; @@ -1785,18 +1799,6 @@ /* we should preserve passed fields if hit area doesn't need them */ if (lpht->cbSize == sizeof(MCHITTESTINFO)) memcpy(&htinfo.rc, &lpht->rc, sizeof(MCHITTESTINFO) - MCHITTESTINFO_V1_SIZE); - - /* Comment in for debugging... - TRACE("%d %d wd[%d %d %d %d] d[%d %d %d %d] t[%d %d %d %d] wn[%d %d %d %d]\n", x, y, - infoPtr->wdays.left, infoPtr->wdays.right, - infoPtr->wdays.top, infoPtr->wdays.bottom, - infoPtr->days.left, infoPtr->days.right, - infoPtr->days.top, infoPtr->days.bottom, - infoPtr->todayrect.left, infoPtr->todayrect.right, - infoPtr->todayrect.top, infoPtr->todayrect.bottom, - infoPtr->weeknums.left, infoPtr->weeknums.right, - infoPtr->weeknums.top, infoPtr->weeknums.bottom); - */ /* guess in what calendar we are */ calIdx = MONTHCAL_GetCalendarFromPoint(infoPtr, &lpht->pt); @@ -2475,9 +2477,10 @@ INT xdiv, dx, dy, i, j, x, y, c_dx, c_dy; WCHAR buff[80]; TEXTMETRICW tm; - SIZE size, sz; + INT day_width; RECT client; HFONT font; + SIZE size; HDC hdc; GetClientRect(infoPtr->hwndSelf, &client); @@ -2489,28 +2492,30 @@ GetTextMetricsW(hdc, &tm); infoPtr->textHeight = tm.tmHeight + tm.tmExternalLeading + tm.tmInternalLeading; - /* find largest abbreviated day name for current locale */ - size.cx = sz.cx = 0; + /* find widest day name for current locale and font */ + day_width = 0; for (i = 0; i < 7; i++) { - if(GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SABBREVDAYNAME1 + i, - buff, countof(buff))) + SIZE sz; + + if (get_localized_dayname(infoPtr, i, buff, countof(buff))) { GetTextExtentPoint32W(hdc, buff, lstrlenW(buff), &sz); - if (sz.cx > size.cx) size.cx = sz.cx; + if (sz.cx > day_width) day_width = sz.cx; } else /* locale independent fallback on failure */ { - static const WCHAR SunW[] = { 'S','u','n',0 }; - - GetTextExtentPoint32W(hdc, SunW, lstrlenW(SunW), &size); + static const WCHAR sunW[] = { 'S','u','n' }; + GetTextExtentPoint32W(hdc, sunW, countof(sunW), &sz); + day_width = sz.cx; break; } } - infoPtr->textWidth = size.cx + 2; + day_width += 2; /* recalculate the height and width increments and offsets */ + size.cx = 0; GetTextExtentPoint32W(hdc, O0W, 2, &size); /* restore the originally selected font */ @@ -2519,7 +2524,7 @@ xdiv = (infoPtr->dwStyle & MCS_WEEKNUMBERS) ? 8 : 7; - infoPtr->width_increment = size.cx * 2 + 4; + infoPtr->width_increment = max(day_width, size.cx * 2 + 4); infoPtr->height_increment = infoPtr->textHeight; /* calculate title area */ @@ -2696,7 +2701,7 @@ infoPtr->dwStyle = lpss->styleNew; /* make room for week numbers */ - if ((lpss->styleNew ^ lpss->styleOld) & MCS_WEEKNUMBERS) + if ((lpss->styleNew ^ lpss->styleOld) & (MCS_WEEKNUMBERS | MCS_SHORTDAYSOFWEEK)) MONTHCAL_UpdateSize(infoPtr); return 0; Modified: trunk/reactos/dll/win32/comctl32/pager.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/pager.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/pager.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/pager.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -656,13 +656,8 @@ lpRect->bottom -= infoPtr->nButtonSize; } - TRACE("nPos=%d, nHeight=%d, window=%s\n", - infoPtr->nPos, infoPtr->nHeight, - wine_dbgstr_rect(&rcWindow)); - - TRACE("[%p] client rect set to %dx%d at (%d,%d) BtnState[%d,%d]\n", - infoPtr->hwndSelf, lpRect->right-lpRect->left, lpRect->bottom-lpRect->top, - lpRect->left, lpRect->top, + TRACE("nPos=%d, nHeight=%d, window=%s\n", infoPtr->nPos, infoPtr->nHeight, wine_dbgstr_rect(&rcWindow)); + TRACE("[%p] client rect set to %s BtnState[%d,%d]\n", infoPtr->hwndSelf, wine_dbgstr_rect(lpRect), infoPtr->TLbtnState, infoPtr->BRbtnState); return 0; Modified: trunk/reactos/dll/win32/comctl32/progress.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/progress.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/progress.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/progress.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -152,10 +152,7 @@ static void draw_solid_bar_H (const ProgressDrawInfo* di, int start, int end) { RECT r; - r.left = di->rect.left + start; - r.top = di->rect.top; - r.right = di->rect.left + end; - r.bottom = di->rect.bottom; + SetRect(&r, di->rect.left + start, di->rect.top, di->rect.left + end, di->rect.bottom); FillRect (di->hdc, &r, di->hbrBar); } @@ -163,10 +160,7 @@ static void draw_solid_bkg_H (const ProgressDrawInfo* di, int start, int end) { RECT r; - r.left = di->rect.left + start; - r.top = di->rect.top; - r.right = di->rect.left + end; - r.bottom = di->rect.bottom; + SetRect(&r, di->rect.left + start, di->rect.top, di->rect.left + end, di->rect.bottom); FillRect (di->hdc, &r, di->hbrBk); } @@ -174,10 +168,7 @@ static void draw_solid_bar_V (const ProgressDrawInfo* di, int start, int end) { RECT r; - r.left = di->rect.left; - r.top = di->rect.bottom - end; - r.right = di->rect.right; - r.bottom = di->rect.bottom - start; + SetRect(&r, di->rect.left, di->rect.bottom - end, di->rect.right, di->rect.bottom - start); FillRect (di->hdc, &r, di->hbrBar); } @@ -185,10 +176,7 @@ static void draw_solid_bkg_V (const ProgressDrawInfo* di, int start, int end) { RECT r; - r.left = di->rect.left; - r.top = di->rect.bottom - end; - r.right = di->rect.right; - r.bottom = di->rect.bottom - start; + SetRect(&r, di->rect.left, di->rect.bottom - end, di->rect.right, di->rect.bottom - start); FillRect (di->hdc, &r, di->hbrBk); } @@ -271,11 +259,7 @@ { RECT bgrect, r; - r.left = di->rect.left + start; - r.top = di->rect.top; - r.right = di->rect.left + end; - r.bottom = di->rect.bottom; - + SetRect(&r, di->rect.left + start, di->rect.top, di->rect.left + end, di->rect.bottom); bgrect = di->bgRect; OffsetRect(&bgrect, -bgrect.left, -bgrect.top); @@ -287,11 +271,7 @@ { RECT bgrect, r; - r.left = di->rect.left; - r.top = di->rect.bottom - end; - r.right = di->rect.right; - r.bottom = di->rect.bottom - start; - + SetRect(&r, di->rect.left, di->rect.bottom - end, di->rect.right, di->rect.bottom - start); bgrect = di->bgRect; OffsetRect(&bgrect, -bgrect.left, -bgrect.top); Modified: trunk/reactos/dll/win32/comctl32/propsheet.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/propsheet.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/propsheet.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/propsheet.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -694,11 +694,7 @@ /* * Biggest page size. */ - rcPage.left = 0; - rcPage.top = 0; - rcPage.right = psInfo->width; - rcPage.bottom = psInfo->height; - + SetRect(&rcPage, 0, 0, psInfo->width, psInfo->height); MapDialogRect(hwndDlg, &rcPage); TRACE("biggest page %s\n", wine_dbgstr_rect(&rcPage)); @@ -732,11 +728,7 @@ /* * Biggest page size. */ - rc.left = 0; - rc.top = 0; - rc.right = psInfo->width; - rc.bottom = psInfo->height; - + SetRect(&rc, 0, 0, psInfo->width, psInfo->height); MapDialogRect(hwndDlg, &rc); /* retrieve the dialog units */ @@ -807,10 +799,7 @@ RECT rc, lineRect, dialogRect; /* Biggest page size */ - rc.left = 0; - rc.top = 0; - rc.right = psInfo->width; - rc.bottom = psInfo->height; + SetRect(&rc, 0, 0, psInfo->width, psInfo->height); MapDialogRect(hwndDlg, &rc); TRACE("Biggest page %s\n", wine_dbgstr_rect(&rc)); @@ -3368,11 +3357,7 @@ GetClientRect(hwndLine, &r); MapWindowPoints(hwndLine, hwnd, (LPPOINT) &r, 2); - - rzone.left = 0; - rzone.top = 0; - rzone.right = r.right; - rzone.bottom = r.top - 1; + SetRect(&rzone, 0, 0, r.right, r.top - 1); hbr = GetSysColorBrush(COLOR_WINDOW); FillRect(hdc, &rzone, hbr); Modified: trunk/reactos/dll/win32/comctl32/rebar.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/rebar.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/rebar.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/rebar.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -790,15 +790,11 @@ /* flag if notify required and invalidate rectangle */ if (lpBand->fDraw & NTF_INVALIDATE) { - TRACE("invalidating (%d,%d)-(%d,%d)\n", - lpBand->rcBand.left, - lpBand->rcBand.top, - lpBand->rcBand.right + SEP_WIDTH, - lpBand->rcBand.bottom + SEP_WIDTH); lpBand->fDraw &= ~NTF_INVALIDATE; work = lpBand->rcBand; work.right += SEP_WIDTH; work.bottom += SEP_WIDTH; + TRACE("invalidating %s\n", wine_dbgstr_rect(&work)); InvalidateRect(infoPtr->hwndSelf, &work, TRUE); if (lpBand->hwndChild) InvalidateRect(lpBand->hwndChild, NULL, TRUE); } @@ -911,15 +907,11 @@ } if (lpBand->fDraw & NTF_INVALIDATE) { - TRACE("invalidating (%d,%d)-(%d,%d)\n", - rcBand.left, - rcBand.top, - rcBand.right + SEP_WIDTH, - rcBand.bottom + SEP_WIDTH); lpBand->fDraw &= ~NTF_INVALIDATE; work = rcBand; work.bottom += SEP_WIDTH; work.right += SEP_WIDTH; + TRACE("invalidating %s\n", wine_dbgstr_rect(&work)); InvalidateRect(infoPtr->hwndSelf, &work, TRUE); if (lpBand->hwndChild) InvalidateRect(lpBand->hwndChild, NULL, TRUE); } Modified: trunk/reactos/dll/win32/comctl32/status.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/status.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/status.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/status.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -130,60 +130,26 @@ static void STATUSBAR_DrawSizeGrip (HTHEME theme, HDC hdc, LPRECT lpRect) { - HPEN hPenFace, hPenShadow, hPenHighlight, hOldPen; - POINT pt; - INT i; + RECT rc = *lpRect; TRACE("draw size grip %s\n", wine_dbgstr_rect(lpRect)); if (theme) { - RECT gripperRect; SIZE gripperSize; - gripperRect = *lpRect; if (SUCCEEDED (GetThemePartSize (theme, hdc, SP_GRIPPER, 0, lpRect, TS_DRAW, &gripperSize))) { - gripperRect.left = gripperRect.right - gripperSize.cx; - gripperRect.top = gripperRect.bottom - gripperSize.cy; - if (SUCCEEDED (DrawThemeBackground(theme, hdc, SP_GRIPPER, 0, &gripperRect, NULL))) + rc.left = rc.right - gripperSize.cx; + rc.top = rc.bottom - gripperSize.cy; + if (SUCCEEDED (DrawThemeBackground(theme, hdc, SP_GRIPPER, 0, &rc, NULL))) return; } } - pt.x = lpRect->right - 1; - pt.y = lpRect->bottom - 1; - - hPenFace = CreatePen( PS_SOLID, 1, comctl32_color.clr3dFace); - hOldPen = SelectObject( hdc, hPenFace ); - MoveToEx (hdc, pt.x - 12, pt.y, NULL); - LineTo (hdc, pt.x, pt.y); - LineTo (hdc, pt.x, pt.y - 13); - - pt.x--; - pt.y--; - - hPenShadow = CreatePen( PS_SOLID, 1, comctl32_color.clr3dShadow); - SelectObject( hdc, hPenShadow ); - for (i = 1; i < 11; i += 4) { - MoveToEx (hdc, pt.x - i, pt.y, NULL); - LineTo (hdc, pt.x + 1, pt.y - i - 1); - - MoveToEx (hdc, pt.x - i - 1, pt.y, NULL); - LineTo (hdc, pt.x + 1, pt.y - i - 2); - } - - hPenHighlight = CreatePen( PS_SOLID, 1, comctl32_color.clr3dHilight); - SelectObject( hdc, hPenHighlight ); - for (i = 3; i < 13; i += 4) { - MoveToEx (hdc, pt.x - i, pt.y, NULL); - LineTo (hdc, pt.x + 1, pt.y - i - 1); - } - - SelectObject (hdc, hOldPen); - DeleteObject( hPenFace ); - DeleteObject( hPenShadow ); - DeleteObject( hPenHighlight ); + rc.left = max( rc.left, rc.right - GetSystemMetrics(SM_CXVSCROLL) - 1 ); + rc.top = max( rc.top, rc.bottom - GetSystemMetrics(SM_CYHSCROLL) - 1 ); + DrawFrameControl( hdc, &rc, DFC_SCROLL, DFCS_SCROLLSIZEGRIP ); } Modified: trunk/reactos/dll/win32/comctl32/syslink.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/syslink.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/syslink.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/syslink.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -29,6 +29,8 @@ #include "comctl32.h" +#include <wine/list.h> + WINE_DEFAULT_DEBUG_CHANNEL(syslink); INT WINAPI StrCmpNIW(LPCWSTR,LPCWSTR,INT); @@ -51,7 +53,7 @@ typedef struct _DOC_ITEM { - struct _DOC_ITEM *Next; /* Address to the next item */ + struct list entry; UINT nText; /* Number of characters of the text */ SL_ITEM_TYPE Type; /* type of the item */ PDOC_TEXTBLOCK Blocks; /* Array of text blocks */ @@ -76,7 +78,7 @@ HWND Self; /* The window handle for this control */ HWND Notify; /* The parent handle to receive notifications */ DWORD Style; /* Styles for this control */ - PDOC_ITEM Items; /* Address to the first document item */ + struct list Items; /* Document items list */ BOOL HasFocus; /* Whether the control has the input focus */ int MouseDownID; /* ID of the link that the mouse button first selected */ HFONT Font; /* Handle to the font for text */ @@ -112,6 +114,8 @@ Free(DocItem->u.Link.szUrl); } + Free(DocItem->Blocks); + /* we don't free Text because it's just a pointer to a character in the entire window text string */ @@ -135,22 +139,15 @@ return NULL; } - Item->Next = NULL; Item->nText = textlen; Item->Type = type; Item->Blocks = NULL; - - if(LastItem != NULL) - { - LastItem->Next = Item; - } + lstrcpynW(Item->Text, Text, textlen + 1); + if (LastItem) + list_add_after(&LastItem->entry, &Item->entry); else - { - infoPtr->Items = Item; - } - - lstrcpynW(Item->Text, Text, textlen + 1); - + list_add_tail(&infoPtr->Items, &Item->entry); + return Item; } @@ -160,17 +157,13 @@ */ static VOID SYSLINK_ClearDoc (SYSLINK_INFO *infoPtr) { - PDOC_ITEM Item, Next; - - Item = infoPtr->Items; - while(Item != NULL) - { - Next = Item->Next; + DOC_ITEM *Item, *Item2; + + LIST_FOR_EACH_ENTRY_SAFE(Item, Item2, &infoPtr->Items, DOC_ITEM, entry) + { + list_remove(&Item->entry); SYSLINK_FreeDocItem(Item); - Item = Next; - } - - infoPtr->Items = NULL; + } } /*********************************************************************** @@ -514,15 +507,12 @@ */ static PDOC_ITEM SYSLINK_GetLinkItemByIndex (const SYSLINK_INFO *infoPtr, int iLink) { - PDOC_ITEM Current = infoPtr->Items; - - while(Current != NULL) - { - if((Current->Type == slLink) && (iLink-- <= 0)) - { + DOC_ITEM *Current; + + LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry) + { + if ((Current->Type == slLink) && (iLink-- <= 0)) return Current; - } - Current = Current->Next; } return NULL; } @@ -533,10 +523,10 @@ */ static PDOC_ITEM SYSLINK_GetFocusLink (const SYSLINK_INFO *infoPtr, int *LinkId) { - PDOC_ITEM Current = infoPtr->Items; + DOC_ITEM *Current; int id = 0; - while(Current != NULL) + LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry) { if(Current->Type == slLink) { @@ -548,8 +538,8 @@ } id++; } - Current = Current->Next; - } + } + return NULL; } @@ -559,13 +549,13 @@ */ static PDOC_ITEM SYSLINK_GetNextLink (const SYSLINK_INFO *infoPtr, PDOC_ITEM Current) { - for(Current = (Current != NULL ? Current->Next : infoPtr->Items); - Current != NULL; - Current = Current->Next) - { - if(Current->Type == slLink) - { - return Current; + DOC_ITEM *Next; + + LIST_FOR_EACH_ENTRY(Next, Current ? &Current->entry : &infoPtr->Items, DOC_ITEM, entry) + { + if (Next->Type == slLink) + { + return Next; } } return NULL; @@ -577,38 +567,17 @@ */ static PDOC_ITEM SYSLINK_GetPrevLink (const SYSLINK_INFO *infoPtr, PDOC_ITEM Current) { - if(Current == NULL) - { - /* returns the last link */ - PDOC_ITEM Last = NULL; - - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) - { - if(Current->Type == slLink) - { - Last = Current; - } - } - return Last; - } - else - { - /* returns the previous link */ - PDOC_ITEM Cur, Prev = NULL; - - for(Cur = infoPtr->Items; Cur != NULL; Cur = Cur->Next) - { - if(Cur == Current) - { - break; - } - if(Cur->Type == slLink) - { - Prev = Cur; - } - } - return Prev; - } + DOC_ITEM *Prev; + + LIST_FOR_EACH_ENTRY_REV(Prev, Current ? &Current->entry : list_tail(&infoPtr->Items), DOC_ITEM, entry) + { + if (Prev->Type == slLink) + { + return Prev; + } + } + + return NULL; } /*********************************************************************** @@ -672,7 +641,7 @@ GetTextMetricsW( hdc, &tm ); LineHeight = tm.tmHeight + tm.tmExternalLeading; - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) + LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry) { int n, nBlocks; LPWSTR tx; @@ -766,10 +735,7 @@ cbl->nChars = LineLen; cbl->nSkip = SkipChars; - cbl->rc.left = x; - cbl->rc.top = y; - cbl->rc.right = x + szDim.cx; - cbl->rc.bottom = y + szDim.cy; + SetRect(&cbl->rc, x, y, x + szDim.cx, y + szDim.cy); if (cbl->rc.right > szDoc.cx) szDoc.cx = cbl->rc.right; @@ -852,7 +818,7 @@ DeleteObject(hBrush); - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) + LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry) { int n; LPWSTR tx; @@ -1016,8 +982,8 @@ static PDOC_ITEM SYSLINK_SetFocusLink (const SYSLINK_INFO *infoPtr, const DOC_ITEM *DocItem) { PDOC_ITEM Current, PrevFocus = NULL; - - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) + + LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry) { if(Current->Type == slLink) { @@ -1225,7 +1191,7 @@ PDOC_ITEM Current; int id = 0; - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) + LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry) { if(Current->Type == slLink) { @@ -1374,7 +1340,7 @@ PDOC_ITEM Current; int id = 0; - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) + LIST_FOR_EACH_ENTRY(Current, &infoPtr->Items, DOC_ITEM, entry) { if((Current->Type == slLink) && SYSLINK_PtInDocItem(Current, *pt) && (!MustBeEnabled || (Current->u.Link.state & LIS_ENABLED))) @@ -1740,6 +1706,9 @@ return 0; case WM_CREATE: + { + CREATESTRUCTW *cs = (CREATESTRUCTW*)lParam; + /* allocate memory for info struct */ infoPtr = Alloc (sizeof(SYSLINK_INFO)); if (!infoPtr) return -1; @@ -1747,11 +1716,11 @@ /* initialize the info struct */ infoPtr->Self = hwnd; - infoPtr->Notify = ((LPCREATESTRUCTW)lParam)->hwndParent; - infoPtr->Style = ((LPCREATESTRUCTW)lParam)->style; + infoPtr->Notify = cs->hwndParent; + infoPtr->Style = cs->style; infoPtr->Font = 0; infoPtr->LinkFont = 0; - infoPtr->Items = NULL; + list_init(&infoPtr->Items); infoPtr->HasFocus = FALSE; infoPtr->MouseDownID = -1; infoPtr->TextColor = comctl32_color.clrWindowText; @@ -1760,9 +1729,9 @@ infoPtr->BreakChar = ' '; infoPtr->IgnoreReturn = infoPtr->Style & LWS_IGNORERETURN; TRACE("SysLink Ctrl creation, hwnd=%p\n", hwnd); - SYSLINK_SetText(infoPtr, ((LPCREATESTRUCTW)lParam)->lpszName); + SYSLINK_SetText(infoPtr, cs->lpszName); return 0; - + } case WM_DESTROY: TRACE("SysLink Ctrl destruction, hwnd=%p\n", hwnd); SYSLINK_ClearDoc(infoPtr); Modified: trunk/reactos/dll/win32/comctl32/tab.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/tab.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/tab.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/tab.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -1229,8 +1229,7 @@ tabwidth = max(tabwidth, infoPtr->tabMinWidth); curr->rect.right = curr->rect.left + tabwidth; - TRACE("for <%s>, l,r=%d,%d\n", - debugstr_w(curr->pszText), curr->rect.left, curr->rect.right); + TRACE("for <%s>, rect %s\n", debugstr_w(curr->pszText), wine_dbgstr_rect(&curr->rect)); } /* @@ -1249,8 +1248,7 @@ curr->rect.left = 0; curItemRowCount++; - TRACE("wrapping <%s>, l,r=%d,%d\n", debugstr_w(curr->pszText), - curr->rect.left, curr->rect.right); + TRACE("wrapping <%s>, rect %s\n", debugstr_w(curr->pszText), wine_dbgstr_rect(&curr->rect)); } curr->rect.bottom = 0; @@ -1363,9 +1361,7 @@ else curItemLeftPos = curr->rect.right; - TRACE("arranging <%s>, l,r=%d,%d, row=%d\n", - debugstr_w(curr->pszText), curr->rect.left, - curr->rect.right, curr->rect.top); + TRACE("arranging <%s>, rect %s\n", debugstr_w(curr->pszText), wine_dbgstr_rect(&curr->rect)); } /* @@ -1415,9 +1411,7 @@ item->rect.left += iCount * widthDiff; item->rect.right += (iCount + 1) * widthDiff; - TRACE("adjusting 1 <%s>, l,r=%d,%d\n", - debugstr_w(item->pszText), - item->rect.left, item->rect.right); + TRACE("adjusting 1 <%s>, rect %s\n", debugstr_w(item->pszText), wine_dbgstr_rect(&item->rect)); } TAB_GetItem(infoPtr, iIndex - 1)->rect.right += remainder; @@ -1427,12 +1421,8 @@ start->rect.left = clientRect.left; start->rect.right = clientRect.right - 4; - TRACE("adjusting 2 <%s>, l,r=%d,%d\n", - debugstr_w(start->pszText), - start->rect.left, start->rect.right); - + TRACE("adjusting 2 <%s>, rect %s\n", debugstr_w(start->pszText), wine_dbgstr_rect(&start->rect)); } - iIndexStart = iIndexEnd; } @@ -1765,8 +1755,7 @@ rcImage = *drawRect; rcTemp = *drawRect; - - rcText.left = rcText.top = rcText.right = rcText.bottom = 0; + SetRectEmpty(&rcText); /* get the rectangle that the text fits in */ if (item->pszText) Modified: trunk/reactos/dll/win32/comctl32/toolbar.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/toolbar.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/toolbar.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/toolbar.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -1290,9 +1290,7 @@ GetTextExtentPoint32W (hdc, lpText, strlenW (lpText), lpSize); /* feed above size into the rectangle for DrawText */ - myrect.left = myrect.top = 0; - myrect.right = lpSize->cx; - myrect.bottom = lpSize->cy; + SetRect(&myrect, 0, 0, lpSize->cx, lpSize->cy); /* Use DrawText to get true size as drawn (less pesky "&") */ DrawTextW (hdc, lpText, -1, &myrect, DT_VCENTER | DT_SINGLELINE | @@ -7017,7 +7015,7 @@ case WM_SYSCOLORCHANGE: return TOOLBAR_SysColorChange (); - case WM_THEMECHANGED: + case WM_THEMECHANGED: #ifdef __REACTOS__ return TOOLBAR_ThemeChanged(hwnd); #else Modified: trunk/reactos/dll/win32/comctl32/tooltips.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/tooltips.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/tooltips.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/tooltips.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -498,6 +498,12 @@ buffer[0] = '\0'; } + if (!(GetWindowLongW(infoPtr->hwndSelf, GWL_STYLE) & TTS_NOPREFIX)) { + WCHAR *ptrW; + if ((ptrW = strchrW(buffer, '\t'))) + *ptrW = 0; + } + TRACE("%s\n", debugstr_w(buffer)); } Modified: trunk/reactos/dll/win32/comctl32/trackbar.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/trackbar.c?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/dll/win32/comctl32/trackbar.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/trackbar.c [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -482,16 +482,12 @@ if (flags & TBS_VERT) { offsetthumb = (infoPtr->rcThumb.bottom - infoPtr->rcThumb.top)/2; - rcTics.left = infoPtr->rcThumb.left - 2; - rcTics.right = infoPtr->rcThumb.right + 2; - rcTics.top = infoPtr->rcChannel.top + offsetthumb; - rcTics.bottom = infoPtr->rcChannel.bottom - offsetthumb - 1; + SetRect(&rcTics, infoPtr->rcThumb.left - 2, infoPtr->rcChannel.top + offsetthumb, + infoPtr->rcThumb.right + 2, infoPtr->rcChannel.bottom - offsetthumb - 1); } else { offsetthumb = (infoPtr->rcThumb.right - infoPtr->rcThumb.left)/2; - rcTics.left = infoPtr->rcChannel.left + offsetthumb; - rcTics.right = infoPtr->rcChannel.right - offsetthumb - 1; - rcTics.top = infoPtr->rcThumb.top - 2; - rcTics.bottom = infoPtr->rcThumb.bottom + 2; + SetRect(&rcTics, infoPtr->rcChannel.left + offsetthumb, infoPtr->rcThumb.top - 2, + infoPtr->rcChannel.right - offsetthumb - 1, infoPtr->rcThumb.bottom + 2); } if (flags & (TBS_TOP | TBS_LEFT)) { Modified: trunk/reactos/media/doc/README.WINE URL: http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=71540&r1=71539&r2=71540&view=diff ============================================================================== --- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original) +++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Sun Jun 5 18:52:20 2016 @@ -54,7 +54,7 @@ reactos/dll/win32/cabinet # Synced to WineStaging-1.9.4 reactos/dll/win32/clusapi # Synced to WineStaging-1.9.4 reactos/dll/win32/comcat # Synced to WineStaging-1.9.4 -reactos/dll/win32/comctl32 # Synced to WineStaging-1.9.4 +reactos/dll/win32/comctl32 # Synced to WineStaging-1.9.11 reactos/dll/win32/comdlg32 # Synced to WineStaging-1.9.4 reactos/dll/win32/compstui # Synced to WineStaging-1.9.4 reactos/dll/win32/credui # Synced to WineStaging-1.9.4