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


Reply via email to