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
February 2011
----- 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
18 participants
352 discussions
Start a n
N
ew thread
[akhaldi] 50636: [CMAKE] - Fix build.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Wed Feb 9 17:06:56 2011 New Revision: 50636 URL:
http://svn.reactos.org/svn/reactos?rev=50636&view=rev
Log: [CMAKE] - Fix build. Modified: branches/cmake-bringup/ntoskrnl/CMakeLists.txt Modified: branches/cmake-bringup/ntoskrnl/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/ntoskrnl/CMakeLis…
============================================================================== --- branches/cmake-bringup/ntoskrnl/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/ntoskrnl/CMakeLists.txt [iso-8859-1] Wed Feb 9 17:06:56 2011 @@ -445,7 +445,6 @@ add_importlibs(ntoskrnl hal kdcom bootvid) add_pch(ntoskrnl ${CMAKE_CURRENT_SOURCE_DIR}/include/ntoskrnl.h ${SOURCE}) -set_source_files_properties(${REACTOS_BINARY_DIR}/ntoskrnl/ex/zw.S PROPERTIES GENERATED TRUE) add_dependencies(ntoskrnl psdk bugcodes kernel_zw kernel_napi asm) add_minicd_target(ntoskrnl reactos ntoskrnl.exe)
13 years, 10 months
1
0
0
0
[tkreuzer] 50635: sync trunk HEAD (r50626)
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Feb 9 15:56:57 2011 New Revision: 50635 URL:
http://svn.reactos.org/svn/reactos?rev=50635&view=rev
Log: sync trunk HEAD (r50626) Added: branches/cmake-bringup/include/asm/syscalls.inc - copied unchanged from r50626, trunk/reactos/include/reactos/syscalls.inc branches/cmake-bringup/ntoskrnl/ex/zw.S - copied unchanged from r50626, trunk/reactos/ntoskrnl/ex/zw.S branches/cmake-bringup/ntoskrnl/include/internal/napi.h - copied unchanged from r50626, trunk/reactos/ntoskrnl/include/internal/napi.h branches/cmake-bringup/ntoskrnl/include/sysfuncs.h - copied unchanged from r50626, trunk/reactos/ntoskrnl/include/sysfuncs.h branches/cmake-bringup/ntoskrnl/ntdll.S - copied unchanged from r50626, trunk/reactos/ntoskrnl/ntdll.S branches/cmake-bringup/subsystems/win32/win32k/include/napi.h - copied unchanged from r50626, trunk/reactos/subsystems/win32/win32k/include/napi.h branches/cmake-bringup/subsystems/win32/win32k/sys-stubs.S - copied unchanged from r50626, trunk/reactos/subsystems/win32/win32k/sys-stubs.S branches/cmake-bringup/subsystems/win32/win32k/w32ksvc.h - copied unchanged from r50626, trunk/reactos/subsystems/win32/win32k/w32ksvc.h Removed: branches/cmake-bringup/lib/ntdllsys/ branches/cmake-bringup/lib/win32ksys/ branches/cmake-bringup/tools/nci/ Modified: branches/cmake-bringup/ (props changed) branches/cmake-bringup/CMakeLists.txt branches/cmake-bringup/base/setup/usetup/cabinet.c branches/cmake-bringup/boot/bootdata/hivedef_amd64.inf branches/cmake-bringup/boot/bootdata/hivedef_arm.inf branches/cmake-bringup/boot/bootdata/hivedef_i386.inf branches/cmake-bringup/boot/freeldr/freeldr/include/fs/ntfs.h branches/cmake-bringup/dll/win32/setupapi/cfgmgr.c branches/cmake-bringup/dll/win32/setupapi/setupapi.spec branches/cmake-bringup/dll/win32/syssetup/install.c branches/cmake-bringup/dll/win32/wdmaud.drv/legacy.c branches/cmake-bringup/dll/win32/wdmaud.drv/mixer.c branches/cmake-bringup/include/reactos/libs/sound/mmebuddy.h branches/cmake-bringup/lib/CMakeLists.txt branches/cmake-bringup/lib/rtl/heap.c branches/cmake-bringup/lib/rtl/nls.c branches/cmake-bringup/lib/rtl/unicode.c branches/cmake-bringup/ntoskrnl/CMakeLists.txt branches/cmake-bringup/ntoskrnl/ke/powerpc/cpu.c branches/cmake-bringup/ntoskrnl/mm/section.c branches/cmake-bringup/subsystems/win32/win32k/CMakeLists.txt branches/cmake-bringup/subsystems/win32/win32k/eng/xlate.c branches/cmake-bringup/subsystems/win32/win32k/objects/gdiobj.c branches/cmake-bringup/tools/CMakeLists.txt Propchange: branches/cmake-bringup/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Feb 9 15:56:57 2011 @@ -3,4 +3,4 @@ /branches/reactx/reactos:49994-49995 /branches/ros-amd64-bringup:36852 /branches/ros-amd64-bringup/reactos:34711-34712,34741,34743,34770,34780-34782,34803,34812,34839,34842,34864,34870,34874,34877,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35655,35683,35739,35746,35762,35771,35777,35781,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36011-36013,36172,36360,36380,36388-36389,36393,36397,36443,36445,36475,36502-36503,36505,36570,36614,36852,36898-36899,36930,36936,36949,36951,36958,36961,36964,36969,36972,36987-36988,36990,36992,37019,37322-37323,37333-37334,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38092,38100,38148-38151,38264-38265,38268,38355,39151,39333,39335,39345,39639,40120,40122-40123,40125,40127-40128,40155,40247,40324,40608,40753,40926-40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41070,41082-41086,41097-41098,41101,41449,41479-41480,41483-41485,41499-41500,41502,41531,41536,41540,41546-41547,41549,43080,43426,43451,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43836,43838-43840,43852,43857-43858,43860,43905-43907,43952,43954,43965,43969,43979,43981,43992,44002,44036-44037,44039-44040,44044-44045,44053,44065,44095,44123,44143-44144,44205,44238,44257,44259,44294,44338-44339,44385,44389,44391,44426,44460,44467-44468,44470-44471,44499,44501,44503-44504,44506,44510-44512,44521,44523-44526,44530,44540,44601,44634,44639,44772,44818,45124,45126-45127,45430,46394,46404,46478,46511,46523-46524,46526,46534-46535,46537-46539,46589,46805,46868,47472,47846-47847,47878,47882 -/trunk/reactos:48236-50570,50601-50602 +/trunk/reactos:48236-50626 Modified: branches/cmake-bringup/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/CMakeLists.txt?re…
============================================================================== --- branches/cmake-bringup/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/CMakeLists.txt [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -54,9 +54,9 @@ add_subdirectory(lib) if(NOT MSVC) - export(TARGETS widl nci gendib cabman cdmake mkhive spec2def geninc FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) - else() - export(TARGETS nci gendib cabman cdmake mkhive spec2def geninc FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) + export(TARGETS widl gendib cabman cdmake mkhive spec2def geninc FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) + else() + export(TARGETS gendib cabman cdmake mkhive spec2def geninc FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) endif() else() @@ -185,40 +185,6 @@ add_subdirectory(ntoskrnl) add_subdirectory(subsystems) - # nci generated intermediate files - - list(APPEND nci_output - ${REACTOS_BINARY_DIR}/ntoskrnl/include/internal/napi.h - ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/include/napi.h - ${REACTOS_BINARY_DIR}/lib/ntdllsys/ntdll.S - ${REACTOS_BINARY_DIR}/ntoskrnl/ex/zw.S - ${REACTOS_BINARY_DIR}/lib/win32ksys/win32k.S - ${REACTOS_BINARY_DIR}/dll/ntdll/def/ntsys.pspec) - - list(APPEND nci_folders - ${CMAKE_CURRENT_BINARY_DIR}/dll/ntdll/def - ${CMAKE_CURRENT_BINARY_DIR}/lib/ntdllsys/ntdll - ${CMAKE_CURRENT_BINARY_DIR}/lib/win32ksys - ${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl/include/internal - ${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl/ex - ${CMAKE_CURRENT_BINARY_DIR}/subsystems/win32/win32k/include) - - file(MAKE_DIRECTORY ${nci_folders}) - - add_custom_command( - OUTPUT ${nci_output} - COMMAND native-nci -arch ${ARCH} ${REACTOS_SOURCE_DIR}/ntoskrnl/sysfuncs.lst ${REACTOS_SOURCE_DIR}/subsystems/win32/win32k/w32ksvc.db ${nci_output} - DEPENDS native-nci ${nci_folders}) - - set_source_files_properties(${nci_output} PROPERTIES GENERATED TRUE) - - add_custom_target(ntdll_S ALL DEPENDS ${REACTOS_BINARY_DIR}/lib/ntdllsys/ntdll.S) - add_custom_target(win32k_S ALL DEPENDS ${REACTOS_BINARY_DIR}/lib/win32ksys/win32k.S) - add_custom_target(ntsys_pspec ALL DEPENDS ${REACTOS_BINARY_DIR}/dll/ntdll/def/ntsys.pspec) - add_custom_target(kernel_napi ALL DEPENDS ${REACTOS_BINARY_DIR}/ntoskrnl/include/internal/napi.h) - add_custom_target(subsystem_napi ALL DEPENDS ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/include/napi.h) - add_custom_target(kernel_zw ALL DEPENDS ${REACTOS_BINARY_DIR}/ntoskrnl/ex/zw.S) - file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/include/reactos) add_custom_target(buildno_header ALL DEPENDS ${REACTOS_BINARY_DIR}/include/reactos/buildno.h) Modified: branches/cmake-bringup/base/setup/usetup/cabinet.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/base/setup/usetup…
============================================================================== --- branches/cmake-bringup/base/setup/usetup/cabinet.c [iso-8859-1] (original) +++ branches/cmake-bringup/base/setup/usetup/cabinet.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -890,7 +890,7 @@ RtlInitAnsiString(&AnsiString, Search->File->FileName); wcscpy(DestName, DestPath); - UnicodeString.MaximumLength = sizeof(DestName) - wcslen(DestName); + UnicodeString.MaximumLength = sizeof(DestName) - wcslen(DestName) * sizeof(WCHAR); UnicodeString.Buffer = DestName + wcslen(DestName); UnicodeString.Length = 0; RtlAnsiStringToUnicodeString(&UnicodeString, &AnsiString, FALSE); Modified: branches/cmake-bringup/boot/bootdata/hivedef_amd64.inf URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/boot/bootdata/hiv…
============================================================================== --- branches/cmake-bringup/boot/bootdata/hivedef_amd64.inf [iso-8859-1] (original) +++ branches/cmake-bringup/boot/bootdata/hivedef_amd64.inf [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -97,7 +97,7 @@ HKCU,"Control Panel\Desktop","ScreenSaveTimeOut",0,"600" HKCU,"Control Panel\Desktop","WaitToKillAppTimeout",2,"20000" HKCU,"Control Panel\Desktop","Wallpaper",0x00000000,"" -HKCU,"Control Panel\Desktop","FontSmoothing",2,"0" +HKCU,"Control Panel\Desktop","FontSmoothing",0,"0" HKCU,"Control Panel\Desktop","FontSmoothingOrientation",0x00010003,0x00000001 HKCU,"Control Panel\Desktop","FontSmoothingType",0x00010003,0x00000001 HKCU,"Control Panel\Desktop","ForegroundFlashCount",0x00010003,0x00000003 Modified: branches/cmake-bringup/boot/bootdata/hivedef_arm.inf URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/boot/bootdata/hiv…
============================================================================== --- branches/cmake-bringup/boot/bootdata/hivedef_arm.inf [iso-8859-1] (original) +++ branches/cmake-bringup/boot/bootdata/hivedef_arm.inf [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -28,7 +28,7 @@ HKCU,"Control Panel\Desktop","SCRNSAVE.EXE",0x00000000,"" HKCU,"Control Panel\Desktop","WaitToKillAppTimeout",0x00000002,"20000" HKCU,"Control Panel\Desktop","Wallpaper",0x00000000,"" -HKCU,"Control Panel\Desktop","FontSmoothing",2,"0" +HKCU,"Control Panel\Desktop","FontSmoothing",0,"0" HKCU,"Control Panel\Desktop","SmoothScroll",3,00,00,00,00 HKCU,"Control Panel\Desktop","UserPreferencesMask",3,10,00,00,80 HKCU,"Control Panel\Desktop","LowPowerActive",,"0" Modified: branches/cmake-bringup/boot/bootdata/hivedef_i386.inf URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/boot/bootdata/hiv…
============================================================================== Binary files - no diff available. Modified: branches/cmake-bringup/boot/freeldr/freeldr/include/fs/ntfs.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/boot/freeldr/free…
============================================================================== --- branches/cmake-bringup/boot/freeldr/freeldr/include/fs/ntfs.h [iso-8859-1] (original) +++ branches/cmake-bringup/boot/freeldr/freeldr/include/fs/ntfs.h [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -1,6 +1,7 @@ /* * FreeLoader NTFS support * Copyright (C) 2004 Filip Navara <xnavara(a)volny.cz> + * Copyright (C) 2011 Pierre Schweitzer <pierre.schweitzer(a)reactos.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,16 +31,22 @@ #define NTFS_FILE_BADCLUS 8 #define NTFS_FILE_QUOTA 9 #define NTFS_FILE_UPCASE 10 +#define NTFS_FILE_EXTEND 11 #define NTFS_ATTR_TYPE_STANDARD_INFORMATION 0x10 #define NTFS_ATTR_TYPE_ATTRIBUTE_LIST 0x20 #define NTFS_ATTR_TYPE_FILENAME 0x30 +#define NTFS_ATTR_TYPE_OBJECT_ID 0x40 #define NTFS_ATTR_TYPE_SECURITY_DESCRIPTOR 0x50 +#define NTFS_ATTR_TYPE_VOLUME_NAME 0x60 +#define NTFS_ATTR_TYPE_VOLUME_INFORMATION 0x70 #define NTFS_ATTR_TYPE_DATA 0x80 #define NTFS_ATTR_TYPE_INDEX_ROOT 0x90 #define NTFS_ATTR_TYPE_INDEX_ALLOCATION 0xa0 #define NTFS_ATTR_TYPE_BITMAP 0xb0 -#define NTFS_ATTR_TYPE_SYMLINK 0xc0 +#define NTFS_ATTR_TYPE_REPARSE_POINT 0xc0 +#define NTFS_ATTR_TYPE_EA_INFORMATION 0xd0 +#define NTFS_ATTR_TYPE_EA 0xe0 #define NTFS_ATTR_TYPE_END 0xffffffff #define NTFS_ATTR_NORMAL 0 @@ -126,7 +133,8 @@ { ULONG ValueLength; USHORT ValueOffset; - USHORT Flags; + UCHAR Flags; + UCHAR Reserved; } Resident; // Non-resident attributes struct @@ -134,8 +142,8 @@ ULONGLONG LowestVCN; ULONGLONG HighestVCN; USHORT MappingPairsOffset; - UCHAR CompressionUnit; - UCHAR Reserved[5]; + USHORT CompressionUnit; + UCHAR Reserved[4]; LONGLONG AllocatedSize; LONGLONG DataSize; LONGLONG InitializedSize; @@ -180,7 +188,20 @@ WCHAR FileName[0]; } NTFS_FILE_NAME_ATTR, *PNTFS_FILE_NAME_ATTR; -typedef struct { +typedef struct +{ + ULONG Type; + USHORT RecLength; + UCHAR NameLength; + UCHAR NameOffset; + ULONGLONG StartingVCN; + ULONGLONG BaseFileRef; + USHORT AttrId; + PWCHAR Name; +} NTFS_ATTR_LIST_ATTR, *PNTFS_ATTR_LIST_ATTR; + +typedef struct +{ union { struct Modified: branches/cmake-bringup/dll/win32/setupapi/cfgmgr.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/setupap…
============================================================================== --- branches/cmake-bringup/dll/win32/setupapi/cfgmgr.c [iso-8859-1] (original) +++ branches/cmake-bringup/dll/win32/setupapi/cfgmgr.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -2915,6 +2915,61 @@ RpcEndExcept; return ret; +} + + +/*********************************************************************** + * CM_Is_Version_Available_Ex [SETUPAPI.@] + */ +BOOL WINAPI CM_Is_Version_Available( + WORD wVersion) +{ + TRACE("%hu\n", wVersion); + return CM_Is_Version_Available_Ex(wVersion, NULL); +} + + +/*********************************************************************** + * CM_Is_Version_Available_Ex [SETUPAPI.@] + */ +BOOL WINAPI CM_Is_Version_Available_Ex( + WORD wVersion, HMACHINE hMachine) +{ + RPC_BINDING_HANDLE BindingHandle = NULL; + WORD wServerVersion; + CONFIGRET ret; + + TRACE("%hu %lx\n", wVersion, hMachine); + + if (wVersion <= 0x400) + return TRUE; + + if (hMachine != NULL) + { + BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle; + if (BindingHandle == NULL) + return FALSE; + } + else + { + if (!PnpGetLocalHandles(&BindingHandle, NULL)) + return FALSE; + } + + RpcTryExcept + { + ret = PNP_GetVersion(BindingHandle, &wServerVersion); + } + RpcExcept(EXCEPTION_EXECUTE_HANDLER) + { + ret = RpcStatusToCmStatus(RpcExceptionCode()); + } + RpcEndExcept; + + if (ret != CR_SUCCESS) + return FALSE; + + return (wServerVersion >= wVersion); } Modified: branches/cmake-bringup/dll/win32/setupapi/setupapi.spec URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/setupap…
============================================================================== --- branches/cmake-bringup/dll/win32/setupapi/setupapi.spec [iso-8859-1] (original) +++ branches/cmake-bringup/dll/win32/setupapi/setupapi.spec [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -137,8 +137,8 @@ @ stub CM_Invert_Range_List @ stdcall CM_Is_Dock_Station_Present(ptr) @ stdcall CM_Is_Dock_Station_Present_Ex(ptr long) -@ stub CM_Is_Version_Available -@ stub CM_Is_Version_Available_Ex +@ stdcall CM_Is_Version_Available(long) +@ stdcall CM_Is_Version_Available_Ex(long long) @ stdcall CM_Locate_DevNodeA(ptr str long) @ stdcall CM_Locate_DevNodeW(ptr wstr long) @ stdcall CM_Locate_DevNode_ExA(ptr str long long) Modified: branches/cmake-bringup/dll/win32/syssetup/install.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/syssetu…
============================================================================== --- branches/cmake-bringup/dll/win32/syssetup/install.c [iso-8859-1] (original) +++ branches/cmake-bringup/dll/win32/syssetup/install.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -477,15 +477,21 @@ SC_HANDLE hService = NULL; BOOL ret = FALSE; - hSCManager = OpenSCManager(NULL, NULL, 0); + hSCManager = OpenSCManagerW(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE); if (hSCManager == NULL) + { + DPRINT1("Unable to open the service control manager.\n"); goto cleanup; + } hService = OpenServiceW(hSCManager, L"PlugPlay", SERVICE_CHANGE_CONFIG | SERVICE_START); if (hService == NULL) + { + DPRINT1("Unable to open PlugPlay service\n"); goto cleanup; + } ret = ChangeServiceConfigW(hService, SERVICE_NO_CHANGE, @@ -494,11 +500,17 @@ NULL, NULL, NULL, NULL, NULL, NULL, NULL); if (!ret) + { + DPRINT1("Unable to change the service configuration\n"); goto cleanup; + } ret = StartServiceW(hService, 0, NULL); if (!ret) + { + DPRINT("Unable to start service\n"); goto cleanup; + } ret = TRUE; Modified: branches/cmake-bringup/dll/win32/wdmaud.drv/legacy.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/wdmaud.…
============================================================================== --- branches/cmake-bringup/dll/win32/wdmaud.drv/legacy.c [iso-8859-1] (original) +++ branches/cmake-bringup/dll/win32/wdmaud.drv/legacy.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -544,6 +544,25 @@ return MMSYSERR_NOERROR; } +VOID +CALLBACK +LegacyCompletionRoutine( + IN DWORD dwErrorCode, + IN DWORD dwNumberOfBytesTransferred, + IN LPOVERLAPPED lpOverlapped) +{ + PSOUND_OVERLAPPED Overlap; + PWDMAUD_DEVICE_INFO DeviceInfo; + + Overlap = (PSOUND_OVERLAPPED)lpOverlapped; + DeviceInfo = (PWDMAUD_DEVICE_INFO)Overlap->CompletionContext; + + /* Call mmebuddy overlap routine */ + Overlap->OriginalCompletionRoutine(dwErrorCode, DeviceInfo->Header.DataUsed, lpOverlapped); + + HeapFree(GetProcessHeap(), 0, DeviceInfo); +} + MMRESULT WdmAudCommitWaveBufferByLegacy( IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance, @@ -554,7 +573,7 @@ { HANDLE Handle; MMRESULT Result; - WDMAUD_DEVICE_INFO DeviceInfo; + PWDMAUD_DEVICE_INFO DeviceInfo; PSOUND_DEVICE SoundDevice; MMDEVICE_TYPE DeviceType; BOOL Ret; @@ -577,36 +596,52 @@ Result = GetSoundDeviceType(SoundDevice, &DeviceType); SND_ASSERT( Result == MMSYSERR_NOERROR ); - ZeroMemory(&DeviceInfo, sizeof(WDMAUD_DEVICE_INFO)); - - DeviceInfo.Header.FrameExtent = Length; + DeviceInfo = (PWDMAUD_DEVICE_INFO)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WDMAUD_DEVICE_INFO)); + if (!DeviceInfo) + { + // no memory + return MMSYSERR_NOMEM; + } + + DeviceInfo->Header.FrameExtent = Length; if (DeviceType == WAVE_OUT_DEVICE_TYPE) { - DeviceInfo.Header.DataUsed = Length; - } - DeviceInfo.Header.Data = OffsetPtr; - DeviceInfo.Header.Size = sizeof(WDMAUD_DEVICE_INFO); - DeviceInfo.Header.PresentationTime.Numerator = 1; - DeviceInfo.Header.PresentationTime.Denominator = 1; - DeviceInfo.hDevice = Handle; - DeviceInfo.DeviceType = DeviceType; - - - + DeviceInfo->Header.DataUsed = Length; + } + DeviceInfo->Header.Data = OffsetPtr; + DeviceInfo->Header.Size = sizeof(WDMAUD_DEVICE_INFO); + DeviceInfo->Header.PresentationTime.Numerator = 1; + DeviceInfo->Header.PresentationTime.Denominator = 1; + DeviceInfo->hDevice = Handle; + DeviceInfo->DeviceType = DeviceType; + + + // create completion event Overlap->Standard.hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); + if (Overlap->Standard.hEvent == NULL) + { + // no memory + return MMSYSERR_NOMEM; + } + + Overlap->OriginalCompletionRoutine = CompletionRoutine; + Overlap->CompletionContext = (PVOID)DeviceInfo; if (DeviceType == WAVE_OUT_DEVICE_TYPE) { - Ret = WriteFileEx(KernelHandle, &DeviceInfo, sizeof(WDMAUD_DEVICE_INFO), (LPOVERLAPPED)Overlap, CompletionRoutine); + Ret = WriteFileEx(KernelHandle, DeviceInfo, sizeof(WDMAUD_DEVICE_INFO), (LPOVERLAPPED)Overlap, LegacyCompletionRoutine); if (Ret) WaitForSingleObjectEx (KernelHandle, INFINITE, TRUE); } else if (DeviceType == WAVE_IN_DEVICE_TYPE) { - Ret = ReadFileEx(KernelHandle, &DeviceInfo, sizeof(WDMAUD_DEVICE_INFO), (LPOVERLAPPED)Overlap, CompletionRoutine); - //if (Ret) - // WaitForSingleObjectEx (KernelHandle, INFINITE, TRUE); - } + Ret = ReadFileEx(KernelHandle, DeviceInfo, sizeof(WDMAUD_DEVICE_INFO), (LPOVERLAPPED)Overlap, LegacyCompletionRoutine); + if (Ret) + WaitForSingleObjectEx (KernelHandle, INFINITE, TRUE); + } + + // close event handle + CloseHandle(Overlap->Standard.hEvent); return MMSYSERR_NOERROR; } Modified: branches/cmake-bringup/dll/win32/wdmaud.drv/mixer.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/wdmaud.…
============================================================================== --- branches/cmake-bringup/dll/win32/wdmaud.drv/mixer.c [iso-8859-1] (original) +++ branches/cmake-bringup/dll/win32/wdmaud.drv/mixer.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -421,7 +421,7 @@ PSOUND_OVERLAPPED Overlap = (PSOUND_OVERLAPPED)lpOverlapped; /* Call mmebuddy overlap routine */ - Overlap->OriginalCompletionRoutine(dwErrorCode, Overlap->OriginalBufferSize, lpOverlapped); + Overlap->OriginalCompletionRoutine(dwErrorCode, PtrToUlong(Overlap->CompletionContext), lpOverlapped); } MMRESULT @@ -527,7 +527,7 @@ DeviceInfo.Header.PresentationTime.Numerator = 1; DeviceInfo.Header.PresentationTime.Denominator = 1; - Overlap->OriginalBufferSize = Length; + Overlap->CompletionContext = UlongToPtr(Length); Overlap->OriginalCompletionRoutine = CompletionRoutine; Overlap->Standard.hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); Modified: branches/cmake-bringup/include/reactos/libs/sound/mmebuddy.h URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/reactos/l…
============================================================================== --- branches/cmake-bringup/include/reactos/libs/sound/mmebuddy.h [iso-8859-1] (original) +++ branches/cmake-bringup/include/reactos/libs/sound/mmebuddy.h [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -185,8 +185,8 @@ PWAVEHDR Header; BOOL PerformCompletion; - DWORD OriginalBufferSize; LPOVERLAPPED_COMPLETION_ROUTINE OriginalCompletionRoutine; + PVOID CompletionContext; } SOUND_OVERLAPPED, *PSOUND_OVERLAPPED; Modified: branches/cmake-bringup/lib/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/CMakeLists.tx…
============================================================================== --- branches/cmake-bringup/lib/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/lib/CMakeLists.txt [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -14,7 +14,6 @@ add_subdirectory(fslib) add_subdirectory(lsalib) #add_subdirectory(nls) -add_subdirectory(ntdllsys) add_subdirectory(ppcmmu) add_subdirectory(pseh) add_subdirectory(recyclebin) @@ -23,7 +22,6 @@ add_subdirectory(sdk) add_subdirectory(smlib) add_subdirectory(tdilib) -add_subdirectory(win32ksys) else() Modified: branches/cmake-bringup/lib/rtl/heap.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/rtl/heap.c?re…
============================================================================== --- branches/cmake-bringup/lib/rtl/heap.c [iso-8859-1] (original) +++ branches/cmake-bringup/lib/rtl/heap.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -233,12 +233,6 @@ { /* Clear out all flags except the last entry one */ FreeEntry->Flags &= HEAP_ENTRY_LAST_ENTRY; - } - - /* Check if PreviousSize of the next entry matches ours */ - if (!(FreeEntry->Flags & HEAP_ENTRY_LAST_ENTRY)) - { - ASSERT(((PHEAP_ENTRY)FreeEntry + BlockSize)->PreviousSize == BlockSize); } /* Insert it either into dedicated or non-dedicated list */ Modified: branches/cmake-bringup/lib/rtl/nls.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/rtl/nls.c?rev…
============================================================================== --- branches/cmake-bringup/lib/rtl/nls.c [iso-8859-1] (original) +++ branches/cmake-bringup/lib/rtl/nls.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -235,6 +235,8 @@ ULONG Size = 0; ULONG i; + PAGED_CODE_RTL(); + if (NlsMbCodePageTag == FALSE) { /* single-byte code page */ @@ -299,6 +301,8 @@ ULONG MbSize) { ULONG Length = 0; + + PAGED_CODE_RTL(); if (!NlsMbCodePageTag) { @@ -503,6 +507,8 @@ { ULONG Size = 0; ULONG i; + + PAGED_CODE_RTL(); if (NlsMbCodePageTag == FALSE) { Modified: branches/cmake-bringup/lib/rtl/unicode.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/rtl/unicode.c…
============================================================================== --- branches/cmake-bringup/lib/rtl/unicode.c [iso-8859-1] (original) +++ branches/cmake-bringup/lib/rtl/unicode.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -76,7 +76,14 @@ PAGED_CODE_RTL(); - Length = RtlAnsiStringToUnicodeSize(AnsiSource); + if (NlsMbCodePageTag == FALSE) + { + Length = AnsiSource->Length * 2 + sizeof(WCHAR); + } + else + { + Length = RtlxAnsiStringToUnicodeSize(AnsiSource); + } if (Length > MAXUSHORT) return STATUS_INVALID_PARAMETER_2; UniDest->Length = (USHORT)Length - sizeof(WCHAR); @@ -90,6 +97,9 @@ { return STATUS_BUFFER_OVERFLOW; } + + /* UniDest->MaximumLength must be even due to sizeof(WCHAR) being 2 */ + ASSERT(!(UniDest->MaximumLength & 1) && UniDest->Length <= UniDest->MaximumLength); Status = RtlMultiByteToUnicodeN(UniDest->Buffer, UniDest->Length, @@ -122,6 +132,8 @@ RtlxAnsiStringToUnicodeSize(IN PCANSI_STRING AnsiString) { ULONG Size; + + PAGED_CODE_RTL(); /* Convert from Mb String to Unicode Size */ RtlMultiByteToUnicodeSize(&Size, @@ -963,7 +975,16 @@ PAGED_CODE_RTL(); - Length = RtlUnicodeStringToAnsiSize(UniSource); + ASSERT(!(UniSource->Length & 1)); + + if (NlsMbCodePageTag == FALSE) + { + Length = (UniSource->Length + sizeof(WCHAR)) / sizeof(WCHAR); + } + else + { + Length = RtlxUnicodeStringToAnsiSize(UniSource); + } if (Length > MAXUSHORT) return STATUS_INVALID_PARAMETER_2; AnsiDest->Length = (USHORT)Length - sizeof(CHAR); @@ -1953,6 +1974,10 @@ { ULONG Size; + PAGED_CODE_RTL(); + + ASSERT(!(UnicodeString->Length & 1)); + /* Convert the Unicode String to Mb Size */ RtlUnicodeToMultiByteSize(&Size, UnicodeString->Buffer, Modified: branches/cmake-bringup/ntoskrnl/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/ntoskrnl/CMakeLis…
============================================================================== --- branches/cmake-bringup/ntoskrnl/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/ntoskrnl/CMakeLists.txt [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -107,6 +107,7 @@ ex/work.c ex/xipdisp.c ex/zone.c + ex/zw.S fsrtl/dbcsname.c fsrtl/fastio.c fsrtl/faulttol.c @@ -269,7 +270,6 @@ vf/driver.c wmi/wmi.c ntoskrnl.rc - ${REACTOS_BINARY_DIR}/ntoskrnl/ex/zw.S ${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl.def) if(ARCH MATCHES i386) @@ -451,3 +451,5 @@ add_minicd_target(ntoskrnl reactos ntoskrnl.exe) add_livecd_target(ntoskrnl reactos/system32) add_importlib_target(ntoskrnl.spec) + +add_library(ntdllsys ntdll.S) Modified: branches/cmake-bringup/ntoskrnl/ke/powerpc/cpu.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/ntoskrnl/ke/power…
============================================================================== --- branches/cmake-bringup/ntoskrnl/ke/powerpc/cpu.c [iso-8859-1] (original) +++ branches/cmake-bringup/ntoskrnl/ke/powerpc/cpu.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -44,7 +44,7 @@ CPUID(IN ULONG CpuInfo[4], IN ULONG InfoType) { - RtlZeroMemory(CpuInfo, sizeof(CpuInfo)); + RtlZeroMemory(CpuInfo, 4 * sizeof(ULONG)); } VOID Modified: branches/cmake-bringup/ntoskrnl/mm/section.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/ntoskrnl/mm/secti…
============================================================================== --- branches/cmake-bringup/ntoskrnl/mm/section.c [iso-8859-1] (original) +++ branches/cmake-bringup/ntoskrnl/mm/section.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -689,9 +689,6 @@ if(!Intsafe_AddULong32(&nPrevVirtualEndOfSegment, pssSegments[i].VirtualAddress, pssSegments[i].Length)) DIE(("The image is larger than 4GB\n")); } - - /* spare our caller some work in validating the segments */ - *Flags = EXEFMT_LOAD_ASSUME_SEGMENTS_SORTED | EXEFMT_LOAD_ASSUME_SEGMENTS_NO_OVERLAP; if(nSectionAlignment >= PAGE_SIZE) *Flags |= EXEFMT_LOAD_ASSUME_SEGMENTS_PAGE_ALIGNED; Modified: branches/cmake-bringup/subsystems/win32/win32k/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
============================================================================== --- branches/cmake-bringup/subsystems/win32/win32k/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/subsystems/win32/win32k/CMakeLists.txt [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -192,3 +192,5 @@ add_dependencies(win32k gendib_generated subsystem_napi) add_cab_target(win32k 1) add_importlib_target(win32k.spec) + +add_library(win32ksys sys-stubs.S) Modified: branches/cmake-bringup/subsystems/win32/win32k/eng/xlate.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
============================================================================== --- branches/cmake-bringup/subsystems/win32/win32k/eng/xlate.c [iso-8859-1] (original) +++ branches/cmake-bringup/subsystems/win32/win32k/eng/xlate.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -91,7 +91,7 @@ iColor >>= 13; iNewColor |= iColor & 0x3E0; - /* Copy green */ + /* Copy blue */ iColor >>= 13; iNewColor |= iColor & 0x1F; @@ -417,11 +417,11 @@ pexlo->aulXlate[0] = PALETTE_ulGetNearestPaletteIndex(ppalSrc, crSrcBackColor); } + else if (ppalSrc->flFlags & PAL_RGB) + { + pexlo->aulXlate[0] = crSrcBackColor; + } else if (ppalSrc->flFlags & PAL_BGR) - { - pexlo->aulXlate[0] = crSrcBackColor; - } - else if (ppalSrc->flFlags & PAL_RGB) { pexlo->aulXlate[0] = RGB(GetBValue(crSrcBackColor), GetGValue(crSrcBackColor), Modified: branches/cmake-bringup/subsystems/win32/win32k/objects/gdiobj.c URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/subsystems/win32/…
============================================================================== --- branches/cmake-bringup/subsystems/win32/win32k/objects/gdiobj.c [iso-8859-1] (original) +++ branches/cmake-bringup/subsystems/win32/win32k/objects/gdiobj.c [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -272,64 +272,51 @@ FASTCALL InterlockedPopFreeEntry(VOID) { - ULONG idxFirst, idxNext, idxPrev; + ULONG iFirst, iNext, iPrev; PGDI_TABLE_ENTRY pEntry; - DWORD PrevProcId; DPRINT("Enter InterLockedPopFreeEntry\n"); - while (TRUE) - { - idxFirst = GdiHandleTable->FirstFree; - - if (!idxFirst) + do + { + /* Get the index and sequence number of the first free entry */ + iFirst = GdiHandleTable->FirstFree; + + /* Check if we have a free entry */ + if (!(iFirst & GDI_HANDLE_INDEX_MASK)) { /* Increment FirstUnused and get the new index */ - idxFirst = InterlockedIncrement((LONG*)&GdiHandleTable->FirstUnused) - 1; - - /* Check if we have entries left */ - if (idxFirst >= GDI_HANDLE_COUNT) + iFirst = InterlockedIncrement((LONG*)&GdiHandleTable->FirstUnused) - 1; + + /* Check if we have unused entries left */ + if (iFirst >= GDI_HANDLE_COUNT) { DPRINT1("No more gdi handles left!\n"); return 0; } /* Return the old index */ - return idxFirst; + return iFirst; } /* Get a pointer to the first free entry */ - pEntry = GdiHandleTable->Entries + idxFirst; - - /* Try to lock the entry */ - PrevProcId = InterlockedCompareExchange((LONG*)&pEntry->ProcessId, 1, 0); - if (PrevProcId != 0) - { - /* The entry was locked or not free, wait and start over */ - DelayExecution(); - continue; - } - - /* Sanity check: is entry really free? */ - ASSERT(((ULONG_PTR)pEntry->KernelData & ~GDI_HANDLE_INDEX_MASK) == 0); + pEntry = GdiHandleTable->Entries + (iFirst & GDI_HANDLE_INDEX_MASK); + + /* Create a new value with an increased sequence number */ + iNext = (USHORT)(ULONG_PTR)pEntry->KernelData; + iNext |= (iFirst & ~GDI_HANDLE_INDEX_MASK) + 0x10000; /* Try to exchange the FirstFree value */ - idxNext = (ULONG_PTR)pEntry->KernelData; - idxPrev = InterlockedCompareExchange((LONG*)&GdiHandleTable->FirstFree, - idxNext, - idxFirst); - - /* Unlock the free entry */ - (void)InterlockedExchange((LONG*)&pEntry->ProcessId, 0); - - /* If we succeeded, break out of the loop */ - if (idxPrev == idxFirst) - { - break; - } - } - - return idxFirst; + iPrev = InterlockedCompareExchange((LONG*)&GdiHandleTable->FirstFree, + iNext, + iFirst); + } + while (iPrev != iFirst); + + /* Sanity check: is entry really free? */ + ASSERT(((ULONG_PTR)pEntry->KernelData & ~GDI_HANDLE_INDEX_MASK) == 0); + + return iFirst & GDI_HANDLE_INDEX_MASK; } /* Pushes an entry of the handle table to the free list, @@ -338,7 +325,7 @@ FASTCALL InterlockedPushFreeEntry(ULONG idxToFree) { - ULONG idxFirstFree, idxPrev; + ULONG iToFree, iFirst, iPrev; PGDI_TABLE_ENTRY pFreeEntry; DPRINT("Enter InterlockedPushFreeEntry\n"); @@ -346,18 +333,26 @@ pFreeEntry = GdiHandleTable->Entries + idxToFree; ASSERT((pFreeEntry->Type & GDI_ENTRY_BASETYPE_MASK) == 0); ASSERT(pFreeEntry->ProcessId == 0); - pFreeEntry->UserData = NULL; + pFreeEntry->UserData = NULL; // FIXME + ASSERT(pFreeEntry->UserData == NULL); do { - idxFirstFree = GdiHandleTable->FirstFree; - pFreeEntry->KernelData = (PVOID)(ULONG_PTR)idxFirstFree; - - idxPrev = InterlockedCompareExchange((LONG*)&GdiHandleTable->FirstFree, - idxToFree, - idxFirstFree); - } - while (idxPrev != idxFirstFree); + /* Get the current first free index and sequence number */ + iFirst = GdiHandleTable->FirstFree; + + /* Set the KernelData member to the index of the first free entry */ + pFreeEntry->KernelData = UlongToPtr(iFirst & GDI_HANDLE_INDEX_MASK); + + /* Combine new index and increased sequence number in iToFree */ + iToFree = idxToFree | ((iFirst & ~GDI_HANDLE_INDEX_MASK) + 0x10000); + + /* Try to atomically update the first free entry */ + iPrev = InterlockedCompareExchange((LONG*)&GdiHandleTable->FirstFree, + iToFree, + iFirst); + } + while (iPrev != iFirst); } Modified: branches/cmake-bringup/tools/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/tools/CMakeLists.…
============================================================================== --- branches/cmake-bringup/tools/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/tools/CMakeLists.txt [iso-8859-1] Wed Feb 9 15:56:57 2011 @@ -6,7 +6,6 @@ add_subdirectory(gendib) add_subdirectory(geninc) add_subdirectory(mkhive) -add_subdirectory(nci) add_subdirectory(spec2def) add_subdirectory(unicode)
13 years, 10 months
1
0
0
0
[fireball] 50634: - Enable simple FontSmoothing by default. It matters for arwinss, trunk just ignores this value and always smoothes the fonts.
by fireball@svn.reactos.org
Author: fireball Date: Wed Feb 9 14:07:10 2011 New Revision: 50634 URL:
http://svn.reactos.org/svn/reactos?rev=50634&view=rev
Log: - Enable simple FontSmoothing by default. It matters for arwinss, trunk just ignores this value and always smoothes the fonts. Modified: trunk/reactos/boot/bootdata/hivedef_amd64.inf trunk/reactos/boot/bootdata/hivedef_arm.inf trunk/reactos/boot/bootdata/hivedef_i386.inf Modified: trunk/reactos/boot/bootdata/hivedef_amd64.inf URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivedef_amd6…
============================================================================== --- trunk/reactos/boot/bootdata/hivedef_amd64.inf [iso-8859-1] (original) +++ trunk/reactos/boot/bootdata/hivedef_amd64.inf [iso-8859-1] Wed Feb 9 14:07:10 2011 @@ -97,7 +97,7 @@ HKCU,"Control Panel\Desktop","ScreenSaveTimeOut",0,"600" HKCU,"Control Panel\Desktop","WaitToKillAppTimeout",2,"20000" HKCU,"Control Panel\Desktop","Wallpaper",0x00000000,"" -HKCU,"Control Panel\Desktop","FontSmoothing",0,"0" +HKCU,"Control Panel\Desktop","FontSmoothing",0,"1" HKCU,"Control Panel\Desktop","FontSmoothingOrientation",0x00010003,0x00000001 HKCU,"Control Panel\Desktop","FontSmoothingType",0x00010003,0x00000001 HKCU,"Control Panel\Desktop","ForegroundFlashCount",0x00010003,0x00000003 Modified: trunk/reactos/boot/bootdata/hivedef_arm.inf URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivedef_arm.…
============================================================================== --- trunk/reactos/boot/bootdata/hivedef_arm.inf [iso-8859-1] (original) +++ trunk/reactos/boot/bootdata/hivedef_arm.inf [iso-8859-1] Wed Feb 9 14:07:10 2011 @@ -28,7 +28,7 @@ HKCU,"Control Panel\Desktop","SCRNSAVE.EXE",0x00000000,"" HKCU,"Control Panel\Desktop","WaitToKillAppTimeout",0x00000002,"20000" HKCU,"Control Panel\Desktop","Wallpaper",0x00000000,"" -HKCU,"Control Panel\Desktop","FontSmoothing",0,"0" +HKCU,"Control Panel\Desktop","FontSmoothing",0,"1" HKCU,"Control Panel\Desktop","SmoothScroll",3,00,00,00,00 HKCU,"Control Panel\Desktop","UserPreferencesMask",3,10,00,00,80 HKCU,"Control Panel\Desktop","LowPowerActive",,"0" Modified: trunk/reactos/boot/bootdata/hivedef_i386.inf URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivedef_i386…
============================================================================== Binary files - no diff available.
13 years, 10 months
1
0
0
0
[fireball] 50633: - Add GetTransform declaration. (until we have undocgdi.h).
by fireball@svn.reactos.org
Author: fireball Date: Wed Feb 9 13:31:31 2011 New Revision: 50633 URL:
http://svn.reactos.org/svn/reactos?rev=50633&view=rev
Log: - Add GetTransform declaration. (until we have undocgdi.h). Modified: trunk/reactos/include/psdk/wingdi.h Modified: trunk/reactos/include/psdk/wingdi.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/wingdi.h?rev=…
============================================================================== --- trunk/reactos/include/psdk/wingdi.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/wingdi.h [iso-8859-1] Wed Feb 9 13:31:31 2011 @@ -3110,6 +3110,7 @@ int WINAPI GetTextFaceW(HDC,int,LPWSTR); BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA); BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW); +BOOL WINAPI GetTransform(HDC,DWORD,XFORM*); BOOL WINAPI GetViewportExtEx(HDC,LPSIZE); BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT); BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
13 years, 10 months
1
0
0
0
[fireball] 50632: - Sync up to Wine-1.3.13.
by fireball@svn.reactos.org
Author: fireball Date: Wed Feb 9 13:28:02 2011 New Revision: 50632 URL:
http://svn.reactos.org/svn/reactos?rev=50632&view=rev
Log: - Sync up to Wine-1.3.13. Modified: branches/arwinss/reactos/dll/win32/gdi32/ (props changed) branches/arwinss/reactos/dll/win32/gdi32/font.c branches/arwinss/reactos/dll/win32/user32/ (props changed) branches/arwinss/reactos/dll/win32/user32/clipboard.c branches/arwinss/reactos/dll/win32/user32/cursoricon.c branches/arwinss/reactos/dll/win32/user32/mdi.c branches/arwinss/reactos/dll/win32/winent.drv/font.c branches/arwinss/reactos/dll/win32/winex11.drv/ (props changed) branches/arwinss/reactos/dll/win32/winex11.drv/clipboard.c branches/arwinss/reactos/dll/win32/winex11.drv/dib.c branches/arwinss/reactos/dll/win32/winex11.drv/window.c branches/arwinss/reactos/dll/win32/winex11.drv/xrender.c branches/arwinss/reactos/include/psdk/wingdi.h Propchange: branches/arwinss/reactos/dll/win32/gdi32/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Feb 9 13:28:02 2011 @@ -1,3 +1,3 @@ /branches/ros-amd64-bringup/reactos/dll/win32/gdi32:35746,35789,36614,36930,38148,38151,38265,38268,39333,39345,40991,41000,41027-41028,41050,41052,41082-41086,41549,43080 /trunk/reactos/dll/win32/gdi32:42000-44999,45011,45097-45099,45319,45418-45419,45535-45539,45687-45688,47605,48678 -/vendor/wine/dlls/gdi32/current:43136,43149,43398,43708,44151,44715,45044,45206,45455,45646,45910,46314,46696,46915,47274,47321,47585,47798,47861,48418,48677,49173,49721,50160,50516 +/vendor/wine/dlls/gdi32/current:43136,43149,43398,43708,44151,44715,45044,45206,45455,45646,45910,46314,46696,46915,47274,47321,47585,47798,47861,48418,48677,49173,49721,50160,50516,50631 Modified: branches/arwinss/reactos/dll/win32/gdi32/font.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/font.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/font.c [iso-8859-1] Wed Feb 9 13:28:02 2011 @@ -1553,7 +1553,7 @@ return ret; } -static LPSTR FONT_GetCharsByRangeA(UINT firstChar, UINT lastChar, PINT pByteLen) +static LPSTR FONT_GetCharsByRangeA(HDC hdc, UINT firstChar, UINT lastChar, PINT pByteLen) { INT i, count = lastChar - firstChar + 1; UINT c; @@ -1561,6 +1561,24 @@ if (count <= 0) return NULL; + + switch (GdiGetCodePage(hdc)) + { + case 932: + case 936: + case 949: + case 950: + case 1361: + if (lastChar > 0xffff) + return NULL; + if ((firstChar ^ lastChar) > 0xff) + return NULL; + break; + default: + if (lastChar > 0xff) + return NULL; + break; + } str = HeapAlloc(GetProcessHeap(), 0, count * 2 + 1); if (str == NULL) @@ -1620,7 +1638,7 @@ LPWSTR wstr; BOOL ret = TRUE; - str = FONT_GetCharsByRangeA(firstChar, lastChar, &i); + str = FONT_GetCharsByRangeA(hdc, firstChar, lastChar, &i); if(str == NULL) return FALSE; @@ -2014,7 +2032,16 @@ rc.right = x + width.x; rc.top = y - tm.tmAscent; rc.bottom = y + tm.tmDescent; - dc->funcs->pExtTextOut(dc->physDev, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL); + + if(flags & ETO_CLIPPED) + { + rc.left = max(lprect->left, rc.left); + rc.right = min(lprect->right, rc.right); + rc.top = max(lprect->top, rc.top); + rc.bottom = min(lprect->bottom, rc.bottom); + } + if(rc.left < rc.right && rc.top < rc.bottom) + dc->funcs->pExtTextOut(dc->physDev, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL); } } } @@ -2324,7 +2351,7 @@ LPWSTR wstr; BOOL ret = TRUE; - str = FONT_GetCharsByRangeA(firstChar, lastChar, &i); + str = FONT_GetCharsByRangeA(hdc, firstChar, lastChar, &i); if (str == NULL) return FALSE; @@ -2468,16 +2495,15 @@ LPGLYPHMETRICS lpgm, DWORD cbBuffer, LPVOID lpBuffer, const MAT2 *lpmat2 ) { - LPWSTR p = NULL; - DWORD ret; - UINT c; - if (!lpmat2) return GDI_ERROR; if(!(fuFormat & GGO_GLYPH_INDEX)) { + UINT cp; int len; char mbchs[2]; - if(uChar > 0xff) { /* but, 2 bytes character only */ + + cp = GdiGetCodePage(hdc); + if (IsDBCSLeadByteEx(cp, uChar >> 8)) { len = 2; mbchs[0] = (uChar & 0xff00) >> 8; mbchs[1] = (uChar & 0xff); @@ -2485,14 +2511,11 @@ len = 1; mbchs[0] = (uChar & 0xff); } - p = FONT_mbtowc(hdc, mbchs, len, NULL, NULL); - c = p[0]; - } else - c = uChar; - ret = GetGlyphOutlineW(hdc, c, fuFormat, lpgm, cbBuffer, lpBuffer, - lpmat2); - HeapFree(GetProcessHeap(), 0, p); - return ret; + MultiByteToWideChar(cp, 0, mbchs, len, (LPWSTR)&uChar, 1); + } + + return GetGlyphOutlineW(hdc, uChar, fuFormat, lpgm, cbBuffer, lpBuffer, + lpmat2); } /*********************************************************************** @@ -3010,7 +3033,7 @@ LPWSTR wstr; BOOL ret = TRUE; - str = FONT_GetCharsByRangeA(first, last, &i); + str = FONT_GetCharsByRangeA(hdc, first, last, &i); if (str == NULL) return FALSE; Propchange: branches/arwinss/reactos/dll/win32/user32/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Feb 9 13:28:02 2011 @@ -1,3 +1,3 @@ /branches/ros-amd64-bringup/reactos/dll/win32/user32:35746,35789,36614,36930,38148,38151,38265,38268,39333,39345,40991,41000,41027-41028,41050,41052,41082-41086,41549,43080 /trunk/reactos/dll/win32/user32:42000-44999,45011,45097-45099,45319,45418-45419,45535-45539,45687-45688,47605,48678 -/vendor/wine/dlls/user32/current:43136,43149,43398,43708,44151,44715,45044,45206,45455,45646,45910,46314,46696,46915,47274,47321,47585,47798,47861,48147,48418,48677,49173,49721,49800,50160,50516 +/vendor/wine/dlls/user32/current:43136,43149,43398,43708,44151,44715,45044,45206,45455,45646,45910,46314,46696,46915,47274,47321,47585,47798,47861,48147,48418,48677,49173,49721,49800,50160,50516,50631 Modified: branches/arwinss/reactos/dll/win32/user32/clipboard.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/clipboard.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/clipboard.c [iso-8859-1] Wed Feb 9 13:28:02 2011 @@ -291,7 +291,7 @@ { BOOL bRet = FALSE; - TRACE("(%d)\n", bCBHasChanged); + TRACE("() Changed=%d\n", bCBHasChanged); if (CLIPBOARD_CloseClipboard()) { @@ -301,10 +301,10 @@ USER_Driver->pEndClipboardUpdate(); + bCBHasChanged = FALSE; + if (hWndViewer) SendMessageW(hWndViewer, WM_DRAWCLIPBOARD, (WPARAM) GetClipboardOwner(), 0); - - bCBHasChanged = FALSE; } bRet = TRUE; Modified: branches/arwinss/reactos/dll/win32/user32/cursoricon.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] Wed Feb 9 13:28:02 2011 @@ -446,7 +446,7 @@ * Find the icon closest to the requested size and bit depth. */ static int CURSORICON_FindBestIcon( LPCVOID dir, fnGetCIEntry get_entry, - int width, int height, int depth ) + int width, int height, int depth, UINT loadflags ) { int i, cx, cy, bits, bestEntry = -1; UINT iTotalDiff, iXDiff=0, iYDiff=0, iColorDiff; @@ -455,7 +455,20 @@ /* Find Best Fit */ iTotalDiff = 0xFFFFFFFF; iColorDiff = 0xFFFFFFFF; - for ( i = 0; get_entry( dir, i, &cx, &cy, &bits ); i++ ) + + if (loadflags & LR_DEFAULTSIZE) + { + if (!width) width = GetSystemMetrics( SM_CXICON ); + if (!height) height = GetSystemMetrics( SM_CYICON ); + } + else if (!width && !height) + { + /* use the size of the first entry */ + if (!get_entry( dir, 0, &width, &height, &bits )) return -1; + iTotalDiff = 0; + } + + for ( i = 0; iTotalDiff && get_entry( dir, i, &cx, &cy, &bits ); i++ ) { iTempXDiff = abs(width - cx); iTempYDiff = abs(height - cy); @@ -508,9 +521,21 @@ * FIXME: parameter 'color' ignored. */ static int CURSORICON_FindBestCursor( LPCVOID dir, fnGetCIEntry get_entry, - int width, int height, int depth ) + int width, int height, int depth, UINT loadflags ) { int i, maxwidth, maxheight, cx, cy, bits, bestEntry = -1; + + if (loadflags & LR_DEFAULTSIZE) + { + if (!width) width = GetSystemMetrics( SM_CXCURSOR ); + if (!height) height = GetSystemMetrics( SM_CYCURSOR ); + } + else if (!width && !height) + { + /* use the first entry */ + if (!get_entry( dir, 0, &width, &height, &bits )) return -1; + return 0; + } /* Double height to account for AND and XOR masks */ @@ -563,22 +588,24 @@ } static const CURSORICONDIRENTRY *CURSORICON_FindBestIconRes( const CURSORICONDIR * dir, - int width, int height, int depth ) + int width, int height, int depth, + UINT loadflags ) { int n; n = CURSORICON_FindBestIcon( dir, CURSORICON_GetResIconEntry, - width, height, depth ); + width, height, depth, loadflags ); if ( n < 0 ) return NULL; return &dir->idEntries[n]; } static const CURSORICONDIRENTRY *CURSORICON_FindBestCursorRes( const CURSORICONDIR *dir, - int width, int height, int depth ) + int width, int height, int depth, + UINT loadflags ) { int n = CURSORICON_FindBestCursor( dir, CURSORICON_GetResCursorEntry, - width, height, depth ); + width, height, depth, loadflags ); if ( n < 0 ) return NULL; return &dir->idEntries[n]; @@ -603,20 +630,22 @@ } static const CURSORICONFILEDIRENTRY *CURSORICON_FindBestCursorFile( const CURSORICONFILEDIR *dir, - int width, int height, int depth ) -{ - int n = CURSORICON_FindBestCursor( (LPCVOID) dir, CURSORICON_GetFileEntry, - width, height, depth ); + int width, int height, int depth, + UINT loadflags ) +{ + int n = CURSORICON_FindBestCursor( dir, CURSORICON_GetFileEntry, + width, height, depth, loadflags ); if ( n < 0 ) return NULL; return &dir->idEntries[n]; } static const CURSORICONFILEDIRENTRY *CURSORICON_FindBestIconFile( const CURSORICONFILEDIR *dir, - int width, int height, int depth ) -{ - int n = CURSORICON_FindBestIcon((LPCVOID) dir, CURSORICON_GetFileEntry, - width, height, depth ); + int width, int height, int depth, + UINT loadflags ) +{ + int n = CURSORICON_FindBestIcon( dir, CURSORICON_GetFileEntry, + width, height, depth, loadflags ); if ( n < 0 ) return NULL; return &dir->idEntries[n]; @@ -811,8 +840,16 @@ return 0; } - if (!width) width = bmi->bmiHeader.biWidth; - if (!height) height = bmi->bmiHeader.biHeight/2; + if (cFlag & LR_DEFAULTSIZE) + { + if (!width) width = GetSystemMetrics( bIcon ? SM_CXICON : SM_CXCURSOR ); + if (!height) height = GetSystemMetrics( bIcon ? SM_CYICON : SM_CYCURSOR ); + } + else + { + if (!width) width = bmi->bmiHeader.biWidth; + if (!height) height = bmi->bmiHeader.biHeight/2; + } do_stretch = (bmi->bmiHeader.biHeight/2 != height) || (bmi->bmiHeader.biWidth != width); @@ -978,7 +1015,7 @@ * \- CHUNK:icon */ static HCURSOR CURSORICON_CreateIconFromANI( const LPBYTE bits, DWORD bits_size, - INT width, INT height, INT depth ) + INT width, INT height, INT depth, UINT loadflags ) { struct cursoricon_object *info; ani_header header = {0}; @@ -1036,7 +1073,7 @@ const BITMAPINFO *bmi; entry = CURSORICON_FindBestIconFile((const CURSORICONFILEDIR *) icon_data, - width, height, depth ); + width, height, depth, loadflags ); bmi = (const BITMAPINFO *) (icon_data + entry->dwDIBOffset); info->hotspot.x = entry->xHotspot; @@ -1164,8 +1201,7 @@ /* Check for .ani. */ if (memcmp( bits, "RIFF", 4 ) == 0) { - hIcon = CURSORICON_CreateIconFromANI( bits, filesize, width, height, - depth ); + hIcon = CURSORICON_CreateIconFromANI( bits, filesize, width, height, depth, loadflags ); goto end; } @@ -1177,9 +1213,9 @@ goto end; if ( fCursor ) - entry = CURSORICON_FindBestCursorFile( dir, width, height, depth ); + entry = CURSORICON_FindBestCursorFile( dir, width, height, depth, loadflags ); else - entry = CURSORICON_FindBestIconFile( dir, width, height, depth ); + entry = CURSORICON_FindBestIconFile( dir, width, height, depth, loadflags ); if ( !entry ) goto end; @@ -1240,9 +1276,9 @@ if (!(handle = LoadResource( hInstance, hRsrc ))) return 0; if (!(dir = LockResource( handle ))) return 0; if (fCursor) - dirEntry = CURSORICON_FindBestCursorRes( dir, width, height, depth ); + dirEntry = CURSORICON_FindBestCursorRes( dir, width, height, depth, loadflags ); else - dirEntry = CURSORICON_FindBestIconRes( dir, width, height, depth ); + dirEntry = CURSORICON_FindBestIconRes( dir, width, height, depth, loadflags ); if (!dirEntry) return 0; wResId = dirEntry->wResId; FreeResource( handle ); @@ -1581,9 +1617,9 @@ ReleaseDC(0, hdc); if( bIcon ) - entry = CURSORICON_FindBestIconRes( dir, width, height, depth ); + entry = CURSORICON_FindBestIconRes( dir, width, height, depth, LR_DEFAULTSIZE ); else - entry = CURSORICON_FindBestCursorRes( dir, width, height, depth ); + entry = CURSORICON_FindBestCursorRes( dir, width, height, depth, LR_DEFAULTSIZE ); if( entry ) retVal = entry->wResId; } @@ -1596,9 +1632,7 @@ */ INT WINAPI LookupIconIdFromDirectory( LPBYTE dir, BOOL bIcon ) { - return LookupIconIdFromDirectoryEx( dir, bIcon, - bIcon ? GetSystemMetrics(SM_CXICON) : GetSystemMetrics(SM_CXCURSOR), - bIcon ? GetSystemMetrics(SM_CYICON) : GetSystemMetrics(SM_CYCURSOR), bIcon ? 0 : LR_MONOCHROME ); + return LookupIconIdFromDirectoryEx( dir, bIcon, 0, 0, bIcon ? 0 : LR_MONOCHROME ); } /*********************************************************************** @@ -2306,15 +2340,6 @@ TRACE_(resource)("(%p,%s,%d,%d,%d,0x%08x)\n", hinst,debugstr_w(name),type,desiredx,desiredy,loadflags); - if (loadflags & LR_DEFAULTSIZE) { - if (type == IMAGE_ICON) { - if (!desiredx) desiredx = GetSystemMetrics(SM_CXICON); - if (!desiredy) desiredy = GetSystemMetrics(SM_CYICON); - } else if (type == IMAGE_CURSOR) { - if (!desiredx) desiredx = GetSystemMetrics(SM_CXCURSOR); - if (!desiredy) desiredy = GetSystemMetrics(SM_CYCURSOR); - } - } if (loadflags & LR_LOADFROMFILE) loadflags &= ~LR_SHARED; switch (type) { case IMAGE_BITMAP: Modified: branches/arwinss/reactos/dll/win32/user32/mdi.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
============================================================================== --- branches/arwinss/reactos/dll/win32/user32/mdi.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/mdi.c [iso-8859-1] Wed Feb 9 13:28:02 2011 @@ -866,7 +866,7 @@ if (!hIcon) hIcon = (HICON)SendMessageW(hChild, WM_GETICON, ICON_BIG, 0); if (!hIcon) - hIcon = LoadImageW(0, MAKEINTRESOURCEW(IDI_WINLOGO), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR); + hIcon = LoadImageW(0, MAKEINTRESOURCEW(IDI_WINLOGO), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR); if (hIcon) { HDC hMemDC; Modified: branches/arwinss/reactos/dll/win32/winent.drv/font.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winen…
============================================================================== --- branches/arwinss/reactos/dll/win32/winent.drv/font.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/winent.drv/font.c [iso-8859-1] Wed Feb 9 13:28:02 2011 @@ -536,7 +536,11 @@ lfsz.lf.lfWidth = abs( lfsz.lf.lfWidth ); lfsz.devsize.cx = RosDrv_XWStoDS( pdcattr, lfsz.lf.lfWidth ); lfsz.devsize.cy = RosDrv_YWStoDS( pdcattr, lfsz.lf.lfHeight ); - GetWorldTransform( pdcattr->hdc, &lfsz.xform ); + + GetTransform( pdcattr->hdc, 0x204, &lfsz.xform ); + TRACE("font transform %f %f %f %f\n", lfsz.xform.eM11, lfsz.xform.eM12, + lfsz.xform.eM21, lfsz.xform.eM22); + /* Not used fields, would break hashing */ lfsz.xform.eDx = lfsz.xform.eDy = 0; Propchange: branches/arwinss/reactos/dll/win32/winex11.drv/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Feb 9 13:28:02 2011 @@ -1,3 +1,3 @@ /branches/ros-amd64-bringup/reactos/dll/win32/winex11.drv:35746,35789,36614,36930,38148,38151,38265,38268,39333,39345,40991,41000,41027-41028,41050,41052,41082-41086,41549,43080 /trunk/reactos/dll/win32/winex11.drv:42000-44999,45011,45097-45099,45319,45418-45419,45535-45539,45687-45688,47605,48678 -/vendor/wine/dlls/winex11.drv/current:43149,43398,43708,44151,44715,45044,45206,45455,45646,45910,46314,46915,47274,47321,47798,47861,48147,48418,48677,49173,49721,49800,50160,50516 +/vendor/wine/dlls/winex11.drv/current:43149,43398,43708,44151,44715,45044,45206,45455,45646,45910,46314,46915,47274,47321,47798,47861,48147,48418,48677,49173,49721,49800,50160,50516,50631 Modified: branches/arwinss/reactos/dll/win32/winex11.drv/clipboard.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winex…
============================================================================== --- branches/arwinss/reactos/dll/win32/winex11.drv/clipboard.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/winex11.drv/clipboard.c [iso-8859-1] Wed Feb 9 13:28:02 2011 @@ -87,10 +87,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(clipboard); /* Maximum wait time for selection notify */ -#define SELECTION_RETRIES 500 /* wait for .1 seconds */ +#define SELECTION_RETRIES 500 /* wait for .5 seconds */ #define SELECTION_WAIT 1000 /* us */ -/* Minimum seconds that must lapse between owner queries */ -#define OWNERQUERYLAPSETIME 1 /* Selection masks */ #define S_NOSELECTION 0 @@ -180,6 +178,7 @@ static BOOL X11DRV_CLIPBOARD_RenderSynthesizedFormat(Display *display, LPWINE_CLIPDATA lpData); static BOOL X11DRV_CLIPBOARD_RenderSynthesizedDIB(Display *display); static BOOL X11DRV_CLIPBOARD_RenderSynthesizedBitmap(Display *display); +static BOOL X11DRV_CLIPBOARD_RenderSynthesizedEnhMetaFile(Display *display); static void X11DRV_HandleSelectionRequest( HWND hWnd, XSelectionRequestEvent *event, BOOL bIsMultiple ); /* Clipboard formats @@ -888,12 +887,15 @@ break; case CF_ENHMETAFILE: + bret = X11DRV_CLIPBOARD_RenderSynthesizedEnhMetaFile( display ); + break; + case CF_METAFILEPICT: - FIXME("Synthesizing wFormatID(0x%08x) not implemented\n", wFormatID); + FIXME("Synthesizing CF_METAFILEPICT not implemented\n"); break; default: - FIXME("Called to synthesize unknown format\n"); + FIXME("Called to synthesize unknown format 0x%08x\n", wFormatID); break; } } @@ -1059,21 +1061,23 @@ if (lpSource->hData || X11DRV_CLIPBOARD_RenderFormat(display, lpSource)) { HDC hdc; - HBITMAP hData; + HBITMAP hData = NULL; unsigned int offset; LPBITMAPINFOHEADER lpbmih; hdc = GetDC(NULL); lpbmih = GlobalLock(lpSource->hData); - - offset = sizeof(BITMAPINFOHEADER) - + ((lpbmih->biBitCount <= 8) ? (sizeof(RGBQUAD) * - (1 << lpbmih->biBitCount)) : 0); - - hData = CreateDIBitmap(hdc, lpbmih, CBM_INIT, (LPBYTE)lpbmih + - offset, (LPBITMAPINFO) lpbmih, DIB_RGB_COLORS); - - GlobalUnlock(lpSource->hData); + if (lpbmih) + { + offset = sizeof(BITMAPINFOHEADER) + + ((lpbmih->biBitCount <= 8) ? (sizeof(RGBQUAD) * + (1 << lpbmih->biBitCount)) : 0); + + hData = CreateDIBitmap(hdc, lpbmih, CBM_INIT, (LPBYTE)lpbmih + + offset, (LPBITMAPINFO) lpbmih, DIB_RGB_COLORS); + + GlobalUnlock(lpSource->hData); + } ReleaseDC(NULL, hdc); if (hData) @@ -1085,6 +1089,53 @@ } return bret; +} + + +/************************************************************************** + * X11DRV_CLIPBOARD_RenderSynthesizedEnhMetaFile + */ +static BOOL X11DRV_CLIPBOARD_RenderSynthesizedEnhMetaFile(Display *display) +{ + LPWINE_CLIPDATA lpSource = NULL; + + TRACE("\n"); + + if ((lpSource = X11DRV_CLIPBOARD_LookupData(CF_ENHMETAFILE)) && lpSource->hData) + return TRUE; + /* If we have a MF pict and it's not synthesized or it has been rendered */ + else if ((lpSource = X11DRV_CLIPBOARD_LookupData(CF_METAFILEPICT)) && + (!(lpSource->wFlags & CF_FLAG_SYNTHESIZED) || lpSource->hData)) + { + /* Render source if required */ + if (lpSource->hData || X11DRV_CLIPBOARD_RenderFormat(display, lpSource)) + { + METAFILEPICT *pmfp; + HENHMETAFILE hData = NULL; + + pmfp = GlobalLock(lpSource->hData); + if (pmfp) + { + UINT size_mf_bits = GetMetaFileBitsEx(pmfp->hMF, 0, NULL); + void *mf_bits = HeapAlloc(GetProcessHeap(), 0, size_mf_bits); + if (mf_bits) + { + GetMetaFileBitsEx(pmfp->hMF, size_mf_bits, mf_bits); + hData = SetWinMetaFileBits(size_mf_bits, mf_bits, NULL, pmfp); + HeapFree(GetProcessHeap(), 0, mf_bits); + } + GlobalUnlock(lpSource->hData); + } + + if (hData) + { + X11DRV_CLIPBOARD_InsertClipboardData(CF_ENHMETAFILE, hData, 0, NULL, TRUE); + return TRUE; + } + } + } + + return FALSE; } @@ -1496,7 +1547,6 @@ *lpBytes = j; /* Number of bytes in string */ done: - HeapFree(GetProcessHeap(), 0, text); GlobalUnlock(lpData->hData); return lpstr; Modified: branches/arwinss/reactos/dll/win32/winex11.drv/dib.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winex…
============================================================================== --- branches/arwinss/reactos/dll/win32/winex11.drv/dib.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/winex11.drv/dib.c [iso-8859-1] Wed Feb 9 13:28:02 2011 @@ -4728,6 +4728,24 @@ } #endif /* HAVE_LIBXXSHM */ +static Bool X11DRV_DIB_QueryXShm( Bool *pixmaps ) +{ + static Bool have_xshm, have_xshm_pixmaps; + static BOOL initialized; + + if (!initialized) + { +#ifdef HAVE_LIBXXSHM + int major, minor; + + have_xshm = XShmQueryVersion( gdi_display, &major, &minor, &have_xshm_pixmaps ); +#endif + initialized = TRUE; + } + + *pixmaps = have_xshm_pixmaps; + return have_xshm; +} /*********************************************************************** * X11DRV_CreateDIBSection (X11DRV.@) @@ -4740,7 +4758,6 @@ WORD bpp, compr; LONG w, h; #ifdef HAVE_LIBXXSHM - int major, minor; Bool pixmaps; #endif @@ -4780,7 +4797,7 @@ #ifdef HAVE_LIBXXSHM physBitmap->shminfo.shmid = -1; - if (XShmQueryVersion( gdi_display, &major, &minor, &pixmaps ) + if (X11DRV_DIB_QueryXShm( &pixmaps ) && (physBitmap->image = X11DRV_XShmCreateImage( dib.dsBm.bmWidth, dib.dsBm.bmHeight, physBitmap->pixmap_depth, &physBitmap->shminfo ))) { Modified: branches/arwinss/reactos/dll/win32/winex11.drv/window.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winex…
============================================================================== --- branches/arwinss/reactos/dll/win32/winex11.drv/window.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/winex11.drv/window.c [iso-8859-1] Wed Feb 9 13:28:02 2011 @@ -1606,7 +1606,7 @@ RECT dst_rect = *new_rect; HDC hdc_src, hdc_dst; INT code; - HRGN rgn = 0; + HRGN rgn; HWND parent = 0; if (!data->whole_window) @@ -1625,6 +1625,9 @@ hdc_src = hdc_dst = GetDCEx( data->hwnd, 0, DCX_CACHE ); } + rgn = CreateRectRgnIndirect( &dst_rect ); + SelectClipRgn( hdc_dst, rgn ); + DeleteObject( rgn ); ExcludeUpdateRgn( hdc_dst, data->hwnd ); code = X11DRV_START_EXPOSURES; @@ -1637,6 +1640,7 @@ dst_rect.right - dst_rect.left, dst_rect.bottom - dst_rect.top, hdc_src, src_rect.left, src_rect.top, SRCCOPY ); + rgn = 0; code = X11DRV_END_EXPOSURES; ExtEscape( hdc_dst, X11DRV_ESCAPE, sizeof(code), (LPSTR)&code, sizeof(rgn), (LPSTR)&rgn ); Modified: branches/arwinss/reactos/dll/win32/winex11.drv/xrender.c URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winex…
============================================================================== --- branches/arwinss/reactos/dll/win32/winex11.drv/xrender.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/winex11.drv/xrender.c [iso-8859-1] Wed Feb 9 13:28:02 2011 @@ -1066,7 +1066,11 @@ lfsz.lf.lfWidth = abs( lfsz.lf.lfWidth ); lfsz.devsize.cx = X11DRV_XWStoDS( physDev, lfsz.lf.lfWidth ); lfsz.devsize.cy = X11DRV_YWStoDS( physDev, lfsz.lf.lfHeight ); - GetWorldTransform( physDev->hdc, &lfsz.xform ); + + GetTransform( physDev->hdc, 0x204, &lfsz.xform ); + TRACE("font transform %f %f %f %f\n", lfsz.xform.eM11, lfsz.xform.eM12, + lfsz.xform.eM21, lfsz.xform.eM22); + /* Not used fields, would break hashing */ lfsz.xform.eDx = lfsz.xform.eDy = 0; Modified: branches/arwinss/reactos/include/psdk/wingdi.h URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/psdk/wi…
============================================================================== --- branches/arwinss/reactos/include/psdk/wingdi.h [iso-8859-1] (original) +++ branches/arwinss/reactos/include/psdk/wingdi.h [iso-8859-1] Wed Feb 9 13:28:02 2011 @@ -3107,6 +3107,7 @@ int WINAPI GetTextFaceW(HDC,int,LPWSTR); BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA); BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW); +BOOL WINAPI GetTransform(HDC,DWORD,XFORM*); BOOL WINAPI GetViewportExtEx(HDC,LPSIZE); BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT); BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
13 years, 10 months
1
0
0
0
[fireball] 50631: [VENDOR/WINE] - Import Wine-1.3.13 gdi32, user32, winex11.drv, server. - IMPORTANT: user32 translatable resources were NOT imported.
by fireball@svn.reactos.org
Author: fireball Date: Wed Feb 9 13:10:50 2011 New Revision: 50631 URL:
http://svn.reactos.org/svn/reactos?rev=50631&view=rev
Log: [VENDOR/WINE] - Import Wine-1.3.13 gdi32, user32, winex11.drv, server. - IMPORTANT: user32 translatable resources were NOT imported. Modified: vendor/wine/dlls/gdi32/current/font.c vendor/wine/dlls/gdi32/current/tests/clipping.c vendor/wine/dlls/gdi32/current/tests/font.c vendor/wine/dlls/user32/current/clipboard.c vendor/wine/dlls/user32/current/cursoricon.c vendor/wine/dlls/user32/current/mdi.c vendor/wine/dlls/user32/current/tests/clipboard.c vendor/wine/dlls/user32/current/tests/edit.c vendor/wine/dlls/winex11.drv/current/clipboard.c vendor/wine/dlls/winex11.drv/current/dib.c vendor/wine/dlls/winex11.drv/current/window.c vendor/wine/dlls/winex11.drv/current/xrender.c vendor/wine/server/current/mapping.c vendor/wine/server/current/registry.c vendor/wine/server/current/sock.c Modified: vendor/wine/dlls/gdi32/current/font.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/gdi32/current/font.c?re…
============================================================================== --- vendor/wine/dlls/gdi32/current/font.c [iso-8859-1] (original) +++ vendor/wine/dlls/gdi32/current/font.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -1553,7 +1553,7 @@ return ret; } -static LPSTR FONT_GetCharsByRangeA(UINT firstChar, UINT lastChar, PINT pByteLen) +static LPSTR FONT_GetCharsByRangeA(HDC hdc, UINT firstChar, UINT lastChar, PINT pByteLen) { INT i, count = lastChar - firstChar + 1; UINT c; @@ -1561,6 +1561,24 @@ if (count <= 0) return NULL; + + switch (GdiGetCodePage(hdc)) + { + case 932: + case 936: + case 949: + case 950: + case 1361: + if (lastChar > 0xffff) + return NULL; + if ((firstChar ^ lastChar) > 0xff) + return NULL; + break; + default: + if (lastChar > 0xff) + return NULL; + break; + } str = HeapAlloc(GetProcessHeap(), 0, count * 2 + 1); if (str == NULL) @@ -1620,7 +1638,7 @@ LPWSTR wstr; BOOL ret = TRUE; - str = FONT_GetCharsByRangeA(firstChar, lastChar, &i); + str = FONT_GetCharsByRangeA(hdc, firstChar, lastChar, &i); if(str == NULL) return FALSE; @@ -2014,7 +2032,16 @@ rc.right = x + width.x; rc.top = y - tm.tmAscent; rc.bottom = y + tm.tmDescent; - dc->funcs->pExtTextOut(dc->physDev, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL); + + if(flags & ETO_CLIPPED) + { + rc.left = max(lprect->left, rc.left); + rc.right = min(lprect->right, rc.right); + rc.top = max(lprect->top, rc.top); + rc.bottom = min(lprect->bottom, rc.bottom); + } + if(rc.left < rc.right && rc.top < rc.bottom) + dc->funcs->pExtTextOut(dc->physDev, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL); } } } @@ -2324,7 +2351,7 @@ LPWSTR wstr; BOOL ret = TRUE; - str = FONT_GetCharsByRangeA(firstChar, lastChar, &i); + str = FONT_GetCharsByRangeA(hdc, firstChar, lastChar, &i); if (str == NULL) return FALSE; @@ -2468,16 +2495,15 @@ LPGLYPHMETRICS lpgm, DWORD cbBuffer, LPVOID lpBuffer, const MAT2 *lpmat2 ) { - LPWSTR p = NULL; - DWORD ret; - UINT c; - if (!lpmat2) return GDI_ERROR; if(!(fuFormat & GGO_GLYPH_INDEX)) { + UINT cp; int len; char mbchs[2]; - if(uChar > 0xff) { /* but, 2 bytes character only */ + + cp = GdiGetCodePage(hdc); + if (IsDBCSLeadByteEx(cp, uChar >> 8)) { len = 2; mbchs[0] = (uChar & 0xff00) >> 8; mbchs[1] = (uChar & 0xff); @@ -2485,14 +2511,11 @@ len = 1; mbchs[0] = (uChar & 0xff); } - p = FONT_mbtowc(hdc, mbchs, len, NULL, NULL); - c = p[0]; - } else - c = uChar; - ret = GetGlyphOutlineW(hdc, c, fuFormat, lpgm, cbBuffer, lpBuffer, - lpmat2); - HeapFree(GetProcessHeap(), 0, p); - return ret; + MultiByteToWideChar(cp, 0, mbchs, len, (LPWSTR)&uChar, 1); + } + + return GetGlyphOutlineW(hdc, uChar, fuFormat, lpgm, cbBuffer, lpBuffer, + lpmat2); } /*********************************************************************** @@ -3010,7 +3033,7 @@ LPWSTR wstr; BOOL ret = TRUE; - str = FONT_GetCharsByRangeA(first, last, &i); + str = FONT_GetCharsByRangeA(hdc, first, last, &i); if (str == NULL) return FALSE; Modified: vendor/wine/dlls/gdi32/current/tests/clipping.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/gdi32/current/tests/cli…
============================================================================== --- vendor/wine/dlls/gdi32/current/tests/clipping.c [iso-8859-1] (original) +++ vendor/wine/dlls/gdi32/current/tests/clipping.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -353,9 +353,110 @@ ReleaseDC(NULL, hdc); } +static void test_memory_dc_clipping(void) +{ + HDC hdc; + HRGN hrgn, hrgn_empty; + HBITMAP hbmp; + RECT rc; + int ret; + + hdc = CreateCompatibleDC(0); + hrgn_empty = CreateRectRgn(0, 0, 0, 0); + hrgn = CreateRectRgn(0, 0, 0, 0); + hbmp = CreateCompatibleBitmap(hdc, 100, 100); + + ret = GetClipRgn(hdc, hrgn); + ok(ret == 0, "expected 0, got %d\n", ret); + + ret = ExtSelectClipRgn(hdc, hrgn_empty, RGN_DIFF); + ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret); + + ret = GetClipRgn(hdc, hrgn); + ok(ret == 1, "expected 1, got %d\n", ret); + + ret = GetRgnBox(hrgn, &rc); + ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret); + ok(rc.left == 0 && rc.top == 0 && rc.right == 1 && rc.bottom == 1, + "expected 0,0-1,1, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom); + + ret = ExtSelectClipRgn(hdc, 0, RGN_COPY); + ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret); + + ret = GetClipRgn(hdc, hrgn); + ok(ret == 0, "expected 0, got %d\n", ret); + + SelectObject(hdc, hbmp); + + ret = ExtSelectClipRgn(hdc, hrgn_empty, RGN_DIFF); + ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret); + + ret = GetClipRgn(hdc, hrgn); + ok(ret == 1, "expected 1, got %d\n", ret); + + ret = GetRgnBox(hrgn, &rc); + ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret); + ok(rc.left == 0 && rc.top == 0 && rc.right == 100 && rc.bottom == 100, + "expected 0,0-100,100, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom); + + DeleteDC(hdc); + DeleteObject(hrgn); + DeleteObject(hrgn_empty); + DeleteObject(hbmp); +} + +static void test_window_dc_clipping(void) +{ + HDC hdc; + HRGN hrgn, hrgn_empty; + HWND hwnd; + RECT rc; + int ret, screen_width, screen_height; + + screen_width = GetSystemMetrics(SM_CXSCREEN); + screen_height = GetSystemMetrics(SM_CYSCREEN); + + trace("screen resolution %d x %d\n", screen_width, screen_height); + + hwnd = CreateWindowExA(0, "static", NULL, WS_POPUP, + -100, -100, screen_width * 2, screen_height * 2, 0, 0, 0, NULL); + hdc = GetWindowDC(0); + hrgn_empty = CreateRectRgn(0, 0, 0, 0); + hrgn = CreateRectRgn(0, 0, 0, 0); + + ret = GetClipRgn(hdc, hrgn); + ok(ret == 0, "expected 0, got %d\n", ret); + + ret = ExtSelectClipRgn(hdc, hrgn_empty, RGN_DIFF); + ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret); + + ret = GetClipRgn(hdc, hrgn); + ok(ret == 1, "expected 1, got %d\n", ret); + + ret = GetRgnBox(hrgn, &rc); + ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret); + ok(rc.left == 0 && rc.top == 0 && rc.right == screen_width && rc.bottom == screen_height, + "expected 0,0-%d,%d, got %d,%d-%d,%d\n", screen_width, screen_height, + rc.left, rc.top, rc.right, rc.bottom); + + ret = ExtSelectClipRgn(hdc, 0, RGN_COPY); + ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret); + + ret = GetClipRgn(hdc, hrgn); + ok(ret == 0, "expected 0, got %d\n", ret); + + DeleteDC(hdc); + DeleteObject(hrgn); + DeleteObject(hrgn_empty); + DestroyWindow(hwnd); +} + + START_TEST(clipping) { test_GetRandomRgn(); test_ExtCreateRegion(); test_GetClipRgn(); -} + test_memory_dc_clipping(); + test_window_dc_clipping(); +} Modified: vendor/wine/dlls/gdi32/current/tests/font.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/gdi32/current/tests/fon…
============================================================================== --- vendor/wine/dlls/gdi32/current/tests/font.c [iso-8859-1] (original) +++ vendor/wine/dlls/gdi32/current/tests/font.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -50,6 +50,7 @@ static BOOL (WINAPI *pRemoveFontMemResourceEx)(HANDLE); static HMODULE hgdi32 = 0; +static const MAT2 mat = { {0,1}, {0,0}, {0,0}, {0,1} }; static void init(void) { @@ -410,7 +411,6 @@ INT width_orig, height_orig, lfWidth; XFORM xform; GLYPHMETRICS gm; - MAT2 mat = { {0,1}, {0,0}, {0,0}, {0,1} }; MAT2 mat2 = { {0x8000,0}, {0,0}, {0,0}, {0x8000,0} }; POINT pt; INT ret; @@ -670,6 +670,7 @@ int weight, height, ascent, descent, int_leading, ext_leading; int ave_char_width, max_char_width, dpi; DWORD ansi_bitfield; + WORD skip_lang_id; } fd[] = { { "MS Sans Serif", FW_NORMAL, 13, 11, 2, 2, 0, 5, 11, 96, FS_LATIN1 | FS_LATIN2 | FS_CYRILLIC }, @@ -741,19 +742,23 @@ { "Small Fonts", FW_NORMAL, 3, 2, 1, 0, 0, 1, 2, 96, FS_LATIN1 }, { "Small Fonts", FW_NORMAL, 3, 2, 1, 0, 0, 1, 8, 96, FS_LATIN2 | FS_CYRILLIC }, { "Small Fonts", FW_NORMAL, 3, 2, 1, 0, 0, 2, 4, 96, FS_JISJAPAN }, - { "Small Fonts", FW_NORMAL, 5, 4, 1, 1, 0, 3, 4, 96, FS_LATIN1 }, + { "Small Fonts", FW_NORMAL, 5, 4, 1, 1, 0, 3, 4, 96, FS_LATIN1, LANG_ARABIC }, { "Small Fonts", FW_NORMAL, 5, 4, 1, 1, 0, 2, 8, 96, FS_LATIN2 | FS_CYRILLIC }, { "Small Fonts", FW_NORMAL, 5, 4, 1, 0, 0, 3, 6, 96, FS_JISJAPAN }, - { "Small Fonts", FW_NORMAL, 6, 5, 1, 1, 0, 3, 13, 96, FS_LATIN1 }, + { "Small Fonts", FW_NORMAL, 6, 5, 1, 1, 0, 3, 13, 96, FS_LATIN1, LANG_ARABIC }, { "Small Fonts", FW_NORMAL, 6, 5, 1, 1, 0, 3, 8, 96, FS_LATIN2 | FS_CYRILLIC }, + { "Small Fonts", FW_NORMAL, 6, 5, 1, 1, 0, 3, 8, 96, FS_ARABIC }, { "Small Fonts", FW_NORMAL, 6, 5, 1, 0, 0, 4, 8, 96, FS_JISJAPAN }, - { "Small Fonts", FW_NORMAL, 8, 7, 1, 1, 0, 4, 7, 96, FS_LATIN1 }, + { "Small Fonts", FW_NORMAL, 8, 7, 1, 1, 0, 4, 7, 96, FS_LATIN1, LANG_ARABIC }, { "Small Fonts", FW_NORMAL, 8, 7, 1, 1, 0, 4, 8, 96, FS_LATIN2 | FS_CYRILLIC }, + { "Small Fonts", FW_NORMAL, 8, 7, 1, 1, 0, 4, 8, 96, FS_ARABIC }, { "Small Fonts", FW_NORMAL, 8, 7, 1, 0, 0, 5, 10, 96, FS_JISJAPAN }, - { "Small Fonts", FW_NORMAL, 10, 8, 2, 2, 0, 4, 8, 96, FS_LATIN1 | FS_LATIN2 }, + { "Small Fonts", FW_NORMAL, 10, 8, 2, 2, 0, 4, 8, 96, FS_LATIN1 | FS_LATIN2, LANG_ARABIC }, { "Small Fonts", FW_NORMAL, 10, 8, 2, 2, 0, 5, 8, 96, FS_CYRILLIC }, + { "Small Fonts", FW_NORMAL, 10, 8, 2, 2, 0, 4, 9, 96, FS_ARABIC }, { "Small Fonts", FW_NORMAL, 10, 8, 2, 0, 0, 6, 12, 96, FS_JISJAPAN }, - { "Small Fonts", FW_NORMAL, 11, 9, 2, 2, 0, 5, 9, 96, FS_LATIN1 | FS_LATIN2 | FS_CYRILLIC }, + { "Small Fonts", FW_NORMAL, 11, 9, 2, 2, 0, 5, 9, 96, FS_LATIN1 | FS_LATIN2 | FS_CYRILLIC, LANG_ARABIC }, + { "Small Fonts", FW_NORMAL, 11, 9, 2, 2, 0, 4, 10, 96, FS_ARABIC }, { "Small Fonts", FW_NORMAL, 11, 9, 2, 0, 0, 7, 14, 96, FS_JISJAPAN }, { "Small Fonts", FW_NORMAL, 3, 2, 1, 0, 0, 1, 2, 120, FS_LATIN1 | FS_JISJAPAN }, @@ -783,6 +788,9 @@ HFONT hfont, old_hfont; TEXTMETRIC tm; INT ret, i; + WORD system_lang_id; + + system_lang_id = PRIMARYLANGID(GetSystemDefaultLangID()); hdc = CreateCompatibleDC(0); assert(hdc); @@ -818,18 +826,24 @@ if(fd[i].dpi == tm.tmDigitizedAspectX) { trace("found font %s, height %d charset %x dpi %d\n", lf.lfFaceName, lf.lfHeight, lf.lfCharSet, fd[i].dpi); - ok(tm.tmWeight == fd[i].weight, "%s(%d): tm.tmWeight %d != %d\n", fd[i].face_name, fd[i].height, tm.tmWeight, fd[i].weight); - ok(tm.tmHeight == fd[i].height, "%s(%d): tm.tmHeight %d != %d\n", fd[i].face_name, fd[i].height, tm.tmHeight, fd[i].height); - ok(tm.tmAscent == fd[i].ascent, "%s(%d): tm.tmAscent %d != %d\n", fd[i].face_name, fd[i].height, tm.tmAscent, fd[i].ascent); - ok(tm.tmDescent == fd[i].descent, "%s(%d): tm.tmDescent %d != %d\n", fd[i].face_name, fd[i].height, tm.tmDescent, fd[i].descent); - ok(tm.tmInternalLeading == fd[i].int_leading, "%s(%d): tm.tmInternalLeading %d != %d\n", fd[i].face_name, fd[i].height, tm.tmInternalLeading, fd[i].int_leading); - ok(tm.tmExternalLeading == fd[i].ext_leading, "%s(%d): tm.tmExternalLeading %d != %d\n", fd[i].face_name, fd[i].height, tm.tmExternalLeading, fd[i].ext_leading); - ok(tm.tmAveCharWidth == fd[i].ave_char_width, "%s(%d): tm.tmAveCharWidth %d != %d\n", fd[i].face_name, fd[i].height, tm.tmAveCharWidth, fd[i].ave_char_width); - - /* Don't run the max char width test on System/ANSI_CHARSET. We have extra characters in our font - that make the max width bigger */ - if(strcmp(lf.lfFaceName, "System") || lf.lfCharSet != ANSI_CHARSET) - ok(tm.tmMaxCharWidth == fd[i].max_char_width, "%s(%d): tm.tmMaxCharWidth %d != %d\n", fd[i].face_name, fd[i].height, tm.tmMaxCharWidth, fd[i].max_char_width); + if (fd[i].skip_lang_id == 0 || system_lang_id != fd[i].skip_lang_id) + { + ok(tm.tmWeight == fd[i].weight, "%s(%d): tm.tmWeight %d != %d\n", fd[i].face_name, fd[i].height, tm.tmWeight, fd[i].weight); + ok(tm.tmHeight == fd[i].height, "%s(%d): tm.tmHeight %d != %d\n", fd[i].face_name, fd[i].height, tm.tmHeight, fd[i].height); + ok(tm.tmAscent == fd[i].ascent, "%s(%d): tm.tmAscent %d != %d\n", fd[i].face_name, fd[i].height, tm.tmAscent, fd[i].ascent); + ok(tm.tmDescent == fd[i].descent, "%s(%d): tm.tmDescent %d != %d\n", fd[i].face_name, fd[i].height, tm.tmDescent, fd[i].descent); + ok(tm.tmInternalLeading == fd[i].int_leading, "%s(%d): tm.tmInternalLeading %d != %d\n", fd[i].face_name, fd[i].height, tm.tmInternalLeading, fd[i].int_leading); + ok(tm.tmExternalLeading == fd[i].ext_leading, "%s(%d): tm.tmExternalLeading %d != %d\n", fd[i].face_name, fd[i].height, tm.tmExternalLeading, fd[i].ext_leading); + ok(tm.tmAveCharWidth == fd[i].ave_char_width, "%s(%d): tm.tmAveCharWidth %d != %d\n", fd[i].face_name, fd[i].height, tm.tmAveCharWidth, fd[i].ave_char_width); + + /* Don't run the max char width test on System/ANSI_CHARSET. We have extra characters in our font + that make the max width bigger */ + if(strcmp(lf.lfFaceName, "System") || lf.lfCharSet != ANSI_CHARSET) + ok(tm.tmMaxCharWidth == fd[i].max_char_width, "%s(%d): tm.tmMaxCharWidth %d != %d\n", fd[i].face_name, fd[i].height, tm.tmMaxCharWidth, fd[i].max_char_width); + } + else + skip("Skipping font metrics test for system langid 0x%x\n", + system_lang_id); } SelectObject(hdc, old_hfont); DeleteObject(hfont); @@ -908,16 +922,36 @@ DWORD nb; static const struct { + UINT first; + UINT last; + } range[] = + { + {0xff, 0xff}, + {0x100, 0x100}, + {0xff, 0x100}, + {0x1ff, 0xff00}, + {0xffff, 0xffff}, + {0x10000, 0x10000}, + {0xffff, 0x10000}, + {0xffffff, 0xffffff}, + {0x1000000, 0x1000000}, + {0xffffff, 0x1000000}, + {0xffffffff, 0xffffffff} + }; + static const struct + { UINT cs; UINT a; UINT w; + BOOL r[sizeof range / sizeof range[0]]; } c[] = { - {SHIFTJIS_CHARSET, 0x82a0, 0x3042}, - {HANGEUL_CHARSET, 0x8141, 0xac02}, - {JOHAB_CHARSET, 0x8446, 0x3135}, - {GB2312_CHARSET, 0x8141, 0x4e04}, - {CHINESEBIG5_CHARSET, 0xa142, 0x3001} + {ANSI_CHARSET, 0x30, 0x30, {TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE}}, + {SHIFTJIS_CHARSET, 0x82a0, 0x3042, {TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE}}, + {HANGEUL_CHARSET, 0x8141, 0xac02, {TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE}}, + {JOHAB_CHARSET, 0x8446, 0x3135, {TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE}}, + {GB2312_CHARSET, 0x8141, 0x4e04, {TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE}}, + {CHINESEBIG5_CHARSET, 0xa142, 0x3001, {TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE}} }; UINT i; @@ -963,7 +997,7 @@ { ABC a[2], w[2]; ABC full[256]; - UINT code = 0x41; + UINT code = 0x41, j; lf.lfFaceName[0] = '\0'; lf.lfCharSet = c[i].cs; @@ -990,6 +1024,13 @@ ok(ret, "GetCharABCWidthsA should have succeeded\n"); ok(memcmp(&a[0], &full[code], sizeof(ABC)) == 0, "GetCharABCWidthsA info should match. codepage = %u\n", c[i].cs); + + for (j = 0; j < sizeof range / sizeof range[0]; ++j) + { + ret = pGetCharABCWidthsA(hdc, range[j].first, range[j].last, full); + ok(ret == c[i].r[j], "GetCharABCWidthsA %x - %x should have %s\n", + range[j].first, range[j].last, c[i].r[j] ? "succeeded" : "failed"); + } hfont = SelectObject(hdc, hfont); DeleteObject(hfont); @@ -2134,7 +2175,6 @@ GLYPHMETRICS gm1, gm2; LOGFONTA lf2 = *lf; WORD idx; - MAT2 mat = { {0,1}, {0,0}, {0,0}, {0,1} }; if(!pGetGlyphIndicesA) return; @@ -3055,12 +3095,26 @@ static void test_GetGlyphOutline(void) { - MAT2 mat = { {0,1}, {0,0}, {0,0}, {0,1} }; HDC hdc; - GLYPHMETRICS gm; + GLYPHMETRICS gm, gm2; LOGFONTA lf; HFONT hfont, old_hfont; - INT ret; + INT ret, ret2; + static const struct + { + UINT cs; + UINT a; + UINT w; + } c[] = + { + {ANSI_CHARSET, 0x30, 0x30}, + {SHIFTJIS_CHARSET, 0x82a0, 0x3042}, + {HANGEUL_CHARSET, 0x8141, 0xac02}, + {JOHAB_CHARSET, 0x8446, 0x3135}, + {GB2312_CHARSET, 0x8141, 0x4e04}, + {CHINESEBIG5_CHARSET, 0xa142, 0x3001} + }; + UINT i; if (!is_truetype_font_installed("Tahoma")) { @@ -3124,6 +3178,32 @@ SelectObject(hdc, old_hfont); DeleteObject(hfont); + + for (i = 0; i < sizeof c / sizeof c[0]; ++i) + { + lf.lfFaceName[0] = '\0'; + lf.lfCharSet = c[i].cs; + lf.lfPitchAndFamily = 0; + if (EnumFontFamiliesEx(hdc, &lf, create_font_proc, (LPARAM)&hfont, 0)) + { + skip("TrueType font for charset %u is not installed\n", c[i].cs); + continue; + } + + old_hfont = SelectObject(hdc, hfont); + + ret = GetGlyphOutlineA(hdc, 0x8041, GGO_BITMAP, &gm, 0, NULL, &mat); + ret2 = GetGlyphOutlineA(hdc, 0x41, GGO_BITMAP, &gm2, 0, NULL, &mat); + ok(ret == ret2 && memcmp(&gm, &gm2, sizeof gm) == 0, "%d %d\n", ret, ret2); + + ret = GetGlyphOutlineA(hdc, c[i].a, GGO_BITMAP, &gm, 0, NULL, &mat); + ret2 = GetGlyphOutlineW(hdc, c[i].w, GGO_BITMAP, &gm2, 0, NULL, &mat); + ok(ret == ret2 && memcmp(&gm, &gm2, sizeof gm) == 0, "%d %d\n", ret, ret2); + + hfont = SelectObject(hdc, old_hfont); + DeleteObject(hfont); + } + DeleteDC(hdc); } Modified: vendor/wine/dlls/user32/current/clipboard.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/clipboar…
============================================================================== --- vendor/wine/dlls/user32/current/clipboard.c [iso-8859-1] (original) +++ vendor/wine/dlls/user32/current/clipboard.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -291,7 +291,7 @@ { BOOL bRet = FALSE; - TRACE("(%d)\n", bCBHasChanged); + TRACE("() Changed=%d\n", bCBHasChanged); if (CLIPBOARD_CloseClipboard()) { @@ -301,10 +301,10 @@ USER_Driver->pEndClipboardUpdate(); + bCBHasChanged = FALSE; + if (hWndViewer) SendMessageW(hWndViewer, WM_DRAWCLIPBOARD, (WPARAM) GetClipboardOwner(), 0); - - bCBHasChanged = FALSE; } bRet = TRUE; Modified: vendor/wine/dlls/user32/current/cursoricon.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/cursoric…
============================================================================== --- vendor/wine/dlls/user32/current/cursoricon.c [iso-8859-1] (original) +++ vendor/wine/dlls/user32/current/cursoricon.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -413,7 +413,7 @@ * Find the icon closest to the requested size and bit depth. */ static int CURSORICON_FindBestIcon( LPCVOID dir, fnGetCIEntry get_entry, - int width, int height, int depth ) + int width, int height, int depth, UINT loadflags ) { int i, cx, cy, bits, bestEntry = -1; UINT iTotalDiff, iXDiff=0, iYDiff=0, iColorDiff; @@ -422,7 +422,20 @@ /* Find Best Fit */ iTotalDiff = 0xFFFFFFFF; iColorDiff = 0xFFFFFFFF; - for ( i = 0; get_entry( dir, i, &cx, &cy, &bits ); i++ ) + + if (loadflags & LR_DEFAULTSIZE) + { + if (!width) width = GetSystemMetrics( SM_CXICON ); + if (!height) height = GetSystemMetrics( SM_CYICON ); + } + else if (!width && !height) + { + /* use the size of the first entry */ + if (!get_entry( dir, 0, &width, &height, &bits )) return -1; + iTotalDiff = 0; + } + + for ( i = 0; iTotalDiff && get_entry( dir, i, &cx, &cy, &bits ); i++ ) { iTempXDiff = abs(width - cx); iTempYDiff = abs(height - cy); @@ -475,9 +488,21 @@ * FIXME: parameter 'color' ignored. */ static int CURSORICON_FindBestCursor( LPCVOID dir, fnGetCIEntry get_entry, - int width, int height, int depth ) + int width, int height, int depth, UINT loadflags ) { int i, maxwidth, maxheight, cx, cy, bits, bestEntry = -1; + + if (loadflags & LR_DEFAULTSIZE) + { + if (!width) width = GetSystemMetrics( SM_CXCURSOR ); + if (!height) height = GetSystemMetrics( SM_CYCURSOR ); + } + else if (!width && !height) + { + /* use the first entry */ + if (!get_entry( dir, 0, &width, &height, &bits )) return -1; + return 0; + } /* Double height to account for AND and XOR masks */ @@ -530,22 +555,24 @@ } static const CURSORICONDIRENTRY *CURSORICON_FindBestIconRes( const CURSORICONDIR * dir, - int width, int height, int depth ) + int width, int height, int depth, + UINT loadflags ) { int n; n = CURSORICON_FindBestIcon( dir, CURSORICON_GetResIconEntry, - width, height, depth ); + width, height, depth, loadflags ); if ( n < 0 ) return NULL; return &dir->idEntries[n]; } static const CURSORICONDIRENTRY *CURSORICON_FindBestCursorRes( const CURSORICONDIR *dir, - int width, int height, int depth ) + int width, int height, int depth, + UINT loadflags ) { int n = CURSORICON_FindBestCursor( dir, CURSORICON_GetResCursorEntry, - width, height, depth ); + width, height, depth, loadflags ); if ( n < 0 ) return NULL; return &dir->idEntries[n]; @@ -570,20 +597,22 @@ } static const CURSORICONFILEDIRENTRY *CURSORICON_FindBestCursorFile( const CURSORICONFILEDIR *dir, - int width, int height, int depth ) -{ - int n = CURSORICON_FindBestCursor( (LPCVOID) dir, CURSORICON_GetFileEntry, - width, height, depth ); + int width, int height, int depth, + UINT loadflags ) +{ + int n = CURSORICON_FindBestCursor( dir, CURSORICON_GetFileEntry, + width, height, depth, loadflags ); if ( n < 0 ) return NULL; return &dir->idEntries[n]; } static const CURSORICONFILEDIRENTRY *CURSORICON_FindBestIconFile( const CURSORICONFILEDIR *dir, - int width, int height, int depth ) -{ - int n = CURSORICON_FindBestIcon((LPCVOID) dir, CURSORICON_GetFileEntry, - width, height, depth ); + int width, int height, int depth, + UINT loadflags ) +{ + int n = CURSORICON_FindBestIcon( dir, CURSORICON_GetFileEntry, + width, height, depth, loadflags ); if ( n < 0 ) return NULL; return &dir->idEntries[n]; @@ -778,8 +807,16 @@ return 0; } - if (!width) width = bmi->bmiHeader.biWidth; - if (!height) height = bmi->bmiHeader.biHeight/2; + if (cFlag & LR_DEFAULTSIZE) + { + if (!width) width = GetSystemMetrics( bIcon ? SM_CXICON : SM_CXCURSOR ); + if (!height) height = GetSystemMetrics( bIcon ? SM_CYICON : SM_CYCURSOR ); + } + else + { + if (!width) width = bmi->bmiHeader.biWidth; + if (!height) height = bmi->bmiHeader.biHeight/2; + } do_stretch = (bmi->bmiHeader.biHeight/2 != height) || (bmi->bmiHeader.biWidth != width); @@ -945,7 +982,7 @@ * \- CHUNK:icon */ static HCURSOR CURSORICON_CreateIconFromANI( const LPBYTE bits, DWORD bits_size, - INT width, INT height, INT depth ) + INT width, INT height, INT depth, UINT loadflags ) { struct cursoricon_object *info; ani_header header = {0}; @@ -1003,7 +1040,7 @@ const BITMAPINFO *bmi; entry = CURSORICON_FindBestIconFile((const CURSORICONFILEDIR *) icon_data, - width, height, depth ); + width, height, depth, loadflags ); bmi = (const BITMAPINFO *) (icon_data + entry->dwDIBOffset); info->hotspot.x = entry->xHotspot; @@ -1131,8 +1168,7 @@ /* Check for .ani. */ if (memcmp( bits, "RIFF", 4 ) == 0) { - hIcon = CURSORICON_CreateIconFromANI( bits, filesize, width, height, - depth ); + hIcon = CURSORICON_CreateIconFromANI( bits, filesize, width, height, depth, loadflags ); goto end; } @@ -1144,9 +1180,9 @@ goto end; if ( fCursor ) - entry = CURSORICON_FindBestCursorFile( dir, width, height, depth ); + entry = CURSORICON_FindBestCursorFile( dir, width, height, depth, loadflags ); else - entry = CURSORICON_FindBestIconFile( dir, width, height, depth ); + entry = CURSORICON_FindBestIconFile( dir, width, height, depth, loadflags ); if ( !entry ) goto end; @@ -1207,9 +1243,9 @@ if (!(handle = LoadResource( hInstance, hRsrc ))) return 0; if (!(dir = LockResource( handle ))) return 0; if (fCursor) - dirEntry = CURSORICON_FindBestCursorRes( dir, width, height, depth ); + dirEntry = CURSORICON_FindBestCursorRes( dir, width, height, depth, loadflags ); else - dirEntry = CURSORICON_FindBestIconRes( dir, width, height, depth ); + dirEntry = CURSORICON_FindBestIconRes( dir, width, height, depth, loadflags ); if (!dirEntry) return 0; wResId = dirEntry->wResId; FreeResource( handle ); @@ -1548,9 +1584,9 @@ ReleaseDC(0, hdc); if( bIcon ) - entry = CURSORICON_FindBestIconRes( dir, width, height, depth ); + entry = CURSORICON_FindBestIconRes( dir, width, height, depth, LR_DEFAULTSIZE ); else - entry = CURSORICON_FindBestCursorRes( dir, width, height, depth ); + entry = CURSORICON_FindBestCursorRes( dir, width, height, depth, LR_DEFAULTSIZE ); if( entry ) retVal = entry->wResId; } @@ -1563,9 +1599,7 @@ */ INT WINAPI LookupIconIdFromDirectory( LPBYTE dir, BOOL bIcon ) { - return LookupIconIdFromDirectoryEx( dir, bIcon, - bIcon ? GetSystemMetrics(SM_CXICON) : GetSystemMetrics(SM_CXCURSOR), - bIcon ? GetSystemMetrics(SM_CYICON) : GetSystemMetrics(SM_CYCURSOR), bIcon ? 0 : LR_MONOCHROME ); + return LookupIconIdFromDirectoryEx( dir, bIcon, 0, 0, bIcon ? 0 : LR_MONOCHROME ); } /*********************************************************************** @@ -2273,15 +2307,6 @@ TRACE_(resource)("(%p,%s,%d,%d,%d,0x%08x)\n", hinst,debugstr_w(name),type,desiredx,desiredy,loadflags); - if (loadflags & LR_DEFAULTSIZE) { - if (type == IMAGE_ICON) { - if (!desiredx) desiredx = GetSystemMetrics(SM_CXICON); - if (!desiredy) desiredy = GetSystemMetrics(SM_CYICON); - } else if (type == IMAGE_CURSOR) { - if (!desiredx) desiredx = GetSystemMetrics(SM_CXCURSOR); - if (!desiredy) desiredy = GetSystemMetrics(SM_CYCURSOR); - } - } if (loadflags & LR_LOADFROMFILE) loadflags &= ~LR_SHARED; switch (type) { case IMAGE_BITMAP: Modified: vendor/wine/dlls/user32/current/mdi.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/mdi.c?re…
============================================================================== --- vendor/wine/dlls/user32/current/mdi.c [iso-8859-1] (original) +++ vendor/wine/dlls/user32/current/mdi.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -866,7 +866,7 @@ if (!hIcon) hIcon = (HICON)SendMessageW(hChild, WM_GETICON, ICON_BIG, 0); if (!hIcon) - hIcon = LoadImageW(0, MAKEINTRESOURCEW(IDI_WINLOGO), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR); + hIcon = LoadImageW(0, MAKEINTRESOURCEW(IDI_WINLOGO), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR); if (hIcon) { HDC hMemDC; Modified: vendor/wine/dlls/user32/current/tests/clipboard.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/tests/cl…
============================================================================== --- vendor/wine/dlls/user32/current/tests/clipboard.c [iso-8859-1] (original) +++ vendor/wine/dlls/user32/current/tests/clipboard.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -216,6 +216,7 @@ HENHMETAFILE emf; BOOL r; UINT cf; + HANDLE data; htext = create_text(); emf = create_emf(); @@ -235,15 +236,21 @@ ok(r, "gle %d\n", GetLastError()); cf = EnumClipboardFormats(0); ok(cf == CF_TEXT, "cf %08x\n", cf); + data = GetClipboardData(cf); + ok(data != NULL, "couldn't get data, cf %08x\n", cf); cf = EnumClipboardFormats(cf); ok(cf == CF_ENHMETAFILE, "cf %08x\n", cf); + data = GetClipboardData(cf); + ok(data != NULL, "couldn't get data, cf %08x\n", cf); cf = EnumClipboardFormats(cf); todo_wine ok(cf == CF_LOCALE, "cf %08x\n", cf); if(cf == CF_LOCALE) cf = EnumClipboardFormats(cf); ok(cf == CF_OEMTEXT, "cf %08x\n", cf); + data = GetClipboardData(cf); + ok(data != NULL, "couldn't get data, cf %08x\n", cf); cf = EnumClipboardFormats(cf); ok(cf == CF_UNICODETEXT || @@ -253,6 +260,8 @@ if(cf == CF_UNICODETEXT) cf = EnumClipboardFormats(cf); ok(cf == CF_METAFILEPICT, "cf %08x\n", cf); + data = GetClipboardData(cf); + todo_wine ok(data != NULL, "couldn't get data, cf %08x\n", cf); cf = EnumClipboardFormats(cf); ok(cf == 0, "cf %08x\n", cf); Modified: vendor/wine/dlls/user32/current/tests/edit.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/tests/ed…
============================================================================== --- vendor/wine/dlls/user32/current/tests/edit.c [iso-8859-1] (original) +++ vendor/wine/dlls/user32/current/tests/edit.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -837,9 +837,14 @@ { HWND hWnd; HWND hParent; - int len; + HDC hDC; + int len, dpi; static const char *str = "this is a long string."; static const char *str2 = "this is a long string.\r\nthis is a long string.\r\nthis is a long string.\r\nthis is a long string."; + + hDC = GetDC(NULL); + dpi = GetDeviceCaps(hDC, LOGPIXELSY); + ReleaseDC(NULL, hDC); trace("EDIT: Test notifications\n"); @@ -947,7 +952,7 @@ "EDIT", NULL, ES_MULTILINE, - 10, 10, 50, 50, + 10, 10, (50 * dpi) / 96, (50 * dpi) / 96, hParent, NULL, NULL, NULL); assert(hWnd); @@ -992,7 +997,7 @@ "EDIT", NULL, ES_MULTILINE | ES_AUTOHSCROLL, - 10, 10, 50, 50, + 10, 10, (50 * dpi) / 96, (50 * dpi) / 96, hParent, NULL, NULL, NULL); assert(hWnd); @@ -1527,6 +1532,7 @@ ok(HIWORD(margins) == HIWORD(font_margins), "got %d\n", HIWORD(margins)); SendMessageA(hwEdit, EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(EC_USEFONTINFO,EC_USEFONTINFO)); + SendMessageA(hwEdit, WM_SETFONT, (WPARAM)hfont, 0); margins = SendMessage(hwEdit, EM_GETMARGINS, 0, 0); ok(LOWORD(margins) == LOWORD(font_margins), "got %d\n", LOWORD(margins)); ok(HIWORD(margins) == HIWORD(font_margins), "got %d\n", HIWORD(margins)); @@ -2212,9 +2218,15 @@ { HWND hwEdit; HFONT hfont; + HDC hDC; LOGFONT lf; LONG r; char szLocalString[MAXLEN]; + int dpi; + + hDC = GetDC(NULL); + dpi = GetDeviceCaps(hDC, LOGPIXELSY); + ReleaseDC(NULL, hDC); memset(&lf,0,sizeof(LOGFONTA)); strcpy(lf.lfFaceName,"Arial"); @@ -2224,7 +2236,8 @@ trace("EDIT: Oversized font (Multi line)\n"); hwEdit= CreateWindow("EDIT", NULL, ES_MULTILINE|ES_AUTOHSCROLL, - 0, 0, 150, 50, NULL, NULL, hinst, NULL); + 0, 0, (150 * dpi) / 96, (50 * dpi) / 96, NULL, NULL, + hinst, NULL); SendMessage(hwEdit,WM_SETFONT,(WPARAM)hfont,0); Modified: vendor/wine/dlls/winex11.drv/current/clipboard.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/cli…
============================================================================== --- vendor/wine/dlls/winex11.drv/current/clipboard.c [iso-8859-1] (original) +++ vendor/wine/dlls/winex11.drv/current/clipboard.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -86,10 +86,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(clipboard); /* Maximum wait time for selection notify */ -#define SELECTION_RETRIES 500 /* wait for .1 seconds */ +#define SELECTION_RETRIES 500 /* wait for .5 seconds */ #define SELECTION_WAIT 1000 /* us */ -/* Minimum seconds that must lapse between owner queries */ -#define OWNERQUERYLAPSETIME 1 /* Selection masks */ #define S_NOSELECTION 0 @@ -179,6 +177,7 @@ static BOOL X11DRV_CLIPBOARD_RenderSynthesizedFormat(Display *display, LPWINE_CLIPDATA lpData); static BOOL X11DRV_CLIPBOARD_RenderSynthesizedDIB(Display *display); static BOOL X11DRV_CLIPBOARD_RenderSynthesizedBitmap(Display *display); +static BOOL X11DRV_CLIPBOARD_RenderSynthesizedEnhMetaFile(Display *display); static void X11DRV_HandleSelectionRequest( HWND hWnd, XSelectionRequestEvent *event, BOOL bIsMultiple ); /* Clipboard formats @@ -887,12 +886,15 @@ break; case CF_ENHMETAFILE: + bret = X11DRV_CLIPBOARD_RenderSynthesizedEnhMetaFile( display ); + break; + case CF_METAFILEPICT: - FIXME("Synthesizing wFormatID(0x%08x) not implemented\n", wFormatID); + FIXME("Synthesizing CF_METAFILEPICT not implemented\n"); break; default: - FIXME("Called to synthesize unknown format\n"); + FIXME("Called to synthesize unknown format 0x%08x\n", wFormatID); break; } } @@ -1058,21 +1060,23 @@ if (lpSource->hData || X11DRV_CLIPBOARD_RenderFormat(display, lpSource)) { HDC hdc; - HBITMAP hData; + HBITMAP hData = NULL; unsigned int offset; LPBITMAPINFOHEADER lpbmih; hdc = GetDC(NULL); lpbmih = GlobalLock(lpSource->hData); - - offset = sizeof(BITMAPINFOHEADER) - + ((lpbmih->biBitCount <= 8) ? (sizeof(RGBQUAD) * - (1 << lpbmih->biBitCount)) : 0); - - hData = CreateDIBitmap(hdc, lpbmih, CBM_INIT, (LPBYTE)lpbmih + - offset, (LPBITMAPINFO) lpbmih, DIB_RGB_COLORS); - - GlobalUnlock(lpSource->hData); + if (lpbmih) + { + offset = sizeof(BITMAPINFOHEADER) + + ((lpbmih->biBitCount <= 8) ? (sizeof(RGBQUAD) * + (1 << lpbmih->biBitCount)) : 0); + + hData = CreateDIBitmap(hdc, lpbmih, CBM_INIT, (LPBYTE)lpbmih + + offset, (LPBITMAPINFO) lpbmih, DIB_RGB_COLORS); + + GlobalUnlock(lpSource->hData); + } ReleaseDC(NULL, hdc); if (hData) @@ -1084,6 +1088,53 @@ } return bret; +} + + +/************************************************************************** + * X11DRV_CLIPBOARD_RenderSynthesizedEnhMetaFile + */ +static BOOL X11DRV_CLIPBOARD_RenderSynthesizedEnhMetaFile(Display *display) +{ + LPWINE_CLIPDATA lpSource = NULL; + + TRACE("\n"); + + if ((lpSource = X11DRV_CLIPBOARD_LookupData(CF_ENHMETAFILE)) && lpSource->hData) + return TRUE; + /* If we have a MF pict and it's not synthesized or it has been rendered */ + else if ((lpSource = X11DRV_CLIPBOARD_LookupData(CF_METAFILEPICT)) && + (!(lpSource->wFlags & CF_FLAG_SYNTHESIZED) || lpSource->hData)) + { + /* Render source if required */ + if (lpSource->hData || X11DRV_CLIPBOARD_RenderFormat(display, lpSource)) + { + METAFILEPICT *pmfp; + HENHMETAFILE hData = NULL; + + pmfp = GlobalLock(lpSource->hData); + if (pmfp) + { + UINT size_mf_bits = GetMetaFileBitsEx(pmfp->hMF, 0, NULL); + void *mf_bits = HeapAlloc(GetProcessHeap(), 0, size_mf_bits); + if (mf_bits) + { + GetMetaFileBitsEx(pmfp->hMF, size_mf_bits, mf_bits); + hData = SetWinMetaFileBits(size_mf_bits, mf_bits, NULL, pmfp); + HeapFree(GetProcessHeap(), 0, mf_bits); + } + GlobalUnlock(lpSource->hData); + } + + if (hData) + { + X11DRV_CLIPBOARD_InsertClipboardData(CF_ENHMETAFILE, hData, 0, NULL, TRUE); + return TRUE; + } + } + } + + return FALSE; } @@ -1495,7 +1546,6 @@ *lpBytes = j; /* Number of bytes in string */ done: - HeapFree(GetProcessHeap(), 0, text); GlobalUnlock(lpData->hData); return lpstr; Modified: vendor/wine/dlls/winex11.drv/current/dib.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/dib…
============================================================================== --- vendor/wine/dlls/winex11.drv/current/dib.c [iso-8859-1] (original) +++ vendor/wine/dlls/winex11.drv/current/dib.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -4728,6 +4728,24 @@ } #endif /* HAVE_LIBXXSHM */ +static Bool X11DRV_DIB_QueryXShm( Bool *pixmaps ) +{ + static Bool have_xshm, have_xshm_pixmaps; + static BOOL initialized; + + if (!initialized) + { +#ifdef HAVE_LIBXXSHM + int major, minor; + + have_xshm = XShmQueryVersion( gdi_display, &major, &minor, &have_xshm_pixmaps ); +#endif + initialized = TRUE; + } + + *pixmaps = have_xshm_pixmaps; + return have_xshm; +} /*********************************************************************** * X11DRV_CreateDIBSection (X11DRV.@) @@ -4740,7 +4758,6 @@ WORD bpp, compr; LONG w, h; #ifdef HAVE_LIBXXSHM - int major, minor; Bool pixmaps; #endif @@ -4780,7 +4797,7 @@ #ifdef HAVE_LIBXXSHM physBitmap->shminfo.shmid = -1; - if (XShmQueryVersion( gdi_display, &major, &minor, &pixmaps ) + if (X11DRV_DIB_QueryXShm( &pixmaps ) && (physBitmap->image = X11DRV_XShmCreateImage( dib.dsBm.bmWidth, dib.dsBm.bmHeight, physBitmap->pixmap_depth, &physBitmap->shminfo ))) { Modified: vendor/wine/dlls/winex11.drv/current/window.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/win…
============================================================================== --- vendor/wine/dlls/winex11.drv/current/window.c [iso-8859-1] (original) +++ vendor/wine/dlls/winex11.drv/current/window.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -1605,7 +1605,7 @@ RECT dst_rect = *new_rect; HDC hdc_src, hdc_dst; INT code; - HRGN rgn = 0; + HRGN rgn; HWND parent = 0; if (!data->whole_window) @@ -1624,6 +1624,9 @@ hdc_src = hdc_dst = GetDCEx( data->hwnd, 0, DCX_CACHE ); } + rgn = CreateRectRgnIndirect( &dst_rect ); + SelectClipRgn( hdc_dst, rgn ); + DeleteObject( rgn ); ExcludeUpdateRgn( hdc_dst, data->hwnd ); code = X11DRV_START_EXPOSURES; @@ -1636,6 +1639,7 @@ dst_rect.right - dst_rect.left, dst_rect.bottom - dst_rect.top, hdc_src, src_rect.left, src_rect.top, SRCCOPY ); + rgn = 0; code = X11DRV_END_EXPOSURES; ExtEscape( hdc_dst, X11DRV_ESCAPE, sizeof(code), (LPSTR)&code, sizeof(rgn), (LPSTR)&rgn ); Modified: vendor/wine/dlls/winex11.drv/current/xrender.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/xre…
============================================================================== --- vendor/wine/dlls/winex11.drv/current/xrender.c [iso-8859-1] (original) +++ vendor/wine/dlls/winex11.drv/current/xrender.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -1066,7 +1066,11 @@ lfsz.lf.lfWidth = abs( lfsz.lf.lfWidth ); lfsz.devsize.cx = X11DRV_XWStoDS( physDev, lfsz.lf.lfWidth ); lfsz.devsize.cy = X11DRV_YWStoDS( physDev, lfsz.lf.lfHeight ); - GetWorldTransform( physDev->hdc, &lfsz.xform ); + + GetTransform( physDev->hdc, 0x204, &lfsz.xform ); + TRACE("font transform %f %f %f %f\n", lfsz.xform.eM11, lfsz.xform.eM12, + lfsz.xform.eM21, lfsz.xform.eM22); + /* Not used fields, would break hashing */ lfsz.xform.eDx = lfsz.xform.eDy = 0; Modified: vendor/wine/server/current/mapping.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/server/current/mapping.c?rev…
============================================================================== --- vendor/wine/server/current/mapping.c [iso-8859-1] (original) +++ vendor/wine/server/current/mapping.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -26,6 +26,9 @@ #include <stdio.h> #include <stdlib.h> #include <sys/stat.h> +#ifdef HAVE_SYS_MMAN_H +# include <sys/mman.h> +#endif #include <unistd.h> #include "ntstatus.h" @@ -161,13 +164,47 @@ return 0; } +/* check if the current directory allows exec mappings */ +static int check_current_dir_for_exec(void) +{ + int fd; + char tmpfn[] = "anonmap.XXXXXX"; + void *ret = MAP_FAILED; + + fd = mkstemps( tmpfn, 0 ); + if (fd == -1) return 0; + if (grow_file( fd, 1 )) + { + ret = mmap( NULL, get_page_size(), PROT_READ | PROT_EXEC, MAP_PRIVATE, fd, 0 ); + if (ret != MAP_FAILED) munmap( ret, get_page_size() ); + } + close( fd ); + unlink( tmpfn ); + return (ret != MAP_FAILED); +} + /* create a temp file for anonymous mappings */ static int create_temp_file( file_pos_t size ) { - char tmpfn[16]; + static int temp_dir_fd = -1; + char tmpfn[] = "anonmap.XXXXXX"; int fd; - sprintf( tmpfn, "anonmap.XXXXXX" ); /* create it in the server directory */ + if (temp_dir_fd == -1) + { + temp_dir_fd = server_dir_fd; + if (!check_current_dir_for_exec()) + { + /* the server dir is noexec, try the config dir instead */ + fchdir( config_dir_fd ); + if (check_current_dir_for_exec()) + temp_dir_fd = config_dir_fd; + else /* neither works, fall back to server dir */ + fchdir( server_dir_fd ); + } + } + else if (temp_dir_fd != server_dir_fd) fchdir( temp_dir_fd ); + fd = mkstemps( tmpfn, 0 ); if (fd != -1) { @@ -179,6 +216,8 @@ unlink( tmpfn ); } else file_set_error(); + + if (temp_dir_fd != server_dir_fd) fchdir( server_dir_fd ); return fd; } Modified: vendor/wine/server/current/registry.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/server/current/registry.c?re…
============================================================================== --- vendor/wine/server/current/registry.c [iso-8859-1] (original) +++ vendor/wine/server/current/registry.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -331,7 +331,9 @@ if (access & GENERIC_WRITE) access |= KEY_WRITE; if (access & GENERIC_EXECUTE) access |= KEY_EXECUTE; if (access & GENERIC_ALL) access |= KEY_ALL_ACCESS; - return access & ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL); + /* filter the WOW64 masks, as they aren't real access bits */ + return access & ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL | + KEY_WOW64_64KEY | KEY_WOW64_32KEY); } /* close the notification associated with a handle */ Modified: vendor/wine/server/current/sock.c URL:
http://svn.reactos.org/svn/reactos/vendor/wine/server/current/sock.c?rev=50…
============================================================================== --- vendor/wine/server/current/sock.c [iso-8859-1] (original) +++ vendor/wine/server/current/sock.c [iso-8859-1] Wed Feb 9 13:10:50 2011 @@ -388,18 +388,18 @@ if (sock->state & FD_CONNECT) { - /* connecting */ - if (event & POLLOUT) + if (event & (POLLERR|POLLHUP)) + { + /* we didn't get connected? */ + sock->state &= ~FD_CONNECT; + event &= ~POLLOUT; + error = sock_error( fd ); + } + else if (event & POLLOUT) { /* we got connected */ sock->state |= FD_WINE_CONNECTED|FD_READ|FD_WRITE; sock->state &= ~FD_CONNECT; - } - else if (event & (POLLERR|POLLHUP)) - { - /* we didn't get connected? */ - sock->state &= ~FD_CONNECT; - error = sock_error( fd ); } } else if (sock->state & FD_WINE_LISTENING)
13 years, 10 months
1
0
0
0
[akhaldi] 50630: [CMAKE] - Apply the proper definition to user32_wsprintf using target properties.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Wed Feb 9 12:09:21 2011 New Revision: 50630 URL:
http://svn.reactos.org/svn/reactos?rev=50630&view=rev
Log: [CMAKE] - Apply the proper definition to user32_wsprintf using target properties. Removed: branches/cmake-bringup/lib/sdk/crt/printf/CMakeLists.txt Modified: branches/cmake-bringup/lib/sdk/crt/CMakeLists.txt Modified: branches/cmake-bringup/lib/sdk/crt/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/sdk/crt/CMake…
============================================================================== --- branches/cmake-bringup/lib/sdk/crt/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/lib/sdk/crt/CMakeLists.txt [iso-8859-1] Wed Feb 9 12:09:21 2011 @@ -628,4 +628,16 @@ add_dependencies(msvcsup psdk buildno_header asm) endif() -add_subdirectory(printf) +add_library(user32_wsprintf + printf/streamout.c + printf/wstreamout.c + printf/wsprintfA.c + printf/wsprintfW.c + printf/wvsprintfA.c + printf/wvsprintfW.c + printf/wvsnprintfA.c + printf/wvsnprintfW.c + string/mbstowcs_nt.c + string/wcstombs_nt.c) + +set_property(TARGET user32_wsprintf PROPERTY COMPILE_DEFINITIONS _USER32_WSPRINTF) Removed: branches/cmake-bringup/lib/sdk/crt/printf/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/sdk/crt/print…
============================================================================== --- branches/cmake-bringup/lib/sdk/crt/printf/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/lib/sdk/crt/printf/CMakeLists.txt (removed) @@ -1,16 +1,0 @@ - -include_directories(.. ../include) - -add_definitions(-D_USER32_WSPRINTF) - -add_library(user32_wsprintf - streamout.c - wstreamout.c - wsprintfA.c - wsprintfW.c - wvsprintfA.c - wvsprintfW.c - wvsnprintfA.c - wvsnprintfW.c - ../string/mbstowcs_nt.c - ../string/wcstombs_nt.c)
13 years, 10 months
1
0
0
0
[tkreuzer] 50629: [CMAKE] Remove unneccessary EXTERNAL_OBJECT property
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Feb 9 11:16:40 2011 New Revision: 50629 URL:
http://svn.reactos.org/svn/reactos?rev=50629&view=rev
Log: [CMAKE] Remove unneccessary EXTERNAL_OBJECT property Modified: branches/cmake-bringup/dll/win32/crtdll/CMakeLists.txt Modified: branches/cmake-bringup/dll/win32/crtdll/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/crtdll/…
============================================================================== --- branches/cmake-bringup/dll/win32/crtdll/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/dll/win32/crtdll/CMakeLists.txt [iso-8859-1] Wed Feb 9 11:16:40 2011 @@ -17,10 +17,6 @@ crtdll.rc ${CMAKE_CURRENT_BINARY_DIR}/crtdll.def) -if(NOT MSVC) - set_source_files_properties(crtdll.def PROPERTIES EXTERNAL_OBJECT TRUE) -endif() - add_library(crtdll SHARED ${CMAKE_CURRENT_BINARY_DIR}/crtdll_precomp.h.gch ${SOURCE})
13 years, 10 months
1
0
0
0
[tkreuzer] 50628: [CMAKE] Ignore warnings about different section flags, when linking freeldr
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Feb 9 11:09:50 2011 New Revision: 50628 URL:
http://svn.reactos.org/svn/reactos?rev=50628&view=rev
Log: [CMAKE] Ignore warnings about different section flags, when linking freeldr Modified: branches/cmake-bringup/boot/freeldr/freeldr/CMakeLists.txt Modified: branches/cmake-bringup/boot/freeldr/freeldr/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/boot/freeldr/free…
============================================================================== --- branches/cmake-bringup/boot/freeldr/freeldr/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/boot/freeldr/freeldr/CMakeLists.txt [iso-8859-1] Wed Feb 9 11:09:50 2011 @@ -168,7 +168,7 @@ set_target_properties(freeldr PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lnk" SUFFIX ".sys") set_image_base(freeldr 0x8000) else() - set_target_properties(freeldr PROPERTIES LINK_FLAGS "/DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION" SUFFIX ".sys") + set_target_properties(freeldr PROPERTIES LINK_FLAGS "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION" SUFFIX ".sys") set_image_base(freeldr 0x10000) endif()
13 years, 10 months
1
0
0
0
[tkreuzer] 50627: [CMAKE] Link cryptdll to advapi32
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Feb 9 10:30:01 2011 New Revision: 50627 URL:
http://svn.reactos.org/svn/reactos?rev=50627&view=rev
Log: [CMAKE] Link cryptdll to advapi32 Modified: branches/cmake-bringup/dll/win32/cryptdll/CMakeLists.txt Modified: branches/cmake-bringup/dll/win32/cryptdll/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/cryptdl…
============================================================================== --- branches/cmake-bringup/dll/win32/cryptdll/CMakeLists.txt [iso-8859-1] (original) +++ branches/cmake-bringup/dll/win32/cryptdll/CMakeLists.txt [iso-8859-1] Wed Feb 9 10:30:01 2011 @@ -14,5 +14,5 @@ set_module_type(cryptdll win32dll) target_link_libraries(cryptdll wine) -add_importlibs(cryptdll msvcrt kernel32 ntdll) +add_importlibs(cryptdll advapi32 msvcrt kernel32 ntdll) add_cab_target(cryptdll 1)
13 years, 10 months
1
0
0
0
← Newer
1
...
28
29
30
31
32
33
34
35
36
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
Results per page:
10
25
50
100
200