winehq.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
2025
February
January
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
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
September 2017
----- 2025 -----
February 2025
January 2025
----- 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
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
2 participants
446 discussions
Start a n
N
ew thread
Nikolay Sivov : gdi32: Remove runtime check for FT_Set_Charmap().
by Alexandre Julliard
26 Sep '17
26 Sep '17
Module: wine Branch: master Commit: 2bd5f6e0577311ec642acad11cb31b891006f689 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=2bd5f6e0577311ec642acad11…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Tue Sep 26 10:13:46 2017 +0100 gdi32: Remove runtime check for FT_Set_Charmap(). Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/gdi32/freetype.c | 81 +++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 44 deletions(-) diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 13edef6..83ca6e2 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -159,7 +159,6 @@ MAKE_FUNCPTR(FT_Outline_Get_CBox); MAKE_FUNCPTR(FT_Outline_Transform); MAKE_FUNCPTR(FT_Outline_Translate); MAKE_FUNCPTR(FT_Render_Glyph); -MAKE_FUNCPTR(FT_Select_Charmap); MAKE_FUNCPTR(FT_Set_Charmap); MAKE_FUNCPTR(FT_Set_Pixel_Sizes); MAKE_FUNCPTR(FT_Vector_Length); @@ -4139,7 +4138,6 @@ static BOOL init_freetype(void) LOAD_FUNCPTR(FT_Outline_Transform) LOAD_FUNCPTR(FT_Outline_Translate) LOAD_FUNCPTR(FT_Render_Glyph) - LOAD_FUNCPTR(FT_Select_Charmap) LOAD_FUNCPTR(FT_Set_Charmap) LOAD_FUNCPTR(FT_Set_Pixel_Sizes) LOAD_FUNCPTR(FT_Vector_Length) @@ -5059,56 +5057,51 @@ static BOOL create_child_font_list(GdiFont *font) static BOOL select_charmap(FT_Face ft_face, FT_Encoding encoding) { FT_Error ft_err = FT_Err_Invalid_CharMap_Handle; + FT_CharMap cmap0, cmap1, cmap2, cmap3, cmap_def; + FT_Int i; - if (pFT_Set_Charmap) - { - FT_Int i; - FT_CharMap cmap0, cmap1, cmap2, cmap3, cmap_def; - - cmap0 = cmap1 = cmap2 = cmap3 = cmap_def = NULL; + cmap0 = cmap1 = cmap2 = cmap3 = cmap_def = NULL; - for (i = 0; i < ft_face->num_charmaps; i++) + for (i = 0; i < ft_face->num_charmaps; i++) + { + if (ft_face->charmaps[i]->encoding == encoding) { - if (ft_face->charmaps[i]->encoding == encoding) - { - TRACE("found cmap with platform_id %u, encoding_id %u\n", - ft_face->charmaps[i]->platform_id, ft_face->charmaps[i]->encoding_id); + TRACE("found cmap with platform_id %u, encoding_id %u\n", + ft_face->charmaps[i]->platform_id, ft_face->charmaps[i]->encoding_id); - switch (ft_face->charmaps[i]->platform_id) - { - default: - cmap_def = ft_face->charmaps[i]; - break; - case 0: /* Apple Unicode */ - cmap0 = ft_face->charmaps[i]; - break; - case 1: /* Macintosh */ - cmap1 = ft_face->charmaps[i]; - break; - case 2: /* ISO */ - cmap2 = ft_face->charmaps[i]; - break; - case 3: /* Microsoft */ - cmap3 = ft_face->charmaps[i]; - break; - } + switch (ft_face->charmaps[i]->platform_id) + { + default: + cmap_def = ft_face->charmaps[i]; + break; + case 0: /* Apple Unicode */ + cmap0 = ft_face->charmaps[i]; + break; + case 1: /* Macintosh */ + cmap1 = ft_face->charmaps[i]; + break; + case 2: /* ISO */ + cmap2 = ft_face->charmaps[i]; + break; + case 3: /* Microsoft */ + cmap3 = ft_face->charmaps[i]; + break; } - - if (cmap3) /* prefer Microsoft cmap table */ - ft_err = pFT_Set_Charmap(ft_face, cmap3); - else if (cmap1) - ft_err = pFT_Set_Charmap(ft_face, cmap1); - else if (cmap2) - ft_err = pFT_Set_Charmap(ft_face, cmap2); - else if (cmap0) - ft_err = pFT_Set_Charmap(ft_face, cmap0); - else if (cmap_def) - ft_err = pFT_Set_Charmap(ft_face, cmap_def); } - return ft_err == FT_Err_Ok; + + if (cmap3) /* prefer Microsoft cmap table */ + ft_err = pFT_Set_Charmap(ft_face, cmap3); + else if (cmap1) + ft_err = pFT_Set_Charmap(ft_face, cmap1); + else if (cmap2) + ft_err = pFT_Set_Charmap(ft_face, cmap2); + else if (cmap0) + ft_err = pFT_Set_Charmap(ft_face, cmap0); + else if (cmap_def) + ft_err = pFT_Set_Charmap(ft_face, cmap_def); } - return pFT_Select_Charmap(ft_face, encoding) == FT_Err_Ok; + return ft_err == FT_Err_Ok; }
1
0
0
0
Alistair Leslie-Hughes : msvcrt: Implement clearerr_s.
by Alexandre Julliard
26 Sep '17
26 Sep '17
Module: wine Branch: master Commit: fae0570a88d8859f67a1ad15ec3162a5bf5726a4 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=fae0570a88d8859f67a1ad15e…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Mon Sep 25 22:30:12 2017 +0000 msvcrt: Implement clearerr_s. Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- .../api-ms-win-crt-stdio-l1-1-0.spec | 2 +- dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr110/msvcr110.spec | 2 +- dlls/msvcr120/msvcr120.spec | 2 +- dlls/msvcr120_app/msvcr120_app.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/file.c | 15 +++++++++++++++ dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 2 +- include/msvcrt/stdio.h | 1 + 11 files changed, 25 insertions(+), 9 deletions(-) diff --git a/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec b/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec index 6c46519..98bb853 100644 --- a/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec +++ b/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec @@ -113,7 +113,7 @@ @ cdecl _wtmpnam(ptr) ucrtbase._wtmpnam @ cdecl _wtmpnam_s(ptr long) ucrtbase._wtmpnam_s @ cdecl clearerr(ptr) ucrtbase.clearerr -@ stub clearerr_s +@ cdecl clearerr_s(ptr) ucrtbase.clearerr_s @ cdecl fclose(ptr) ucrtbase.fclose @ cdecl feof(ptr) ucrtbase.feof @ cdecl ferror(ptr) ucrtbase.ferror diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 1c95da9..340a41a 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1647,7 +1647,7 @@ @ cdecl ceil(double) MSVCRT_ceil @ cdecl -arch=arm,x86_64,arm64 ceilf(float) MSVCRT_ceilf @ cdecl clearerr(ptr) MSVCRT_clearerr -@ stub clearerr_s +@ cdecl clearerr_s(ptr) MSVCRT_clearerr_s @ cdecl clock() MSVCRT_clock @ cdecl cos(double) MSVCRT_cos @ cdecl -arch=arm,x86_64,arm64 cosf(float) MSVCRT_cosf diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 86209ac..cc90e0c 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -2004,7 +2004,7 @@ @ cdecl ceil(double) MSVCRT_ceil @ cdecl -arch=arm,x86_64,arm64 ceilf(float) MSVCRT_ceilf @ cdecl clearerr(ptr) MSVCRT_clearerr -@ stub clearerr_s +@ cdecl clearerr_s(ptr) MSVCRT_clearerr_s @ cdecl clock() MSVCRT_clock @ cdecl cos(double) MSVCRT_cos @ cdecl -arch=arm,x86_64,arm64 cosf(float) MSVCRT_cosf diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index ad25b17..fabe0f8 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -2079,7 +2079,7 @@ @ stub cimagf @ stub cimagl @ cdecl clearerr(ptr) MSVCRT_clearerr -@ stub clearerr_s +@ cdecl clearerr_s(ptr) MSVCRT_clearerr_s @ cdecl clock() MSVCRT_clock @ stub clog @ stub clog10 diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index b37ab32..38c2707 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -1745,7 +1745,7 @@ @ stub cimagf @ stub cimagl @ cdecl clearerr(ptr) msvcr120.clearerr -@ stub clearerr_s +@ cdecl clearerr_s(ptr) msvcr120.clearerr_s @ cdecl clock() msvcr120.clock @ stub clog @ stub clog10 diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index a08748c..d0e9be0 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -1329,7 +1329,7 @@ @ cdecl ceil(double) MSVCRT_ceil @ cdecl -arch=arm,x86_64,arm64 ceilf(float) MSVCRT_ceilf @ cdecl clearerr(ptr) MSVCRT_clearerr -@ stub clearerr_s +@ cdecl clearerr_s(ptr) MSVCRT_clearerr_s @ cdecl clock() MSVCRT_clock @ cdecl cos(double) MSVCRT_cos @ cdecl -arch=arm,x86_64,arm64 cosf(float) MSVCRT_cosf diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 1604d62..c3a6d2e 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1302,7 +1302,7 @@ @ cdecl ceil(double) MSVCRT_ceil @ cdecl -arch=arm,x86_64,arm64 ceilf(float) MSVCRT_ceilf @ cdecl clearerr(ptr) MSVCRT_clearerr -@ stub clearerr_s +@ cdecl clearerr_s(ptr) MSVCRT_clearerr_s @ cdecl clock() MSVCRT_clock @ cdecl cos(double) MSVCRT_cos @ cdecl cosh(double) MSVCRT_cosh diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index 8af9bc2..2b43a20 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -1467,6 +1467,21 @@ void CDECL MSVCRT_clearerr(MSVCRT_FILE* file) } /********************************************************************* + * clearerr_s (MSVCRT.@) + */ +int CDECL MSVCRT_clearerr_s(MSVCRT_FILE* file) +{ + TRACE(":file (%p)\n",file); + + if (!MSVCRT_CHECK_PMT(file != NULL)) return MSVCRT_EINVAL; + + MSVCRT__lock_file(file); + file->_flag &= ~(MSVCRT__IOERR | MSVCRT__IOEOF); + MSVCRT__unlock_file(file); + return 0; +} + +/********************************************************************* * rewind (MSVCRT.@) */ void CDECL MSVCRT_rewind(MSVCRT_FILE* file) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 4e80308..e72fd7d 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -1264,7 +1264,7 @@ @ cdecl ceil(double) MSVCRT_ceil @ cdecl -arch=arm,x86_64,arm64 ceilf(float) MSVCRT_ceilf @ cdecl clearerr(ptr) MSVCRT_clearerr -# stub clearerr_s(ptr) +@ cdecl clearerr_s(ptr) MSVCRT_clearerr_s @ cdecl clock() MSVCRT_clock @ cdecl cos(double) MSVCRT_cos @ cdecl cosh(double) MSVCRT_cosh diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 9512a22..26b773c 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -2222,7 +2222,7 @@ @ stub cimagf @ stub cimagl @ cdecl clearerr(ptr) MSVCRT_clearerr -@ stub clearerr_s +@ cdecl clearerr_s(ptr) MSVCRT_clearerr_s @ cdecl clock() MSVCRT_clock @ stub clog @ stub clog10 diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h index 0606d07..31b0427 100644 --- a/include/msvcrt/stdio.h +++ b/include/msvcrt/stdio.h @@ -143,6 +143,7 @@ int __cdecl _putc_nolock(int,FILE*); int __cdecl _ungetc_nolock(int,FILE*); void __cdecl clearerr(FILE*); +errno_t __cdecl clearerr_s(FILE*); int __cdecl fclose(FILE*); int __cdecl feof(FILE*); int __cdecl ferror(FILE*);
1
0
0
0
Fabian Maurer : dx8vb: Add stub dll.
by Alexandre Julliard
26 Sep '17
26 Sep '17
Module: wine Branch: master Commit: b4456d0fa929aec25e275e1b5e1ca8a79742133d URL:
http://source.winehq.org/git/wine.git/?a=commit;h=b4456d0fa929aec25e275e1b5…
Author: Fabian Maurer <dark.shadow4(a)web.de> Date: Sun Sep 24 16:35:01 2017 +0200 dx8vb: Add stub dll. Signed-off-by: Fabian Maurer <dark.shadow4(a)web.de> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- configure | 2 + configure.ac | 1 + dlls/dx8vb/Makefile.in | 4 ++ dlls/dx8vb/dx8vb.spec | 139 +++++++++++++++++++++++++++++++++++++++++++++++++ dlls/dx8vb/main.c | 45 ++++++++++++++++ 5 files changed, 191 insertions(+) diff --git a/configure b/configure index fc981b6..425f15d 100755 --- a/configure +++ b/configure @@ -1199,6 +1199,7 @@ enable_dssenh enable_dswave enable_dwmapi enable_dwrite +enable_dx8vb enable_dxdiagn enable_dxgi enable_dxva2 @@ -18329,6 +18330,7 @@ wine_fn_config_test dlls/dswave/tests dswave_test wine_fn_config_dll dwmapi enable_dwmapi implib wine_fn_config_dll dwrite enable_dwrite implib wine_fn_config_test dlls/dwrite/tests dwrite_test +wine_fn_config_dll dx8vb enable_dx8vb wine_fn_config_dll dxdiagn enable_dxdiagn clean wine_fn_config_test dlls/dxdiagn/tests dxdiagn_test wine_fn_config_lib dxerr8 diff --git a/configure.ac b/configure.ac index faa7791..518e9d3 100644 --- a/configure.ac +++ b/configure.ac @@ -3112,6 +3112,7 @@ WINE_CONFIG_TEST(dlls/dswave/tests) WINE_CONFIG_DLL(dwmapi,,[implib]) WINE_CONFIG_DLL(dwrite,,[implib]) WINE_CONFIG_TEST(dlls/dwrite/tests) +WINE_CONFIG_DLL(dx8vb) WINE_CONFIG_DLL(dxdiagn,,[clean]) WINE_CONFIG_TEST(dlls/dxdiagn/tests) WINE_CONFIG_LIB(dxerr8) diff --git a/dlls/dx8vb/Makefile.in b/dlls/dx8vb/Makefile.in new file mode 100644 index 0000000..ce3237c --- /dev/null +++ b/dlls/dx8vb/Makefile.in @@ -0,0 +1,4 @@ +MODULE = dx8vb.dll + +C_SRCS = \ + main.c diff --git a/dlls/dx8vb/dx8vb.spec b/dlls/dx8vb/dx8vb.spec new file mode 100644 index 0000000..973d4b3 --- /dev/null +++ b/dlls/dx8vb/dx8vb.spec @@ -0,0 +1,139 @@ +@ stub VB_D3DXVec2Dot +@ stub VB_D3DXVec2CCW +@ stub VB_D3DXVec2Add +@ stub VB_D3DXVec2Subtract +@ stub VB_D3DXVec2Minimize +@ stub VB_D3DXVec2Maximize +@ stub VB_D3DXVec2Scale +@ stub VB_D3DXVec2Lerp +@ stub VB_D3DXVec2Normalize +@ stub VB_D3DXVec2Hermite +@ stub VB_D3DXVec2BaryCentric +@ stub VB_D3DXVec2Transform +@ stub VB_D3DXVec2TransformCoord +@ stub VB_D3DXVec2TransformNormal +@ stub VB_D3DXVec3Length +@ stub VB_D3DXVec3LengthSq +@ stub VB_D3DXVec3Dot +@ stub VB_D3DXVec3Cross +@ stub VB_D3DXVec3Add +@ stub VB_D3DXVec3Subtract +@ stub VB_D3DXVec3Minimize +@ stub VB_D3DXVec3Maximize +@ stub VB_D3DXVec3Scale +@ stub VB_D3DXVec3Lerp +@ stub VB_D3DXVec3Normalize +@ stub VB_D3DXVec3Hermite +@ stub VB_D3DXVec3BaryCentric +@ stub VB_D3DXVec3Transform +@ stub VB_D3DXVec3TransformCoord +@ stub VB_D3DXVec3TransformNormal +@ stub VB_D3DXVec4Length +@ stub VB_D3DXVec4LengthSq +@ stub VB_D3DXVec4Dot +@ stub VB_D3DXVec4Add +@ stub VB_D3DXVec4Subtract +@ stub VB_D3DXVec4Minimize +@ stub VB_D3DXVec4Maximize +@ stub VB_D3DXVec4Scale +@ stub VB_D3DXVec4Lerp +@ stub VB_D3DXVec4Cross +@ stub VB_D3DXVec4Normalize +@ stub VB_D3DXVec4Hermite +@ stub VB_D3DXVec4BaryCentric +@ stub VB_D3DXVec4Transform +@ stub VB_D3DXMatrixIdentity +@ stub VB_D3DXMatrixIsIdentity +@ stub VB_D3DXMatrixfDeterminant +@ stub VB_D3DXMatrixMultiply +@ stub VB_D3DXMatrixTranspose +@ stub VB_D3DXMatrixInverse +@ stub VB_D3DXMatrixScaling +@ stub VB_D3DXMatrixTranslation +@ stub VB_D3DXMatrixRotationX +@ stub VB_D3DXMatrixRotationY +@ stub VB_D3DXMatrixRotationZ +@ stub VB_D3DXMatrixRotationAxis +@ stub VB_D3DXMatrixRotationQuaternion +@ stub VB_D3DXMatrixRotationYawPitchRoll +@ stub VB_D3DXMatrixTransformation +@ stub VB_D3DXMatrixAffineTransformation +@ stub VB_D3DXMatrixLookAtRH +@ stub VB_D3DXMatrixLookAtLH +@ stub VB_D3DXMatrixPerspectiveRH +@ stub VB_D3DXMatrixPerspectiveLH +@ stub VB_D3DXMatrixPerspectiveFovRH +@ stub VB_D3DXMatrixPerspectiveFovLH +@ stub VB_D3DXMatrixPerspectiveOffCenterRH +@ stub VB_D3DXMatrixPerspectiveOffCenterLH +@ stub VB_D3DXMatrixOrthoRH +@ stub VB_D3DXMatrixOrthoLH +@ stub VB_D3DXMatrixOrthoOffCenterRH +@ stub VB_D3DXMatrixOrthoOffCenterLH +@ stub VB_D3DXMatrixShadow +@ stub VB_D3DXMatrixReflect +@ stub VB_D3DXQuaternionLength +@ stub VB_D3DXQuaternionLengthSq +@ stub VB_D3DXQuaternionIdentity +@ stub VB_D3DXQuaternionIsIdentity +@ stub VB_D3DXQuaternionConjugate +@ stub VB_D3DXQuaternionToAxisAngle +@ stub VB_D3DXQuaternionRotationMatrix +@ stub VB_D3DXQuaternionRotationAxis +@ stub VB_D3DXQuaternionRotationYawPitchRoll +@ stub VB_D3DXQuaternionMultiply +@ stub VB_D3DXQuaternionNormalize +@ stub VB_D3DXQuaternionInverse +@ stub VB_D3DXQuaternionLn +@ stub VB_D3DXQuaternionExp +@ stub VB_D3DXQuaternionSlerp +@ stub VB_D3DXQuaternionSquad +@ stub VB_D3DXQuaternionBaryCentric +@ stub VB_D3DXPlaneDot +@ stub VB_D3DXPlaneDotCoord +@ stub VB_D3DXPlaneDotNormal +@ stub VB_D3DXPlaneNormalize +@ stub VB_D3DXPlaneIntersectLine +@ stub VB_D3DXPlaneFromPointNormal +@ stub VB_D3DXPlaneFromPoints +@ stub VB_D3DXPlaneTransform +@ stub VB_D3DXColorNegative +@ stub VB_D3DXColorAdd +@ stub VB_D3DXColorSubtract +@ stub VB_D3DXColorScale +@ stub VB_D3DXColorModulate +@ stub VB_D3DXColorLerp +@ stub VB_D3DXColorAdjustSaturation +@ stub VB_D3DXColorAdjustContrast +@ stub VB_D3DXVec2Length +@ stub VB_D3DXVec2LengthSq +@ stub D3DVertexBuffer8SetData +@ stub D3DVertexBuffer8GetData +@ stub D3DIndexBuffer8SetData +@ stub D3DIndexBuffer8GetData +@ stub DXLockArray8 +@ stub DXUnlockArray8 +@ stub VB_NewBuffer +@ stub VB_AddDataToBuffer +@ stub VB_AddStringToBuffer +@ stub VB_GetDataFromBuffer +@ stub VB_GetStringFromBuffer +@ stub VB_D3DXVec2CatmullRom +@ stub VB_D3DXVec3CatmullRom +@ stub VB_D3DXVec4CatmullRom +@ stub VB_D3DXVec3Project +@ stub VB_D3DXVec3Unproject +@ stub VB_D3DColorRGBA +@ stub VB_D3DColorARGB +@ stub VB_D3DColorXRGB +@ stub VB_D3DColorMake +@ stub VB_D3DXQuaternionDot +@ stub D3DXMeshVertexBuffer8SetData +@ stub D3DXMeshVertexBuffer8GetData +@ stub D3DXMeshIndexBuffer8SetData +@ stub D3DXMeshIndexBuffer8GetData +@ stub DXCopyMemory +@ stub DllCanUnloadNow +@ stub DllGetClassObject +@ stub DllRegisterServer +@ stub DllUnregisterServer diff --git a/dlls/dx8vb/main.c b/dlls/dx8vb/main.c new file mode 100644 index 0000000..0b60e34 --- /dev/null +++ b/dlls/dx8vb/main.c @@ -0,0 +1,45 @@ +/* + * Copyright 2017 Fabian Maurer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <stdarg.h> +#include <string.h> + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winreg.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(dx8vb); + +BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) +{ + TRACE("(0x%p, %d, %p)\n", instance, reason, reserved); + + switch (reason) + { + case DLL_WINE_PREATTACH: + return FALSE; /* prefer native version */ + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(instance); + break; + } + + return TRUE; +}
1
0
0
0
Vincent Povirk : shell32: Add support for find data in IShellLink:GetPath.
by Alexandre Julliard
26 Sep '17
26 Sep '17
Module: wine Branch: master Commit: 8a46b9e5d198c7cf46508d9ab78f804861ee48e5 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=8a46b9e5d198c7cf46508d9ab…
Author: Vincent Povirk <vincent(a)codeweavers.com> Date: Mon Sep 25 15:35:23 2017 -0500 shell32: Add support for find data in IShellLink:GetPath. Signed-off-by: Vincent Povirk <vincent(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/shell32/shelllink.c | 66 ++++++++++++++++++++++++++++++++++++++++-- dlls/shell32/tests/shelllink.c | 33 +++++++++++++++++++++ 2 files changed, 97 insertions(+), 2 deletions(-) diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c index ba33477..40fab4d 100644 --- a/dlls/shell32/shelllink.c +++ b/dlls/shell32/shelllink.c @@ -1270,7 +1270,39 @@ static HRESULT WINAPI IShellLinkA_fnGetPath(IShellLinkA *iface, LPSTR pszFile, I else res = S_FALSE; - if (pfd) FIXME("(%p): WIN32_FIND_DATA is not yet filled.\n", This); + if (pfd) + { + memset(pfd, 0, sizeof(*pfd)); + + if (res == S_OK) + { + char path[MAX_PATH]; + WIN32_FILE_ATTRIBUTE_DATA fad; + + WideCharToMultiByte(CP_ACP, 0, This->sPath, -1, path, MAX_PATH, NULL, NULL); + + if (GetFileAttributesExW(This->sPath, GetFileExInfoStandard, &fad)) + { + pfd->dwFileAttributes = fad.dwFileAttributes; + pfd->ftCreationTime = fad.ftCreationTime; + pfd->ftLastAccessTime = fad.ftLastAccessTime; + pfd->ftLastWriteTime = fad.ftLastWriteTime; + pfd->nFileSizeHigh = fad.nFileSizeHigh; + pfd->nFileSizeLow = fad.nFileSizeLow; + } + + lstrcpyA(pfd->cFileName, PathFindFileNameA(path)); + + if (GetShortPathNameA(path, path, MAX_PATH)) + { + lstrcpyA(pfd->cAlternateFileName, PathFindFileNameA(path)); + } + } + + TRACE("attr 0x%08x size 0x%08x%08x name %s shortname %s\n", pfd->dwFileAttributes, + pfd->nFileSizeHigh, pfd->nFileSizeLow, wine_dbgstr_a(pfd->cFileName), + wine_dbgstr_a(pfd->cAlternateFileName)); + } return res; } @@ -1657,7 +1689,37 @@ static HRESULT WINAPI IShellLinkW_fnGetPath(IShellLinkW * iface, LPWSTR pszFile, else res = S_FALSE; - if (pfd) FIXME("(%p): WIN32_FIND_DATA is not yet filled.\n", This); + if (pfd) + { + memset(pfd, 0, sizeof(*pfd)); + + if (res == S_OK) + { + WCHAR path[MAX_PATH]; + WIN32_FILE_ATTRIBUTE_DATA fad; + + if (GetFileAttributesExW(This->sPath, GetFileExInfoStandard, &fad)) + { + pfd->dwFileAttributes = fad.dwFileAttributes; + pfd->ftCreationTime = fad.ftCreationTime; + pfd->ftLastAccessTime = fad.ftLastAccessTime; + pfd->ftLastWriteTime = fad.ftLastWriteTime; + pfd->nFileSizeHigh = fad.nFileSizeHigh; + pfd->nFileSizeLow = fad.nFileSizeLow; + } + + lstrcpyW(pfd->cFileName, PathFindFileNameW(This->sPath)); + + if (GetShortPathNameW(This->sPath, path, MAX_PATH)) + { + lstrcpyW(pfd->cAlternateFileName, PathFindFileNameW(path)); + } + } + + TRACE("attr 0x%08x size 0x%08x%08x name %s shortname %s\n", pfd->dwFileAttributes, + pfd->nFileSizeHigh, pfd->nFileSizeLow, wine_dbgstr_w(pfd->cFileName), + wine_dbgstr_w(pfd->cAlternateFileName)); + } return res; } diff --git a/dlls/shell32/tests/shelllink.c b/dlls/shell32/tests/shelllink.c index 461d92b..6f12fb2 100644 --- a/dlls/shell32/tests/shelllink.c +++ b/dlls/shell32/tests/shelllink.c @@ -105,6 +105,7 @@ static void test_get_set(void) IShellLinkW *slW = NULL; char mypath[MAX_PATH]; char buffer[INFOTIPSIZE]; + WIN32_FIND_DATAA finddata; LPITEMIDLIST pidl, tmp_pidl; const char * str; int i; @@ -160,6 +161,14 @@ static void test_get_set(void) ok(r == S_FALSE || broken(r == S_OK) /* NT4/W2K */, "GetPath failed (0x%08x)\n", r); ok(*buffer=='\0', "GetPath returned '%s'\n", buffer); + strcpy(buffer,"garbage"); + memset(&finddata, 0xaa, sizeof(finddata)); + r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), &finddata, SLGP_RAWPATH); + ok(r == S_FALSE || broken(r == S_OK) /* NT4/W2K */, "GetPath failed (0x%08x)\n", r); + ok(*buffer=='\0', "GetPath returned '%s'\n", buffer); + ok(finddata.dwFileAttributes == 0, "unexpected attributes %x\n", finddata.dwFileAttributes); + ok(finddata.cFileName[0] == 0, "unexpected filename '%s'\n", finddata.cFileName); + CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, &IID_IShellLinkW, (LPVOID*)&slW); if (!slW /* Win9x */ || !pGetLongPathNameA /* NT4 */) @@ -191,6 +200,14 @@ static void test_get_set(void) ok(r == S_OK, "GetPath failed (0x%08x)\n", r); ok(lstrcmpiA(buffer,str)==0, "GetPath returned '%s'\n", buffer); + strcpy(buffer,"garbage"); + memset(&finddata, 0xaa, sizeof(finddata)); + r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), &finddata, SLGP_RAWPATH); + ok(r == S_OK, "GetPath failed (0x%08x)\n", r); + ok(lstrcmpiA(buffer,str)==0, "GetPath returned '%s'\n", buffer); + ok(finddata.dwFileAttributes == 0, "unexpected attributes %x\n", finddata.dwFileAttributes); + ok(lstrcmpiA(finddata.cFileName, "file") == 0, "unexpected filename '%s'\n", finddata.cFileName); + /* Get some real path to play with */ GetWindowsDirectoryA( mypath, sizeof(mypath)-12 ); strcat(mypath, "\\regedit.exe"); @@ -241,6 +258,14 @@ static void test_get_set(void) r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), NULL, SLGP_RAWPATH); ok(r == S_OK, "GetPath failed (0x%08x)\n", r); ok(lstrcmpiA(buffer, mypath)==0, "GetPath returned '%s'\n", buffer); + + strcpy(buffer,"garbage"); + memset(&finddata, 0xaa, sizeof(finddata)); + r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), &finddata, SLGP_RAWPATH); + ok(r == S_OK, "GetPath failed (0x%08x)\n", r); + ok(lstrcmpiA(buffer, mypath)==0, "GetPath returned '%s'\n", buffer); + ok(finddata.dwFileAttributes != 0, "unexpected attributes %x\n", finddata.dwFileAttributes); + ok(lstrcmpiA(finddata.cFileName, "regedit.exe") == 0, "unexpected filename '%s'\n", finddata.cFileName); } if (pSHGetFolderLocation) @@ -258,6 +283,14 @@ static void test_get_set(void) ok(r == S_FALSE, "GetPath failed (0x%08x)\n", r); ok(buffer[0] == 0, "GetPath returned '%s'\n", buffer); + strcpy(buffer,"garbage"); + memset(&finddata, 0xaa, sizeof(finddata)); + r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), &finddata, SLGP_RAWPATH); + ok(r == S_FALSE, "GetPath failed (0x%08x)\n", r); + ok(buffer[0] == 0, "GetPath returned '%s'\n", buffer); + ok(finddata.dwFileAttributes == 0, "unexpected attributes %x\n", finddata.dwFileAttributes); + ok(finddata.cFileName[0] == 0, "unexpected filename '%s'\n", finddata.cFileName); + pILFree(pidl_controls); }
1
0
0
0
Vincent Povirk : shell32/tests: Setting a PIDL with no path resets the path.
by Alexandre Julliard
26 Sep '17
26 Sep '17
Module: wine Branch: master Commit: aa37e696cb7868382d94c14b8f4dd53ef39b94fa URL:
http://source.winehq.org/git/wine.git/?a=commit;h=aa37e696cb7868382d94c14b8…
Author: Vincent Povirk <vincent(a)codeweavers.com> Date: Mon Sep 25 15:35:22 2017 -0500 shell32/tests: Setting a PIDL with no path resets the path. Signed-off-by: Vincent Povirk <vincent(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/shell32/tests/shelllink.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/dlls/shell32/tests/shelllink.c b/dlls/shell32/tests/shelllink.c index 7326516..461d92b 100644 --- a/dlls/shell32/tests/shelllink.c +++ b/dlls/shell32/tests/shelllink.c @@ -39,6 +39,7 @@ static void (WINAPI *pILFree)(LPITEMIDLIST); static BOOL (WINAPI *pILIsEqual)(LPCITEMIDLIST, LPCITEMIDLIST); static HRESULT (WINAPI *pSHILCreateFromPath)(LPCWSTR, LPITEMIDLIST *,DWORD*); +static HRESULT (WINAPI *pSHGetFolderLocation)(HWND,INT,HANDLE,DWORD,PIDLIST_ABSOLUTE*); static HRESULT (WINAPI *pSHDefExtractIconA)(LPCSTR, int, UINT, HICON*, HICON*, UINT); static HRESULT (WINAPI *pSHGetStockIconInfo)(SHSTOCKICONID, UINT, SHSTOCKICONINFO *); static DWORD (WINAPI *pGetLongPathNameA)(LPCSTR, LPSTR, DWORD); @@ -242,6 +243,24 @@ static void test_get_set(void) ok(lstrcmpiA(buffer, mypath)==0, "GetPath returned '%s'\n", buffer); } + if (pSHGetFolderLocation) + { + LPITEMIDLIST pidl_controls; + + r = pSHGetFolderLocation(NULL, CSIDL_CONTROLS, NULL, 0, &pidl_controls); + ok(r == S_OK, "SHGetFolderLocation failed (0x%08x)\n", r); + + r = IShellLinkA_SetIDList(sl, pidl_controls); + ok(r == S_OK, "SetIDList failed (0x%08x)\n", r); + + strcpy(buffer,"garbage"); + r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), NULL, SLGP_RAWPATH); + ok(r == S_FALSE, "GetPath failed (0x%08x)\n", r); + ok(buffer[0] == 0, "GetPath returned '%s'\n", buffer); + + pILFree(pidl_controls); + } + /* test path with quotes (IShellLinkA_SetPath returns S_FALSE on W2K and below and S_OK on XP and above */ r = IShellLinkA_SetPath(sl, "\"c:\\nonexistent\\file\""); ok(r==S_FALSE || r == S_OK, "SetPath failed (0x%08x)\n", r); @@ -1407,6 +1426,7 @@ START_TEST(shelllink) pILFree = (void *)GetProcAddress(hmod, (LPSTR)155); pILIsEqual = (void *)GetProcAddress(hmod, (LPSTR)21); pSHILCreateFromPath = (void *)GetProcAddress(hmod, (LPSTR)28); + pSHGetFolderLocation = (void *)GetProcAddress(hmod, "SHGetFolderLocation"); pSHDefExtractIconA = (void *)GetProcAddress(hmod, "SHDefExtractIconA"); pSHGetStockIconInfo = (void *)GetProcAddress(hmod, "SHGetStockIconInfo"); pGetLongPathNameA = (void *)GetProcAddress(hkernel32, "GetLongPathNameA");
1
0
0
0
Vincent Povirk : shell32: Set shelllink path when setting pidl.
by Alexandre Julliard
26 Sep '17
26 Sep '17
Module: wine Branch: master Commit: 3615db9a005517a32ccbfcf3f296d298135c9ba2 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=3615db9a005517a32ccbfcf3f…
Author: Vincent Povirk <vincent(a)codeweavers.com> Date: Mon Sep 25 15:35:21 2017 -0500 shell32: Set shelllink path when setting pidl. Signed-off-by: Vincent Povirk <vincent(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/shell32/shelllink.c | 13 +++++++++++++ dlls/shell32/tests/shelllink.c | 1 - 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c index 81d76d9..ba33477 100644 --- a/dlls/shell32/shelllink.c +++ b/dlls/shell32/shelllink.c @@ -1680,6 +1680,7 @@ static HRESULT WINAPI IShellLinkW_fnGetIDList(IShellLinkW * iface, LPITEMIDLIST static HRESULT WINAPI IShellLinkW_fnSetIDList(IShellLinkW * iface, LPCITEMIDLIST pidl) { IShellLinkImpl *This = impl_from_IShellLinkW(iface); + WCHAR path[MAX_PATH]; TRACE("(%p)->(pidl=%p)\n",This, pidl); @@ -1689,6 +1690,18 @@ static HRESULT WINAPI IShellLinkW_fnSetIDList(IShellLinkW * iface, LPCITEMIDLIST if( !This->pPidl ) return E_FAIL; + HeapFree( GetProcessHeap(), 0, This->sPath ); + This->sPath = NULL; + + if ( SHGetPathFromIDListW( pidl, path ) ) + { + This->sPath = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(path)+1)*sizeof(WCHAR)); + if (!This->sPath) + return E_OUTOFMEMORY; + + lstrcpyW(This->sPath, path); + } + This->bDirty = TRUE; return S_OK; diff --git a/dlls/shell32/tests/shelllink.c b/dlls/shell32/tests/shelllink.c index ba73e94..7326516 100644 --- a/dlls/shell32/tests/shelllink.c +++ b/dlls/shell32/tests/shelllink.c @@ -239,7 +239,6 @@ static void test_get_set(void) strcpy(buffer,"garbage"); r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), NULL, SLGP_RAWPATH); ok(r == S_OK, "GetPath failed (0x%08x)\n", r); - todo_wine ok(lstrcmpiA(buffer, mypath)==0, "GetPath returned '%s'\n", buffer); }
1
0
0
0
Vincent Povirk : shell32: IShellLink::GetPath returns S_FALSE if there' s no path.
by Alexandre Julliard
26 Sep '17
26 Sep '17
Module: wine Branch: master Commit: 94378704f821c13a8a4452fe0ec5daf74c5d022a URL:
http://source.winehq.org/git/wine.git/?a=commit;h=94378704f821c13a8a4452fe0…
Author: Vincent Povirk <vincent(a)codeweavers.com> Date: Mon Sep 25 15:35:20 2017 -0500 shell32: IShellLink::GetPath returns S_FALSE if there's no path. Signed-off-by: Vincent Povirk <vincent(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/shell32/shelllink.c | 12 +++++++++--- dlls/shell32/tests/shelllink.c | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c index 3ac6364..81d76d9 100644 --- a/dlls/shell32/shelllink.c +++ b/dlls/shell32/shelllink.c @@ -1254,6 +1254,7 @@ static HRESULT WINAPI IShellLinkA_fnGetPath(IShellLinkA *iface, LPSTR pszFile, I WIN32_FIND_DATAA *pfd, DWORD fFlags) { IShellLinkImpl *This = impl_from_IShellLinkA(iface); + HRESULT res = S_OK; TRACE("(%p)->(pfile=%p len=%u find_data=%p flags=%u)(%s)\n", This, pszFile, cchMaxPath, pfd, fFlags, debugstr_w(This->sPath)); @@ -1263,13 +1264,15 @@ static HRESULT WINAPI IShellLinkA_fnGetPath(IShellLinkA *iface, LPSTR pszFile, I if (cchMaxPath) pszFile[0] = 0; - if (This->sPath) + if (This->sPath && This->sPath[0]) WideCharToMultiByte( CP_ACP, 0, This->sPath, -1, pszFile, cchMaxPath, NULL, NULL); + else + res = S_FALSE; if (pfd) FIXME("(%p): WIN32_FIND_DATA is not yet filled.\n", This); - return S_OK; + return res; } static HRESULT WINAPI IShellLinkA_fnGetIDList(IShellLinkA *iface, LPITEMIDLIST *ppidl) @@ -1639,6 +1642,7 @@ static ULONG WINAPI IShellLinkW_fnRelease(IShellLinkW * iface) static HRESULT WINAPI IShellLinkW_fnGetPath(IShellLinkW * iface, LPWSTR pszFile,INT cchMaxPath, WIN32_FIND_DATAW *pfd, DWORD fFlags) { IShellLinkImpl *This = impl_from_IShellLinkW(iface); + HRESULT res = S_OK; TRACE("(%p)->(pfile=%p len=%u find_data=%p flags=%u)(%s)\n", This, pszFile, cchMaxPath, pfd, fFlags, debugstr_w(This->sPath)); @@ -1650,10 +1654,12 @@ static HRESULT WINAPI IShellLinkW_fnGetPath(IShellLinkW * iface, LPWSTR pszFile, pszFile[0] = 0; if (This->sPath) lstrcpynW( pszFile, This->sPath, cchMaxPath ); + else + res = S_FALSE; if (pfd) FIXME("(%p): WIN32_FIND_DATA is not yet filled.\n", This); - return S_OK; + return res; } static HRESULT WINAPI IShellLinkW_fnGetIDList(IShellLinkW * iface, LPITEMIDLIST * ppidl) diff --git a/dlls/shell32/tests/shelllink.c b/dlls/shell32/tests/shelllink.c index ad254c8..ba73e94 100644 --- a/dlls/shell32/tests/shelllink.c +++ b/dlls/shell32/tests/shelllink.c @@ -156,7 +156,7 @@ static void test_get_set(void) /* Test Getting / Setting the path */ strcpy(buffer,"garbage"); r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), NULL, SLGP_RAWPATH); - todo_wine ok(r == S_FALSE || broken(r == S_OK) /* NT4/W2K */, "GetPath failed (0x%08x)\n", r); + ok(r == S_FALSE || broken(r == S_OK) /* NT4/W2K */, "GetPath failed (0x%08x)\n", r); ok(*buffer=='\0', "GetPath returned '%s'\n", buffer); CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, @@ -177,7 +177,7 @@ static void test_get_set(void) strcpy(buffer,"garbage"); r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), NULL, SLGP_RAWPATH); - todo_wine ok(r == S_FALSE, "GetPath failed (0x%08x)\n", r); + ok(r == S_FALSE, "GetPath failed (0x%08x)\n", r); ok(*buffer=='\0', "GetPath returned '%s'\n", buffer); /* Win98 returns S_FALSE, but WinXP returns S_OK */
1
0
0
0
Vincent Povirk : shell32: Support SFGAO_LINK in unix shell namespace.
by Alexandre Julliard
26 Sep '17
26 Sep '17
Module: wine Branch: master Commit: a796bcaa7fe22a6ce777ad3573121dc75cf37f23 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a796bcaa7fe22a6ce777ad357…
Author: Vincent Povirk <vincent(a)codeweavers.com> Date: Mon Sep 25 15:35:19 2017 -0500 shell32: Support SFGAO_LINK in unix shell namespace. Signed-off-by: Vincent Povirk <vincent(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/shell32/shfldr_unixfs.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dlls/shell32/shfldr_unixfs.c b/dlls/shell32/shfldr_unixfs.c index 709e822..e74e4db 100644 --- a/dlls/shell32/shfldr_unixfs.c +++ b/dlls/shell32/shfldr_unixfs.c @@ -1140,7 +1140,7 @@ static HRESULT WINAPI ShellFolder2_GetAttributesOf(IShellFolder2* iface, UINT ci UINT i; *attrs = SFGAO_CANCOPY | SFGAO_CANMOVE | SFGAO_CANLINK | SFGAO_CANRENAME | SFGAO_CANDELETE | - SFGAO_HASPROPSHEET | SFGAO_DROPTARGET | SFGAO_FILESYSTEM; + SFGAO_HASPROPSHEET | SFGAO_DROPTARGET | SFGAO_FILESYSTEM | SFGAO_LINK; lstrcpyA(szAbsolutePath, This->m_pszPath); pszRelativePath = szAbsolutePath + lstrlenA(szAbsolutePath); for (i=0; i<cidl; i++) { @@ -1158,6 +1158,13 @@ static HRESULT WINAPI ShellFolder2_GetAttributesOf(IShellFolder2* iface, UINT ci SFGAO_STORAGEANCESTOR | SFGAO_STORAGE; else *attrs |= SFGAO_STREAM; + if ((*attrs & SFGAO_LINK)) + { + char ext[MAX_PATH]; + + if (!_ILGetExtension(apidl[i], ext, MAX_PATH) || lstrcmpiA(ext, "lnk")) + *attrs &= ~SFGAO_LINK; + } } }
1
0
0
0
Nikolay Sivov : shell32: Use regular helper to trace IID, downgrade QI failures to warnings.
by Alexandre Julliard
25 Sep '17
25 Sep '17
Module: wine Branch: master Commit: 709db66f8dd2ab1d937fd3196c7314d1b9bcd357 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=709db66f8dd2ab1d937fd3196…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Sun Sep 24 20:38:44 2017 +0300 shell32: Use regular helper to trace IID, downgrade QI failures to warnings. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/shell32/shelldispatch.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/dlls/shell32/shelldispatch.c b/dlls/shell32/shelldispatch.c index da3031b..8742cb3 100644 --- a/dlls/shell32/shelldispatch.c +++ b/dlls/shell32/shelldispatch.c @@ -195,9 +195,7 @@ static HRESULT WINAPI FolderItemVerbImpl_QueryInterface(FolderItemVerb *iface, { FolderItemVerbImpl *This = impl_from_FolderItemVerb(iface); - TRACE("(%p,%s,%p)\n", iface, shdebugstr_guid(riid), ppv); - - *ppv = NULL; + TRACE("(%p,%s,%p)\n", iface, debugstr_guid(riid), ppv); if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IDispatch, riid) || @@ -205,7 +203,7 @@ static HRESULT WINAPI FolderItemVerbImpl_QueryInterface(FolderItemVerb *iface, *ppv = &This->FolderItemVerb_iface; else { - FIXME("not implemented for %s\n", shdebugstr_guid(riid)); + WARN("not implemented for %s\n", debugstr_guid(riid)); *ppv = NULL; return E_NOINTERFACE; } @@ -367,9 +365,7 @@ static HRESULT WINAPI FolderItemVerbsImpl_QueryInterface(FolderItemVerbs *iface, { FolderItemVerbsImpl *This = impl_from_FolderItemVerbs(iface); - TRACE("(%p,%s,%p)\n", iface, shdebugstr_guid(riid), ppv); - - *ppv = NULL; + TRACE("(%p,%s,%p)\n", iface, debugstr_guid(riid), ppv); if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IDispatch, riid) || @@ -377,7 +373,7 @@ static HRESULT WINAPI FolderItemVerbsImpl_QueryInterface(FolderItemVerbs *iface, *ppv = &This->FolderItemVerbs_iface; else { - FIXME("not implemented for %s\n", shdebugstr_guid(riid)); + WARN("not implemented for %s\n", debugstr_guid(riid)); *ppv = NULL; return E_NOINTERFACE; } @@ -623,7 +619,7 @@ static HRESULT WINAPI FolderItemImpl_QueryInterface(FolderItem2 *iface, { FolderItemImpl *This = impl_from_FolderItem(iface); - TRACE("(%p,%s,%p)\n", iface, shdebugstr_guid(riid), ppv); + TRACE("(%p,%s,%p)\n", iface, debugstr_guid(riid), ppv); if (!ppv) return E_INVALIDARG; @@ -634,7 +630,7 @@ static HRESULT WINAPI FolderItemImpl_QueryInterface(FolderItem2 *iface, *ppv = &This->FolderItem2_iface; else { - FIXME("not implemented for %s\n", shdebugstr_guid(riid)); + WARN("not implemented for %s\n", debugstr_guid(riid)); *ppv = NULL; return E_NOINTERFACE; } @@ -985,7 +981,7 @@ static HRESULT WINAPI FolderItemsImpl_QueryInterface(FolderItems3 *iface, { FolderItemsImpl *This = impl_from_FolderItems(iface); - TRACE("(%p,%s,%p)\n", iface, shdebugstr_guid(riid), ppv); + TRACE("(%p,%s,%p)\n", iface, debugstr_guid(riid), ppv); if (!ppv) return E_INVALIDARG; @@ -997,7 +993,7 @@ static HRESULT WINAPI FolderItemsImpl_QueryInterface(FolderItems3 *iface, *ppv = &This->FolderItems3_iface; else { - FIXME("not implemented for %s\n", shdebugstr_guid(riid)); + WARN("not implemented for %s\n", debugstr_guid(riid)); *ppv = NULL; return E_NOINTERFACE; } @@ -1314,7 +1310,7 @@ static HRESULT WINAPI FolderImpl_QueryInterface(Folder3 *iface, REFIID riid, { FolderImpl *This = impl_from_Folder(iface); - TRACE("(%p,%s,%p)\n", iface, shdebugstr_guid(riid), ppv); + TRACE("(%p,%s,%p)\n", iface, debugstr_guid(riid), ppv); if (!ppv) return E_INVALIDARG; @@ -1326,7 +1322,7 @@ static HRESULT WINAPI FolderImpl_QueryInterface(Folder3 *iface, REFIID riid, *ppv = &This->Folder3_iface; else { - FIXME("not implemented for %s\n", shdebugstr_guid(riid)); + WARN("not implemented for %s\n", debugstr_guid(riid)); *ppv = NULL; return E_NOINTERFACE; } @@ -1668,7 +1664,7 @@ static HRESULT WINAPI ShellDispatch_QueryInterface(IShellDispatch6 *iface, { ShellDispatch *This = impl_from_IShellDispatch6(iface); - TRACE("(%p,%s,%p)\n", iface, shdebugstr_guid(riid), ppv); + TRACE("(%p,%s,%p)\n", iface, debugstr_guid(riid), ppv); if (!ppv) return E_INVALIDARG; @@ -1683,7 +1679,7 @@ static HRESULT WINAPI ShellDispatch_QueryInterface(IShellDispatch6 *iface, *ppv = &This->IShellDispatch6_iface; else { - FIXME("not implemented for %s\n", shdebugstr_guid(riid)); + WARN("not implemented for %s\n", debugstr_guid(riid)); *ppv = NULL; return E_NOINTERFACE; }
1
0
0
0
Fabian Maurer : shell32/tests: Fix typo.
by Alexandre Julliard
25 Sep '17
25 Sep '17
Module: wine Branch: master Commit: 4ef3ffd69da9374876f08cdcb0e61ebba0f2bd97 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=4ef3ffd69da9374876f08cdcb…
Author: Fabian Maurer <dark.shadow4(a)web.de> Date: Mon Sep 25 20:34:12 2017 +0200 shell32/tests: Fix typo. Signed-off-by: Fabian Maurer <dark.shadow4(a)web.de> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/shell32/tests/shelldispatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/shell32/tests/shelldispatch.c b/dlls/shell32/tests/shelldispatch.c index 21cb6bb..7b5afa0 100644 --- a/dlls/shell32/tests/shelldispatch.c +++ b/dlls/shell32/tests/shelldispatch.c @@ -1032,7 +1032,7 @@ todo_wine { ok(hr == S_OK || broken(hr == S_FALSE), "got 0x%08x\n", hr); if (hr == S_FALSE) /* winxp and earlier */ { win_skip("SWC_DESKTOP is not supported, some tests will be skipped.\n"); - /* older versions allowed to regiser SWC_DESKTOP and access it with FindWindowSW */ + /* older versions allowed to register SWC_DESKTOP and access it with FindWindowSW */ ok(disp == NULL, "got %p\n", disp); ok(ret == 0, "got %d\n", ret); }
1
0
0
0
← Newer
1
...
7
8
9
10
11
12
13
...
45
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Results per page:
10
25
50
100
200