Author: akhaldi
Date: Tue Apr 22 14:04:22 2014
New Revision: 62879
URL:
http://svn.reactos.org/svn/reactos?rev=62879&view=rev
Log:
[COMCTL32]
* Sync with Wine 1.7.17.
CORE-8080
Modified:
trunk/reactos/dll/win32/comctl32/comboex.c
trunk/reactos/dll/win32/comctl32/comctl32_ros.diff
trunk/reactos/dll/win32/comctl32/commctrl.c
trunk/reactos/dll/win32/comctl32/datetime.c
trunk/reactos/dll/win32/comctl32/dpa.c
trunk/reactos/dll/win32/comctl32/dsa.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/propsheet.c
trunk/reactos/dll/win32/comctl32/rebar.c
trunk/reactos/dll/win32/comctl32/status.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/dll/win32/comctl32/treeview.c
trunk/reactos/dll/win32/comctl32/updown.c
trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/comctl32/comboex.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/comboex…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/comboex.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/comboex.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -986,7 +986,7 @@
}
/* Native version of ComboEx creates the ComboBox with DROPDOWNLIST */
- /* specified. It then creates it's own version of the EDIT control */
+ /* specified. It then creates its own version of the EDIT control */
/* and makes the ComboBox the parent. This is because a normal */
/* DROPDOWNLIST does not have an EDIT control, but we need one. */
/* We also need to place the edit control at the proper location */
@@ -1580,7 +1580,7 @@
if (lParam == NF_REQUERY) {
INT i = SendMessageW(infoPtr->hwndNotify,
WM_NOTIFYFORMAT, (WPARAM)infoPtr->hwndSelf, NF_QUERY);
- infoPtr->NtfUnicode = (i == NFR_UNICODE) ? 1 : 0;
+ infoPtr->NtfUnicode = (i == NFR_UNICODE);
}
return infoPtr->NtfUnicode ? NFR_UNICODE : NFR_ANSI;
}
Modified: trunk/reactos/dll/win32/comctl32/comctl32_ros.diff
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/comctl3…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/comctl32_ros.diff [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/comctl32_ros.diff [iso-8859-1] Tue Apr 22 14:04:22
2014
@@ -1,6 +1,6 @@
diff -prudN e:\Wine\dlls\comctl32/comctl32.spec
e:\reactos\dll\win32\comctl32/comctl32.spec
---- e:\Wine\dlls\comctl32/comctl32.spec 2011-09-16 23:22:35.964767000 +0100
-+++ e:\reactos\dll\win32\comctl32/comctl32.spec 2012-06-04 11:26:55.545450700 +0100
+--- e:\Wine\dlls\comctl32/comctl32.spec 2014-04-04 14:12:39.665980800 +0100
++++ e:\reactos\dll\win32\comctl32/comctl32.spec 2014-03-27 14:27:25.808903400 +0100
@@ -15,7 +15,7 @@
11 stdcall -noname DPA_Merge(ptr ptr long ptr ptr long)
#12 stub Cctl1632_ThunkData32
@@ -21,9 +21,9 @@
167 stdcall -noname AddMRUData(long ptr long)
169 stdcall -noname FindMRUData(long ptr long ptr)
233 stdcall -noname Str_GetPtrA(str str long)
-@@ -88,13 +88,13 @@
- 376 stdcall -noname IntlStrEqWorkerA(long str str long)
- 377 stdcall -noname IntlStrEqWorkerW(long wstr wstr long)
+@@ -89,13 +89,13 @@
+ 376 stdcall -noname -private IntlStrEqWorkerA(long str str long)
+ 377 stdcall -noname -private IntlStrEqWorkerW(long wstr wstr long)
382 stdcall -noname SmoothScrollWindow(ptr)
-383 stub -noname DoReaderMode
+383 stdcall -noname DoReaderMode(ptr)
@@ -37,31 +37,25 @@
390 stdcall -noname ImageList_SetColorTable(ptr long long ptr)
400 stdcall -ordinal CreateMRUListW(ptr)
401 stdcall -ordinal AddMRUStringW(long wstr)
-@@ -188,6 +188,7 @@
+@@ -189,5 +189,6 @@
@ stdcall PropertySheet(ptr) PropertySheetA
@ stdcall PropertySheetA(ptr)
@ stdcall PropertySheetW(ptr)
+@ stdcall RegisterClassNameW(wstr)
- @ stdcall TaskDialogIndirect(ptr ptr ptr ptr)
@ stdcall UninitializeFlatSB(long)
@ stdcall _TrackMouseEvent(ptr)
diff -prudN e:\Wine\dlls\comctl32/commctrl.c e:\reactos\dll\win32\comctl32/commctrl.c
---- e:\Wine\dlls\comctl32/commctrl.c 2011-11-24 17:55:01.900415100 +0100
-+++ e:\reactos\dll\win32\comctl32/commctrl.c 2013-01-25 14:12:39.829654200 +0100
-@@ -52,25 +52,42 @@
+--- e:\Wine\dlls\comctl32/commctrl.c 2014-04-04 14:12:39.666981500 +0100
++++ e:\reactos\dll\win32\comctl32/commctrl.c 2014-04-06 12:07:15.451048000 +0100
+@@ -52,25 +52,26 @@
* -- ICC_WIN95_CLASSES
*/
-+#define WIN32_NO_STATUS
-+#define _INC_WINDOWS
-+#define COM_NO_WINDOWS_H
-+
- #include <stdarg.h>
+-#include <stdarg.h>
-#include <string.h>
-#include <stdlib.h>
-+//#include <string.h>
-+//#include <stdlib.h>
++#include "comctl32.h"
-#include "windef.h"
-#include "winbase.h"
@@ -71,20 +65,11 @@
-#include "commctrl.h"
-#include "winerror.h"
-#include "winreg.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>
- #include "comctl32.h"
--#include "wine/debug.h"
-+#include <wine/debug.h>
WINE_DEFAULT_DEBUG_CHANNEL(commctrl);
@@ -104,7 +89,7 @@
static LRESULT WINAPI COMCTL32_SubclassProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
lParam);
-@@ -92,6 +109,67 @@ static const WCHAR strCC32SubclassInfo[]
+@@ -92,6 +93,67 @@ static const WCHAR strCC32SubclassInfo[]
'C','C','3','2','S','u','b','c','l','a','s','s','I','n','f','o',0
};
@@ -118,7 +103,7 @@
+ HANDLE hFile;
+ BOOL bRet = FALSE;
+
-+ hResInfo = FindResourceW(COMCTL32_hModule, L"WINE_MANIFEST",
RT_MANIFEST);
++ hResInfo = FindResourceW(COMCTL32_hModule, L"WINE_MANIFEST",
(LPWSTR)RT_MANIFEST);
+ if (!hResInfo)
+ return FALSE;
+
@@ -172,7 +157,7 @@
/***********************************************************************
* DllMain [Internal]
-@@ -930,6 +1008,12 @@ HRESULT WINAPI DllGetVersion (DLLVERSION
+@@ -928,6 +990,12 @@ HRESULT WINAPI DllGetVersion (DLLVERSION
HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline)
{
TRACE("(%u, %s): stub\n", bInstall, debugstr_w(cmdline));
@@ -181,11 +166,11 @@
+ ERR("create_manifest failed!\n");
+ return HRESULT_FROM_WIN32(GetLastError());
+ }
-+
++
return S_OK;
}
-@@ -1593,12 +1677,114 @@ LRESULT WINAPI SetPathWordBreakProc(HWND
+@@ -1591,12 +1659,114 @@ LRESULT WINAPI SetPathWordBreakProc(HWND
*
* Draw text with shadow.
*/
@@ -304,7 +289,7 @@
}
/***********************************************************************
-@@ -1639,3 +1825,15 @@ HRESULT WINAPI TaskDialogIndirect(const
+@@ -1637,3 +1807,15 @@ HRESULT WINAPI TaskDialogIndirect(const
if (pfVerificationFlagChecked) *pfVerificationFlagChecked = TRUE;
return S_OK;
}
@@ -322,9 +307,9 @@
+}
diff -prudN e:\Wine\dlls\comctl32/listview.c e:\reactos\dll\win32\comctl32/listview.c
---- e:\Wine\dlls\comctl32/listview.c 2013-03-16 11:54:52.374454400 +0100
-+++ e:\reactos\dll\win32\comctl32/listview.c 2013-03-17 19:12:46.522399200 +0100
-@@ -314,6 +314,7 @@ typedef struct tagLISTVIEW_INFO
+--- e:\Wine\dlls\comctl32/listview.c 2014-04-18 20:39:25.506861000 +0100
++++ e:\reactos\dll\win32\comctl32/listview.c 2014-04-22 13:09:20.504496900 +0100
+@@ -307,6 +288,7 @@ typedef struct tagLISTVIEW_INFO
COLORREF clrBk;
COLORREF clrText;
COLORREF clrTextBk;
@@ -332,7 +317,7 @@
/* font */
HFONT hDefaultFont;
-@@ -1700,8 +1701,19 @@ static inline BOOL LISTVIEW_GetItemW(con
+@@ -1693,8 +1675,19 @@ 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)
{
@@ -354,19 +339,21 @@
}
/* Listview invalidation functions: use _only_ these functions to invalidate */
-@@ -4734,7 +4746,10 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_I
+@@ -4727,7 +4720,12 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_I
if (infoPtr->uView == LV_VIEW_DETAILS && infoPtr->dwLvExStyle &
LVS_EX_GRIDLINES)
rcLabel.bottom--;
- DrawTextW(hdc, lvItem.pszText, -1, &rcLabel, uFormat);
++#ifdef __REACTOS__
+ if ((!(lvItem.state & LVIS_SELECTED) || !infoPtr->bFocus) &&
(infoPtr->dwLvExStyle & LVS_EX_TRANSPARENTSHADOWTEXT))
+ DrawShadowText(hdc, lvItem.pszText, -1, &rcLabel, uFormat, RGB(255, 255,
255), RGB(0, 0, 0), 2, 2);
+ else
++#endif
+ DrawTextW(hdc, lvItem.pszText, -1, &rcLabel, uFormat);
postpaint:
if (cdsubitemmode & CDRF_NOTIFYPOSTPAINT)
-@@ -5143,7 +5158,11 @@ enddraw:
+@@ -5136,7 +5134,11 @@ enddraw:
/* Draw marquee rectangle if appropriate */
if (infoPtr->bMarqueeSelect)
@@ -378,7 +365,7 @@
if (cdmode & CDRF_NOTIFYPOSTPAINT)
notify_postpaint(infoPtr, &nmlvcd);
-@@ -7952,6 +7971,7 @@ static BOOL LISTVIEW_SetBkColor(LISTVIEW
+@@ -7939,6 +7941,7 @@ static BOOL LISTVIEW_SetBkColor(LISTVIEW
{
TRACE("(color=%x)\n", color);
@@ -386,7 +373,27 @@
if(infoPtr->clrBk != color) {
if (infoPtr->clrBk != CLR_NONE) DeleteObject(infoPtr->hBkBrush);
infoPtr->clrBk = color;
-@@ -9362,6 +9382,7 @@ static LRESULT LISTVIEW_NCCreate(HWND hw
+@@ -8600,7 +8603,7 @@ static DWORD LISTVIEW_SetIconSpacing(LIS
+ return oldspacing;
+ }
+
+-static inline void set_icon_size(SIZE *size, HIMAGELIST himl, BOOL small)
++static inline void set_icon_size(SIZE *size, HIMAGELIST himl, BOOL is_small)
+ {
+ INT cx, cy;
+
+@@ -8611,8 +8614,8 @@ static inline void set_icon_size(SIZE *s
+ }
+ else
+ {
+- size->cx = GetSystemMetrics(small ? SM_CXSMICON : SM_CXICON);
+- size->cy = GetSystemMetrics(small ? SM_CYSMICON : SM_CYICON);
++ size->cx = GetSystemMetrics(is_small ? SM_CXSMICON : SM_CXICON);
++ size->cy = GetSystemMetrics(is_small ? SM_CYSMICON : SM_CYICON);
+ }
+ }
+
+@@ -9349,6 +9352,7 @@ static LRESULT LISTVIEW_NCCreate(HWND hw
infoPtr->clrText = CLR_DEFAULT;
infoPtr->clrTextBk = CLR_DEFAULT;
LISTVIEW_SetBkColor(infoPtr, comctl32_color.clrWindow);
@@ -394,7 +401,7 @@
/* set default values */
infoPtr->nFocusedItem = -1;
-@@ -11644,6 +11665,12 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg
+@@ -11631,6 +11635,12 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg
case WM_SYSCOLORCHANGE:
COMCTL32_RefreshSysColors();
@@ -409,41 +416,42 @@
/* case WM_TIMER: */
diff -prudN e:\Wine\dlls\comctl32/propsheet.c e:\reactos\dll\win32\comctl32/propsheet.c
---- e:\Wine\dlls\comctl32/propsheet.c 2013-03-02 14:17:59.122793000 +0100
-+++ e:\reactos\dll\win32\comctl32/propsheet.c 2013-03-16 12:21:47.383897000 +0100
-@@ -2430,6 +2430,9 @@ static void PROPSHEET_SetWizButtons(HWND
+--- e:\Wine\dlls\comctl32/propsheet.c 2014-04-04 14:12:39.676987100 +0100
++++ e:\reactos\dll\win32\comctl32/propsheet.c 2014-04-22 13:11:33.830045900 +0100
+@@ -2430,6 +2414,11 @@ static void PROPSHEET_SetWizButtons(HWND
HWND hwndBack = GetDlgItem(hwndDlg, IDC_BACK_BUTTON);
HWND hwndNext = GetDlgItem(hwndDlg, IDC_NEXT_BUTTON);
HWND hwndFinish = GetDlgItem(hwndDlg, IDC_FINISH_BUTTON);
++#ifdef __REACTOS__
+ HWND hwndCancel = GetDlgItem(hwndDlg, IDCANCEL);
+ INT iDefItem = 0;
+ HWND hwndFocus;
++#endif
TRACE("%d\n", dwFlags);
-@@ -2437,17 +2440,6 @@ static void PROPSHEET_SetWizButtons(HWND
+@@ -2437,6 +2426,7 @@ static void PROPSHEET_SetWizButtons(HWND
EnableWindow(hwndNext, FALSE);
EnableWindow(hwndFinish, FALSE);
-- /* set the default pushbutton to an enabled button */
-- if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags &
PSWIZB_DISABLEDFINISH))
-- SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0);
-- else if (dwFlags & PSWIZB_NEXT)
-- SendMessageW(hwndDlg, DM_SETDEFID, IDC_NEXT_BUTTON, 0);
-- else if (dwFlags & PSWIZB_BACK)
-- SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0);
-- else
-- SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0);
--
--
++#ifndef __REACTOS__
+ /* set the default pushbutton to an enabled button */
+ if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags &
PSWIZB_DISABLEDFINISH))
+ SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0);
+@@ -2446,6 +2436,7 @@ static void PROPSHEET_SetWizButtons(HWND
+ SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0);
+ else
+ SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0);
++#endif
+
+
if (dwFlags & PSWIZB_BACK)
- EnableWindow(hwndBack, TRUE);
-
-@@ -2477,6 +2469,22 @@ static void PROPSHEET_SetWizButtons(HWND
+@@ -2477,6 +2468,25 @@ static void PROPSHEET_SetWizButtons(HWND
}
else if (!(dwFlags & PSWIZB_DISABLEDFINISH))
EnableWindow(hwndFinish, TRUE);
+
++#ifdef __REACTOS__
+ /* set the default pushbutton to an enabled button */
+ if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags &
PSWIZB_DISABLEDFINISH))
+ iDefItem = IDC_FINISH_BUTTON;
@@ -459,13 +467,15 @@
+ hwndFocus = GetFocus();
+ if (!hwndFocus || hwndFocus == hwndCancel)
+ SetFocus(GetDlgItem(hwndDlg, iDefItem));
++#endif
++
}
/******************************************************************************
diff -prudN e:\Wine\dlls\comctl32/rebar.c e:\reactos\dll\win32\comctl32/rebar.c
---- e:\Wine\dlls\comctl32/rebar.c 2013-03-02 14:17:59.125795000 +0100
-+++ e:\reactos\dll\win32\comctl32/rebar.c 2013-09-02 13:40:15.983276500 +0100
-@@ -51,7 +51,6 @@
+--- e:\Wine\dlls\comctl32/rebar.c 2014-04-04 14:12:39.678989500 +0100
++++ e:\reactos\dll\win32\comctl32/rebar.c 2014-04-22 13:17:59.092589800 +0100
+@@ -50,7 +50,6 @@
* - WM_QUERYNEWPALETTE
* - WM_RBUTTONDOWN
* - WM_RBUTTONUP
@@ -473,21 +483,7 @@
* - WM_VKEYTOITEM
* - WM_WININICHANGE
* Notifications:
-
-@@ -2544,10 +2543,8 @@ REBAR_InsertBandT(REBAR_INFO *infoPtr, I
-
- /* initialize band */
- memset(lpBand, 0, sizeof(*lpBand));
-- lpBand->clrFore = infoPtr->clrText == CLR_NONE ? infoPtr->clrBtnText :
-- infoPtr->clrText;
-- lpBand->clrBack = infoPtr->clrBk == CLR_NONE ? infoPtr->clrBtnFace :
-- infoPtr->clrBk;
-+ lpBand->clrFore = infoPtr->clrText;
-+ lpBand->clrBack = infoPtr->clrBk;
- lpBand->iImage = -1;
-
- REBAR_CommonSetupBand(infoPtr->hwndSelf, lprbbi, lpBand);
-@@ -2927,12 +2924,20 @@ REBAR_ShowBand (REBAR_INFO *infoPtr, INT
+@@ -2912,12 +2896,22 @@ REBAR_ShowBand (REBAR_INFO *infoPtr, INT
static LRESULT
@@ -499,6 +495,7 @@
TRACE("[%s]\n", wine_dbgstr_rect(lpRect));
REBAR_SizeToHeight(infoPtr, get_rect_cy(infoPtr, lpRect));
+
++#ifdef __REACTOS__
+ /* Note that this undocumented flag is available on comctl32 v6 or later */
+ if ((flags & RBSTR_CHANGERECT) != 0)
+ {
@@ -506,10 +503,11 @@
+ GetClientRect(infoPtr->hwndSelf, &rcRebar);
+ lpRect->bottom = lpRect->top + (rcRebar.bottom - rcRebar.top);
+ }
++#endif
return TRUE;
}
-@@ -3713,7 +3718,7 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg,
+@@ -3675,7 +3669,7 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg,
return REBAR_ShowBand (infoPtr, wParam, lParam);
case RB_SIZETORECT:
@@ -518,165 +516,23 @@
/* Messages passed to parent */
-@@ -3797,6 +3802,8 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg,
+@@ -3758,6 +3752,11 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg,
case WM_SYSCOLORCHANGE:
COMCTL32_RefreshSysColors();
++#ifdef __REACTOS__
++ /* r51522 - Properly support WM_SYSCOLORCHANGE */
+ infoPtr->clrBtnText = comctl32_color.clrBtnText;
+ infoPtr->clrBtnFace = comctl32_color.clrBtnFace;
++#endif
return 0;
/* case WM_VKEYTOITEM: supported according to ControlSpy */
---- e:\Wine\dlls\comctl32/tests/v6util.h 2011-09-16 23:22:36.002769200 +0100
-+++ e:\reactos\dll\win32\comctl32/tests/v6util.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,142 +0,0 @@
--/*
-- * Utility routines for comctl32 v6 tests
-- *
-- * Copyright 2006 Mike McCormack for CodeWeavers
-- * Copyright 2007 George Gov
-- * Copyright 2009 Owen Rudge for CodeWeavers
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License as published by the Free Software Foundation; either
-- * version 2.1 of the License, or (at your option) any later version.
-- *
-- * This library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Lesser General Public License for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
-- */
--
--#define expect(expected, got) ok(got == expected, "Expected %d, got %d\n",
expected, got)
--
--#ifdef __i386__
--#define ARCH "x86"
--#elif defined __x86_64__
--#define ARCH "amd64"
--#else
--#define ARCH "none"
--#endif
--
--static const CHAR manifest_name[] = "cc6.manifest";
--
--static const CHAR manifest[] =
-- "<?xml version=\"1.0\" encoding=\"UTF-8\"
standalone=\"yes\"?>\n"
-- "<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\"
manifestVersion=\"1.0\">\n"
-- " <assemblyIdentity\n"
-- " type=\"win32\"\n"
-- " name=\"Wine.ComCtl32.Tests\"\n"
-- " version=\"1.0.0.0\"\n"
-- " processorArchitecture=\"" ARCH "\"\n"
-- " />\n"
-- "<description>Wine comctl32 test suite</description>\n"
-- "<dependency>\n"
-- " <dependentAssembly>\n"
-- " <assemblyIdentity\n"
-- " type=\"win32\"\n"
-- " name=\"microsoft.windows.common-controls\"\n"
-- " version=\"6.0.0.0\"\n"
-- " processorArchitecture=\"" ARCH "\"\n"
-- " publicKeyToken=\"6595b64144ccf1df\"\n"
-- " language=\"*\"\n"
-- " />\n"
-- "</dependentAssembly>\n"
-- "</dependency>\n"
-- "</assembly>\n";
--
--static void unload_v6_module(ULONG_PTR cookie, HANDLE hCtx)
--{
-- HANDLE hKernel32;
-- BOOL (WINAPI *pDeactivateActCtx)(DWORD, ULONG_PTR);
-- VOID (WINAPI *pReleaseActCtx)(HANDLE);
--
-- hKernel32 = GetModuleHandleA("kernel32.dll");
-- pDeactivateActCtx = (void*)GetProcAddress(hKernel32, "DeactivateActCtx");
-- pReleaseActCtx = (void*)GetProcAddress(hKernel32, "ReleaseActCtx");
-- if (!pDeactivateActCtx || !pReleaseActCtx)
-- {
-- win_skip("Activation contexts unsupported\n");
-- return;
-- }
--
-- pDeactivateActCtx(0, cookie);
-- pReleaseActCtx(hCtx);
--
-- DeleteFileA(manifest_name);
--}
--
--static BOOL load_v6_module(ULONG_PTR *pcookie, HANDLE *hCtx)
--{
-- HANDLE hKernel32;
-- HANDLE (WINAPI *pCreateActCtxA)(ACTCTXA*);
-- BOOL (WINAPI *pActivateActCtx)(HANDLE, ULONG_PTR*);
--
-- ACTCTXA ctx;
-- BOOL ret;
-- HANDLE file;
-- DWORD written;
--
-- hKernel32 = GetModuleHandleA("kernel32.dll");
-- pCreateActCtxA = (void*)GetProcAddress(hKernel32, "CreateActCtxA");
-- pActivateActCtx = (void*)GetProcAddress(hKernel32, "ActivateActCtx");
-- if (!(pCreateActCtxA && pActivateActCtx))
-- {
-- win_skip("Activation contexts unsupported. No version 6 tests
possible.\n");
-- return FALSE;
-- }
--
-- /* create manifest */
-- file = CreateFileA( manifest_name, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL
);
-- if (file != INVALID_HANDLE_VALUE)
-- {
-- ret = (WriteFile( file, manifest, sizeof(manifest)-1, &written, NULL )
&&
-- written == sizeof(manifest)-1);
-- CloseHandle( file );
-- if (!ret)
-- {
-- DeleteFileA( manifest_name );
-- skip("Failed to fill manifest file. Skipping comctl32 V6
tests.\n");
-- return FALSE;
-- }
-- else
-- trace("created %s\n", manifest_name);
-- }
-- else
-- {
-- skip("Failed to create manifest file. Skipping comctl32 V6
tests.\n");
-- return FALSE;
-- }
--
-- memset(&ctx, 0, sizeof(ctx));
-- ctx.cbSize = sizeof(ctx);
-- ctx.lpSource = manifest_name;
--
-- *hCtx = pCreateActCtxA(&ctx);
-- ok(*hCtx != 0, "Expected context handle\n");
--
-- ret = pActivateActCtx(*hCtx, pcookie);
-- expect(TRUE, ret);
--
-- if (!ret)
-- {
-- win_skip("A problem during context activation occurred.\n");
-- DeleteFileA(manifest_name);
-- }
--
-- return ret;
--}
--
--#undef expect
--#undef ARCH
diff -prudN e:\Wine\dlls\comctl32/tooltips.c e:\reactos\dll\win32\comctl32/tooltips.c
---- e:\Wine\dlls\comctl32/tooltips.c 2013-03-02 14:17:59.178196600 +0100
-+++ e:\reactos\dll\win32\comctl32/tooltips.c 2013-03-16 12:24:45.122483600 +0100
-@@ -2002,7 +2002,32 @@ TOOLTIPS_NCHitTest (const TOOLTIPS_INFO
+--- e:\Wine\dlls\comctl32/tooltips.c 2014-04-04 14:12:39.707008100 +0100
++++ e:\reactos\dll\win32\comctl32/tooltips.c 2014-04-06 12:20:33.342535700 +0100
+@@ -2007,7 +1994,32 @@ TOOLTIPS_NCHitTest (const TOOLTIPS_INFO
static LRESULT
TOOLTIPS_NotifyFormat (TOOLTIPS_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
{
@@ -710,11 +566,10 @@
return 0;
}
-
diff -prudN e:\Wine\dlls\comctl32/treeview.c e:\reactos\dll\win32\comctl32/treeview.c
---- e:\Wine\dlls\comctl32/treeview.c 2013-03-02 14:17:59.181198600 +0100
-+++ e:\reactos\dll\win32\comctl32/treeview.c 2013-03-16 12:26:03.285023200 +0100
-@@ -2921,7 +2921,12 @@ TREEVIEW_Refresh(TREEVIEW_INFO *infoPtr,
+--- e:\Wine\dlls\comctl32/treeview.c 2014-04-04 14:12:39.709009500 +0100
++++ e:\reactos\dll\win32\comctl32/treeview.c 2014-04-06 12:22:08.977839700 +0100
+@@ -2921,7 +2899,12 @@ TREEVIEW_Refresh(TREEVIEW_INFO *infoPtr,
}
}
Modified: trunk/reactos/dll/win32/comctl32/commctrl.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/commctr…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/commctrl.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/commctrl.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -929,7 +929,7 @@
* Failure: 0
*
* NOTES
- * Do not use this functions anymore. Use CreateToolbarEx instead.
+ * Do not use this function anymore. Use CreateToolbarEx instead.
*/
HWND WINAPI
@@ -1560,7 +1560,7 @@
* identifies them.
*
* Some of the codes are in the CCM_FIRST..CCM_LAST range, but there is no
- * colision with defined CCM_ codes.
+ * collision with defined CCM_ codes.
*/
BOOL COMCTL32_IsReflectedMessage(UINT uMsg)
{
@@ -1609,7 +1609,7 @@
return FALSE;
}
-static inline int IsDelimiter(WCHAR c)
+static inline BOOL IsDelimiter(WCHAR c)
{
switch(c)
{
Modified: trunk/reactos/dll/win32/comctl32/datetime.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/datetim…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/datetime.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/datetime.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -60,7 +60,7 @@
RECT checkbox; /* checkbox allowing the control to be enabled/disabled */
RECT calbutton; /* button that toggles the dropdown of the monthcal control */
BOOL bCalDepressed; /* TRUE = cal button is depressed */
- int bDropdownEnabled;
+ BOOL bDropdownEnabled;
int select;
WCHAR charsEntered[4];
int nCharsEntered;
@@ -186,7 +186,7 @@
static BOOL
DATETIME_SetSystemTime (DATETIME_INFO *infoPtr, DWORD flag, const SYSTEMTIME *systime)
{
- if (!systime) return 0;
+ if (!systime) return FALSE;
TRACE("%04d/%02d/%02d %02d:%02d:%02d\n",
systime->wYear, systime->wMonth, systime->wDay,
@@ -205,7 +205,7 @@
return FALSE;
/* Windows returns true if the date is valid but outside the limits set */
- if (DATETIME_IsDateInValidRange(infoPtr, systime) == FALSE)
+ if (!DATETIME_IsDateInValidRange(infoPtr, systime))
return TRUE;
infoPtr->dateValid = TRUE;
@@ -819,8 +819,8 @@
return DTHT_NONE;
}
-/* Returns index of a closest date field from given counting to left
- or -1 if there's no such fields at left */
+/* Returns index of the nearest preceding date field from given,
+ or -1 if none was found */
static int DATETIME_GetPrevDateField(const DATETIME_INFO *infoPtr, int i)
{
for(--i; i >= 0; i--)
@@ -834,7 +834,8 @@
DATETIME_ApplySelectedField (DATETIME_INFO *infoPtr)
{
int fieldNum = infoPtr->select & DTHT_DATEFIELD;
- int i, val=0, clamp_day=0;
+ int i, val = 0;
+ BOOL clamp_day = FALSE;
SYSTEMTIME date = infoPtr->date;
int oldyear;
@@ -858,7 +859,7 @@
date.wYear = date.wYear - (date.wYear%100) + val;
if (DATETIME_IsDateInValidRange(infoPtr, &date))
- clamp_day = 1;
+ clamp_day = TRUE;
else
date.wYear = oldyear;
@@ -869,7 +870,7 @@
date.wYear = val;
if (DATETIME_IsDateInValidRange(infoPtr, &date))
- clamp_day = 1;
+ clamp_day = TRUE;
else
date.wYear = oldyear;
@@ -877,7 +878,7 @@
case ONEDIGITMONTH:
case TWODIGITMONTH:
date.wMonth = val;
- clamp_day = 1;
+ clamp_day = TRUE;
break;
case ONEDIGITDAY:
case TWODIGITDAY:
Modified: trunk/reactos/dll/win32/comctl32/dpa.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/dpa.c?r…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/dpa.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/dpa.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -117,8 +117,10 @@
if (!hDpa)
return E_OUTOFMEMORY;
- if (!DPA_Grow (hDpa, streamData.dwItems))
+ if (!DPA_Grow (hDpa, streamData.dwItems)) {
+ DPA_Destroy (hDpa);
return E_OUTOFMEMORY;
+ }
/* load data from the stream into the dpa */
ptr = hDpa->ptrs;
@@ -162,7 +164,7 @@
* NOTES
* No more information available yet!
*/
-HRESULT WINAPI DPA_SaveStream (const HDPA hDpa, PFNDPASTREAM saveProc,
+HRESULT WINAPI DPA_SaveStream (HDPA hDpa, PFNDPASTREAM saveProc,
IStream *pStream, LPVOID pData)
{
LARGE_INTEGER position;
@@ -257,7 +259,7 @@
INT nResult, i;
INT nIndex;
- TRACE("%p %p %08x %p %p %08lx)\n",
+ TRACE("(%p %p %08x %p %p %08lx)\n",
hdpa1, hdpa2, dwFlags, pfnCompare, pfnMerge, lParam);
if (IsBadWritePtr (hdpa1, sizeof(*hdpa1)))
@@ -385,7 +387,7 @@
* Success: TRUE
* Failure: FALSE
*/
-BOOL WINAPI DPA_Destroy (const HDPA hdpa)
+BOOL WINAPI DPA_Destroy (HDPA hdpa)
{
TRACE("(%p)\n", hdpa);
@@ -455,11 +457,11 @@
*
* NOTES
* - If the 'hdpaNew' is a NULL-Pointer, a copy of the source pointer
- * array will be created and it's handle (pointer) is returned.
+ * array will be created and its handle (pointer) is returned.
* - If 'hdpa' is a NULL-Pointer, the original implementation crashes,
* this implementation just returns NULL.
*/
-HDPA WINAPI DPA_Clone (const HDPA hdpa, const HDPA hdpaNew)
+HDPA WINAPI DPA_Clone (const HDPA hdpa, HDPA hdpaNew)
{
INT nNewItems, nSize;
HDPA hdpaTemp;
@@ -516,7 +518,7 @@
* Success: pointer
* Failure: NULL
*/
-LPVOID WINAPI DPA_GetPtr (const HDPA hdpa, INT nIndex)
+LPVOID WINAPI DPA_GetPtr (HDPA hdpa, INT nIndex)
{
TRACE("(%p %d)\n", hdpa, nIndex);
@@ -580,7 +582,7 @@
* Success: index of the inserted pointer
* Failure: -1
*/
-INT WINAPI DPA_InsertPtr (const HDPA hdpa, INT i, LPVOID p)
+INT WINAPI DPA_InsertPtr (HDPA hdpa, INT i, LPVOID p)
{
TRACE("(%p %d %p)\n", hdpa, i, p);
@@ -615,7 +617,7 @@
* Success: TRUE
* Failure: FALSE
*/
-BOOL WINAPI DPA_SetPtr (const HDPA hdpa, INT i, LPVOID p)
+BOOL WINAPI DPA_SetPtr (HDPA hdpa, INT i, LPVOID p)
{
LPVOID *lpTemp;
@@ -666,7 +668,7 @@
* Success: deleted pointer
* Failure: NULL
*/
-LPVOID WINAPI DPA_DeletePtr (const HDPA hdpa, INT i)
+LPVOID WINAPI DPA_DeletePtr (HDPA hdpa, INT i)
{
LPVOID *lpDest, *lpSrc, lpTemp = NULL;
INT nSize;
@@ -719,7 +721,7 @@
* Success: TRUE
* Failure: FALSE
*/
-BOOL WINAPI DPA_DeleteAllPtrs (const HDPA hdpa)
+BOOL WINAPI DPA_DeleteAllPtrs (HDPA hdpa)
{
TRACE("(%p)\n", hdpa);
@@ -802,7 +804,7 @@
* Success: TRUE
* Failure: FALSE
*/
-BOOL WINAPI DPA_Sort (const HDPA hdpa, PFNDPACOMPARE pfnCompare, LPARAM lParam)
+BOOL WINAPI DPA_Sort (HDPA hdpa, PFNDPACOMPARE pfnCompare, LPARAM lParam)
{
if (!hdpa || !pfnCompare)
return FALSE;
@@ -834,7 +836,7 @@
* Success: index of the pointer in the array.
* Failure: -1
*/
-INT WINAPI DPA_Search (const HDPA hdpa, LPVOID pFind, INT nStart,
+INT WINAPI DPA_Search (HDPA hdpa, LPVOID pFind, INT nStart,
PFNDPACOMPARE pfnCompare, LPARAM lParam, UINT uOptions)
{
if (!hdpa || !pfnCompare || !pFind)
Modified: trunk/reactos/dll/win32/comctl32/dsa.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/dsa.c?r…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/dsa.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/dsa.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -92,7 +92,7 @@
* Success: TRUE
* Failure: FALSE
*/
-BOOL WINAPI DSA_Destroy (const HDSA hdsa)
+BOOL WINAPI DSA_Destroy (HDSA hdsa)
{
TRACE("(%p)\n", hdsa);
@@ -120,7 +120,7 @@
* Success: TRUE
* Failure: FALSE
*/
-BOOL WINAPI DSA_GetItem (const HDSA hdsa, INT nIndex, LPVOID pDest)
+BOOL WINAPI DSA_GetItem (HDSA hdsa, INT nIndex, LPVOID pDest)
{
LPVOID pSrc;
@@ -151,7 +151,7 @@
* Success: pointer to an item
* Failure: NULL
*/
-LPVOID WINAPI DSA_GetItemPtr (const HDSA hdsa, INT nIndex)
+LPVOID WINAPI DSA_GetItemPtr (HDSA hdsa, INT nIndex)
{
LPVOID pSrc;
@@ -184,7 +184,7 @@
* Success: TRUE
* Failure: FALSE
*/
-BOOL WINAPI DSA_SetItem (const HDSA hdsa, INT nIndex, LPVOID pSrc)
+BOOL WINAPI DSA_SetItem (HDSA hdsa, INT nIndex, LPVOID pSrc)
{
INT nSize, nNewItems;
LPVOID pDest, lpTemp;
@@ -240,7 +240,7 @@
* Success: position of the new item
* Failure: -1
*/
-INT WINAPI DSA_InsertItem (const HDSA hdsa, INT nIndex, LPVOID pSrc)
+INT WINAPI DSA_InsertItem (HDSA hdsa, INT nIndex, LPVOID pSrc)
{
INT nNewItems, nSize;
LPVOID lpTemp, lpDest;
@@ -301,7 +301,7 @@
* Success: number of the deleted element
* Failure: -1
*/
-INT WINAPI DSA_DeleteItem (const HDSA hdsa, INT nIndex)
+INT WINAPI DSA_DeleteItem (HDSA hdsa, INT nIndex)
{
LPVOID lpDest,lpSrc;
INT nSize;
@@ -353,7 +353,7 @@
* Success: TRUE
* Failure: FALSE
*/
-BOOL WINAPI DSA_DeleteAllItems (const HDSA hdsa)
+BOOL WINAPI DSA_DeleteAllItems (HDSA hdsa)
{
TRACE("(%p)\n", hdsa);
Modified: trunk/reactos/dll/win32/comctl32/header.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/header.…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/header.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/header.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -872,7 +872,7 @@
* Prepare callback items
* depends on NMHDDISPINFOW having same structure as NMHDDISPINFOA
* (so we handle the two cases only doing a specific cast for pszText).
- * Checks if any of the required field are callback. If there are sends a
+ * Checks if any of the required fields is a callback. If this is the case sends a
* NMHDISPINFO notify to retrieve these items. The items are stored in the
* HEADER_ITEM pszText and iImage fields. They should be freed with
* HEADER_FreeCallbackItems.
Modified: trunk/reactos/dll/win32/comctl32/imagelist.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/imageli…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/imagelist.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/imagelist.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -196,7 +196,7 @@
for (n = 0; n < count; n++)
{
- int has_alpha = 0;
+ BOOL has_alpha = FALSE;
imagelist_point_from_index( himl, pos + n, &pt );
@@ -2876,7 +2876,7 @@
himl->hbmImage = hbmNewBitmap;
}
else
- ERR("Could not create new image bitmap !\n");
+ ERR("Could not create new image bitmap!\n");
if (himl->hbmMask)
{
@@ -3147,7 +3147,7 @@
*/
UINT WINAPI
-ImageList_SetColorTable (HIMAGELIST himl, UINT uStartIndex, UINT cEntries, CONST RGBQUAD
* prgb)
+ImageList_SetColorTable(HIMAGELIST himl, UINT uStartIndex, UINT cEntries, const RGBQUAD
*prgb)
{
return SetDIBColorTable(himl->hdcImage, uStartIndex, cEntries, prgb);
}
Modified: trunk/reactos/dll/win32/comctl32/listview.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/listvie…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/listview.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/listview.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -1118,7 +1118,7 @@
* ITERATOR DOCUMENTATION
*
* The iterator functions allow for easy, and convenient iteration
- * over items of interest in the list. Typically, you create a
+ * over items of interest in the list. Typically, you create an
* iterator, use it, and destroy it, as such:
* ITERATOR i;
*
@@ -3670,8 +3670,8 @@
static BOOL LISTVIEW_KeySelection(LISTVIEW_INFO *infoPtr, INT nItem, BOOL space)
{
/* FIXME: pass in the state */
- WORD wShift = HIWORD(GetKeyState(VK_SHIFT));
- WORD wCtrl = HIWORD(GetKeyState(VK_CONTROL));
+ WORD wShift = GetKeyState(VK_SHIFT) & 0x8000;
+ WORD wCtrl = GetKeyState(VK_CONTROL) & 0x8000;
BOOL bResult = FALSE;
TRACE("nItem=%d, wShift=%d, wCtrl=%d\n", nItem, wShift, wCtrl);
@@ -4720,9 +4720,11 @@
if (infoPtr->uView == LV_VIEW_DETAILS && infoPtr->dwLvExStyle &
LVS_EX_GRIDLINES)
rcLabel.bottom--;
+#ifdef __REACTOS__
if ((!(lvItem.state & LVIS_SELECTED) || !infoPtr->bFocus) &&
(infoPtr->dwLvExStyle & LVS_EX_TRANSPARENTSHADOWTEXT))
DrawShadowText(hdc, lvItem.pszText, -1, &rcLabel, uFormat, RGB(255, 255,
255), RGB(0, 0, 0), 2, 2);
else
+#endif
DrawTextW(hdc, lvItem.pszText, -1, &rcLabel, uFormat);
postpaint:
@@ -5383,9 +5385,8 @@
*/
static BOOL LISTVIEW_DeleteAllItems(LISTVIEW_INFO *infoPtr, BOOL destroy)
{
- NMLISTVIEW nmlv;
HDPA hdpaSubItems = NULL;
- BOOL bSuppress;
+ BOOL suppress = FALSE;
ITEMHDR *hdrItem;
ITEM_INFO *lpItem;
ITEM_ID *lpID;
@@ -5400,11 +5401,15 @@
SetRectEmpty(&infoPtr->rcFocus);
/* But we are supposed to leave nHotItem as is! */
-
/* send LVN_DELETEALLITEMS notification */
- ZeroMemory(&nmlv, sizeof(NMLISTVIEW));
- nmlv.iItem = -1;
- bSuppress = notify_listview(infoPtr, LVN_DELETEALLITEMS, &nmlv);
+ if (!(infoPtr->dwStyle & LVS_OWNERDATA) || !destroy)
+ {
+ NMLISTVIEW nmlv;
+
+ memset(&nmlv, 0, sizeof(NMLISTVIEW));
+ nmlv.iItem = -1;
+ suppress = notify_listview(infoPtr, LVN_DELETEALLITEMS, &nmlv);
+ }
for (i = infoPtr->nItemCount - 1; i >= 0; i--)
{
@@ -5412,7 +5417,7 @@
{
/* send LVN_DELETEITEM notification, if not suppressed
and if it is not a virtual listview */
- if (!bSuppress) notify_deleteitem(infoPtr, i);
+ if (!suppress) notify_deleteitem(infoPtr, i);
hdpaSubItems = DPA_GetPtr(infoPtr->hdpaItems, i);
lpItem = DPA_GetPtr(hdpaSubItems, 0);
/* free id struct */
@@ -7500,6 +7505,7 @@
WCHAR szDispText[DISP_TEXT_SIZE] = { '\0' };
RECT rcBox, rcBounds, rcState, rcIcon, rcLabel, rcSearch;
POINT Origin, Position, opt;
+ BOOL is_fullrow;
LVITEMW lvItem;
ITERATOR i;
INT iItem;
@@ -7623,15 +7629,17 @@
TRACE("rcBounds=%s\n", wine_dbgstr_rect(&rcBounds));
if (!PtInRect(&rcBounds, opt)) return -1;
+ /* That's a special case - row rectangle is used as item rectangle and
+ returned flags contain all item parts. */
+ is_fullrow = (infoPtr->uView == LV_VIEW_DETAILS) &&
((infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT) || (infoPtr->dwStyle &
LVS_OWNERDRAWFIXED));
+
if (PtInRect(&rcIcon, opt))
lpht->flags |= LVHT_ONITEMICON;
else if (PtInRect(&rcLabel, opt))
lpht->flags |= LVHT_ONITEMLABEL;
else if (infoPtr->himlState && PtInRect(&rcState, opt))
lpht->flags |= LVHT_ONITEMSTATEICON;
- /* special case for LVS_EX_FULLROWSELECT */
- if (infoPtr->uView == LV_VIEW_DETAILS && infoPtr->dwLvExStyle &
LVS_EX_FULLROWSELECT &&
- !(lpht->flags & LVHT_ONITEM))
+ if (is_fullrow && !(lpht->flags & LVHT_ONITEM))
{
lpht->flags = LVHT_ONITEM | LVHT_ABOVE;
}
@@ -7639,9 +7647,7 @@
lpht->flags &= ~LVHT_NOWHERE;
TRACE("lpht->flags=0x%x\n", lpht->flags);
- if (select && !(infoPtr->uView == LV_VIEW_DETAILS &&
- ((infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT) ||
- (infoPtr->dwStyle & LVS_OWNERDRAWFIXED))))
+ if (select && !is_fullrow)
{
if (infoPtr->uView == LV_VIEW_DETAILS)
{
@@ -8247,7 +8253,7 @@
INT max_cx = 0;
HDITEMW hdi;
- TRACE("(nColumn=%d, cx=%d\n", nColumn, cx);
+ TRACE("(nColumn=%d, cx=%d)\n", nColumn, cx);
/* set column width only if in report or list mode */
if (infoPtr->uView != LV_VIEW_DETAILS && infoPtr->uView !=
LV_VIEW_LIST) return FALSE;
@@ -8631,7 +8637,7 @@
INT oldHeight = infoPtr->nItemHeight;
HIMAGELIST himlOld = 0;
- TRACE("(nType=%d, himl=%p\n", nType, himl);
+ TRACE("(nType=%d, himl=%p)\n", nType, himl);
switch (nType)
{
@@ -8786,7 +8792,7 @@
{
POINT Origin, Pt;
- TRACE("(nItem=%d, pt=%s\n", nItem, wine_dbgstr_point(pt));
+ TRACE("(nItem=%d, pt=%s)\n", nItem, wine_dbgstr_point(pt));
if (!pt || nItem < 0 || nItem >= infoPtr->nItemCount ||
!(infoPtr->uView == LV_VIEW_ICON || infoPtr->uView == LV_VIEW_SMALLICON)) return
FALSE;
Modified: trunk/reactos/dll/win32/comctl32/propsheet.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/propshe…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/propsheet.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/propsheet.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -1872,7 +1872,7 @@
if (psInfo->proppage[i].hwndPage == hwndCleanPage)
psInfo->proppage[i].isDirty = FALSE;
- /* look to see if there's any dirty pages */
+ /* look to see if there are any dirty pages */
if (psInfo->proppage[i].isDirty)
noPageDirty = FALSE;
}
@@ -2414,15 +2414,30 @@
HWND hwndBack = GetDlgItem(hwndDlg, IDC_BACK_BUTTON);
HWND hwndNext = GetDlgItem(hwndDlg, IDC_NEXT_BUTTON);
HWND hwndFinish = GetDlgItem(hwndDlg, IDC_FINISH_BUTTON);
+#ifdef __REACTOS__
HWND hwndCancel = GetDlgItem(hwndDlg, IDCANCEL);
INT iDefItem = 0;
HWND hwndFocus;
+#endif
TRACE("%d\n", dwFlags);
EnableWindow(hwndBack, FALSE);
EnableWindow(hwndNext, FALSE);
EnableWindow(hwndFinish, FALSE);
+
+#ifndef __REACTOS__
+ /* set the default pushbutton to an enabled button */
+ if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags &
PSWIZB_DISABLEDFINISH))
+ SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0);
+ else if (dwFlags & PSWIZB_NEXT)
+ SendMessageW(hwndDlg, DM_SETDEFID, IDC_NEXT_BUTTON, 0);
+ else if (dwFlags & PSWIZB_BACK)
+ SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0);
+ else
+ SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0);
+#endif
+
if (dwFlags & PSWIZB_BACK)
EnableWindow(hwndBack, TRUE);
@@ -2454,6 +2469,7 @@
else if (!(dwFlags & PSWIZB_DISABLEDFINISH))
EnableWindow(hwndFinish, TRUE);
+#ifdef __REACTOS__
/* set the default pushbutton to an enabled button */
if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags &
PSWIZB_DISABLEDFINISH))
iDefItem = IDC_FINISH_BUTTON;
@@ -2469,6 +2485,8 @@
hwndFocus = GetFocus();
if (!hwndFocus || hwndFocus == hwndCancel)
SetFocus(GetDlgItem(hwndDlg, iDefItem));
+#endif
+
}
/******************************************************************************
Modified: trunk/reactos/dll/win32/comctl32/rebar.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/rebar.c…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/rebar.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/rebar.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -50,7 +50,6 @@
* - WM_QUERYNEWPALETTE
* - WM_RBUTTONDOWN
* - WM_RBUTTONUP
- * - WM_SYSCOLORCHANGE
* - WM_VKEYTOITEM
* - WM_WININICHANGE
* Notifications:
@@ -2904,6 +2903,7 @@
TRACE("[%s]\n", wine_dbgstr_rect(lpRect));
REBAR_SizeToHeight(infoPtr, get_rect_cy(infoPtr, lpRect));
+#ifdef __REACTOS__
/* Note that this undocumented flag is available on comctl32 v6 or later */
if ((flags & RBSTR_CHANGERECT) != 0)
{
@@ -2911,6 +2911,7 @@
GetClientRect(infoPtr->hwndSelf, &rcRebar);
lpRect->bottom = lpRect->top + (rcRebar.bottom - rcRebar.top);
}
+#endif
return TRUE;
}
@@ -3378,7 +3379,7 @@
ERR("wrong response to WM_NOTIFYFORMAT (%d), assuming ANSI\n", i);
i = NFR_ANSI;
}
- infoPtr->bUnicode = (i == NFR_UNICODE) ? 1 : 0;
+ infoPtr->bUnicode = (i == NFR_UNICODE);
return (LRESULT)i;
}
return (LRESULT)((infoPtr->bUnicode) ? NFR_UNICODE : NFR_ANSI);
@@ -3751,8 +3752,11 @@
case WM_SYSCOLORCHANGE:
COMCTL32_RefreshSysColors();
+#ifdef __REACTOS__
+ /* r51522 - Properly support WM_SYSCOLORCHANGE */
infoPtr->clrBtnText = comctl32_color.clrBtnText;
infoPtr->clrBtnFace = comctl32_color.clrBtnFace;
+#endif
return 0;
/* case WM_VKEYTOITEM: supported according to ControlSpy */
Modified: trunk/reactos/dll/win32/comctl32/status.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/status.…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/status.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/status.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -687,10 +687,12 @@
if (infoPtr->hwndToolTip) {
INT nTipCount;
TTTOOLINFOW ti;
+ WCHAR wEmpty = 0;
ZeroMemory (&ti, sizeof(TTTOOLINFOW));
ti.cbSize = sizeof(TTTOOLINFOW);
ti.hwnd = infoPtr->Self;
+ ti.lpszText = &wEmpty;
nTipCount = SendMessageW (infoPtr->hwndToolTip, TTM_GETTOOLCOUNT, 0, 0);
if (nTipCount < infoPtr->numParts) {
Modified: trunk/reactos/dll/win32/comctl32/tab.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/tab.c?r…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/tab.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/tab.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -238,22 +238,29 @@
TRACE("(%p %d)\n", infoPtr, iItem);
- if (iItem < 0)
- infoPtr->iSelected = -1;
- else if (iItem >= infoPtr->uNumItem)
+ if (iItem >= (INT)infoPtr->uNumItem)
return -1;
- else {
- if (prevItem != iItem) {
- if (prevItem != -1)
- TAB_GetItem(infoPtr, prevItem)->dwState &= ~TCIS_BUTTONPRESSED;
+
+ if (prevItem != iItem) {
+ if (prevItem != -1)
+ TAB_GetItem(infoPtr, prevItem)->dwState &= ~TCIS_BUTTONPRESSED;
+
+ if (iItem >= 0)
+ {
TAB_GetItem(infoPtr, iItem)->dwState |= TCIS_BUTTONPRESSED;
-
infoPtr->iSelected = iItem;
infoPtr->uFocus = iItem;
- TAB_EnsureSelectionVisible(infoPtr);
- TAB_InvalidateTabArea(infoPtr);
}
- }
+ else
+ {
+ infoPtr->iSelected = -1;
+ infoPtr->uFocus = -1;
+ }
+
+ TAB_EnsureSelectionVisible(infoPtr);
+ TAB_InvalidateTabArea(infoPtr);
+ }
+
return prevItem;
}
Modified: trunk/reactos/dll/win32/comctl32/toolbar.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/toolbar…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/toolbar.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/toolbar.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -80,8 +80,8 @@
INT idCommand;
BYTE fsState;
BYTE fsStyle;
- BYTE bHot;
- BYTE bDropDownPressed;
+ BOOL bHot;
+ BOOL bDropDownPressed;
DWORD_PTR dwData;
INT_PTR iString;
INT nRow;
Modified: trunk/reactos/dll/win32/comctl32/tooltips.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/tooltip…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/tooltips.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/tooltips.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -613,7 +613,7 @@
TOOLTIPS_CalcTipSize (infoPtr, &size);
TRACE("size %d x %d\n", size.cx, size.cy);
- if (track_activate)
+ if (track_activate && (toolPtr->uFlags & TTF_TRACK))
{
rect.left = infoPtr->xTrackPos;
rect.top = infoPtr->yTrackPos;
@@ -1024,6 +1024,9 @@
infoPtr->hwndSelf, ti->hwnd, ti->uId,
(ti->uFlags & TTF_IDISHWND) ? " TTF_IDISHWND" : "");
+ if (ti->cbSize >= TTTOOLINFOW_V2_SIZE && !ti->lpszText &&
isW)
+ return FALSE;
+
if (infoPtr->uNumTools == 0) {
infoPtr->tools = Alloc (sizeof(TTTOOL_INFO));
toolPtr = infoPtr->tools;
@@ -1047,27 +1050,29 @@
toolPtr->rect = ti->rect;
toolPtr->hinst = ti->hinst;
- if (IS_INTRESOURCE(ti->lpszText)) {
- TRACE("add string id %x\n", LOWORD(ti->lpszText));
- toolPtr->lpszText = ti->lpszText;
- }
- else if (ti->lpszText) {
- if (TOOLTIPS_IsCallbackString(ti->lpszText, isW)) {
- TRACE("add CALLBACK!\n");
- toolPtr->lpszText = LPSTR_TEXTCALLBACKW;
- }
- else if (isW) {
- INT len = lstrlenW (ti->lpszText);
- TRACE("add text %s!\n", debugstr_w(ti->lpszText));
- toolPtr->lpszText = Alloc ((len + 1)*sizeof(WCHAR));
- strcpyW (toolPtr->lpszText, ti->lpszText);
- }
- else {
- INT len = MultiByteToWideChar(CP_ACP, 0, (LPSTR)ti->lpszText, -1, NULL, 0);
- TRACE("add text \"%s\"!\n", (LPSTR)ti->lpszText);
- toolPtr->lpszText = Alloc (len * sizeof(WCHAR));
- MultiByteToWideChar(CP_ACP, 0, (LPSTR)ti->lpszText, -1, toolPtr->lpszText,
len);
- }
+ if (ti->cbSize >= TTTOOLINFOW_V1_SIZE) {
+ if (IS_INTRESOURCE(ti->lpszText)) {
+ TRACE("add string id %x\n", LOWORD(ti->lpszText));
+ toolPtr->lpszText = ti->lpszText;
+ }
+ else if (ti->lpszText) {
+ if (TOOLTIPS_IsCallbackString(ti->lpszText, isW)) {
+ TRACE("add CALLBACK!\n");
+ toolPtr->lpszText = LPSTR_TEXTCALLBACKW;
+ }
+ else if (isW) {
+ INT len = lstrlenW (ti->lpszText);
+ TRACE("add text %s!\n", debugstr_w(ti->lpszText));
+ toolPtr->lpszText = Alloc ((len + 1)*sizeof(WCHAR));
+ strcpyW (toolPtr->lpszText, ti->lpszText);
+ }
+ else {
+ INT len = MultiByteToWideChar(CP_ACP, 0, (LPSTR)ti->lpszText, -1,
NULL, 0);
+ TRACE("add text \"%s\"!\n", (LPSTR)ti->lpszText);
+ toolPtr->lpszText = Alloc (len * sizeof(WCHAR));
+ MultiByteToWideChar(CP_ACP, 0, (LPSTR)ti->lpszText, -1,
toolPtr->lpszText, len);
+ }
+ }
}
if (ti->cbSize >= TTTOOLINFOW_V2_SIZE)
Modified: trunk/reactos/dll/win32/comctl32/trackbar.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/trackba…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/trackbar.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/trackbar.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -597,7 +597,6 @@
}
}
-#define POINT_COUNT 6
static int
TRACKBAR_FillThumb (const TRACKBAR_INFO *infoPtr, HDC hdc, HBRUSH hbrush)
{
@@ -1511,11 +1510,13 @@
hwnd, 0, 0, 0);
if (infoPtr->hwndToolTip) {
- TTTOOLINFOW ti;
+ TTTOOLINFOW ti;
+ WCHAR wEmpty = 0;
ZeroMemory (&ti, sizeof(ti));
ti.cbSize = sizeof(ti);
ti.uFlags = TTF_IDISHWND | TTF_TRACK | TTF_ABSOLUTE;
ti.hwnd = hwnd;
+ ti.lpszText = &wEmpty;
SendMessageW (infoPtr->hwndToolTip, TTM_ADDTOOLW, 0, (LPARAM)&ti);
}
Modified: trunk/reactos/dll/win32/comctl32/treeview.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/treevie…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/treeview.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/treeview.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -2926,6 +2926,62 @@
InvalidateRect(infoPtr->hwnd, NULL, TRUE);
}
+static void
+TREEVIEW_InitCheckboxes(TREEVIEW_INFO *infoPtr)
+{
+ RECT rc;
+ HBITMAP hbm, hbmOld;
+ HDC hdc, hdcScreen;
+ int nIndex;
+
+ infoPtr->himlState = ImageList_Create(16, 16, ILC_COLOR | ILC_MASK, 3, 0);
+
+ hdcScreen = GetDC(0);
+
+ hdc = CreateCompatibleDC(hdcScreen);
+ hbm = CreateCompatibleBitmap(hdcScreen, 48, 16);
+ hbmOld = SelectObject(hdc, hbm);
+
+ SetRect(&rc, 0, 0, 48, 16);
+ FillRect(hdc, &rc, (HBRUSH)(COLOR_WINDOW+1));
+
+ SetRect(&rc, 18, 2, 30, 14);
+ DrawFrameControl(hdc, &rc, DFC_BUTTON,
+ DFCS_BUTTONCHECK|DFCS_FLAT);
+
+ SetRect(&rc, 34, 2, 46, 14);
+ DrawFrameControl(hdc, &rc, DFC_BUTTON,
+ DFCS_BUTTONCHECK|DFCS_FLAT|DFCS_CHECKED);
+
+ SelectObject(hdc, hbmOld);
+ nIndex = ImageList_AddMasked(infoPtr->himlState, hbm,
+ comctl32_color.clrWindow);
+ TRACE("checkbox index %d\n", nIndex);
+
+ DeleteObject(hbm);
+ DeleteDC(hdc);
+ ReleaseDC(0, hdcScreen);
+
+ infoPtr->stateImageWidth = 16;
+ infoPtr->stateImageHeight = 16;
+}
+
+static void
+TREEVIEW_ResetImageStateIndex(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
+{
+ TREEVIEW_ITEM *child = item->firstChild;
+
+ item->state &= ~TVIS_STATEIMAGEMASK;
+ item->state |= INDEXTOSTATEIMAGEMASK(1);
+
+ while (child)
+ {
+ TREEVIEW_ITEM *next = child->nextSibling;
+ TREEVIEW_ResetImageStateIndex(infoPtr, child);
+ child = next;
+ }
+}
+
static LRESULT
TREEVIEW_Paint(TREEVIEW_INFO *infoPtr, HDC hdc_ref)
{
@@ -2934,6 +2990,17 @@
RECT rc;
TRACE("(%p %p)\n", infoPtr, hdc_ref);
+
+ if ((infoPtr->dwStyle & TVS_CHECKBOXES) && !infoPtr->himlState)
+ {
+ TREEVIEW_InitCheckboxes(infoPtr);
+ TREEVIEW_ResetImageStateIndex(infoPtr, infoPtr->root);
+
+ TREEVIEW_EndEditLabelNow(infoPtr, TRUE);
+ TREEVIEW_UpdateSubTree(infoPtr, infoPtr->root);
+ TREEVIEW_UpdateScrollBars(infoPtr);
+ TREEVIEW_Invalidate(infoPtr, NULL);
+ }
if (hdc_ref)
{
@@ -3344,7 +3411,7 @@
TREEVIEW_ITEM *nextItem, *tmpItem;
BOOL sendsNotifications;
- TRACE("(%p, %p, partial=%d, %d\n", infoPtr, item, partial, user);
+ TRACE("(%p, %p, partial=%d, %d)\n", infoPtr, item, partial, user);
if (!TREEVIEW_HasChildren(infoPtr, item))
return FALSE;
@@ -4955,46 +5022,6 @@
/* Create/Destroy *******************************************************/
-static void
-TREEVIEW_InitCheckboxes(TREEVIEW_INFO *infoPtr)
-{
- RECT rc;
- HBITMAP hbm, hbmOld;
- HDC hdc, hdcScreen;
- int nIndex;
-
- infoPtr->himlState = ImageList_Create(16, 16, ILC_COLOR | ILC_MASK, 3, 0);
-
- hdcScreen = GetDC(0);
-
- hdc = CreateCompatibleDC(hdcScreen);
- hbm = CreateCompatibleBitmap(hdcScreen, 48, 16);
- hbmOld = SelectObject(hdc, hbm);
-
- SetRect(&rc, 0, 0, 48, 16);
- FillRect(hdc, &rc, (HBRUSH)(COLOR_WINDOW+1));
-
- SetRect(&rc, 18, 2, 30, 14);
- DrawFrameControl(hdc, &rc, DFC_BUTTON,
- DFCS_BUTTONCHECK|DFCS_FLAT);
-
- SetRect(&rc, 34, 2, 46, 14);
- DrawFrameControl(hdc, &rc, DFC_BUTTON,
- DFCS_BUTTONCHECK|DFCS_FLAT|DFCS_CHECKED);
-
- SelectObject(hdc, hbmOld);
- nIndex = ImageList_AddMasked(infoPtr->himlState, hbm,
- comctl32_color.clrWindow);
- TRACE("checkbox index %d\n", nIndex);
-
- DeleteObject(hbm);
- DeleteDC(hdc);
- ReleaseDC(0, hdcScreen);
-
- infoPtr->stateImageWidth = 16;
- infoPtr->stateImageHeight = 16;
-}
-
static LRESULT
TREEVIEW_Create(HWND hwnd, const CREATESTRUCTW *lpcs)
{
@@ -5092,9 +5119,6 @@
infoPtr->hwndToolTip = CreateWindowExW(0, TOOLTIPS_CLASSW, NULL, WS_POPUP,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
hwnd, 0, 0, 0);
-
- if (infoPtr->dwStyle & TVS_CHECKBOXES)
- TREEVIEW_InitCheckboxes(infoPtr);
/* Make sure actual scrollbar state is consistent with uInternalStatus */
ShowScrollBar(hwnd, SB_VERT, FALSE);
@@ -5434,21 +5458,6 @@
return 0;
}
-static void TREEVIEW_ResetImageStateIndex(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
-{
- TREEVIEW_ITEM *child = item->firstChild;
-
- item->state &= ~TVIS_STATEIMAGEMASK;
- item->state |= INDEXTOSTATEIMAGEMASK(1);
-
- while (child)
- {
- TREEVIEW_ITEM *next = child->nextSibling;
- TREEVIEW_ResetImageStateIndex(infoPtr, child);
- child = next;
- }
-}
-
static LRESULT
TREEVIEW_StyleChanged(TREEVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
{
@@ -5492,6 +5501,7 @@
infoPtr->dwStyle = dwNewStyle;
}
+ TREEVIEW_EndEditLabelNow(infoPtr, TRUE);
TREEVIEW_UpdateSubTree(infoPtr, infoPtr->root);
TREEVIEW_UpdateScrollBars(infoPtr);
TREEVIEW_Invalidate(infoPtr, NULL);
Modified: trunk/reactos/dll/win32/comctl32/updown.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/updown.…
==============================================================================
--- trunk/reactos/dll/win32/comctl32/updown.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/updown.c [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -135,11 +135,16 @@
(infoPtr->MaxVal < infoPtr->MinVal ? -1 : 1) *
(infoPtr->MinVal - infoPtr->MaxVal) +
(delta < 0 ? 1 : -1);
- } else return FALSE;
+ } else if ((infoPtr->MaxVal > infoPtr->MinVal &&
infoPtr->CurVal+delta > infoPtr->MaxVal)
+ || (infoPtr->MaxVal < infoPtr->MinVal &&
infoPtr->CurVal+delta < infoPtr->MaxVal)) {
+ delta = infoPtr->MaxVal - infoPtr->CurVal;
+ } else {
+ delta = infoPtr->MinVal - infoPtr->CurVal;
+ }
}
infoPtr->CurVal += delta;
- return TRUE;
+ return delta != 0;
}
/***********************************************************************
@@ -334,7 +339,7 @@
/* if nothing changed exit earlier */
GetWindowTextW(infoPtr->Buddy, txt_old, sizeof(txt_old)/sizeof(WCHAR));
- if (lstrcmpiW(txt_old, txt) == 0) return 0;
+ if (lstrcmpiW(txt_old, txt) == 0) return FALSE;
return SetWindowTextW(infoPtr->Buddy, txt);
}
@@ -462,6 +467,51 @@
return 0;
}
+static int UPDOWN_GetPos(UPDOWN_INFO *infoPtr, BOOL *err)
+{
+ BOOL succ = UPDOWN_GetBuddyInt(infoPtr);
+ int val = infoPtr->CurVal;
+
+ if(!UPDOWN_InBounds(infoPtr, val)) {
+ if((infoPtr->MinVal < infoPtr->MaxVal && val <
infoPtr->MinVal)
+ || (infoPtr->MinVal > infoPtr->MaxVal && val >
infoPtr->MinVal))
+ val = infoPtr->MinVal;
+ else
+ val = infoPtr->MaxVal;
+
+ succ = FALSE;
+ }
+
+ if(err) *err = !succ;
+ return val;
+}
+
+static int UPDOWN_SetPos(UPDOWN_INFO *infoPtr, int pos)
+{
+ int ret = infoPtr->CurVal;
+
+ if(!UPDOWN_InBounds(infoPtr, pos)) {
+ if((infoPtr->MinVal < infoPtr->MaxVal && pos <
infoPtr->MinVal)
+ || (infoPtr->MinVal > infoPtr->MaxVal && pos >
infoPtr->MinVal))
+ pos = infoPtr->MinVal;
+ else
+ pos = infoPtr->MaxVal;
+ }
+
+ infoPtr->CurVal = pos;
+ UPDOWN_SetBuddyInt(infoPtr);
+
+ if(!UPDOWN_InBounds(infoPtr, ret)) {
+ if((infoPtr->MinVal < infoPtr->MaxVal && ret <
infoPtr->MinVal)
+ || (infoPtr->MinVal > infoPtr->MaxVal && ret >
infoPtr->MinVal))
+ ret = infoPtr->MinVal;
+ else
+ ret = infoPtr->MaxVal;
+ }
+ return ret;
+}
+
+
/***********************************************************************
* UPDOWN_SetRange
*
@@ -1044,22 +1094,15 @@
case UDM_GETPOS:
{
- BOOL ret = UPDOWN_GetBuddyInt (infoPtr);
- return MAKELONG(infoPtr->CurVal, ret ? 0 : 1);
+ BOOL err;
+ int pos;
+
+ pos = UPDOWN_GetPos(infoPtr, &err);
+ return MAKELONG(pos, err);
}
case UDM_SETPOS:
{
- int temp = (short)LOWORD(lParam);
-
- TRACE("UpDown Ctrl new value(%d), hwnd=%p\n", temp, hwnd);
- if(!UPDOWN_InBounds(infoPtr, temp)) {
- if(temp < infoPtr->MinVal) temp = infoPtr->MinVal;
- if(temp > infoPtr->MaxVal) temp = infoPtr->MaxVal;
- }
- wParam = infoPtr->CurVal;
- infoPtr->CurVal = temp;
- UPDOWN_SetBuddyInt (infoPtr);
- return wParam; /* return prev value */
+ return UPDOWN_SetPos(infoPtr, (short)LOWORD(lParam));
}
case UDM_GETRANGE:
return MAKELONG(infoPtr->MaxVal, infoPtr->MinVal);
@@ -1083,22 +1126,11 @@
case UDM_GETPOS32:
{
- BOOL ret = UPDOWN_GetBuddyInt (infoPtr);
- if ((LPBOOL)lParam) *((LPBOOL)lParam) = !ret;
- return infoPtr->CurVal;
+ return UPDOWN_GetPos(infoPtr, (BOOL*)lParam);
}
case UDM_SETPOS32:
{
- int temp;
-
- if(!UPDOWN_InBounds(infoPtr, (int)lParam)) {
- if((int)lParam < infoPtr->MinVal) lParam = infoPtr->MinVal;
- if((int)lParam > infoPtr->MaxVal) lParam = infoPtr->MaxVal;
- }
- temp = infoPtr->CurVal; /* save prev value */
- infoPtr->CurVal = (int)lParam; /* set the new value */
- UPDOWN_SetBuddyInt (infoPtr);
- return temp; /* return prev value */
+ return UPDOWN_SetPos(infoPtr, (int)lParam);
}
case UDM_GETUNICODEFORMAT:
/* we lie a bit here, we're always using Unicode internally */
Modified: trunk/reactos/media/doc/README.WINE
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=…
==============================================================================
--- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original)
+++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Tue Apr 22 14:04:22 2014
@@ -60,7 +60,7 @@
reactos/dll/win32/cabinet # Synced to Wine-1.7.17
reactos/dll/win32/clusapi # Synced to Wine-1.7.1
reactos/dll/win32/comcat # Synced to Wine-1.7.1
-reactos/dll/win32/comctl32 # Synced to Wine 1.7.1
+reactos/dll/win32/comctl32 # Synced to Wine 1.7.17
reactos/dll/win32/comdlg32 # Synced to Wine 1.7.1
reactos/dll/win32/compstui # Synced to Wine-1.7.1
reactos/dll/win32/credui # Synced to Wine-1.7.1