ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
September 2013
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
16 participants
554 discussions
Start a n
N
ew thread
[janderwald] 60126: [AUDIO] - Unmap audio buffers after completion
by janderwald@svn.reactos.org
Author: janderwald Date: Sun Sep 15 10:30:14 2013 New Revision: 60126 URL:
http://svn.reactos.org/svn/reactos?rev=60126&view=rev
Log: [AUDIO] - Unmap audio buffers after completion Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.cpp Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
============================================================================== --- trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.cpp [iso-8859-1] (original) +++ trunk/reactos/drivers/wdm/audio/backpln/portcls/irpstream.cpp [iso-8859-1] Sun Sep 15 10:30:14 2013 @@ -47,14 +47,10 @@ ULONG m_MaxFrameSize; ULONG m_Alignment; ULONG m_TagSupportEnabled; - ULONG m_NumDataAvailable; + volatile ULONG m_NumDataAvailable; volatile ULONG m_CurrentOffset; - - PIRP m_Irp; - - - LONG m_Ref; - + volatile PIRP m_Irp; + volatile LONG m_Ref; }; typedef struct @@ -367,6 +363,8 @@ PKSSTREAM_DATA StreamData; ULONG Size; PIO_STACK_LOCATION IoStack; + ULONG Index; + PMDL Mdl; // sanity check ASSERT(m_Irp); @@ -447,6 +445,13 @@ // done return; + } + + Mdl = m_Irp->MdlAddress; + for(Index = 0; Index < StreamData->StreamHeaderCount; Index++) + { + MmUnmapLockedPages(StreamData->Data[Index], Mdl); + Mdl = Mdl->Next; } // free stream data array
11 years, 3 months
1
0
0
0
[ekohl] 60125: [NETAPI32] NetLocalGroupGetMembers: - Do not try to add the size of a domain name to the return buffer if the domain index is negative. - Do not try to copy a domain name to the retu...
by ekohl@svn.reactos.org
Author: ekohl Date: Sun Sep 15 09:11:32 2013 New Revision: 60125 URL:
http://svn.reactos.org/svn/reactos?rev=60125&view=rev
Log: [NETAPI32] NetLocalGroupGetMembers: - Do not try to add the size of a domain name to the return buffer if the domain index is negative. - Do not try to copy a domain name to the return buffer if the domain index is negative. - Move the write pointer after writing the domain name. Modified: trunk/reactos/dll/win32/netapi32/local_group.c Modified: trunk/reactos/dll/win32/netapi32/local_group.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/netapi32/local_g…
============================================================================== --- trunk/reactos/dll/win32/netapi32/local_group.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/netapi32/local_group.c [iso-8859-1] Sun Sep 15 09:11:32 2013 @@ -1528,14 +1528,16 @@ case 2: Size += sizeof(LOCALGROUP_MEMBERS_INFO_2) + RtlLengthSid(EnumContext->Sids[i]) + - EnumContext->Names[i].Name.Length + sizeof(WCHAR) + - EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); + EnumContext->Names[i].Name.Length + sizeof(WCHAR); + if (EnumContext->Names[i].DomainIndex >= 0) + Size += EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); break; case 3: Size += sizeof(LOCALGROUP_MEMBERS_INFO_3) + - EnumContext->Names[i].Name.Length + sizeof(WCHAR) + - EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); + EnumContext->Names[i].Name.Length + sizeof(WCHAR); + if (EnumContext->Names[i].DomainIndex >= 0) + Size += EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); break; default: @@ -1609,6 +1611,7 @@ memcpy(MembersInfo1->lgrmi1_name, EnumContext->Names[i].Name.Buffer, EnumContext->Names[i].Name.Length); + Ptr = (PVOID)((ULONG_PTR)Ptr + EnumContext->Names[i].Name.Length + sizeof(WCHAR)); MembersInfo1++; break; @@ -1625,37 +1628,47 @@ MembersInfo2->lgrmi2_sidusage = EnumContext->Names[i].Use; MembersInfo2->lgrmi2_domainandname = (LPWSTR)Ptr; - memcpy(MembersInfo2->lgrmi2_domainandname, - EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Buffer, - EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length); - - Ptr = (PVOID)((ULONG_PTR)Ptr + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length); - - *((LPWSTR)Ptr) = L'\\'; - - Ptr = (PVOID)((ULONG_PTR)Ptr + sizeof(WCHAR)); + + if (EnumContext->Names[i].DomainIndex >= 0) + { + memcpy(MembersInfo2->lgrmi2_domainandname, + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Buffer, + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length); + + Ptr = (PVOID)((ULONG_PTR)Ptr + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length); + + *((LPWSTR)Ptr) = L'\\'; + + Ptr = (PVOID)((ULONG_PTR)Ptr + sizeof(WCHAR)); + } memcpy(Ptr, EnumContext->Names[i].Name.Buffer, EnumContext->Names[i].Name.Length); + Ptr = (PVOID)((ULONG_PTR)Ptr + EnumContext->Names[i].Name.Length + sizeof(WCHAR)); MembersInfo2++; break; case 3: MembersInfo3->lgrmi3_domainandname = (PSID)Ptr; - memcpy(MembersInfo2->lgrmi2_domainandname, - EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Buffer, - EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length); - - Ptr = (PVOID)((ULONG_PTR)Ptr + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length); - - *((LPWSTR)Ptr) = L'\\'; - - Ptr = (PVOID)((ULONG_PTR)Ptr + sizeof(WCHAR)); + + if (EnumContext->Names[i].DomainIndex >= 0) + { + memcpy(MembersInfo2->lgrmi2_domainandname, + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Buffer, + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length); + + Ptr = (PVOID)((ULONG_PTR)Ptr + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length); + + *((LPWSTR)Ptr) = L'\\'; + + Ptr = (PVOID)((ULONG_PTR)Ptr + sizeof(WCHAR)); + } memcpy(Ptr, EnumContext->Names[i].Name.Buffer, EnumContext->Names[i].Name.Length); + Ptr = (PVOID)((ULONG_PTR)Ptr + EnumContext->Names[i].Name.Length + sizeof(WCHAR)); MembersInfo3++; break; }
11 years, 3 months
1
0
0
0
[ekohl] 60124: [NETAPI32] NetLocalGroupGetMembers: Do not overwrite the MembersInfo struct.
by ekohl@svn.reactos.org
Author: ekohl Date: Sun Sep 15 07:51:27 2013 New Revision: 60124 URL:
http://svn.reactos.org/svn/reactos?rev=60124&view=rev
Log: [NETAPI32] NetLocalGroupGetMembers: Do not overwrite the MembersInfo struct. Modified: trunk/reactos/dll/win32/netapi32/local_group.c Modified: trunk/reactos/dll/win32/netapi32/local_group.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/netapi32/local_g…
============================================================================== --- trunk/reactos/dll/win32/netapi32/local_group.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/netapi32/local_group.c [iso-8859-1] Sun Sep 15 07:51:27 2013 @@ -1587,6 +1587,7 @@ EnumContext->Sids[i], SidLength); Ptr = (PVOID)((ULONG_PTR)Ptr + SidLength); + MembersInfo0++; break; case 1: @@ -1608,6 +1609,7 @@ memcpy(MembersInfo1->lgrmi1_name, EnumContext->Names[i].Name.Buffer, EnumContext->Names[i].Name.Length); + MembersInfo1++; break; case 2: @@ -1636,6 +1638,7 @@ memcpy(Ptr, EnumContext->Names[i].Name.Buffer, EnumContext->Names[i].Name.Length); + MembersInfo2++; break; case 3: @@ -1653,6 +1656,7 @@ memcpy(Ptr, EnumContext->Names[i].Name.Buffer, EnumContext->Names[i].Name.Length); + MembersInfo3++; break; } }
11 years, 3 months
1
0
0
0
[tfaber] 60123: [QMGRPRXY] - Add missing rgs file
by tfaber@svn.reactos.org
Author: tfaber Date: Sat Sep 14 23:10:27 2013 New Revision: 60123 URL:
http://svn.reactos.org/svn/reactos?rev=60123&view=rev
Log: [QMGRPRXY] - Add missing rgs file Added: trunk/reactos/dll/win32/qmgrprxy/qmgrprxy.rgs (with props) Modified: trunk/reactos/dll/win32/qmgrprxy/qmgrprxy.rc Modified: trunk/reactos/dll/win32/qmgrprxy/qmgrprxy.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/qmgrprxy/qmgrprx…
============================================================================== --- trunk/reactos/dll/win32/qmgrprxy/qmgrprxy.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/qmgrprxy/qmgrprxy.rc [iso-8859-1] Sat Sep 14 23:10:27 2013 @@ -2,3 +2,6 @@ #define WINE_FILENAME_STR "qmgrprxy.dll" #include <wine/wine_common_ver.rc> + +/* @makedep: qmgrprxy.rgs */ +1 WINE_REGISTRY qmgrprxy.rgs Added: trunk/reactos/dll/win32/qmgrprxy/qmgrprxy.rgs URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/qmgrprxy/qmgrprx…
============================================================================== --- trunk/reactos/dll/win32/qmgrprxy/qmgrprxy.rgs (added) +++ trunk/reactos/dll/win32/qmgrprxy/qmgrprxy.rgs [iso-8859-1] Sat Sep 14 23:10:27 2013 @@ -0,0 +1,53 @@ +HKCR +{ + NoRemove Interface + { + '{01B7BD23-FB88-4A77-8490-5891D3E4653A}' = s 'IBackgroundCopyFile' + { + NumMethods = s 6 + ProxyStubClsid32 = s '{5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}' + } + '{CA51E165-C365-424C-8D41-24AAA4FF3C40}' = s 'IEnumBackgroundCopyFiles' + { + NumMethods = s 8 + ProxyStubClsid32 = s '{5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}' + } + '{19C613A0-FCB8-4F28-81AE-897C3D078F81}' = s 'IBackgroundCopyError' + { + NumMethods = s 8 + ProxyStubClsid32 = s '{5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}' + } + '{37668D37-507E-4160-9316-26306D150B12}' = s 'IBackgroundCopyJob' + { + NumMethods = s 35 + ProxyStubClsid32 = s '{5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}' + } + '{1AF4F612-3B71-466F-8F58-7B6F73AC57AD}' = s 'IEnumBackgroundCopyJobs' + { + NumMethods = s 8 + ProxyStubClsid32 = s '{5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}' + } + '{97EA99C7-0186-4AD4-8DF9-C5B4E0ED6B22}' = s 'IBackgroundCopyCallback' + { + NumMethods = s 6 + ProxyStubClsid32 = s '{5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}' + } + '{5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}' = s 'IBackgroundCopyManager' + { + NumMethods = s 7 + ProxyStubClsid32 = s '{5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}' + } + '{54B50739-686F-45EB-9DFF-D6A9A0FAA9AF}' = s 'IBackgroundCopyJob2' + { + NumMethods = s 43 + ProxyStubClsid32 = s '{5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}' + } + } + NoRemove CLSID + { + '{5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}' = s 'PSFactoryBuffer' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Both' } + } + } +} Propchange: trunk/reactos/dll/win32/qmgrprxy/qmgrprxy.rgs ------------------------------------------------------------------------------ svn:eol-style = native
11 years, 3 months
1
0
0
0
[akhaldi] 60122: [CRYPT32] * Move resource files to the lang folder.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Sep 14 22:00:41 2013 New Revision: 60122 URL:
http://svn.reactos.org/svn/reactos?rev=60122&view=rev
Log: [CRYPT32] * Move resource files to the lang folder. Added: trunk/reactos/dll/win32/crypt32/lang/ (with props) trunk/reactos/dll/win32/crypt32/lang/crypt32_De.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_De.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_En.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_En.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_Fr.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_Fr.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_He.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_He.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_Hu.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_Hu.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_It.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_It.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_Ko.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_Ko.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_Lt.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_Lt.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_Nl.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_Nl.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_No.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_No.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_Pl.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_Pl.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_Pt.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_Pt.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_Ro.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_Ro.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_Sv.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_Sv.rc trunk/reactos/dll/win32/crypt32/lang/crypt32_Uk.rc - copied unchanged from r60121, trunk/reactos/dll/win32/crypt32/crypt32_Uk.rc Removed: trunk/reactos/dll/win32/crypt32/crypt32_De.rc trunk/reactos/dll/win32/crypt32/crypt32_En.rc trunk/reactos/dll/win32/crypt32/crypt32_Fr.rc trunk/reactos/dll/win32/crypt32/crypt32_He.rc trunk/reactos/dll/win32/crypt32/crypt32_Hu.rc trunk/reactos/dll/win32/crypt32/crypt32_It.rc trunk/reactos/dll/win32/crypt32/crypt32_Ko.rc trunk/reactos/dll/win32/crypt32/crypt32_Lt.rc trunk/reactos/dll/win32/crypt32/crypt32_Nl.rc trunk/reactos/dll/win32/crypt32/crypt32_No.rc trunk/reactos/dll/win32/crypt32/crypt32_Pl.rc trunk/reactos/dll/win32/crypt32/crypt32_Pt.rc trunk/reactos/dll/win32/crypt32/crypt32_Ro.rc trunk/reactos/dll/win32/crypt32/crypt32_Sv.rc trunk/reactos/dll/win32/crypt32/crypt32_Uk.rc Modified: trunk/reactos/dll/win32/crypt32/crypt32.rc [This mail would be too long, it was shortened to contain the URLs only.] Modified: trunk/reactos/dll/win32/crypt32/crypt32.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32.…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_De.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_En.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_Fr.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_He.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_Hu.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_It.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_Ko.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_Lt.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_Nl.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_No.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_Pl.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_Pt.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_Ro.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_Sv.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
Removed: trunk/reactos/dll/win32/crypt32/crypt32_Uk.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crypt32/crypt32_…
11 years, 3 months
1
0
0
0
[akhaldi] 60121: [CREDUI_WINETEST] * Sync with Wine 1.7.1.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Sep 14 21:49:34 2013 New Revision: 60121 URL:
http://svn.reactos.org/svn/reactos?rev=60121&view=rev
Log: [CREDUI_WINETEST] * Sync with Wine 1.7.1. Modified: trunk/rostests/winetests/credui/CMakeLists.txt trunk/rostests/winetests/credui/testlist.c Modified: trunk/rostests/winetests/credui/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/credui/CMakeLis…
============================================================================== --- trunk/rostests/winetests/credui/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/winetests/credui/CMakeLists.txt [iso-8859-1] Sat Sep 14 21:49:34 2013 @@ -1,10 +1,6 @@ -add_definitions( - -D__ROS_LONG64__ - -D_DLL -D__USE_CRTIMP) - +add_definitions(-D__ROS_LONG64__) add_executable(credui_winetest credui.c testlist.c) -target_link_libraries(credui_winetest wine) set_module_type(credui_winetest win32cui) -add_importlibs(credui_winetest credui msvcrt kernel32 ntdll) +add_importlibs(credui_winetest credui msvcrt kernel32) add_cd_file(TARGET credui_winetest DESTINATION reactos/bin FOR all) Modified: trunk/rostests/winetests/credui/testlist.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/credui/testlist…
============================================================================== --- trunk/rostests/winetests/credui/testlist.c [iso-8859-1] (original) +++ trunk/rostests/winetests/credui/testlist.c [iso-8859-1] Sat Sep 14 21:49:34 2013 @@ -1,10 +1,7 @@ /* Automatically generated file; DO NOT EDIT!! */ -#define WIN32_LEAN_AND_MEAN -#include <windows.h> - #define STANDALONE -#include "wine/test.h" +#include <wine/test.h> extern void func_credui(void);
11 years, 3 months
1
0
0
0
[akhaldi] 60120: [CREDUI] * Sync with Wine 1.7.1.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Sep 14 21:48:59 2013 New Revision: 60120 URL:
http://svn.reactos.org/svn/reactos?rev=60120&view=rev
Log: [CREDUI] * Sync with Wine 1.7.1. Modified: trunk/reactos/dll/win32/credui/CMakeLists.txt trunk/reactos/dll/win32/credui/credui.spec trunk/reactos/dll/win32/credui/credui_main.c trunk/reactos/media/doc/README.WINE Modified: trunk/reactos/dll/win32/credui/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/credui/CMakeList…
============================================================================== --- trunk/reactos/dll/win32/credui/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/win32/credui/CMakeLists.txt [iso-8859-1] Sat Sep 14 21:48:59 2013 @@ -1,15 +1,15 @@ add_definitions(-D__WINESRC__) include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + spec2def(credui.dll credui.spec ADD_IMPORTLIB) list(APPEND SOURCE credui_main.c - credui.rc ${CMAKE_CURRENT_BINARY_DIR}/credui_stubs.c ${CMAKE_CURRENT_BINARY_DIR}/credui.def) -add_library(credui SHARED ${SOURCE}) +add_library(credui SHARED ${SOURCE} credui.rc) set_module_type(credui win32dll) target_link_libraries(credui wine) add_importlibs(credui advapi32 user32 comctl32 msvcrt kernel32 ntdll) Modified: trunk/reactos/dll/win32/credui/credui.spec URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/credui/credui.sp…
============================================================================== --- trunk/reactos/dll/win32/credui/credui.spec [iso-8859-1] (original) +++ trunk/reactos/dll/win32/credui/credui.spec [iso-8859-1] Sat Sep 14 21:48:59 2013 @@ -2,7 +2,7 @@ @ stub CredUICmdLinePromptForCredentialsW @ stub CredUIConfirmCredentialsA @ stdcall CredUIConfirmCredentialsW(wstr long) -@ stub CredUIInitControls +@ stdcall CredUIInitControls() @ stub CredUIParseUserNameA @ stdcall CredUIParseUserNameW(wstr ptr long ptr long) @ stub CredUIPromptForCredentialsA Modified: trunk/reactos/dll/win32/credui/credui_main.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/credui/credui_ma…
============================================================================== --- trunk/reactos/dll/win32/credui/credui_main.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/credui/credui_main.c [iso-8859-1] Sat Sep 14 21:48:59 2013 @@ -82,6 +82,7 @@ break; case DLL_PROCESS_DETACH: + if (lpvReserved) break; LIST_FOR_EACH_ENTRY_SAFE(entry, cursor2, &pending_credentials_list, struct pending_credentials, entry) { list_remove(&entry->entry); @@ -339,7 +340,7 @@ static inline BOOL CredDialogCapsLockOn(void) { - return GetKeyState(VK_CAPITAL) & 0x1 ? TRUE : FALSE; + return (GetKeyState(VK_CAPITAL) & 0x1) != 0; } static LRESULT CALLBACK CredDialogPasswordSubclassProc(HWND hwnd, UINT uMsg, @@ -412,7 +413,9 @@ SetWindowTextW(hwndDlg, title); } - if (params->dwFlags & (CREDUI_FLAGS_DO_NOT_PERSIST|CREDUI_FLAGS_PERSIST)) + if (params->dwFlags & CREDUI_FLAGS_PERSIST || + (params->dwFlags & CREDUI_FLAGS_DO_NOT_PERSIST && + !(params->dwFlags & CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX))) ShowWindow(GetDlgItem(hwndDlg, IDC_SAVE), SW_HIDE); else if (params->fSave) CheckDlgButton(hwndDlg, IDC_SAVE, BST_CHECKED); @@ -548,6 +551,38 @@ } } +static BOOL find_existing_credential(const WCHAR *target, WCHAR *username, ULONG len_username, + WCHAR *password, ULONG len_password) +{ + DWORD count, i; + CREDENTIALW **credentials; + + if (!CredEnumerateW(target, 0, &count, &credentials)) return FALSE; + for (i = 0; i < count; i++) + { + if (credentials[i]->Type != CRED_TYPE_DOMAIN_PASSWORD) + { + FIXME("no support for type %u credentials\n", credentials[i]->Type); + continue; + } + if ((!*username || !strcmpW(username, credentials[i]->UserName)) && + strlenW(credentials[i]->UserName) < len_username && + credentials[i]->CredentialBlobSize / sizeof(WCHAR) < len_password) + { + TRACE("found existing credential for %s\n", debugstr_w(credentials[i]->UserName)); + + strcpyW(username, credentials[i]->UserName); + memcpy(password, credentials[i]->CredentialBlob, credentials[i]->CredentialBlobSize); + password[credentials[i]->CredentialBlobSize / sizeof(WCHAR)] = 0; + + CredFree(credentials); + return TRUE; + } + } + CredFree(credentials); + return FALSE; +} + /****************************************************************************** * CredUIPromptForCredentialsW [CREDUI.@] */ @@ -578,6 +613,11 @@ if ((dwFlags & CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX) && !pfSave) return ERROR_INVALID_PARAMETER; + if (!(dwFlags & CREDUI_FLAGS_ALWAYS_SHOW_UI) && + !(dwFlags & CREDUI_FLAGS_INCORRECT_PASSWORD) && + find_existing_credential(pszTargetName, pszUsername, ulUsernameMaxChars, pszPassword, ulPasswordMaxChars)) + return ERROR_SUCCESS; + params.pszTargetName = pszTargetName; if (pUIInfo) { @@ -651,13 +691,13 @@ len = strlenW(params.pszPassword); entry->pszPassword = HeapAlloc(GetProcessHeap(), 0, (len + 1)*sizeof(WCHAR)); memcpy(entry->pszPassword, params.pszPassword, (len + 1)*sizeof(WCHAR)); - entry->generic = dwFlags & CREDUI_FLAGS_GENERIC_CREDENTIALS ? TRUE : FALSE; + entry->generic = (dwFlags & CREDUI_FLAGS_GENERIC_CREDENTIALS) != 0; LeaveCriticalSection(&csPendingCredentials); } - else + else if (!(dwFlags & CREDUI_FLAGS_DO_NOT_PERSIST)) result = save_credentials(pszTargetName, pszUsername, pszPassword, - dwFlags & CREDUI_FLAGS_GENERIC_CREDENTIALS ? TRUE : FALSE); + (dwFlags & CREDUI_FLAGS_GENERIC_CREDENTIALS) != 0); } return result; @@ -802,3 +842,12 @@ *ppszUsername = NULL; return ERROR_NOT_FOUND; } + +/****************************************************************************** + * CredUIInitControls [CREDUI.@] + */ +BOOL WINAPI CredUIInitControls(void) +{ + FIXME("() stub\n"); + return TRUE; +} 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] Sat Sep 14 21:48:59 2013 @@ -62,7 +62,7 @@ reactos/dll/win32/comctl32 # Synced to Wine 1.7.1 reactos/dll/win32/comdlg32 # Synced to Wine 1.3.37 reactos/dll/win32/compstui # Synced to Wine-1.5.19 -reactos/dll/win32/credui # Synced to Wine-1.5.4 +reactos/dll/win32/credui # Synced to Wine-1.7.1 reactos/dll/win32/crypt32 # Synced to Wine-1.5.26 reactos/dll/win32/cryptdlg # Synced to Wine-1.5.26 reactos/dll/win32/cryptdll # Synced to Wine-1.5.26
11 years, 3 months
1
0
0
0
[ekohl] 60119: [NETAPI32] NetLocalGroupGetMembers: Fix heap corruption by calculationg the proper buffer size.
by ekohl@svn.reactos.org
Author: ekohl Date: Sat Sep 14 21:35:01 2013 New Revision: 60119 URL:
http://svn.reactos.org/svn/reactos?rev=60119&view=rev
Log: [NETAPI32] NetLocalGroupGetMembers: Fix heap corruption by calculationg the proper buffer size. Modified: trunk/reactos/dll/win32/netapi32/local_group.c Modified: trunk/reactos/dll/win32/netapi32/local_group.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/netapi32/local_g…
============================================================================== --- trunk/reactos/dll/win32/netapi32/local_group.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/netapi32/local_group.c [iso-8859-1] Sat Sep 14 21:35:01 2013 @@ -1515,27 +1515,27 @@ switch (level) { case 0: - Size = sizeof(LOCALGROUP_MEMBERS_INFO_0) + - RtlLengthSid(EnumContext->Sids[i]); + Size += sizeof(LOCALGROUP_MEMBERS_INFO_0) + + RtlLengthSid(EnumContext->Sids[i]); break; case 1: - Size = sizeof(LOCALGROUP_MEMBERS_INFO_1) + - RtlLengthSid(EnumContext->Sids[i]) + - EnumContext->Names[i].Name.Length + sizeof(WCHAR); + Size += sizeof(LOCALGROUP_MEMBERS_INFO_1) + + RtlLengthSid(EnumContext->Sids[i]) + + EnumContext->Names[i].Name.Length + sizeof(WCHAR); break; case 2: - Size = sizeof(LOCALGROUP_MEMBERS_INFO_2) + - RtlLengthSid(EnumContext->Sids[i]) + - EnumContext->Names[i].Name.Length + sizeof(WCHAR) + - EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); + Size += sizeof(LOCALGROUP_MEMBERS_INFO_2) + + RtlLengthSid(EnumContext->Sids[i]) + + EnumContext->Names[i].Name.Length + sizeof(WCHAR) + + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); break; case 3: - Size = sizeof(LOCALGROUP_MEMBERS_INFO_3) + - EnumContext->Names[i].Name.Length + sizeof(WCHAR) + - EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); + Size += sizeof(LOCALGROUP_MEMBERS_INFO_3) + + EnumContext->Names[i].Name.Length + sizeof(WCHAR) + + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); break; default:
11 years, 3 months
1
0
0
0
[akhaldi] 60118: [COMCTL32_WINETEST] * Sync with Wine 1.7.1.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Sep 14 20:07:14 2013 New Revision: 60118 URL:
http://svn.reactos.org/svn/reactos?rev=60118&view=rev
Log: [COMCTL32_WINETEST] * Sync with Wine 1.7.1. Modified: trunk/rostests/winetests/comctl32/CMakeLists.txt trunk/rostests/winetests/comctl32/comboex.c trunk/rostests/winetests/comctl32/datetime.c trunk/rostests/winetests/comctl32/header.c trunk/rostests/winetests/comctl32/imagelist.c trunk/rostests/winetests/comctl32/listview.c trunk/rostests/winetests/comctl32/misc.c trunk/rostests/winetests/comctl32/monthcal.c trunk/rostests/winetests/comctl32/pager.c trunk/rostests/winetests/comctl32/progress.c trunk/rostests/winetests/comctl32/propsheet.c trunk/rostests/winetests/comctl32/rebar.c trunk/rostests/winetests/comctl32/trackbar.c Modified: trunk/rostests/winetests/comctl32/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/CMakeL…
============================================================================== --- trunk/rostests/winetests/comctl32/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/CMakeLists.txt [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -29,18 +29,13 @@ updown.c testlist.c) -add_executable(comctl32_winetest - ${SOURCE} - rsrc.rc) - -target_link_libraries(comctl32_winetest wine) +add_executable(comctl32_winetest ${SOURCE} rsrc.rc) +set_module_type(comctl32_winetest win32cui) +add_importlibs(comctl32_winetest comctl32 ole32 user32 gdi32 advapi32 msvcrt kernel32) +add_cd_file(TARGET comctl32_winetest DESTINATION reactos/bin FOR all) if(NOT MSVC) # FIXME:
http://www.cmake.org/Bug/view.php?id=12998
#add_target_compile_flags(comctl32_winetest "-Wno-format") set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-Wno-format") endif() - -set_module_type(comctl32_winetest win32cui) -add_importlibs(comctl32_winetest comctl32 ole32 user32 gdi32 advapi32 msvcrt kernel32 ntdll) -add_cd_file(TARGET comctl32_winetest DESTINATION reactos/bin FOR all) Modified: trunk/rostests/winetests/comctl32/comboex.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/comboe…
============================================================================== --- trunk/rostests/winetests/comctl32/comboex.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/comboex.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -280,8 +280,6 @@ GetLastError()); hList = cbInfo.hwndList; - trace("hWnd=%p, hComboEx=%p, hCombo=%p, hList=%p, hEdit=%p\n", - hComboExParentWnd, hComboEx, hCombo, hList, hEdit); ok(GetFocus() == hComboExParentWnd, "Focus not on Main Window, instead on %p\n", GetFocus()); Modified: trunk/rostests/winetests/comctl32/datetime.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/dateti…
============================================================================== --- trunk/rostests/winetests/comctl32/datetime.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/datetime.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -145,8 +145,6 @@ LRESULT ret; struct message msg; - trace("datetime: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam); - msg.message = message; msg.flags = sent|wparam|lparam; if (defwndproc_counter) msg.flags |= defwinproc; Modified: trunk/rostests/winetests/comctl32/header.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/header…
============================================================================== --- trunk/rostests/winetests/comctl32/header.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/header.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -412,7 +412,6 @@ LRESULT ret; struct message msg; - trace("header: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam); msg.message = message; msg.flags = sent|wparam|lparam; if (defwndproc_counter) msg.flags |= defwinproc; @@ -444,8 +443,6 @@ message != WM_DEVICECHANGE) { - trace("parent: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam); - msg.message = message; msg.flags = sent|wparam|lparam; if (defwndproc_counter) msg.flags |= defwinproc; Modified: trunk/rostests/winetests/comctl32/imagelist.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/imagel…
============================================================================== --- trunk/rostests/winetests/comctl32/imagelist.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/imagelist.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -30,7 +30,6 @@ //#include <stdarg.h> #include <stdio.h> -#include <assert.h> #include <windef.h> #include <winbase.h> @@ -655,26 +654,26 @@ static HRESULT STDMETHODCALLTYPE Test_Stream_QueryInterface(IStream *iface, REFIID riid, void **ppvObject) { - assert(0); + ok(0, "unexpected call\n"); return E_NOTIMPL; } static ULONG STDMETHODCALLTYPE Test_Stream_AddRef(IStream *iface) { - assert(0); + ok(0, "unexpected call\n"); return 2; } static ULONG STDMETHODCALLTYPE Test_Stream_Release(IStream *iface) { - assert(0); + ok(0, "unexpected call\n"); return 1; } static HRESULT STDMETHODCALLTYPE Test_Stream_Read(IStream *iface, void *pv, ULONG cb, ULONG *pcbRead) { - assert(0); + ok(0, "unexpected call\n"); return E_NOTIMPL; } @@ -707,13 +706,13 @@ static HRESULT STDMETHODCALLTYPE Test_Stream_Seek(IStream *iface, LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition) { - assert(0); + ok(0, "unexpected call\n"); return E_NOTIMPL; } static HRESULT STDMETHODCALLTYPE Test_Stream_SetSize(IStream *iface, ULARGE_INTEGER libNewSize) { - assert(0); + ok(0, "unexpected call\n"); return E_NOTIMPL; } @@ -721,46 +720,46 @@ ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten) { - assert(0); + ok(0, "unexpected call\n"); return E_NOTIMPL; } static HRESULT STDMETHODCALLTYPE Test_Stream_Commit(IStream *iface, DWORD grfCommitFlags) { - assert(0); + ok(0, "unexpected call\n"); return E_NOTIMPL; } static HRESULT STDMETHODCALLTYPE Test_Stream_Revert(IStream *iface) { - assert(0); + ok(0, "unexpected call\n"); return E_NOTIMPL; } static HRESULT STDMETHODCALLTYPE Test_Stream_LockRegion(IStream *iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) { - assert(0); + ok(0, "unexpected call\n"); return E_NOTIMPL; } static HRESULT STDMETHODCALLTYPE Test_Stream_UnlockRegion(IStream *iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) { - assert(0); + ok(0, "unexpected call\n"); return E_NOTIMPL; } static HRESULT STDMETHODCALLTYPE Test_Stream_Stat(IStream *iface, STATSTG *pstatstg, DWORD grfStatFlag) { - assert(0); + ok(0, "unexpected call\n"); return E_NOTIMPL; } static HRESULT STDMETHODCALLTYPE Test_Stream_Clone(IStream *iface, IStream **ppstm) { - assert(0); + ok(0, "unexpected call\n"); return E_NOTIMPL; } Modified: trunk/rostests/winetests/comctl32/listview.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/listvi…
============================================================================== --- trunk/rostests/winetests/comctl32/listview.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/listview.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -398,8 +398,6 @@ message != WM_GETICON && message != WM_DEVICECHANGE) { - trace("parent: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam); - add_message(sequences, PARENT_SEQ_INDEX, &msg); add_message(sequences, COMBINED_SEQ_INDEX, &msg); } @@ -586,8 +584,6 @@ LRESULT ret; struct message msg; - trace("listview: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam); - /* some debug output for style changing */ if ((message == WM_STYLECHANGING || message == WM_STYLECHANGED) && lParam) @@ -663,8 +659,6 @@ static LONG defwndproc_counter = 0; LRESULT ret; struct message msg; - - trace("header: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam); msg.message = message; msg.flags = sent|wparam|lparam; @@ -1757,8 +1751,8 @@ if(msg == WM_NOTIFY) { NMHDR *nmhdr = (PVOID)lp; if(nmhdr->code == NM_CUSTOMDRAW) { - NMLVCUSTOMDRAW *nmlvcd = (PVOID)nmhdr; - trace("NMCUSTOMDRAW (0x%.8x)\n", nmlvcd->nmcd.dwDrawStage); + NMLVCUSTOMDRAW *nmlvcd = (NMLVCUSTOMDRAW*)nmhdr; + switch(nmlvcd->nmcd.dwDrawStage) { case CDDS_PREPAINT: SetBkColor(nmlvcd->nmcd.hdc, c0ffee); Modified: trunk/rostests/winetests/comctl32/misc.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/misc.c…
============================================================================== --- trunk/rostests/winetests/comctl32/misc.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/misc.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -22,6 +22,7 @@ //#include <windows.h> #include <wine/test.h> +#include "v6util.h" static PVOID (WINAPI * pAlloc)(LONG); static PVOID (WINAPI * pReAlloc)(PVOID, LONG); @@ -186,13 +187,39 @@ ok(res == TRUE, "Expected TRUE, got %d\n", res); } +static void test_TaskDialogIndirect(void) +{ + HINSTANCE hinst; + void *ptr, *ptr2; + + hinst = LoadLibraryA("comctl32.dll"); + + ptr = GetProcAddress(hinst, "TaskDialogIndirect"); + if (!ptr) + { + win_skip("TaskDialogIndirect not exported by name\n"); + return; + } + + ptr2 = GetProcAddress(hinst, (const CHAR*)345); + ok(ptr == ptr2, "got wrong pointer for ordinal 345, %p expected %p\n", ptr2, ptr); +} + START_TEST(misc) { + ULONG_PTR ctx_cookie; + HANDLE hCtx; + if(!InitFunctionPtrs()) return; test_GetPtrAW(); test_Alloc(); - FreeLibrary(hComctl32); -} + if (!load_v6_module(&ctx_cookie, &hCtx)) + return; + + test_TaskDialogIndirect(); + + unload_v6_module(ctx_cookie, hCtx); +} Modified: trunk/rostests/winetests/comctl32/monthcal.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/monthc…
============================================================================== --- trunk/rostests/winetests/comctl32/monthcal.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/monthcal.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -461,8 +461,6 @@ message != WM_GETICON && message != WM_DEVICECHANGE) { - trace("parent: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam); - msg.message = message; msg.flags = sent|wparam|lparam; if (defwndproc_counter) msg.flags |= defwinproc; @@ -883,7 +881,6 @@ /* check for locale first day */ if(GetLocaleInfoA(lcid, LOCALE_IFIRSTDAYOFWEEK, b, 128)){ fday = atoi(b); - trace("fday: %d\n", fday); res = SendMessage(hwnd, MCM_GETFIRSTDAYOFWEEK, 0, 0); expect(fday, res); prev = fday; @@ -1329,6 +1326,9 @@ HWND hwnd; hwnd = create_monthcal_control(0); + + res = SendMessage(hwnd, MCM_GETMONTHDELTA, 0, 0); + expect(2, res); flush_sequences(sequences, NUM_MSG_SEQUENCES); @@ -1977,7 +1977,6 @@ for(i = 0; i < sizeof styles / sizeof styles[0]; i++) { - trace("%s\n", styles[i].name); hwnd = create_monthcal_control(styles[i].val); SetWindowLongPtr(hwnd, GWLP_ID, SEL_NOTIFY_TEST_ID); assert(hwnd); Modified: trunk/rostests/winetests/comctl32/pager.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/pager.…
============================================================================== --- trunk/rostests/winetests/comctl32/pager.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/pager.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -77,8 +77,6 @@ message != WM_GETICON && message != WM_DEVICECHANGE) { - trace("parent: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam); - msg.message = message; msg.flags = sent|wparam|lparam|parent; if (defwndproc_counter) msg.flags |= defwinproc; @@ -127,8 +125,6 @@ WNDPROC oldproc = (WNDPROC)GetWindowLongPtrA(hwnd, GWLP_USERDATA); struct message msg; - trace("pager: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam); - msg.message = message; msg.flags = sent|wparam|lparam; msg.wParam = wParam; Modified: trunk/rostests/winetests/comctl32/progress.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/progre…
============================================================================== --- trunk/rostests/winetests/comctl32/progress.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/progress.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -32,6 +32,11 @@ static HWND hProgressParentWnd, hProgressWnd; static const char progressTestClass[] = "ProgressBarTestClass"; +static HWND create_progress(DWORD style) +{ + return CreateWindowExA(0, PROGRESS_CLASSA, "", WS_VISIBLE | style, + 0, 0, 100, 20, NULL, NULL, GetModuleHandleA(NULL), 0); +} /* try to make sure pending X events have been processed before continuing */ static void flush_events(void) @@ -224,12 +229,40 @@ ok(erased, "Progress bar should have erased the background\n"); } +static void test_setcolors(void) +{ + HWND progress; + COLORREF clr; + + progress = create_progress(PBS_SMOOTH); + + clr = SendMessageA(progress, PBM_SETBARCOLOR, 0, 0); + ok(clr == CLR_DEFAULT, "got %x\n", clr); + + clr = SendMessageA(progress, PBM_SETBARCOLOR, 0, RGB(0, 255, 0)); + ok(clr == 0, "got %x\n", clr); + + clr = SendMessageA(progress, PBM_SETBARCOLOR, 0, CLR_DEFAULT); + ok(clr == RGB(0, 255, 0), "got %x\n", clr); + + clr = SendMessageA(progress, PBM_SETBKCOLOR, 0, 0); + ok(clr == CLR_DEFAULT, "got %x\n", clr); + + clr = SendMessageA(progress, PBM_SETBKCOLOR, 0, RGB(255, 0, 0)); + ok(clr == 0, "got %x\n", clr); + + clr = SendMessageA(progress, PBM_SETBKCOLOR, 0, CLR_DEFAULT); + ok(clr == RGB(255, 0, 0), "got %x\n", clr); + + DestroyWindow(progress); +} START_TEST(progress) { init(); test_redraw(); - + test_setcolors(); + cleanup(); } Modified: trunk/rostests/winetests/comctl32/propsheet.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/propsh…
============================================================================== --- trunk/rostests/winetests/comctl32/propsheet.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/propsheet.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -669,8 +669,6 @@ (message < WM_MOUSEFIRST || message > WM_MOUSEHWHEEL) && message != 0x90) { - /*trace("check_message: %04x, %04x\n", message, receiver);*/ - msg.message = message; msg.flags = sent|wparam|lparam|id; msg.wParam = wParam; Modified: trunk/rostests/winetests/comctl32/rebar.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/rebar.…
============================================================================== --- trunk/rostests/winetests/comctl32/rebar.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/rebar.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -126,7 +126,9 @@ return hToolbar; } -static LRESULT CALLBACK MyWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) +static int g_parent_measureitem; + +static LRESULT CALLBACK parent_wndproc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { @@ -136,6 +138,9 @@ if (lpnm->code == RBN_HEIGHTCHANGE) GetClientRect(lpnm->hwndFrom, &height_change_notify_rect); } + break; + case WM_MEASUREITEM: + g_parent_measureitem++; break; } return DefWindowProcA(hWnd, msg, wParam, lParam); @@ -1058,7 +1063,7 @@ wc.hbrBackground = GetSysColorBrush(COLOR_WINDOW); wc.lpszMenuName = NULL; wc.lpszClassName = "MyTestWnd"; - wc.lpfnWndProc = MyWndProc; + wc.lpfnWndProc = parent_wndproc; return RegisterClassA(&wc); } @@ -1108,6 +1113,20 @@ DestroyWindow(hRebar); } +static void test_notification(void) +{ + MEASUREITEMSTRUCT mis; + HWND rebar; + + rebar = create_rebar_control(); + + g_parent_measureitem = 0; + SendMessageA(rebar, WM_MEASUREITEM, 0, (LPARAM)&mis); + ok(g_parent_measureitem == 1, "got %d\n", g_parent_measureitem); + + DestroyWindow(rebar); +} + START_TEST(rebar) { HMODULE hComctl32; @@ -1134,6 +1153,7 @@ test_bandinfo(); test_colors(); test_showband(); + test_notification(); if(!is_font_installed("System") || !is_font_installed("Tahoma")) { Modified: trunk/rostests/winetests/comctl32/trackbar.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/comctl32/trackb…
============================================================================== --- trunk/rostests/winetests/comctl32/trackbar.c [iso-8859-1] (original) +++ trunk/rostests/winetests/comctl32/trackbar.c [iso-8859-1] Sat Sep 14 20:07:14 2013 @@ -394,6 +394,7 @@ if (defwndproc_counter) msg.flags |= defwinproc; msg.wParam = wParam; msg.lParam = lParam; + msg.id = 0; add_message(sequences, PARENT_SEQ_INDEX, &msg); }
11 years, 3 months
1
0
0
0
[akhaldi] 60117: [COMCTL32] * Sync with Wine 1.7.1.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Sep 14 20:06:00 2013 New Revision: 60117 URL:
http://svn.reactos.org/svn/reactos?rev=60117&view=rev
Log: [COMCTL32] * Sync with Wine 1.7.1. Modified: trunk/reactos/dll/win32/comctl32/CMakeLists.txt trunk/reactos/dll/win32/comctl32/comboex.c trunk/reactos/dll/win32/comctl32/comctl32.h trunk/reactos/dll/win32/comctl32/comctl32.spec trunk/reactos/dll/win32/comctl32/commctrl.c trunk/reactos/dll/win32/comctl32/header.c trunk/reactos/dll/win32/comctl32/listview.c trunk/reactos/dll/win32/comctl32/monthcal.c trunk/reactos/dll/win32/comctl32/progress.c trunk/reactos/dll/win32/comctl32/rebar.c trunk/reactos/dll/win32/comctl32/tab.c trunk/reactos/dll/win32/comctl32/toolbar.c trunk/reactos/dll/win32/comctl32/trackbar.c trunk/reactos/dll/win32/comctl32/treeview.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/CMakeLi…
============================================================================== --- trunk/reactos/dll/win32/comctl32/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/CMakeLists.txt [iso-8859-1] Sat Sep 14 20:06:00 2013 @@ -48,21 +48,12 @@ treeview.c updown.c stubs.c - rsrc.rc ${CMAKE_CURRENT_BINARY_DIR}/comctl32.def) -add_library(comctl32 SHARED ${SOURCE}) +add_library(comctl32 SHARED ${SOURCE} rsrc.rc) set_module_type(comctl32 win32dll UNICODE) target_link_libraries(comctl32 uuid wine ${PSEH_LIB}) add_delay_importlibs(comctl32 winmm uxtheme) - -add_importlibs(comctl32 - user32 - gdi32 - advapi32 - msvcrt - kernel32 - ntdll) - +add_importlibs(comctl32 user32 gdi32 advapi32 msvcrt kernel32 ntdll) add_pch(comctl32 comctl32.h) add_cd_file(TARGET comctl32 DESTINATION reactos/system32 FOR all) 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] Sat Sep 14 20:06:00 2013 @@ -75,7 +75,7 @@ INT nb_items; /* Number of items */ BOOL unicode; /* TRUE if this window is Unicode */ BOOL NtfUnicode; /* TRUE if parent wants notify in Unicode */ - CBE_ITEMDATA *edit; /* item data for edit item */ + CBE_ITEMDATA edit; /* item data for edit item */ CBE_ITEMDATA *items; /* Array of items */ } COMBOEX_INFO; @@ -273,9 +273,9 @@ static void COMBOEX_FreeText (CBE_ITEMDATA *item) { if (is_textW(item->pszText)) Free(item->pszText); - item->pszText = 0; + item->pszText = NULL; Free(item->pszTemp); - item->pszTemp = 0; + item->pszTemp = NULL; } @@ -455,15 +455,15 @@ } -static CBE_ITEMDATA * COMBOEX_FindItem(const COMBOEX_INFO *infoPtr, INT_PTR index) +static CBE_ITEMDATA *COMBOEX_FindItem(COMBOEX_INFO *infoPtr, INT_PTR index) { CBE_ITEMDATA *item; INT i; if ((index >= infoPtr->nb_items) || (index < -1)) - return 0; + return NULL; if (index == -1) - return infoPtr->edit; + return &infoPtr->edit; item = infoPtr->items; i = infoPtr->nb_items - 1; @@ -481,7 +481,7 @@ /* *** CBEM_xxx message support *** */ -static UINT COMBOEX_GetListboxText(const COMBOEX_INFO *infoPtr, INT_PTR n, LPWSTR buf) +static UINT COMBOEX_GetListboxText(COMBOEX_INFO *infoPtr, INT_PTR n, LPWSTR buf) { CBE_ITEMDATA *item; LPCWSTR str; @@ -519,7 +519,7 @@ } -static INT COMBOEX_DeleteItem (const COMBOEX_INFO *infoPtr, INT_PTR index) +static INT COMBOEX_DeleteItem (COMBOEX_INFO *infoPtr, INT_PTR index) { TRACE("(index=%ld)\n", index); @@ -534,7 +534,7 @@ } -static BOOL COMBOEX_GetItemW (const COMBOEX_INFO *infoPtr, COMBOBOXEXITEMW *cit) +static BOOL COMBOEX_GetItemW (COMBOEX_INFO *infoPtr, COMBOBOXEXITEMW *cit) { INT_PTR index = cit->iItem; CBE_ITEMDATA *item; @@ -555,7 +555,7 @@ } -static BOOL COMBOEX_GetItemA (const COMBOEX_INFO *infoPtr, COMBOBOXEXITEMA *cit) +static BOOL COMBOEX_GetItemA (COMBOEX_INFO *infoPtr, COMBOBOXEXITEMA *cit) { COMBOBOXEXITEMW tmpcit; @@ -754,7 +754,7 @@ return himlTemp; } -static BOOL COMBOEX_SetItemW (const COMBOEX_INFO *infoPtr, const COMBOBOXEXITEMW *cit) +static BOOL COMBOEX_SetItemW (COMBOEX_INFO *infoPtr, const COMBOBOXEXITEMW *cit) { INT_PTR index = cit->iItem; CBE_ITEMDATA *item; @@ -805,7 +805,7 @@ return TRUE; } -static BOOL COMBOEX_SetItemA (const COMBOEX_INFO *infoPtr, COMBOBOXEXITEMA const *cit) +static BOOL COMBOEX_SetItemA (COMBOEX_INFO *infoPtr, COMBOBOXEXITEMA const *cit) { COMBOBOXEXITEMW citW; LPWSTR wstr = NULL; @@ -863,7 +863,7 @@ } -static DWORD_PTR COMBOEX_GetItemData (const COMBOEX_INFO *infoPtr, INT_PTR index) +static DWORD_PTR COMBOEX_GetItemData (COMBOEX_INFO *infoPtr, INT_PTR index) { CBE_ITEMDATA const *item1; CBE_ITEMDATA const *item2; @@ -903,7 +903,7 @@ } -static DWORD_PTR COMBOEX_SetItemData (const COMBOEX_INFO *infoPtr, INT_PTR index, DWORD_PTR data) +static DWORD_PTR COMBOEX_SetItemData (COMBOEX_INFO *infoPtr, INT_PTR index, DWORD_PTR data) { CBE_ITEMDATA *item1; CBE_ITEMDATA const *item2; @@ -1003,23 +1003,13 @@ /* (allow space for the icons). */ infoPtr->hwndCombo = CreateWindowW (WC_COMBOBOXW, NIL, - /* following line added to match native */ WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VSCROLL | CBS_NOINTEGRALHEIGHT | CBS_DROPDOWNLIST | - /* was base and is necessary */ WS_CHILD | WS_VISIBLE | CBS_OWNERDRAWFIXED | GetWindowLongW (hwnd, GWL_STYLE), cs->y, cs->x, cs->cx, cs->cy, hwnd, (HMENU) GetWindowLongPtrW (hwnd, GWLP_ID), (HINSTANCE)GetWindowLongPtrW (hwnd, GWLP_HINSTANCE), NULL); - - /* - * native does the following at this point according to trace: - * GetWindowThreadProcessId(hwndCombo,0) - * GetCurrentThreadId() - * GetWindowThreadProcessId(hwndCombo, &???) - * GetCurrentProcessId() - */ SetWindowSubclass(infoPtr->hwndCombo, COMBOEX_ComboWndProc, COMBO_SUBCLASSID, (DWORD_PTR)hwnd); @@ -1037,12 +1027,6 @@ (HMENU) GetWindowLongPtrW (hwnd, GWLP_ID), (HINSTANCE)GetWindowLongPtrW (hwnd, GWLP_HINSTANCE), NULL); - /* native does the following at this point according to trace: - * GetWindowThreadProcessId(hwndEdit,0) - * GetCurrentThreadId() - * GetWindowThreadProcessId(hwndEdit, &???) - * GetCurrentProcessId() - */ SetWindowSubclass(infoPtr->hwndEdit, COMBOEX_EditWndProc, EDIT_SUBCLASSID, (DWORD_PTR)hwnd); @@ -1089,16 +1073,6 @@ SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE); COMBOEX_AdjustEditPos (infoPtr); - - /* - * Create an item structure to represent the data in the - * EDIT control. It is allocated zero-filled. - */ - infoPtr->edit = Alloc (sizeof (CBE_ITEMDATA)); - if (!infoPtr->edit) { - COMBOEX_Destroy(infoPtr); - return -1; - } return 0; } @@ -1127,19 +1101,6 @@ return SendMessageW (parent, WM_COMMAND, wParam, (LPARAM)infoPtr->hwndSelf); case CBN_CLOSEUP: SendMessageW (parent, WM_COMMAND, wParam, (LPARAM)infoPtr->hwndSelf); - /* - * from native trace of first dropdown after typing in URL in IE4 - * CB_GETCURSEL(Combo) - * GetWindowText(Edit) - * CB_GETCURSEL(Combo) - * CB_GETCOUNT(Combo) - * CB_GETITEMDATA(Combo, n) - * WM_NOTIFY(parent, CBEN_ENDEDITA|W) - * CB_GETCURSEL(Combo) - * CB_SETCURSEL(COMBOEX, n) - * SetFocus(Combo) - * the rest is supposition - */ ShowWindow (infoPtr->hwndEdit, SW_SHOW); InvalidateRect (infoPtr->hwndCombo, 0, TRUE); if (infoPtr->hwndEdit) InvalidateRect (infoPtr->hwndEdit, 0, TRUE); @@ -1225,17 +1186,6 @@ return SendMessageW (parent, WM_COMMAND, wParam, (LPARAM)infoPtr->hwndSelf); case CBN_KILLFOCUS: - /* - * from native trace: - * - * pass to parent - * WM_GETTEXT(Edit, 104) - * CB_GETCURSEL(Combo) rets -1 - * WM_NOTIFY(CBEN_ENDEDITA) with CBENF_KILLFOCUS - * CB_GETCURSEL(Combo) - * InvalidateRect(Combo, 0, 0) - * return 0 - */ SendMessageW (parent, WM_COMMAND, wParam, (LPARAM)infoPtr->hwndSelf); if (infoPtr->flags & WCBE_ACTEDIT) { GetWindowTextW (infoPtr->hwndEdit, wintext, 260); @@ -1316,17 +1266,17 @@ } -static LRESULT COMBOEX_DrawItem (const COMBOEX_INFO *infoPtr, DRAWITEMSTRUCT const *dis) +static LRESULT COMBOEX_DrawItem (COMBOEX_INFO *infoPtr, DRAWITEMSTRUCT const *dis) { static const WCHAR nil[] = { 0 }; - CBE_ITEMDATA *item = 0; + CBE_ITEMDATA *item = NULL; SIZE txtsize; RECT rect; LPCWSTR str = nil; UINT xbase, x, y; INT len; COLORREF nbkc, ntxc, bkc, txc; - int drawimage, drawstate, xioff; + int drawimage, drawstate, xioff, selected; TRACE("DRAWITEMSTRUCT: CtlType=0x%08x CtlID=0x%08x\n", dis->CtlType, dis->CtlID); @@ -1378,7 +1328,7 @@ /* If draw item is -1 (edit control) setup the item pointer */ if (dis->itemID == 0xffffffff) { - item = infoPtr->edit; + item = &infoPtr->edit; if (infoPtr->hwndEdit) { /* free previous text of edit item */ @@ -1427,36 +1377,30 @@ drawimage = -2; drawstate = ILD_NORMAL; + selected = infoPtr->selected == dis->itemID; + if (item->mask & CBEIF_IMAGE) drawimage = item->iImage; + if (item->mask & CBEIF_SELECTEDIMAGE && selected) + drawimage = item->iSelectedImage; if (dis->itemState & ODS_COMBOEXLBOX) { /* drawing listbox entry */ - if (dis->itemState & ODS_SELECTED) { - if (item->mask & CBEIF_SELECTEDIMAGE) - drawimage = item->iSelectedImage; + if (dis->itemState & ODS_SELECTED) drawstate = ILD_SELECTED; - } } else { /* drawing combo/edit entry */ if (IsWindowVisible(infoPtr->hwndEdit)) { /* if we have an edit control, the slave the * selection state to the Edit focus state */ - if (infoPtr->flags & WCBE_EDITFOCUSED) { - if (item->mask & CBEIF_SELECTEDIMAGE) - drawimage = item->iSelectedImage; + if (infoPtr->flags & WCBE_EDITFOCUSED) drawstate = ILD_SELECTED; - } - } else { + } else /* if we don't have an edit control, use * the requested state. */ - if (dis->itemState & ODS_SELECTED) { - if (item->mask & CBEIF_SELECTEDIMAGE) - drawimage = item->iSelectedImage; + if (dis->itemState & ODS_SELECTED) drawstate = ILD_SELECTED; - } - } } if (infoPtr->himl && !(infoPtr->dwExtStyle & CBES_EX_NOEDITIMAGEINDENT)) { @@ -1479,17 +1423,17 @@ if (drawimage == I_IMAGECALLBACK) { NMCOMBOBOXEXW nmce; ZeroMemory(&nmce, sizeof(nmce)); - nmce.ceItem.mask = (drawstate == ILD_NORMAL) ? CBEIF_IMAGE : CBEIF_SELECTEDIMAGE; + nmce.ceItem.mask = selected ? CBEIF_SELECTEDIMAGE : CBEIF_IMAGE; nmce.ceItem.lParam = item->lParam; nmce.ceItem.iItem = dis->itemID; COMBOEX_NotifyItem(infoPtr, CBEN_GETDISPINFOW, &nmce); - if (drawstate == ILD_NORMAL) { + if (!selected) { if (nmce.ceItem.mask & CBEIF_DI_SETITEM) item->iImage = nmce.ceItem.iImage; drawimage = nmce.ceItem.iImage; - } else if (drawstate == ILD_SELECTED) { + } else { if (nmce.ceItem.mask & CBEIF_DI_SETITEM) item->iSelectedImage = nmce.ceItem.iSelectedImage; - drawimage = nmce.ceItem.iSelectedImage; - } else ERR("Bad draw state = %d\n", drawstate); + drawimage = nmce.ceItem.iSelectedImage; + } } if (overlay == I_IMAGECALLBACK) { @@ -1576,10 +1520,7 @@ if (infoPtr->hwndEdit) RemoveWindowSubclass(infoPtr->hwndEdit, COMBOEX_EditWndProc, EDIT_SUBCLASSID); - COMBOEX_FreeText (infoPtr->edit); - Free (infoPtr->edit); - infoPtr->edit = 0; - + COMBOEX_FreeText (&infoPtr->edit); COMBOEX_ResetContent (infoPtr); if (infoPtr->defaultFont) @@ -1666,6 +1607,15 @@ return 0; } +static LRESULT COMBOEX_SetFont( COMBOEX_INFO *infoPtr, HFONT font, BOOL redraw ) +{ + infoPtr->font = font; + SendMessageW( infoPtr->hwndCombo, WM_SETFONT, (WPARAM)font, 0 ); + if (infoPtr->hwndEdit) SendMessageW( infoPtr->hwndEdit, WM_SETFONT, (WPARAM)font, 0 ); + COMBOEX_ReSize( infoPtr ); + if (redraw) InvalidateRect( infoPtr->hwndCombo, NULL, TRUE ); + return 0; +} static LRESULT COMBOEX_SetRedraw(const COMBOEX_INFO *infoPtr, WPARAM wParam, LPARAM lParam) { @@ -1743,9 +1693,6 @@ return DefSubclassProc(hwnd, uMsg, wParam, lParam); case WM_ERASEBKGND: - /* - * The following was determined by traces of the native - */ hDC = (HDC) wParam; obkc = SetBkColor (hDC, comctl32_color.clrWindow); GetClientRect (hwnd, &rect); @@ -1761,23 +1708,6 @@ switch ((INT)wParam) { case VK_ESCAPE: - /* native version seems to do following for COMBOEX */ - /* - * GetWindowTextW(Edit,&?, 0x104) x - * CB_GETCURSEL to Combo rets -1 x - * WM_NOTIFY to COMBOEX parent (rebar) x - * (CBEN_ENDEDIT{A|W} - * fChanged = FALSE x - * inewSelection = -1 x - * txt="
www.hoho
" x - * iWhy = 3 x - * CB_GETCURSEL to Combo rets -1 x - * InvalidateRect(Combo, 0) x - * WM_SETTEXT to Edit x - * EM_SETSEL to Edit (0,0) x - * EM_SETSEL to Edit (0,-1) x - * RedrawWindow(Combo, 0, 0, 5) x - */ TRACE("special code for VK_ESCAPE\n"); GetWindowTextW (infoPtr->hwndEdit, edit_text, 260); @@ -1802,27 +1732,6 @@ break; case VK_RETURN: - /* native version seems to do following for COMBOEX */ - /* - * GetWindowTextW(Edit,&?, 0x104) x - * CB_GETCURSEL to Combo rets -1 x - * CB_GETCOUNT to Combo rets 0 - * if >0 loop - * CB_GETITEMDATA to match - * *** above 3 lines simulated by FindItem x - * WM_NOTIFY to COMBOEX parent (rebar) x - * (CBEN_ENDEDIT{A|W} x - * fChanged = TRUE (-1) x - * iNewSelection = -1 or selected x - * txt= x - * iWhy = 2 (CBENF_RETURN) x - * CB_GETCURSEL to Combo rets -1 x - * if -1 send CB_SETCURSEL to Combo -1 x - * InvalidateRect(Combo, 0, 0) x - * SetFocus(Edit) x - * CallWindowProc(406615a8, Edit, 0x100, 0xd, 0x1c0001) - */ - TRACE("special code for VK_RETURN\n"); GetWindowTextW (infoPtr->hwndEdit, edit_text, 260); @@ -1850,7 +1759,7 @@ if (COMBOEX_NotifyEndEdit (infoPtr, &cbeend, edit_text)) { /* abort the change, restore previous */ TRACE("Notify requested abort of change\n"); - COMBOEX_SetEditText (infoPtr, infoPtr->edit); + COMBOEX_SetEditText (infoPtr, &infoPtr->edit); RedrawWindow (infoPtr->hwndCombo, 0, 0, RDW_ERASE | RDW_INVALIDATE); return 0; @@ -1942,9 +1851,6 @@ return DefSubclassProc(hwnd, uMsg, wParam, lParam); case WM_ERASEBKGND: - /* - * The following was determined by traces of the native - */ hDC = (HDC) wParam; obkc = SetBkColor (hDC, comctl32_color.clrWindow); GetClientRect (hwnd, &rect); @@ -2013,18 +1919,6 @@ return 0; case EN_KILLFOCUS: - /* - * Native does: - * - * GetFocus() retns AA - * GetWindowTextW(Edit) - * CB_GETCURSEL(Combo) (got -1) - * WM_NOTIFY(CBEN_ENDEDITA) with CBENF_KILLFOCUS - * CB_GETCURSEL(Combo) (got -1) - * InvalidateRect(Combo, 0, 0) - * WM_KILLFOCUS(Combo, AA) - * return 0; - */ focusedhwnd = GetFocus(); if (infoPtr->flags & WCBE_ACTEDIT) { GetWindowTextW (infoPtr->hwndEdit, edit_text, 260); @@ -2044,21 +1938,6 @@ return 0; case EN_SETFOCUS: { - /* - * For EN_SETFOCUS this issues the same calls and messages - * as the native seems to do. - * - * for some cases however native does the following: - * (noticed after SetFocus during LBUTTONDOWN on - * on dropdown arrow) - * WM_GETTEXTLENGTH (Edit); - * WM_GETTEXT (Edit, len+1, str); - * EM_SETSEL (Edit, 0, 0); - * WM_GETTEXTLENGTH (Edit); - * WM_GETTEXT (Edit, len+1, str); - * EM_SETSEL (Edit, 0, len); - * WM_NOTIFY (parent, CBEN_BEGINEDIT) - */ NMHDR hdr; SendMessageW (infoPtr->hwndEdit, EM_SETSEL, 0, 0); @@ -2070,10 +1949,6 @@ } case EN_CHANGE: { - /* - * For EN_CHANGE this issues the same calls and messages - * as the native seems to do. - */ LPCWSTR lastwrk; cmp_func_t cmptext = get_cmp_func(infoPtr); @@ -2084,7 +1959,7 @@ GetWindowTextW (infoPtr->hwndEdit, edit_text, 260); if (selected == -1) { - lastwrk = infoPtr->edit->pszText; + lastwrk = infoPtr->edit.pszText; } else { CBE_ITEMDATA *item = COMBOEX_FindItem (infoPtr, selected); @@ -2109,37 +1984,6 @@ } case LBN_SELCHANGE: - /* - * Therefore from traces there is no additional code here - */ - - /* - * Using native COMCTL32 gets the following: - * 1 == SHDOCVW.DLL issues call/message - * 2 == COMCTL32.DLL issues call/message - * 3 == WINE issues call/message - * - * - * for LBN_SELCHANGE: - * 1 CB_GETCURSEL(ComboEx) - * 1 CB_GETDROPPEDSTATE(ComboEx) - * 1 CallWindowProc( *2* for WM_COMMAND(LBN_SELCHANGE) - * 2 CallWindowProc( *3* for WM_COMMAND(LBN_SELCHANGE) - ** call CBRollUp( xxx, TRUE for LBN_SELCHANGE, TRUE) - * 3 WM_COMMAND(ComboEx, CBN_SELENDOK) - * WM_USER+49(ComboLB, 1,0) <=============!!!!!!!!!!! - * 3 ShowWindow(ComboLB, SW_HIDE) - * 3 RedrawWindow(Combo, RDW_UPDATENOW) - * 3 WM_COMMAND(ComboEX, CBN_CLOSEUP) - ** end of CBRollUp - * 3 WM_COMMAND(ComboEx, CBN_SELCHANGE) (echo to parent) - * ? LB_GETCURSEL <==| - * ? LB_GETTEXTLEN | - * ? LB_GETTEXT | Needs to be added to - * ? WM_CTLCOLOREDIT(ComboEx) | Combo processing - * ? LB_GETITEMDATA | - * ? WM_DRAWITEM(ComboEx) <==| - */ default: break; }/* fall through */ @@ -2301,6 +2145,12 @@ case WM_SIZE: return COMBOEX_Size (infoPtr, LOWORD(lParam), HIWORD(lParam)); + case WM_GETFONT: + return (LRESULT)infoPtr->font; + + case WM_SETFONT: + return COMBOEX_SetFont( infoPtr, (HFONT)wParam, LOWORD(lParam) != 0 ); + case WM_SETREDRAW: return COMBOEX_SetRedraw(infoPtr, wParam, lParam); Modified: trunk/reactos/dll/win32/comctl32/comctl32.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/comctl3…
============================================================================== --- trunk/reactos/dll/win32/comctl32/comctl32.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/comctl32.h [iso-8859-1] Sat Sep 14 20:06:00 2013 @@ -41,9 +41,6 @@ extern HMODULE COMCTL32_hModule DECLSPEC_HIDDEN; extern HBRUSH COMCTL32_hPattern55AABrush DECLSPEC_HIDDEN; - -/* has a value of: 0, CCS_TOP, CCS_NOMOVEY, CCS_BOTTOM */ -#define CCS_LAYOUT_MASK 0x3 /* Property sheet / Wizard */ #define IDD_PROPSHEET 1006 @@ -79,23 +76,6 @@ #define IDB_VIEW_LARGE 125 #define IDB_HIST_SMALL 130 #define IDB_HIST_LARGE 131 - - -/* Month calendar month menu popup */ -#define IDD_MCMONTHMENU 300 - -#define IDM_JAN 301 -#define IDM_FEB 302 -#define IDM_MAR 303 -#define IDM_APR 304 -#define IDM_MAY 305 -#define IDM_JUN 306 -#define IDM_JUL 307 -#define IDM_AUG 308 -#define IDM_SEP 309 -#define IDM_OCT 310 -#define IDM_NOV 311 -#define IDM_DEC 312 #define IDM_TODAY 4163 #define IDM_GOTODAY 4164 Modified: trunk/reactos/dll/win32/comctl32/comctl32.spec URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/comctl3…
============================================================================== --- trunk/reactos/dll/win32/comctl32/comctl32.spec [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/comctl32.spec [iso-8859-1] Sat Sep 14 20:06:00 2013 @@ -61,6 +61,7 @@ 340 stdcall -ordinal DPA_CreateEx(long long) 341 stdcall -noname SendNotify(long long long ptr) 342 stdcall -noname SendNotifyEx(long long long ptr long) +345 stdcall -ordinal TaskDialogIndirect(ptr ptr ptr ptr) 350 stdcall -noname StrChrA(str str) 351 stdcall -noname StrRChrA(str str long) 352 stdcall -noname StrCmpNA(str str long) @@ -189,6 +190,5 @@ @ stdcall PropertySheetA(ptr) @ stdcall PropertySheetW(ptr) @ stdcall RegisterClassNameW(wstr) -@ stdcall TaskDialogIndirect(ptr ptr ptr ptr) @ stdcall UninitializeFlatSB(long) @ stdcall _TrackMouseEvent(ptr) 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] Sat Sep 14 20:06:00 2013 @@ -235,7 +235,8 @@ break; case DLL_PROCESS_DETACH: - /* clean up subclassing */ + if (lpvReserved) break; + /* clean up subclassing */ THEMING_Uninitialize(); /* unregister all common control classes */ @@ -263,14 +264,11 @@ /* delete local pattern brush */ DeleteObject (COMCTL32_hPattern55AABrush); - COMCTL32_hPattern55AABrush = NULL; DeleteObject (COMCTL32_hPattern55AABitmap); - COMCTL32_hPattern55AABitmap = NULL; /* delete global subclassing atom */ GlobalDeleteAtom (LOWORD(COMCTL32_wSubclass)); TRACE("Subclassing atom deleted: %p\n", COMCTL32_wSubclass); - COMCTL32_wSubclass = NULL; break; } @@ -1013,7 +1011,7 @@ ERR("create_manifest failed!\n"); return HRESULT_FROM_WIN32(GetLastError()); } - + return S_OK; } 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] Sat Sep 14 20:06:00 2013 @@ -293,6 +293,41 @@ } } +static void +HEADER_FillItemFrame(HEADER_INFO *infoPtr, HDC hdc, RECT *r, const HEADER_ITEM *item, BOOL hottrack) +{ + HTHEME theme = GetWindowTheme (infoPtr->hwndSelf); + + if (theme) { + int state = (item->bDown) ? HIS_PRESSED : (hottrack ? HIS_HOT : HIS_NORMAL); + DrawThemeBackground (theme, hdc, HP_HEADERITEM, state, r, NULL); + GetThemeBackgroundContentRect (theme, hdc, HP_HEADERITEM, state, r, r); + } + else + { + HBRUSH hbr = CreateSolidBrush(GetBkColor(hdc)); + FillRect(hdc, r, hbr); + DeleteObject(hbr); + } +} + +static void +HEADER_DrawItemFrame(HEADER_INFO *infoPtr, HDC hdc, RECT *r, const HEADER_ITEM *item) +{ + if (GetWindowTheme(infoPtr->hwndSelf)) return; + + if (!(infoPtr->dwStyle & HDS_FLAT)) + { + if (infoPtr->dwStyle & HDS_BUTTONS) { + if (item->bDown) + DrawEdge (hdc, r, BDR_RAISEDOUTER, BF_RECT | BF_FLAT | BF_ADJUST); + else + DrawEdge (hdc, r, EDGE_RAISED, BF_RECT | BF_SOFT | BF_ADJUST); + } + else + DrawEdge (hdc, r, EDGE_ETCHED, BF_BOTTOM | BF_RIGHT | BF_ADJUST); + } +} static INT HEADER_DrawItem (HEADER_INFO *infoPtr, HDC hdc, INT iItem, BOOL bHotTrack, LRESULT lCDFlags) @@ -329,43 +364,13 @@ return phdi->rect.right; } - if (theme != NULL) { - int state = (phdi->bDown) ? HIS_PRESSED : - (bHotTrack ? HIS_HOT : HIS_NORMAL); - DrawThemeBackground (theme, hdc, HP_HEADERITEM, state, - &r, NULL); - GetThemeBackgroundContentRect (theme, hdc, HP_HEADERITEM, state, - &r, &r); - } - else { - HBRUSH hbr; - - if (!(infoPtr->dwStyle & HDS_FLAT)) - { - if (infoPtr->dwStyle & HDS_BUTTONS) { - if (phdi->bDown) { - DrawEdge (hdc, &r, BDR_RAISEDOUTER, - BF_RECT | BF_FLAT | BF_MIDDLE | BF_ADJUST); - } - else - DrawEdge (hdc, &r, EDGE_RAISED, - BF_RECT | BF_SOFT | BF_MIDDLE | BF_ADJUST); - } - else - DrawEdge (hdc, &r, EDGE_ETCHED, BF_BOTTOM | BF_RIGHT | BF_ADJUST); - } - - hbr = CreateSolidBrush(GetBkColor(hdc)); - FillRect(hdc, &r, hbr); - DeleteObject(hbr); - } - if (phdi->bDown) { - r.left += 2; - r.top += 2; - } - - if (phdi->fmt & HDF_OWNERDRAW) { + /* Fill background, owner could draw over it. */ + HEADER_FillItemFrame(infoPtr, hdc, &r, phdi, bHotTrack); + + if (phdi->fmt & HDF_OWNERDRAW) + { DRAWITEMSTRUCT dis; + BOOL ret; dis.CtlType = ODT_HEADER; dis.CtlID = GetWindowLongPtrW (infoPtr->hwndSelf, GWLP_ID); @@ -377,11 +382,32 @@ dis.rcItem = phdi->rect; dis.itemData = phdi->lParam; oldBkMode = SetBkMode(hdc, TRANSPARENT); - SendMessageW (infoPtr->hwndNotify, WM_DRAWITEM, dis.CtlID, (LPARAM)&dis); + ret = SendMessageW (infoPtr->hwndNotify, WM_DRAWITEM, dis.CtlID, (LPARAM)&dis); if (oldBkMode != TRANSPARENT) SetBkMode(hdc, oldBkMode); - } - else { + + if (!ret) + HEADER_FillItemFrame(infoPtr, hdc, &r, phdi, bHotTrack); + + /* Edges are always drawn if we don't have attached theme. */ + HEADER_DrawItemFrame(infoPtr, hdc, &r, phdi); + /* If application processed WM_DRAWITEM we should skip label painting, + edges are drawn no matter what. */ + if (ret) return phdi->rect.right; + } + else + { + HEADER_FillItemFrame(infoPtr, hdc, &r, phdi, bHotTrack); + HEADER_DrawItemFrame(infoPtr, hdc, &r, phdi); + } + + if (phdi->bDown) { + r.left += 2; + r.top += 2; + } + + /* Now text and image */ + { UINT rw, rh, /* width and height of r */ *x = NULL, *w = NULL; /* x and width of the pic (bmp or img) which is part of cnt */ /* cnt,txt,img,bmp */ @@ -499,7 +525,7 @@ SetBkMode(hdc, oldBkMode); } HEADER_FreeCallbackItems(phdi); - }/*Ownerdrawn*/ + } return phdi->rect.right; } 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] Sat Sep 14 20:06:00 2013 @@ -132,13 +132,6 @@ * * Functions: * -- LVGroupComparE - * - * Known differences in message stream from native control (not known if - * these differences cause problems): - * LVM_INSERTITEM issues LVM_SETITEMSTATE and LVM_SETITEM in certain cases. - * LVM_SETITEM does not always issue LVN_ITEMCHANGING/LVN_ITEMCHANGED. - * WM_CREATE does not issue WM_QUERYUISTATE and associated registry - * processing for "USEDOUBLECLICKTIME". */ #include <config.h> @@ -6284,6 +6277,7 @@ { lvItem.iItem = nItem; lvItem.iSubItem = 0; + lvItem.pszText = szDispText; if (!LISTVIEW_GetItemW(infoPtr, &lvItem)) continue; if (lvItem.mask & LVIF_PARAM) @@ -7923,17 +7917,6 @@ * nearest number of pixels that are a whole line. Ex: if line height * is 16 and an 8 is passed, the list will be scrolled by 16. If a 7 * is passed, then the scroll will be 0. (per MSDN 7/2002) - * - * For: (per experimentation with native control and CSpy ListView) - * LV_VIEW_ICON scrolling in any direction is allowed - * LV_VIEW_SMALLICON scrolling in any direction is allowed - * LV_VIEW_LIST dx=1 = 1 column (horizontal only) - * but will only scroll 1 column per message - * no matter what the value. - * dy must be 0 or FALSE returned. - * LV_VIEW_DETAILS dx=1 = 1 pixel - * dy= see above - * */ static BOOL LISTVIEW_Scroll(LISTVIEW_INFO *infoPtr, INT dx, INT dy) { Modified: trunk/reactos/dll/win32/comctl32/monthcal.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/monthca…
============================================================================== --- trunk/reactos/dll/win32/comctl32/monthcal.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/monthcal.c [iso-8859-1] Sat Sep 14 20:06:00 2013 @@ -123,7 +123,6 @@ int width_increment; INT delta; /* scroll rate; # of months that the */ /* control moves when user clicks a scroll button */ - int visible; /* # of months visible */ int firstDay; /* Start month calendar with firstDay's day, stored in SYSTEMTIME format */ BOOL firstDaySet; /* first week day differs from locale defined */ @@ -1302,8 +1301,8 @@ if(infoPtr->delta) return infoPtr->delta; - else - return infoPtr->visible; + + return MONTHCAL_GetMonthRange(infoPtr, GMR_VISIBLE, NULL); } Modified: trunk/reactos/dll/win32/comctl32/progress.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/progres…
============================================================================== --- trunk/reactos/dll/win32/comctl32/progress.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/progress.c [iso-8859-1] Sat Sep 14 20:06:00 2013 @@ -544,7 +544,7 @@ case WM_CREATE: { DWORD dwExStyle = GetWindowLongW (hwnd, GWL_EXSTYLE); - + theme = OpenThemeData (hwnd, themeClass); dwExStyle &= ~(WS_EX_CLIENTEDGE | WS_EX_WINDOWEDGE); @@ -690,17 +690,25 @@ return infoPtr->CurVal; case PBM_SETBARCOLOR: + { + COLORREF clr = infoPtr->ColorBar; + infoPtr->ColorBar = (COLORREF)lParam; InvalidateRect(hwnd, NULL, TRUE); - return 0; + return clr; + } case PBM_GETBARCOLOR: return infoPtr->ColorBar; case PBM_SETBKCOLOR: + { + COLORREF clr = infoPtr->ColorBk; + infoPtr->ColorBk = (COLORREF)lParam; InvalidateRect(hwnd, NULL, TRUE); - return 0; + return clr; + } case PBM_GETBKCOLOR: return infoPtr->ColorBk; 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] Sat Sep 14 20:06:00 2013 @@ -46,11 +46,11 @@ * - RB_SETTOOLTIPS * - WM_CHARTOITEM * - WM_LBUTTONDBLCLK - * - WM_MEASUREITEM * - WM_PALETTECHANGED * - WM_QUERYNEWPALETTE * - WM_RBUTTONDOWN * - WM_RBUTTONUP + * - WM_SYSCOLORCHANGE * - WM_VKEYTOITEM * - WM_WININICHANGE * Notifications: @@ -136,6 +136,9 @@ LPWSTR lpText; HWND hwndPrevParent; } REBAR_BAND; + +/* has a value of: 0, CCS_TOP, CCS_NOMOVEY, CCS_BOTTOM */ +#define CCS_LAYOUT_MASK 0x3 /* fStatus flags */ #define HAS_GRIPPER 0x00000001 @@ -1049,14 +1052,6 @@ lpBand->rcChild = rbcz.rcChild; /* *** ??? */ } - /* native (IE4 in "Favorites" frame **1) does: - * SetRect (&rc, -1, -1, -1, -1) - * EqualRect (&rc,band->rc???) - * if ret==0 - * CopyRect (band->rc????, &rc) - * set flag outside of loop - */ - GetClassNameW (lpBand->hwndChild, szClassName, sizeof(szClassName)/sizeof(szClassName[0])); if (!lstrcmpW (szClassName, strComboBox) || !lstrcmpW (szClassName, WC_COMBOBOXEXW)) { @@ -1108,15 +1103,6 @@ if (infoPtr->DoRedraw) UpdateWindow (infoPtr->hwndSelf); - - /* native (from **1 above) does: - * UpdateWindow(rebar) - * REBAR_ForceResize - * RBN_HEIGHTCHANGE if necessary - * if ret from any EqualRect was 0 - * Goto "BeginDeferWindowPos" - */ - } /* Returns the next visible band (the first visible band in [i+1; infoPtr->uNumBands) ) @@ -3317,29 +3303,6 @@ infoPtr->hFont = infoPtr->hDefaultFont = tfont; } -/* native does: - GetSysColor (numerous); - GetSysColorBrush (numerous) (see WM_SYSCOLORCHANGE); - *GetStockObject (SYSTEM_FONT); - *SetWindowLong (hwnd, 0, info ptr); - *WM_NOTIFYFORMAT; - *SetWindowLong (hwnd, GWL_STYLE, style+0x10000001); - WS_VISIBLE = 0x10000000; - CCS_TOP = 0x00000001; - *SystemParametersInfo (SPI_GETNONCLIENTMETRICS...); - *CreateFontIndirect (lfCaptionFont from above); - GetDC (); - SelectObject (hdc, fontabove); - GetTextMetrics (hdc, ); guessing is tmHeight - SelectObject (hdc, oldfont); - ReleaseDC (); - GetWindowRect (); - MapWindowPoints (0, parent, rectabove, 2); - GetWindowRect (); - GetClientRect (); - ClientToScreen (clientrect); - SetWindowPos (hwnd, 0, 0, 0, 0, 0, SWP_NOZORDER); - */ return TRUE; } @@ -3725,6 +3688,7 @@ case WM_COMMAND: case WM_DRAWITEM: case WM_NOTIFY: + case WM_MEASUREITEM: return SendMessageW(REBAR_GetNotifyParent (infoPtr), uMsg, wParam, lParam); @@ -3749,8 +3713,6 @@ case WM_LBUTTONUP: return REBAR_LButtonUp (infoPtr); - -/* case WM_MEASUREITEM: supported according to ControlSpy */ case WM_MOUSEMOVE: return REBAR_MouseMove (infoPtr, lParam); 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] Sat Sep 14 20:06:00 2013 @@ -1023,37 +1023,18 @@ /* * Calculate the position of the scroll control. */ - if(infoPtr->dwStyle & TCS_VERTICAL) - { - controlPos.right = clientRect->right; - controlPos.left = controlPos.right - 2 * GetSystemMetrics(SM_CXHSCROLL); - - if (infoPtr->dwStyle & TCS_BOTTOM) - { - controlPos.top = clientRect->bottom - infoPtr->tabHeight; - controlPos.bottom = controlPos.top + GetSystemMetrics(SM_CYHSCROLL); - } - else - { - controlPos.bottom = clientRect->top + infoPtr->tabHeight; - controlPos.top = controlPos.bottom - GetSystemMetrics(SM_CYHSCROLL); - } + controlPos.right = clientRect->right; + controlPos.left = controlPos.right - 2 * GetSystemMetrics(SM_CXHSCROLL); + + if (infoPtr->dwStyle & TCS_BOTTOM) + { + controlPos.top = clientRect->bottom - infoPtr->tabHeight; + controlPos.bottom = controlPos.top + GetSystemMetrics(SM_CYHSCROLL); } else { - controlPos.right = clientRect->right; - controlPos.left = controlPos.right - 2 * GetSystemMetrics(SM_CXHSCROLL); - - if (infoPtr->dwStyle & TCS_BOTTOM) - { - controlPos.top = clientRect->bottom - infoPtr->tabHeight; - controlPos.bottom = controlPos.top + GetSystemMetrics(SM_CYHSCROLL); - } - else - { - controlPos.bottom = clientRect->top + infoPtr->tabHeight; - controlPos.top = controlPos.bottom - GetSystemMetrics(SM_CYHSCROLL); - } + controlPos.bottom = clientRect->top + infoPtr->tabHeight; + controlPos.top = controlPos.bottom - GetSystemMetrics(SM_CYHSCROLL); } /* @@ -1917,9 +1898,8 @@ /* Draw the text */ if(infoPtr->dwStyle & TCS_VERTICAL) /* if we are vertical rotate the text and each character */ { - static const WCHAR ArialW[] = { 'A','r','i','a','l',0 }; LOGFONTW logfont; - HFONT hFont = 0; + HFONT hFont; INT nEscapement = 900; INT nOrientation = 900; @@ -1930,21 +1910,9 @@ } /* to get a font with the escapement and orientation we are looking for, we need to */ - /* call CreateFontIndirectA, which requires us to set the values of the logfont we pass in */ - if (!GetObjectW((infoPtr->hFont) ? - infoPtr->hFont : GetStockObject(SYSTEM_FONT), - sizeof(LOGFONTW),&logfont)) - { - INT iPointSize = 9; - - lstrcpyW(logfont.lfFaceName, ArialW); - logfont.lfHeight = -MulDiv(iPointSize, GetDeviceCaps(hdc, LOGPIXELSY), - 72); - logfont.lfWeight = FW_NORMAL; - logfont.lfItalic = 0; - logfont.lfUnderline = 0; - logfont.lfStrikeOut = 0; - } + /* call CreateFontIndirect, which requires us to set the values of the logfont we pass in */ + if (!GetObjectW(infoPtr->hFont, sizeof(logfont), &logfont)) + GetObjectW(GetStockObject(DEFAULT_GUI_FONT), sizeof(logfont), &logfont); logfont.lfEscapement = nEscapement; logfont.lfOrientation = nOrientation; 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] Sat Sep 14 20:06:00 2013 @@ -945,11 +945,6 @@ tbcd.clrHighlightHotTrack = 0; tbcd.nStringBkMode = TRANSPARENT; tbcd.nHLStringBkMode = OPAQUE; - /* MSDN says that this is the text rectangle. - * But (why always a but) tracing of v5.7 of native shows - * that this is really a *relative* rectangle based on the - * the nmcd.rc. Also the left and top are always 0 ignoring - * any bitmap that might be present. */ tbcd.rcText.left = 0; tbcd.rcText.top = 0; tbcd.rcText.right = rcText.right - rc.left; @@ -5118,7 +5113,6 @@ switch(wParam) { case 0: if (lpsize->cx == -1) { - /* **** this is wrong, native measures each button and sets it */ lpsize->cx = infoPtr->rcBound.right - infoPtr->rcBound.left; } else if(HIWORD(lpsize->cx)) { @@ -5481,8 +5475,7 @@ btnPtr->bDropDownPressed = FALSE; InvalidateRect(infoPtr->hwndSelf, &btnPtr->rect, TRUE); - /* find and set hot item - * NOTE: native doesn't do this, but that is a bug */ + /* find and set hot item */ GetCursorPos(&pt); ScreenToClient(infoPtr->hwndSelf, &pt); nHit = TOOLBAR_InternalHitTest(infoPtr, &pt, &button); @@ -5663,9 +5656,6 @@ TOOLBAR_SendNotify (&hdr, infoPtr, NM_RELEASEDCAPTURE); - /* native issues TBN_ENDDRAG here, if _LBUTTONDOWN issued the - * TBN_BEGINDRAG - */ memset(&nmtb, 0, sizeof(nmtb)); nmtb.iItem = btnPtr->idCommand; TOOLBAR_SendNotify ((NMHDR *) &nmtb, infoPtr, @@ -5956,39 +5946,6 @@ HINSTANCE hInst = (HINSTANCE)GetWindowLongPtrW (GetParent (hwnd), GWLP_HINSTANCE); SetWindowLongPtrW (hwnd, GWLP_HINSTANCE, (LONG_PTR)hInst); } - - /* native control does: - * Get a lot of colors and brushes - * WM_NOTIFYFORMAT - * SystemParametersInfoW(0x1f, 0x3c, adr1, 0) - * CreateFontIndirectW(adr1) - * CreateBitmap(0x27, 0x24, 1, 1, 0) - * hdc = GetDC(toolbar) - * GetSystemMetrics(0x48) - * fnt2=CreateFontW(0xe, 0, 0, 0, 0x190, 0, 0, 0, 0, 2, - * 0, 0, 0, 0, "MARLETT") - * oldfnt = SelectObject(hdc, fnt2) - * GetCharWidthW(hdc, 0x36, 0x36, adr2) - * GetTextMetricsW(hdc, adr3) - * SelectObject(hdc, oldfnt) - * DeleteObject(fnt2) - * ReleaseDC(hdc) - * InvalidateRect(toolbar, 0, 1) - * SetWindowLongW(toolbar, 0, addr) - * SetWindowLongW(toolbar, -16, xxx) **sometimes** - * WM_STYLECHANGING - * CallWinEx old new - * ie 1 0x56000a4c 0x46000a4c 0x56008a4d - * ie 2 0x4600094c 0x4600094c 0x4600894d - * ie 3 0x56000b4c 0x46000b4c 0x56008b4d - * rebar 0x50008844 0x40008844 0x50008845 - * pager 0x50000844 0x40000844 0x50008845 - * IC35mgr 0x5400084e **nochange** - * on entry to _NCCREATE 0x5400084e - * rowlist 0x5400004e **nochange** - * on entry to _NCCREATE 0x5400004e - * - */ /* I think the code below is a bug, but it is the way that the native * controls seem to work. The effect is that if the user of TBSTYLE_FLAT 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] Sat Sep 14 20:06:00 2013 @@ -499,12 +499,12 @@ 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 + 1; - rcTics.bottom = infoPtr->rcChannel.bottom - offsetthumb; + rcTics.top = infoPtr->rcChannel.top + offsetthumb; + rcTics.bottom = infoPtr->rcChannel.bottom - offsetthumb - 1; } else { offsetthumb = (infoPtr->rcThumb.right - infoPtr->rcThumb.left)/2; - rcTics.left = infoPtr->rcChannel.left + offsetthumb + 1; - rcTics.right = infoPtr->rcChannel.right - offsetthumb; + 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; } @@ -612,19 +612,105 @@ } } +#define POINT_COUNT 6 +static int +TRACKBAR_FillThumb (const TRACKBAR_INFO *infoPtr, HDC hdc, HBRUSH hbrush) +{ + const RECT *thumb = &infoPtr->rcThumb; + POINT points[6]; + int PointDepth; + HBRUSH oldbr; + + if (infoPtr->dwStyle & TBS_BOTH) + { + FillRect(hdc, thumb, hbrush); + return 0; + } + + if (infoPtr->dwStyle & TBS_VERT) + { + PointDepth = (thumb->bottom - thumb->top) / 2; + if (infoPtr->dwStyle & TBS_LEFT) + { + points[0].x = thumb->right-1; + points[0].y = thumb->top; + points[1].x = thumb->right-1; + points[1].y = thumb->bottom-1; + points[2].x = thumb->left + PointDepth; + points[2].y = thumb->bottom-1; + points[3].x = thumb->left; + points[3].y = thumb->top + PointDepth; + points[4].x = thumb->left + PointDepth; + points[4].y = thumb->top; + points[5].x = points[0].x; + points[5].y = points[0].y; + } + else + { + points[0].x = thumb->right; + points[0].y = thumb->top + PointDepth; + points[1].x = thumb->right - PointDepth; + points[1].y = thumb->bottom-1; + points[2].x = thumb->left; + points[2].y = thumb->bottom-1; + points[3].x = thumb->left; + points[3].y = thumb->top; + points[4].x = thumb->right - PointDepth; + points[4].y = thumb->top; + points[5].x = points[0].x; + points[5].y = points[0].y; + } + } + else + { + PointDepth = (thumb->right - thumb->left) / 2; + if (infoPtr->dwStyle & TBS_TOP) + { + points[0].x = thumb->left + PointDepth; + points[0].y = thumb->top+1; + points[1].x = thumb->right-1; + points[1].y = thumb->top + PointDepth + 1; + points[2].x = thumb->right-1; + points[2].y = thumb->bottom-1; + points[3].x = thumb->left; + points[3].y = thumb->bottom-1; + points[4].x = thumb->left; + points[4].y = thumb->top + PointDepth + 1; + points[5].x = points[0].x; + points[5].y = points[0].y; + } + else + { + points[0].x = thumb->right-1; + points[0].y = thumb->top; + points[1].x = thumb->right-1; + points[1].y = thumb->bottom - PointDepth - 1; + points[2].x = thumb->left + PointDepth; + points[2].y = thumb->bottom-1; + points[3].x = thumb->left; + points[3].y = thumb->bottom - PointDepth - 1; + points[4].x = thumb->left; + points[4].y = thumb->top; + points[5].x = points[0].x; + points[5].y = points[0].y; + } + } + + oldbr = SelectObject(hdc, hbrush); + SetPolyFillMode(hdc, WINDING); + Polygon(hdc, points, sizeof(points) / sizeof(points[0])); + SelectObject(hdc, oldbr); + + return PointDepth; +} + static void -TRACKBAR_DrawThumb (const TRACKBAR_INFO *infoPtr, HDC hdc) -{ - HBRUSH oldbr; - HPEN oldpen; - RECT thumb = infoPtr->rcThumb; - int BlackUntil = 3; - int PointCount = 6; - POINT points[6]; - int fillClr; +TRACKBAR_DrawThumb (TRACKBAR_INFO *infoPtr, HDC hdc) +{ + HTHEME theme = GetWindowTheme (infoPtr->hwndSelf); int PointDepth; - HTHEME theme = GetWindowTheme (infoPtr->hwndSelf); - + HBRUSH brush; + if (theme) { int partId; @@ -645,113 +731,115 @@ else stateId = TUS_NORMAL; - DrawThemeBackground (theme, hdc, partId, stateId, &thumb, 0); + DrawThemeBackground (theme, hdc, partId, stateId, &infoPtr->rcThumb, NULL); return; } - fillClr = infoPtr->flags & TB_DRAG_MODE ? COLOR_BTNHILIGHT : COLOR_BTNFACE; - oldbr = SelectObject (hdc, GetSysColorBrush(fillClr)); - SetPolyFillMode (hdc, WINDING); + if (infoPtr->dwStyle & WS_DISABLED || infoPtr->flags & TB_DRAG_MODE) + { + if (comctl32_color.clr3dHilight == comctl32_color.clrWindow) + brush = COMCTL32_hPattern55AABrush; + else + brush = GetSysColorBrush(COLOR_SCROLLBAR); + + SetTextColor(hdc, comctl32_color.clr3dFace); + SetBkColor(hdc, comctl32_color.clr3dHilight); + } + else + brush = GetSysColorBrush(COLOR_BTNFACE); + + PointDepth = TRACKBAR_FillThumb(infoPtr, hdc, brush); if (infoPtr->dwStyle & TBS_BOTH) { - points[0].x=thumb.right; - points[0].y=thumb.top; - points[1].x=thumb.right; - points[1].y=thumb.bottom; - points[2].x=thumb.left; - points[2].y=thumb.bottom; - points[3].x=thumb.left; - points[3].y=thumb.top; - points[4].x=points[0].x; - points[4].y=points[0].y; - PointCount = 5; - BlackUntil = 3; + DrawEdge(hdc, &infoPtr->rcThumb, EDGE_RAISED, BF_RECT | BF_SOFT); + return; } else { + RECT thumb = infoPtr->rcThumb; + if (infoPtr->dwStyle & TBS_VERT) { - PointDepth = (thumb.bottom - thumb.top) / 2; if (infoPtr->dwStyle & TBS_LEFT) { - points[0].x=thumb.right; - points[0].y=thumb.top; - points[1].x=thumb.right; - points[1].y=thumb.bottom; - points[2].x=thumb.left + PointDepth; - points[2].y=thumb.bottom; - points[3].x=thumb.left; - points[3].y=(thumb.bottom - thumb.top) / 2 + thumb.top + 1; - points[4].x=thumb.left + PointDepth; - points[4].y=thumb.top; - points[5].x=points[0].x; - points[5].y=points[0].y; - BlackUntil = 4; + /* rectangular part */ + thumb.left += PointDepth; + DrawEdge(hdc, &thumb, EDGE_RAISED, BF_TOP | BF_RIGHT | BF_BOTTOM | BF_SOFT); + + /* light edge */ + thumb.left -= PointDepth; + thumb.right = thumb.left + PointDepth; + thumb.bottom = infoPtr->rcThumb.top + PointDepth + 1; + thumb.top = infoPtr->rcThumb.top; + DrawEdge(hdc, &thumb, EDGE_RAISED, BF_DIAGONAL_ENDTOPRIGHT | BF_SOFT); + + /* shadowed edge */ + thumb.top += PointDepth; + thumb.bottom += PointDepth; + DrawEdge(hdc, &thumb, EDGE_SUNKEN, BF_DIAGONAL_ENDTOPLEFT | BF_SOFT); + return; } else { - points[0].x=thumb.right; - points[0].y=(thumb.bottom - thumb.top) / 2 + thumb.top + 1; - points[1].x=thumb.right - PointDepth; - points[1].y=thumb.bottom; - points[2].x=thumb.left; - points[2].y=thumb.bottom; - points[3].x=thumb.left; - points[3].y=thumb.top; - points[4].x=thumb.right - PointDepth; - points[4].y=thumb.top; - points[5].x=points[0].x; - points[5].y=points[0].y; + /* rectangular part */ + thumb.right -= PointDepth; + DrawEdge(hdc, &thumb, EDGE_RAISED, BF_TOP | BF_LEFT | BF_BOTTOM | BF_SOFT); + + /* light edge */ + thumb.left = thumb.right; + thumb.right += PointDepth + 1; + thumb.bottom = infoPtr->rcThumb.top + PointDepth + 1; + thumb.top = infoPtr->rcThumb.top; + DrawEdge(hdc, &thumb, EDGE_RAISED, BF_DIAGONAL_ENDTOPLEFT | BF_SOFT); + + /* shadowed edge */ + thumb.top += PointDepth; + thumb.bottom += PointDepth; + DrawEdge(hdc, &thumb, EDGE_RAISED, BF_DIAGONAL_ENDBOTTOMLEFT | BF_SOFT); } } else { - PointDepth = (thumb.right - thumb.left) / 2; if (infoPtr->dwStyle & TBS_TOP) { - points[0].x=(thumb.right - thumb.left) / 2 + thumb.left + 1; - points[0].y=thumb.top; - points[1].x=thumb.right; - points[1].y=thumb.top + PointDepth; - points[2].x=thumb.right; - points[2].y=thumb.bottom; - points[3].x=thumb.left; - points[3].y=thumb.bottom; - points[4].x=thumb.left; - points[4].y=thumb.top + PointDepth; - points[5].x=points[0].x; - points[5].y=points[0].y; - BlackUntil = 4; + /* rectangular part */ + thumb.top += PointDepth; + DrawEdge(hdc, &thumb, EDGE_RAISED, BF_LEFT | BF_BOTTOM | BF_RIGHT | BF_SOFT); + + /* light edge */ + thumb.left = infoPtr->rcThumb.left; + thumb.right = thumb.left + PointDepth; + thumb.bottom = infoPtr->rcThumb.top + PointDepth + 1; + thumb.top -= PointDepth; + DrawEdge(hdc, &thumb, EDGE_RAISED, BF_DIAGONAL_ENDTOPRIGHT | BF_SOFT); + + /* shadowed edge */ + thumb.left += PointDepth; + thumb.right += PointDepth; + DrawEdge(hdc, &thumb, EDGE_RAISED, BF_DIAGONAL_ENDBOTTOMRIGHT | BF_SOFT); } else { - points[0].x=thumb.right; - points[0].y=thumb.top; - points[1].x=thumb.right; - points[1].y=thumb.bottom - PointDepth; - points[2].x=(thumb.right - thumb.left) / 2 + thumb.left + 1; - points[2].y=thumb.bottom; - points[3].x=thumb.left; - points[3].y=thumb.bottom - PointDepth; - points[4].x=thumb.left; - points[4].y=thumb.top; - points[5].x=points[0].x; - points[5].y=points[0].y; + /* rectangular part */ + thumb.bottom -= PointDepth; + DrawEdge(hdc, &thumb, EDGE_RAISED, BF_LEFT | BF_TOP | BF_RIGHT | BF_SOFT); + + /* light edge */ + thumb.left = infoPtr->rcThumb.left; + thumb.right = thumb.left + PointDepth; + thumb.top = infoPtr->rcThumb.bottom - PointDepth - 1; + thumb.bottom += PointDepth; + DrawEdge(hdc, &thumb, EDGE_RAISED, BF_DIAGONAL_ENDTOPLEFT | BF_SOFT); + + /* shadowed edge */ + thumb.left += PointDepth; + thumb.right += PointDepth; + DrawEdge(hdc, &thumb, EDGE_RAISED, BF_DIAGONAL_ENDBOTTOMLEFT | BF_SOFT); } } - - } - - /* Draw the thumb now */ - Polygon (hdc, points, PointCount); - oldpen = SelectObject(hdc, GetStockObject(BLACK_PEN)); - Polyline(hdc,points, BlackUntil); - SelectObject(hdc, GetStockObject(WHITE_PEN)); - Polyline(hdc, &points[BlackUntil-1], PointCount+1-BlackUntil); - SelectObject(hdc, oldpen); - SelectObject(hdc, oldbr); + } } @@ -1295,9 +1383,11 @@ TRACKBAR_SetThumbLength (TRACKBAR_INFO *infoPtr, UINT iLength) { if (infoPtr->dwStyle & TBS_FIXEDLENGTH) { + /* We're not supposed to check if it's really changed or not, + just repaint in any case. */ infoPtr->uThumbLen = iLength; infoPtr->flags |= TB_THUMBSIZECHANGED; - InvalidateRect (infoPtr->hwndSelf, &infoPtr->rcThumb, FALSE); + TRACKBAR_InvalidateAll(infoPtr); } return 0; @@ -1571,9 +1661,15 @@ static LRESULT TRACKBAR_Size (TRACKBAR_INFO *infoPtr) { - TRACKBAR_CalcChannel (infoPtr); - TRACKBAR_UpdateThumb (infoPtr); + if (infoPtr->dwStyle & TBS_FIXEDLENGTH) + { + TRACKBAR_CalcChannel(infoPtr); + TRACKBAR_UpdateThumb(infoPtr); + } + else + TRACKBAR_InitializeThumb(infoPtr); TRACKBAR_AlignBuddies (infoPtr); + TRACKBAR_InvalidateAll(infoPtr); return 0; } @@ -1747,6 +1843,19 @@ } +static LRESULT +TRACKBAR_Enable (TRACKBAR_INFO *infoPtr, BOOL enable) +{ + if (enable) + infoPtr->dwStyle &= ~WS_DISABLED; + else + infoPtr->dwStyle |= WS_DISABLED; + + InvalidateRect(infoPtr->hwndSelf, &infoPtr->rcThumb, TRUE); + + return 1; +} + static LRESULT WINAPI TRACKBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { @@ -1874,7 +1983,8 @@ case WM_DESTROY: return TRACKBAR_Destroy (infoPtr); -/* case WM_ENABLE: */ + case WM_ENABLE: + return TRACKBAR_Enable (infoPtr, (BOOL)wParam); case WM_ERASEBKGND: return 0; 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] Sat Sep 14 20:06:00 2013 @@ -2526,7 +2526,7 @@ * - Otherwise - use background color */ if ((item->state & TVIS_DROPHILITED) || ((item == infoPtr->focusedItem) && !(item->state & TVIS_SELECTED)) || - ((item->state & TVIS_SELECTED) && (!infoPtr->focusedItem) && + ((item->state & TVIS_SELECTED) && (!infoPtr->focusedItem || item == infoPtr->focusedItem) && (inFocus || (infoPtr->dwStyle & TVS_SHOWSELALWAYS)))) { if ((item->state & TVIS_DROPHILITED) || inFocus) @@ -3301,6 +3301,8 @@ TREEVIEW_RemoveAllChildren(infoPtr, item); item->cChildren = old_cChildren; } + if (!wasExpanded) + return FALSE; if (item->firstChild) { 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] Sat Sep 14 20:06:00 2013 @@ -59,7 +59,7 @@ reactos/dll/win32/cabinet # Synced to Wine-1.5.26 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.5.26 +reactos/dll/win32/comctl32 # Synced to Wine 1.7.1 reactos/dll/win32/comdlg32 # Synced to Wine 1.3.37 reactos/dll/win32/compstui # Synced to Wine-1.5.19 reactos/dll/win32/credui # Synced to Wine-1.5.4
11 years, 3 months
1
0
0
0
← Newer
1
...
34
35
36
37
38
39
40
...
56
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Results per page:
10
25
50
100
200