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
March 2018
----- 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
25 participants
436 discussions
Start a n
N
ew thread
03/03: [GDIPLUS_WINETEST] Re-enable test_font_substitution. ROSTESTS-154
by Mark Jansen
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=25cacdedb7bee26dd5432…
commit 25cacdedb7bee26dd5432ea1ef9daee8baf6cb8a Author: Mark Jansen <mark.jansen(a)reactos.org> AuthorDate: Thu Mar 15 20:15:48 2018 +0100 Commit: Mark Jansen <mark.jansen(a)reactos.org> CommitDate: Thu Mar 15 20:16:04 2018 +0100 [GDIPLUS_WINETEST] Re-enable test_font_substitution. ROSTESTS-154 --- modules/rostests/winetests/gdiplus/font.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/modules/rostests/winetests/gdiplus/font.c b/modules/rostests/winetests/gdiplus/font.c index 6d1933e2f0..961d8459cb 100644 --- a/modules/rostests/winetests/gdiplus/font.c +++ b/modules/rostests/winetests/gdiplus/font.c @@ -1259,10 +1259,7 @@ START_TEST(font) test_long_name(); test_font_transform(); - if (!winetest_interactive) - skip("ROSTESTS-154: Skipping test_font_substitution because of improper error handling\n"); - else - test_font_substitution(); + test_font_substitution(); test_font_metrics(); test_createfont(); test_logfont();
6 years, 9 months
1
0
0
0
02/03: [WIN32K] Do not try to compare a long name against a truncated name. This fixes gdiplus_winetest:font crashing. ROSTESTS-154
by Mark Jansen
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=428e4617e94e6cca8379c…
commit 428e4617e94e6cca8379c853a8cdea8f9b487dbf Author: Mark Jansen <mark.jansen(a)reactos.org> AuthorDate: Thu Mar 15 19:11:43 2018 +0100 Commit: Mark Jansen <mark.jansen(a)reactos.org> CommitDate: Thu Mar 15 20:16:04 2018 +0100 [WIN32K] Do not try to compare a long name against a truncated name. This fixes gdiplus_winetest:font crashing. ROSTESTS-154 --- win32ss/gdi/ntgdi/freetype.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/win32ss/gdi/ntgdi/freetype.c b/win32ss/gdi/ntgdi/freetype.c index d94af290a1..92ab8b4461 100644 --- a/win32ss/gdi/ntgdi/freetype.c +++ b/win32ss/gdi/ntgdi/freetype.c @@ -2522,8 +2522,8 @@ GetFontFamilyInfoForList(LPLOGFONTW LogFont, FontFamilyFillInfo(&InfoEntry, NULL, NULL, FontGDI); - if (_wcsicmp(LogFont->lfFaceName, InfoEntry.EnumLogFontEx.elfLogFont.lfFaceName) != 0 && - _wcsicmp(LogFont->lfFaceName, InfoEntry.EnumLogFontEx.elfFullName) != 0) + if (_wcsnicmp(LogFont->lfFaceName, InfoEntry.EnumLogFontEx.elfLogFont.lfFaceName, RTL_NUMBER_OF(LogFont->lfFaceName)-1) != 0 && + _wcsnicmp(LogFont->lfFaceName, InfoEntry.EnumLogFontEx.elfFullName, RTL_NUMBER_OF(LogFont->lfFaceName)-1) != 0) { continue; }
6 years, 9 months
1
0
0
0
01/03: [WIN32K] Do not truncate localized font names. ROSTESTS-154
by Mark Jansen
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=37a34a21a9e4e1f995b54…
commit 37a34a21a9e4e1f995b54972b62dc1249c2e7a24 Author: Mark Jansen <mark.jansen(a)reactos.org> AuthorDate: Thu Mar 15 19:10:40 2018 +0100 Commit: Mark Jansen <mark.jansen(a)reactos.org> CommitDate: Thu Mar 15 20:16:04 2018 +0100 [WIN32K] Do not truncate localized font names. ROSTESTS-154 --- win32ss/gdi/ntgdi/freetype.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/win32ss/gdi/ntgdi/freetype.c b/win32ss/gdi/ntgdi/freetype.c index 392e338633..d94af290a1 100644 --- a/win32ss/gdi/ntgdi/freetype.c +++ b/win32ss/gdi/ntgdi/freetype.c @@ -2091,7 +2091,6 @@ IntGetFontLocalizedName(PUNICODE_STRING pNameW, PSHARED_FACE SharedFace, { FT_SfntName Name; INT i, Count, BestIndex, Score, BestScore; - WCHAR Buf[LF_FULLFACESIZE]; FT_Error Error; NTSTATUS Status = STATUS_NOT_FOUND; ANSI_STRING AnsiName; @@ -2150,11 +2149,6 @@ IntGetFontLocalizedName(PUNICODE_STRING pNameW, PSHARED_FACE SharedFace, continue; /* invalid string */ } - if (sizeof(Buf) < Name.string_len + sizeof(UNICODE_NULL)) - { - continue; /* name too long */ - } - if (Name.language_id == LangID) { Score = 30; @@ -2188,15 +2182,22 @@ IntGetFontLocalizedName(PUNICODE_STRING pNameW, PSHARED_FACE SharedFace, if (!Error) { /* NOTE: Name.string is not null-terminated */ - RtlCopyMemory(Buf, Name.string, Name.string_len); - Buf[Name.string_len / sizeof(WCHAR)] = UNICODE_NULL; + UNICODE_STRING Tmp; + Tmp.Buffer = (PWCH)Name.string; + Tmp.Length = Tmp.MaximumLength = Name.string_len; - /* Convert UTF-16 big endian to little endian */ - SwapEndian(Buf, Name.string_len); + pNameW->Length = 0; + pNameW->MaximumLength = Name.string_len + sizeof(WCHAR); + pNameW->Buffer = ExAllocatePoolWithTag(PagedPool, pNameW->MaximumLength, TAG_USTR); - if (RtlCreateUnicodeString(pNameW, Buf)) + if (pNameW->Buffer) { - Status = STATUS_SUCCESS; + Status = RtlAppendUnicodeStringToString(pNameW, &Tmp); + if (Status == STATUS_SUCCESS) + { + /* Convert UTF-16 big endian to little endian */ + SwapEndian(pNameW->Buffer, pNameW->Length); + } } else {
6 years, 9 months
1
0
0
0
01/01: [INETMIB1] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3a55db04f12d4c956e8d8…
commit 3a55db04f12d4c956e8d8e02c50779a9fc006e4e Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Thu Mar 15 12:40:38 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Thu Mar 15 12:40:38 2018 +0100 [INETMIB1] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/inetmib1/main.c | 16 +++++++--------- media/doc/README.WINE | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/dll/win32/inetmib1/main.c b/dll/win32/inetmib1/main.c index 5deae219f2..c0719c1d63 100644 --- a/dll/win32/inetmib1/main.c +++ b/dll/win32/inetmib1/main.c @@ -16,21 +16,19 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#define WIN32_NO_STATUS - -#include <config.h> +#include "config.h" #include <assert.h> #include <stdarg.h> #include <stdlib.h> -//#include <limits.h> +#include <limits.h> #define NONAMELESSUNION -#include <windef.h> -#include <winbase.h> -#include <snmp.h> -#include <iphlpapi.h> -#include <wine/debug.h> +#include "windef.h" +#include "winbase.h" +#include "snmp.h" +#include "iphlpapi.h" +#include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(inetmib1); diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 13a7673be7..5cb8a0a8da 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -79,7 +79,7 @@ reactos/dll/win32/imaadp32.acm # Synced to WineStaging-3.3 reactos/dll/win32/imagehlp # Synced to WineStaging-3.3 reactos/dll/win32/imm32 # Synced to WineStaging-3.3 reactos/dll/win32/inetcomm # Synced to WineStaging-3.3 -reactos/dll/win32/inetmib1 # Synced to WineStaging-2.9 +reactos/dll/win32/inetmib1 # Synced to WineStaging-3.3 reactos/dll/win32/initpki # Synced to WineStaging-2.9 reactos/dll/win32/inseng # Synced to Wine-3.0 reactos/dll/win32/iphlpapi # Out of sync
6 years, 9 months
1
0
0
0
01/01: [INETCOMM] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=af764263d54842d876df5…
commit af764263d54842d876df5617011fde746ce36032 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Thu Mar 15 12:36:29 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Thu Mar 15 12:36:29 2018 +0100 [INETCOMM] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/inetcomm/CMakeLists.txt | 4 ++-- dll/win32/inetcomm/imaptransport.c | 15 +++++++++++++ dll/win32/inetcomm/inetcomm_main.c | 18 ++++++++++++++- dll/win32/inetcomm/inetcomm_private.h | 40 +++++----------------------------- dll/win32/inetcomm/internettransport.c | 15 ++++++++++++- dll/win32/inetcomm/mimeintl.c | 23 ++++++++++++++++--- dll/win32/inetcomm/mimeole.c | 25 +++++++++++++++++++-- dll/win32/inetcomm/pop3transport.c | 16 ++++++++++++++ dll/win32/inetcomm/precomp.h | 25 +++++++++++++++++++++ dll/win32/inetcomm/protocol.c | 15 ++++++++++--- dll/win32/inetcomm/smtptransport.c | 15 +++++++++++++ media/doc/README.WINE | 2 +- 12 files changed, 165 insertions(+), 48 deletions(-) diff --git a/dll/win32/inetcomm/CMakeLists.txt b/dll/win32/inetcomm/CMakeLists.txt index 1f82a5c70b..c995faf2cc 100644 --- a/dll/win32/inetcomm/CMakeLists.txt +++ b/dll/win32/inetcomm/CMakeLists.txt @@ -12,7 +12,7 @@ list(APPEND SOURCE pop3transport.c protocol.c smtptransport.c - inetcomm_private.h) + precomp.h) add_library(inetcomm SHARED ${SOURCE} @@ -24,5 +24,5 @@ add_library(inetcomm SHARED set_module_type(inetcomm win32dll) target_link_libraries(inetcomm uuid wine) add_importlibs(inetcomm ole32 oleaut32 ws2_32 user32 propsys urlmon msvcrt kernel32 ntdll) -add_pch(inetcomm inetcomm_private.h SOURCE) +add_pch(inetcomm precomp.h SOURCE) add_cd_file(TARGET inetcomm DESTINATION reactos/system32 FOR all) diff --git a/dll/win32/inetcomm/imaptransport.c b/dll/win32/inetcomm/imaptransport.c index 110edf6dc9..0da456eac8 100644 --- a/dll/win32/inetcomm/imaptransport.c +++ b/dll/win32/inetcomm/imaptransport.c @@ -18,8 +18,23 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include <stdarg.h> +#include <stdio.h> + +#include "windef.h" +#include "winbase.h" +#include "winnt.h" +#include "winuser.h" +#include "objbase.h" +#include "mimeole.h" +#include "wine/debug.h" + #include "inetcomm_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(inetcomm); + typedef struct { InternetTransport InetTransport; diff --git a/dll/win32/inetcomm/inetcomm_main.c b/dll/win32/inetcomm/inetcomm_main.c index 4dec2adf89..7543628663 100644 --- a/dll/win32/inetcomm/inetcomm_main.c +++ b/dll/win32/inetcomm/inetcomm_main.c @@ -18,9 +18,25 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "winnt.h" +#include "winuser.h" +#include "ole2.h" +#include "ocidl.h" +#include "rpcproxy.h" +#include "initguid.h" +#include "mimeole.h" + #include "inetcomm_private.h" -#include <rpcproxy.h> +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(inetcomm); static HINSTANCE instance; diff --git a/dll/win32/inetcomm/inetcomm_private.h b/dll/win32/inetcomm/inetcomm_private.h index cff28ddaaf..fa40a34039 100644 --- a/dll/win32/inetcomm/inetcomm_private.h +++ b/dll/win32/inetcomm/inetcomm_private.h @@ -18,30 +18,12 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#ifndef _INETCOMM_PRIVATE_H_ -#define _INETCOMM_PRIVATE_H_ +#pragma once -#include <stdio.h> - -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - -#define COBJMACROS -#define NONAMELESSUNION - -#include <windef.h> -#include <winbase.h> -#include <ole2.h> -#include <mimeole.h> -#include <winsock2.h> -#include <imnxport.h> - -#include <wine/list.h> -#include <wine/unicode.h> - -#include <wine/debug.h> -WINE_DEFAULT_DEBUG_CHANNEL(inetcomm); +#include "winsock2.h" +#include "winuser.h" +#include "objbase.h" +#include "imnxport.h" typedef struct InternetTransport InternetTransport; @@ -103,15 +85,3 @@ HRESULT MimeInternational_Construct(IMimeInternational **internat) DECLSPEC_HIDD HRESULT SMTPTransportCF_Create(REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN; HRESULT IMAPTransportCF_Create(REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN; HRESULT POP3TransportCF_Create(REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN; - -static inline void * __WINE_ALLOC_SIZE(1) heap_alloc(size_t len) -{ - return HeapAlloc(GetProcessHeap(), 0, len); -} - -static inline BOOL heap_free(void *mem) -{ - return HeapFree(GetProcessHeap(), 0, mem); -} - -#endif /* _INETCOMM_PRIVATE_H_ */ diff --git a/dll/win32/inetcomm/internettransport.c b/dll/win32/inetcomm/internettransport.c index 73bb170f94..dcce0d9df1 100644 --- a/dll/win32/inetcomm/internettransport.c +++ b/dll/win32/inetcomm/internettransport.c @@ -18,9 +18,22 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "ws2tcpip.h" +#include "windef.h" +#include "winnt.h" +#include "objbase.h" +#include "ole2.h" +#include "mimeole.h" + +#include <stdio.h> + +#include "wine/debug.h" + #include "inetcomm_private.h" -#include <ws2tcpip.h> +WINE_DEFAULT_DEBUG_CHANNEL(inetcomm); static const WCHAR wszClassName[] = {'T','h','o','r','C','o','n','n','W','n','d','C','l','a','s','s',0}; diff --git a/dll/win32/inetcomm/mimeintl.c b/dll/win32/inetcomm/mimeintl.c index 92714ca9e1..07d3ae5f03 100644 --- a/dll/win32/inetcomm/mimeintl.c +++ b/dll/win32/inetcomm/mimeintl.c @@ -18,11 +18,28 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "inetcomm_private.h" +#define COBJMACROS +#define NONAMELESSUNION + +#include <stdarg.h> +#include <stdio.h> + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winnls.h" +#include "objbase.h" +#include "ole2.h" +#include "mimeole.h" +#include "mlang.h" -#include <mlang.h> +#include "wine/list.h" +#include "wine/unicode.h" +#include "wine/debug.h" + +#include "inetcomm_private.h" -#include <wine/unicode.h> +WINE_DEFAULT_DEBUG_CHANNEL(inetcomm); typedef struct { diff --git a/dll/win32/inetcomm/mimeole.c b/dll/win32/inetcomm/mimeole.c index 9d130a1f78..b7d6d6ab3a 100644 --- a/dll/win32/inetcomm/mimeole.c +++ b/dll/win32/inetcomm/mimeole.c @@ -19,10 +19,31 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS +#define NONAMELESSUNION + +#include <stdarg.h> +#include <stdio.h> + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "objbase.h" +#include "ole2.h" +#include "mimeole.h" +#ifdef __REACTOS__ +#include <winreg.h> +#endif +#include "propvarutil.h" + +#include "wine/heap.h" +#include "wine/list.h" +#include "wine/debug.h" +#include "wine/unicode.h" + #include "inetcomm_private.h" -#include <winreg.h> -#include <propvarutil.h> +WINE_DEFAULT_DEBUG_CHANNEL(inetcomm); typedef struct { diff --git a/dll/win32/inetcomm/pop3transport.c b/dll/win32/inetcomm/pop3transport.c index 22f2be60f7..1c8bc91bb0 100644 --- a/dll/win32/inetcomm/pop3transport.c +++ b/dll/win32/inetcomm/pop3transport.c @@ -18,8 +18,24 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS +#define NONAMELESSUNION + +#include <stdarg.h> +#include <stdio.h> + +#include "windef.h" +#include "winbase.h" +#include "winnt.h" +#include "winuser.h" +#include "objbase.h" +#include "mimeole.h" +#include "wine/debug.h" + #include "inetcomm_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(inetcomm); + enum parse_state { STATE_NONE, diff --git a/dll/win32/inetcomm/precomp.h b/dll/win32/inetcomm/precomp.h new file mode 100644 index 0000000000..04946eedd3 --- /dev/null +++ b/dll/win32/inetcomm/precomp.h @@ -0,0 +1,25 @@ + +#ifndef _INETCOMM_PRECOMP_H_ +#define _INETCOMM_PRECOMP_H_ + +#include <stdio.h> + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#define COBJMACROS +#define NONAMELESSUNION + +#include <windef.h> +#include <winbase.h> +#include <ole2.h> +#include <mimeole.h> + +#include <wine/list.h> +#include <wine/unicode.h> +#include <wine/debug.h> + +#include "inetcomm_private.h" + +#endif /* !_INETCOMM_PRECOMP_H_ */ diff --git a/dll/win32/inetcomm/protocol.c b/dll/win32/inetcomm/protocol.c index adb98467f1..028463a269 100644 --- a/dll/win32/inetcomm/protocol.c +++ b/dll/win32/inetcomm/protocol.c @@ -16,10 +16,20 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "inetcomm_private.h" +#define COBJMACROS +#define NONAMELESSUNION #include <assert.h> +#include "mimeole.h" +#include "inetcomm_private.h" + +#include "wine/debug.h" +#include "wine/heap.h" +#include "wine/unicode.h" + +WINE_DEFAULT_DEBUG_CHANNEL(inetcomm); + typedef struct { IUnknown IUnknown_inner; IInternetProtocol IInternetProtocol_iface; @@ -477,8 +487,7 @@ static HRESULT WINAPI MimeHtmlProtocol_Start(IInternetProtocol *iface, const WCH if((bindf & (BINDF_ASYNCHRONOUS|BINDF_FROMURLMON|BINDF_NEEDFILE)) != (BINDF_ASYNCHRONOUS|BINDF_FROMURLMON|BINDF_NEEDFILE)) FIXME("unsupported bindf %x\n", bindf); - This->sink = pOIProtSink; - IInternetProtocolSink_AddRef(This->sink); + IInternetProtocolSink_AddRef(This->sink = pOIProtSink); binding = heap_alloc(FIELD_OFFSET(MimeHtmlBinding, url[url.mhtml_len+1])); if(!binding) diff --git a/dll/win32/inetcomm/smtptransport.c b/dll/win32/inetcomm/smtptransport.c index b3b60f3f88..af11308258 100644 --- a/dll/win32/inetcomm/smtptransport.c +++ b/dll/win32/inetcomm/smtptransport.c @@ -20,8 +20,23 @@ * */ +#define COBJMACROS + +#include <stdarg.h> +#include <stdio.h> + +#include "windef.h" +#include "winbase.h" +#include "winnt.h" +#include "winuser.h" +#include "objbase.h" +#include "mimeole.h" +#include "wine/debug.h" + #include "inetcomm_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(inetcomm); + typedef struct { InternetTransport InetTransport; diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 51b4799dd1..13a7673be7 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -78,7 +78,7 @@ reactos/dll/win32/ieframe # Synced to WineStaging-3.3 reactos/dll/win32/imaadp32.acm # Synced to WineStaging-3.3 reactos/dll/win32/imagehlp # Synced to WineStaging-3.3 reactos/dll/win32/imm32 # Synced to WineStaging-3.3 -reactos/dll/win32/inetcomm # Synced to Wine-3.0 +reactos/dll/win32/inetcomm # Synced to WineStaging-3.3 reactos/dll/win32/inetmib1 # Synced to WineStaging-2.9 reactos/dll/win32/initpki # Synced to WineStaging-2.9 reactos/dll/win32/inseng # Synced to Wine-3.0
6 years, 9 months
1
0
0
0
01/01: [IMM32] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2472f9162efa6ab8bb1ec…
commit 2472f9162efa6ab8bb1ec03e30b03e83082614d0 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Thu Mar 15 12:31:05 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Thu Mar 15 12:31:05 2018 +0100 [IMM32] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/imm32/imm.c | 37 ++++++++++++++++++++++--------------- dll/win32/imm32/imm32.spec | 1 + media/doc/README.WINE | 2 +- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/dll/win32/imm32/imm.c b/dll/win32/imm32/imm.c index 0c98c58298..377a277513 100644 --- a/dll/win32/imm32/imm.c +++ b/dll/win32/imm32/imm.c @@ -19,23 +19,21 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#define WIN32_NO_STATUS - -//#include <stdarg.h> +#include <stdarg.h> #include <stdio.h> -#include <windef.h> -#include <winbase.h> -//#include "wingdi.h" -#include <winuser.h> -//#include "winerror.h" -#include <wine/debug.h> -//#include "imm.h" -#include <ddk/imm.h> -#include <winnls.h> -#include <winreg.h> -#include <wine/list.h> -#include <wine/unicode.h> +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" +#include "winerror.h" +#include "wine/debug.h" +#include "imm.h" +#include "ddk/imm.h" +#include "winnls.h" +#include "winreg.h" +#include "wine/list.h" +#include "wine/unicode.h" WINE_DEFAULT_DEBUG_CHANNEL(imm); @@ -3147,3 +3145,12 @@ BOOL WINAPI ImmGetHotKey(DWORD hotkey, UINT *modifiers, UINT *key, HKL hkl) FIXME("%x, %p, %p, %p: stub\n", hotkey, modifiers, key, hkl); return FALSE; } + +/*********************************************************************** + * IMMDisableLegacyIME(IMM32.@) + */ +BOOL WINAPI ImmDisableLegacyIME(void) +{ + FIXME("stub\n"); + return TRUE; +} diff --git a/dll/win32/imm32/imm32.spec b/dll/win32/imm32/imm32.spec index 2be5d92b11..4197bb81e2 100644 --- a/dll/win32/imm32/imm32.spec +++ b/dll/win32/imm32/imm32.spec @@ -11,6 +11,7 @@ @ stdcall ImmDestroySoftKeyboard(long) @ stdcall ImmDisableIME(long) @ stdcall ImmDisableIme(long) ImmDisableIME +@ stdcall ImmDisableLegacyIME() @ stdcall ImmDisableTextFrameService(long) @ stdcall ImmEnumInputContext(long ptr long) @ stdcall ImmEnumRegisterWordA(long ptr str long str ptr) diff --git a/media/doc/README.WINE b/media/doc/README.WINE index cd8730679d..51b4799dd1 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -77,7 +77,7 @@ reactos/dll/win32/iccvid # Synced to WineStaging-3.3 reactos/dll/win32/ieframe # Synced to WineStaging-3.3 reactos/dll/win32/imaadp32.acm # Synced to WineStaging-3.3 reactos/dll/win32/imagehlp # Synced to WineStaging-3.3 -reactos/dll/win32/imm32 # Synced to Wine-2.22 +reactos/dll/win32/imm32 # Synced to WineStaging-3.3 reactos/dll/win32/inetcomm # Synced to Wine-3.0 reactos/dll/win32/inetmib1 # Synced to WineStaging-2.9 reactos/dll/win32/initpki # Synced to WineStaging-2.9
6 years, 9 months
1
0
0
0
01/01: [IMAGEHLP_WINETEST] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=30494d2a1ec1d4fd72e94…
commit 30494d2a1ec1d4fd72e942adccbd7a7431fd6a15 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Thu Mar 15 12:29:08 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Thu Mar 15 12:29:08 2018 +0100 [IMAGEHLP_WINETEST] Sync with Wine Staging 3.3. CORE-14434 --- modules/rostests/winetests/imagehlp/image.c | 115 ++++++++++- modules/rostests/winetests/imagehlp/integrity.c | 252 +++++++++++++++++++++++- 2 files changed, 357 insertions(+), 10 deletions(-) diff --git a/modules/rostests/winetests/imagehlp/image.c b/modules/rostests/winetests/imagehlp/image.c index 65f59700e3..0d6521b45b 100644 --- a/modules/rostests/winetests/imagehlp/image.c +++ b/modules/rostests/winetests/imagehlp/image.c @@ -33,6 +33,10 @@ static HMODULE hImageHlp; static BOOL (WINAPI *pImageGetDigestStream)(HANDLE, DWORD, DIGEST_FUNCTION, DIGEST_HANDLE); static BOOL (WINAPI *pBindImageEx)(DWORD Flags, const char *ImageName, const char *DllPath, const char *SymbolPath, PIMAGEHLP_STATUS_ROUTINE StatusRoutine); +static DWORD (WINAPI* pGetImageUnusedHeaderBytes)(PLOADED_IMAGE, LPDWORD); +static PLOADED_IMAGE (WINAPI* pImageLoad)(PCSTR, PCSTR); +static BOOL (WINAPI* pImageUnload)(PLOADED_IMAGE); + /* minimal PE file image */ #define VA_START 0x400000 @@ -388,10 +392,10 @@ static void test_bind_image_ex(void) SetLastError(0xdeadbeef); ret = pBindImageEx(BIND_NO_BOUND_IMPORTS | BIND_NO_UPDATE | BIND_ALL_IMAGES, "nonexistent.dll", 0, 0, testing_status_routine); - todo_wine ok(!ret && ((GetLastError() == ERROR_FILE_NOT_FOUND) || - (GetLastError() == ERROR_INVALID_PARAMETER)), - "expected ERROR_FILE_NOT_FOUND or ERROR_INVALID_PARAMETER, got %d\n", - GetLastError()); + ok(!ret && ((GetLastError() == ERROR_FILE_NOT_FOUND) || + (GetLastError() == ERROR_INVALID_PARAMETER)), + "expected ERROR_FILE_NOT_FOUND or ERROR_INVALID_PARAMETER, got %d\n", + GetLastError()); file = create_temp_file(temp_file); if (file == INVALID_HANDLE_VALUE) @@ -413,14 +417,103 @@ static void test_bind_image_ex(void) testing_status_routine); ok(ret, "BindImageEx failed: %d\n", GetLastError()); - todo_wine ok(status_routine_called[BindImportModule] == 1, - "StatusRoutine was called %d times\n", status_routine_called[BindImportModule]); + ok(status_routine_called[BindImportModule] == 1, + "StatusRoutine was called %d times\n", status_routine_called[BindImportModule]); - todo_wine ok((status_routine_called[BindImportProcedure] == 1) + ok((status_routine_called[BindImportProcedure] == 1) #if defined(_WIN64) - || broken(status_routine_called[BindImportProcedure] == 0) /* < Win8 */ + || broken(status_routine_called[BindImportProcedure] == 0) /* < Win8 */ #endif - , "StatusRoutine was called %d times\n", status_routine_called[BindImportProcedure]); + , "StatusRoutine was called %d times\n", status_routine_called[BindImportProcedure]); + + DeleteFileA(temp_file); +} + +static void test_image_load(void) +{ + char temp_file[MAX_PATH]; + PLOADED_IMAGE img; + DWORD ret, count; + HANDLE file; + + if (!pImageLoad || !pImageUnload) + { + win_skip("ImageLoad or ImageUnload function is not available\n"); + return; + } + if (!pGetImageUnusedHeaderBytes) + { + win_skip("GetImageUnusedHeaderBytes function is not available\n"); + return; + } + + file = create_temp_file(temp_file); + if (file == INVALID_HANDLE_VALUE) + { + skip("couldn't create temp file\n"); + return; + } + + WriteFile(file, &bin, sizeof(bin), &count, NULL); + CloseHandle(file); + + img = pImageLoad(temp_file, NULL); + ok(img != NULL, "ImageLoad unexpectedly failed\n"); + + if (img) + { + ok(!strcmp(img->ModuleName, temp_file), + "unexpected ModuleName, got %s instead of %s\n", img->ModuleName, temp_file); + ok(img->MappedAddress != NULL, "MappedAddress != NULL\n"); + if (img->MappedAddress) + { + ok(!memcmp(img->MappedAddress, &bin.dos_header, sizeof(bin.dos_header)), + "MappedAddress doesn't point to IMAGE_DOS_HEADER\n"); + } + ok(img->FileHeader != NULL, "FileHeader != NULL\n"); + if (img->FileHeader) + { + ok(!memcmp(img->FileHeader, &bin.nt_headers, sizeof(bin.nt_headers)), + "FileHeader doesn't point to IMAGE_NT_HEADERS32\n"); + } + ok(img->NumberOfSections == 3, + "unexpected NumberOfSections, got %d instead of 3\n", img->NumberOfSections); + if (img->NumberOfSections >= 3) + { + ok(!strcmp((const char *)img->Sections[0].Name, ".text"), + "unexpected name for section 0, expected .text, got %s\n", + (const char *)img->Sections[0].Name); + ok(!strcmp((const char *)img->Sections[1].Name, ".bss"), + "unexpected name for section 1, expected .bss, got %s\n", + (const char *)img->Sections[1].Name); + ok(!strcmp((const char *)img->Sections[2].Name, ".idata"), + "unexpected name for section 2, expected .idata, got %s\n", + (const char *)img->Sections[2].Name); + } + ok(img->Characteristics == 0x102, + "unexpected Characteristics, got 0x%x instead of 0x102\n", img->Characteristics); + ok(img->fSystemImage == 0, + "unexpected fSystemImage, got %d instead of 0\n", img->fSystemImage); + ok(img->fDOSImage == 0, + "unexpected fDOSImage, got %d instead of 0\n", img->fDOSImage); + todo_wine + ok(img->fReadOnly == 1 || broken(!img->fReadOnly) /* <= WinXP */, + "unexpected fReadOnly, got %d instead of 1\n", img->fReadOnly); + todo_wine + ok(img->Version == 1 || broken(!img->Version) /* <= WinXP */, + "unexpected Version, got %d instead of 1\n", img->Version); + ok(img->SizeOfImage == 0x600, + "unexpected SizeOfImage, got 0x%x instead of 0x600\n", img->SizeOfImage); + + count = 0xdeadbeef; + ret = pGetImageUnusedHeaderBytes(img, &count); + todo_wine + ok(ret == 448, "GetImageUnusedHeaderBytes returned %u instead of 448\n", ret); + todo_wine + ok(count == 64, "unexpected size for unused header bytes, got %u instead of 64\n", count); + + pImageUnload(img); + } DeleteFileA(temp_file); } @@ -437,9 +530,13 @@ START_TEST(image) pImageGetDigestStream = (void *) GetProcAddress(hImageHlp, "ImageGetDigestStream"); pBindImageEx = (void *) GetProcAddress(hImageHlp, "BindImageEx"); + pGetImageUnusedHeaderBytes = (void *) GetProcAddress(hImageHlp, "GetImageUnusedHeaderBytes"); + pImageLoad = (void *) GetProcAddress(hImageHlp, "ImageLoad"); + pImageUnload = (void *) GetProcAddress(hImageHlp, "ImageUnload"); test_get_digest_stream(); test_bind_image_ex(); + test_image_load(); FreeLibrary(hImageHlp); } diff --git a/modules/rostests/winetests/imagehlp/integrity.c b/modules/rostests/winetests/imagehlp/integrity.c index 3fa359f316..913c396aa1 100644 --- a/modules/rostests/winetests/imagehlp/integrity.c +++ b/modules/rostests/winetests/imagehlp/integrity.c @@ -26,8 +26,9 @@ #include "winerror.h" #include "winnt.h" #include "imagehlp.h" +#include "psapi.h" -static HMODULE hImageHlp; +static HMODULE hImageHlp, hPsapi; static char test_dll_path[MAX_PATH]; static BOOL (WINAPI *pImageAddCertificate)(HANDLE, LPWIN_CERTIFICATE, PDWORD); @@ -35,6 +36,9 @@ static BOOL (WINAPI *pImageEnumerateCertificates)(HANDLE, WORD, PDWORD, PDWORD, static BOOL (WINAPI *pImageGetCertificateData)(HANDLE, DWORD, LPWIN_CERTIFICATE, PDWORD); static BOOL (WINAPI *pImageGetCertificateHeader)(HANDLE, DWORD, LPWIN_CERTIFICATE); static BOOL (WINAPI *pImageRemoveCertificate)(HANDLE, DWORD); +static PIMAGE_NT_HEADERS (WINAPI *pCheckSumMappedFile)(PVOID, DWORD, PDWORD, PDWORD); + +static BOOL (WINAPI *pGetModuleInformation)(HANDLE, HMODULE, LPMODULEINFO, DWORD cb); static const char test_cert_data[] = {0x30,0x82,0x02,0xE1,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x07,0x02 @@ -90,6 +94,27 @@ static const char test_cert_data[] = static const char test_cert_data_2[] = {0xDE,0xAD,0xBE,0xEF,0x01,0x02,0x03}; +static char test_pe_executable[] = +{ + 0x4d,0x5a,0x90,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xff,0xff,0x00, + 0x00,0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x80,0x00,0x00,0x00,0x0e,0x1f,0xba,0x0e,0x00,0xb4,0x09,0xcd,0x21,0xb8,0x01, + 0x4c,0xcd,0x21,0x54,0x68,0x69,0x73,0x20,0x70,0x72,0x6f,0x67,0x72,0x61,0x6d, + 0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x72,0x75,0x6e,0x20, + 0x69,0x6e,0x20,0x44,0x4f,0x53,0x20,0x6d,0x6f,0x64,0x65,0x2e,0x0d,0x0d,0x0a, + 0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x45,0x00,0x00,0x4c,0x01,0x0f, + 0x00,0xfd,0x38,0xc9,0x55,0x00,0x24,0x01,0x00,0xea,0x04,0x00,0x00,0xe0,0x00, + 0x07,0x01,0x0b,0x01,0x02,0x18,0x00,0x1a,0x00,0x00,0x00,0x2c,0x00,0x00,0x00, + 0x06,0x00,0x00,0xe0,0x14,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x00,0x40,0x00,0x00,0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0, + 0x01,0x00,0x00,0x04,0x00,0x00,/* checksum */ 0x11,0xEF,0xCD,0xAB,0x03,0x00, + 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x10,0x00,0x00, + 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00 +}; + static BOOL copy_dll_file(void) { char sys_dir[MAX_PATH+15]; @@ -239,6 +264,223 @@ static void test_remove_certificate(int index) CloseHandle(hFile); } +static DWORD _get_checksum_offset(PVOID base, PIMAGE_NT_HEADERS *nt_header, DWORD *checksum) +{ + IMAGE_DOS_HEADER *dos = (IMAGE_DOS_HEADER *)base; + PIMAGE_NT_HEADERS32 Header32; + PIMAGE_NT_HEADERS64 Header64; + + if (dos->e_magic != IMAGE_DOS_SIGNATURE) + return 0; + + Header32 = (IMAGE_NT_HEADERS32 *)((char *)dos + dos->e_lfanew); + if (Header32->Signature != IMAGE_NT_SIGNATURE) + return 0; + + *nt_header = (PIMAGE_NT_HEADERS)Header32; + + if (Header32->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC) + { + *checksum = Header32->OptionalHeader.CheckSum; + return (char *)&Header32->OptionalHeader.CheckSum - (char *)base; + } + else if (Header32->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) + { + Header64 = (IMAGE_NT_HEADERS64 *)Header32; + *checksum = Header64->OptionalHeader.CheckSum; + return (char *)&Header64->OptionalHeader.CheckSum - (char *)base; + } + + return 0; +} + +static void test_pe_checksum(void) +{ + DWORD checksum_orig, checksum_new, checksum_off, checksum_correct; + PIMAGE_NT_HEADERS nt_header; + PIMAGE_NT_HEADERS ret; + HMODULE quartz_data; + char* quartz_base; + MODULEINFO modinfo; + char buffer[20]; + BOOL ret_bool; + + if (!pCheckSumMappedFile) + { + win_skip("CheckSumMappedFile not supported, skipping tests\n"); + return; + } + + SetLastError(0xdeadbeef); + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(NULL, 0, &checksum_orig, &checksum_new); + ok(!ret, "Expected CheckSumMappedFile to fail, got %p\n", ret); + ok(GetLastError() == 0xdeadbeef, "Expected err=0xdeadbeef, got %x\n", GetLastError()); + ok(checksum_orig == 0, "Expected 0, got %x\n", checksum_orig); + ok(checksum_new == 0, "Expected 0, got %x\n", checksum_new); + + SetLastError(0xdeadbeef); + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile((void *)0xdeadbeef, 0, &checksum_orig, &checksum_new); + ok(!ret, "Expected CheckSumMappedFile to fail, got %p\n", ret); + ok(GetLastError() == 0xdeadbeef, "Expected err=0xdeadbeef, got %x\n", GetLastError()); + ok(checksum_orig == 0, "Expected 0, got %x\n", checksum_orig); + ok(checksum_new == 0, "Expected 0, got %x\n", checksum_new); + + if (0) + { + /* crashes on Windows */ + checksum_orig = checksum_new = 0xdeadbeef; + pCheckSumMappedFile(0, 0x1000, &checksum_orig, &checksum_new); + pCheckSumMappedFile((void *)0xdeadbeef, 0x1000, NULL, NULL); + } + + /* basic checksum tests */ + memset(buffer, 0x11, sizeof(buffer)); + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(buffer, sizeof(buffer), &checksum_orig, &checksum_new); + ok(ret == NULL, "Expected NULL, got %p\n", ret); + ok(checksum_orig == 0, "Expected 0, got %x\n", checksum_orig); + ok(checksum_new == 0xaabe, "Expected 0xaabe, got %x\n", checksum_new); + + memset(buffer, 0x22, sizeof(buffer)); + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(buffer, sizeof(buffer), &checksum_orig, &checksum_new); + ok(ret == NULL, "Expected NULL, got %p\n", ret); + ok(checksum_orig == 0, "Expected 0, got %x\n", checksum_orig); + ok(checksum_new == 0x5569, "Expected 0x5569, got %x\n", checksum_new); + + memset(buffer, 0x22, sizeof(buffer)); + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(buffer, 10, &checksum_orig, &checksum_new); + ok(ret == NULL, "Expected NULL, got %p\n", ret); + ok(checksum_orig == 0, "Expected 0, got %x\n", checksum_orig); + ok(checksum_new == 0xaab4, "Expected 0xaab4, got %x\n", checksum_new); + + memset(buffer, 0x22, sizeof(buffer)); + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(buffer, 11, &checksum_orig, &checksum_new); + ok(ret == NULL, "Expected NULL, got %p\n", ret); + ok(checksum_orig == 0, "Expected 0, got %x\n", checksum_orig); + ok(checksum_new == 0xaad7, "Expected 0xaad7, got %x\n", checksum_new); + + /* test checksum of PE module */ + memset(buffer, 0x22, sizeof(buffer)); + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(test_pe_executable, sizeof(test_pe_executable), + &checksum_orig, &checksum_new); + ok((char *)ret == test_pe_executable + 0x80, "Expected %p, got %p\n", test_pe_executable + 0x80, ret); + ok(checksum_orig == 0xabcdef11, "Expected 0xabcdef11, got %x\n", checksum_orig); + ok(checksum_new == 0xaa4, "Expected 0xaa4, got %x\n", checksum_new); + + if (!pGetModuleInformation) + { + win_skip("GetModuleInformation not supported, skipping tests\n"); + return; + } + + ret_bool = pGetModuleInformation(GetCurrentProcess(), GetModuleHandleA(NULL), + &modinfo, sizeof(modinfo)); + ok(ret_bool, "GetModuleInformation failed, error: %x\n", GetLastError()); + + if (0) + { + /* crashes on Windows */ + pCheckSumMappedFile(modinfo.lpBaseOfDll, modinfo.SizeOfImage, NULL, NULL); + } + + SetLastError(0xdeadbeef); + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(modinfo.lpBaseOfDll, modinfo.SizeOfImage, &checksum_orig, &checksum_new); + ok(ret != NULL, "Expected CheckSumMappedFile to succeed\n"); + ok(GetLastError() == 0xdeadbeef, "Expected err=0xdeadbeef, got %x\n", GetLastError()); + ok(checksum_orig != 0xdeadbeef, "Expected orig checksum != 0xdeadbeef\n"); + ok(checksum_new != 0xdeadbeef, "Expected new checksum != 0xdeadbeef\n"); + + SetLastError(0xdeadbeef); + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile((char *)modinfo.lpBaseOfDll + 100, modinfo.SizeOfImage - 100, + &checksum_orig, &checksum_new); + ok(!ret, "Expected CheckSumMappedFile to fail, got %p\n", ret); + ok(GetLastError() == 0xdeadbeef, "Expected err=0xdeadbeef, got %x\n", GetLastError()); + ok(checksum_orig == 0, "Expected 0xdeadbeef, got %x\n", checksum_orig); + ok(checksum_new != 0 && checksum_new != 0xdeadbeef, "Got unexpected value %x\n", checksum_new); + + checksum_off = _get_checksum_offset(modinfo.lpBaseOfDll, &nt_header, &checksum_correct); + ok(checksum_off != 0, "Failed to get checksum offset\n"); + + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(modinfo.lpBaseOfDll, checksum_off, &checksum_orig, &checksum_new); + ok(ret == nt_header, "Expected %p, got %p\n", nt_header, ret); + ok(checksum_orig == checksum_correct, "Expected %x, got %x\n", checksum_correct, checksum_orig); + ok(checksum_new != 0 && checksum_new != 0xdeadbeef, "Got unexpected value %x\n", checksum_new); + + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(modinfo.lpBaseOfDll, (char *)nt_header - (char *)modinfo.lpBaseOfDll, + &checksum_orig, &checksum_new); + ok(ret == nt_header, "Expected %p, got %p\n", nt_header, ret); + ok(checksum_orig == checksum_correct, "Expected %x, got %x\n", checksum_correct, checksum_orig); + ok(checksum_new != 0 && checksum_new != 0xdeadbeef, "Got unexpected value %x\n", checksum_new); + + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(modinfo.lpBaseOfDll, sizeof(IMAGE_DOS_HEADER), + &checksum_orig, &checksum_new); + ok(ret == nt_header, "Expected %p, got %p\n", nt_header, ret); + ok(checksum_orig == checksum_correct, "Expected %x, got %x\n", checksum_correct, checksum_orig); + ok(checksum_new != 0 && checksum_new != 0xdeadbeef, "Got unexpected value %x\n", checksum_new); + + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(modinfo.lpBaseOfDll, 0, &checksum_orig, &checksum_new); + ok(ret == nt_header, "Expected %p, got %p\n", nt_header, ret); + ok(checksum_orig == checksum_correct, "Expected %x, got %x\n", checksum_correct, checksum_orig); + todo_wine ok(checksum_new != 0 && checksum_new != 0xdeadbeef, "Got unexpected value %x\n", checksum_new); + + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile((char *)modinfo.lpBaseOfDll + 1, 0, + &checksum_orig, &checksum_new); + ok(ret == NULL, "Expected NULL, got %p\n", ret); + ok(checksum_orig == 0, "Expected 0, got %x\n", checksum_orig); + ok(checksum_new == 0, "Expected 0, got %x\n", checksum_new); + + quartz_data = LoadLibraryExA("quartz.dll", NULL, LOAD_LIBRARY_AS_DATAFILE); + if (!quartz_data) + { + skip("Failed to load quartz as datafile, skipping tests\n"); + return; + } + + quartz_base = (char *)((DWORD_PTR)quartz_data & ~1); + checksum_off = _get_checksum_offset(quartz_base, &nt_header, &checksum_correct); + ok(checksum_off != 0, "Failed to get checksum offset\n"); + + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(quartz_base, checksum_off, &checksum_orig, &checksum_new); + ok(ret == nt_header, "Expected %p, got %p\n", nt_header, ret); + ok(checksum_orig == checksum_correct, "Expected %x, got %x\n", checksum_correct, checksum_orig); + ok(checksum_new != 0 && checksum_new != 0xdeadbeef, "Got unexpected value %x\n", checksum_new); + + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(quartz_base, (char *)nt_header - quartz_base, + &checksum_orig, &checksum_new); + ok(ret == nt_header, "Expected %p, got %p\n", nt_header, ret); + ok(checksum_orig == checksum_correct, "Expected %x, got %x\n", checksum_correct, checksum_orig); + ok(checksum_new != 0 && checksum_new != 0xdeadbeef, "Got unexpected value %x\n", checksum_new); + + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(quartz_base, sizeof(IMAGE_DOS_HEADER), &checksum_orig, &checksum_new); + ok(ret == nt_header, "Expected %p, got %p\n", nt_header, ret); + ok(checksum_orig == checksum_correct, "Expected %x, got %x\n", checksum_correct, checksum_orig); + ok(checksum_new != 0 && checksum_new != 0xdeadbeef, "Got unexpected value %x\n", checksum_new); + + checksum_orig = checksum_new = 0xdeadbeef; + ret = pCheckSumMappedFile(quartz_base, 0, &checksum_orig, &checksum_new); + ok(ret == nt_header, "Expected %p, got %p\n", nt_header, ret); + ok(checksum_orig == checksum_correct, "Expected %x, got %x\n", checksum_correct, checksum_orig); + todo_wine ok(checksum_new != 0 && checksum_new != 0xdeadbeef, "Got unexpected value %x\n", checksum_new); + + FreeLibrary(quartz_data); +} + START_TEST(integrity) { DWORD file_size, file_size_orig, first, second; @@ -273,6 +515,11 @@ START_TEST(integrity) pImageGetCertificateData = (void *) GetProcAddress(hImageHlp, "ImageGetCertificateData"); pImageGetCertificateHeader = (void *) GetProcAddress(hImageHlp, "ImageGetCertificateHeader"); pImageRemoveCertificate = (void *) GetProcAddress(hImageHlp, "ImageRemoveCertificate"); + pCheckSumMappedFile = (void *) GetProcAddress(hImageHlp, "CheckSumMappedFile"); + + hPsapi = LoadLibraryA("psapi.dll"); + if (hPsapi) + pGetModuleInformation = (void *) GetProcAddress(hPsapi, "GetModuleInformation"); first = test_add_certificate(test_cert_data, sizeof(test_cert_data)); test_get_certificate(test_cert_data, first); @@ -299,6 +546,9 @@ START_TEST(integrity) file_size = get_file_size(); ok(file_size == file_size_orig, "File size different after add and remove (old: %d; new: %d)\n", file_size_orig, file_size); + test_pe_checksum(); + + if (hPsapi) FreeLibrary(hPsapi); FreeLibrary(hImageHlp); DeleteFileA(test_dll_path); }
6 years, 9 months
1
0
0
0
01/01: [IMAGEHLP] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=15dda9ebafbf0f9e6c079…
commit 15dda9ebafbf0f9e6c07962e59d1afcd8df13291 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Thu Mar 15 12:28:19 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Thu Mar 15 12:28:19 2018 +0100 [IMAGEHLP] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/imagehlp/access.c | 99 +++++++++------- dll/win32/imagehlp/imagehlp_main.c | 7 +- dll/win32/imagehlp/integrity.c | 12 +- dll/win32/imagehlp/modify.c | 227 ++++++++++++++++++++++++++++--------- dll/win32/imagehlp/precomp.h | 4 +- media/doc/README.WINE | 2 +- 6 files changed, 255 insertions(+), 96 deletions(-) diff --git a/dll/win32/imagehlp/access.c b/dll/win32/imagehlp/access.c index 367efac5d5..897f2d553b 100644 --- a/dll/win32/imagehlp/access.c +++ b/dll/win32/imagehlp/access.c @@ -18,15 +18,22 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" - -#include <winternl.h> +#include <stdarg.h> +#include <string.h> +#include "windef.h" +#include "winbase.h" +#include "winnt.h" +#include "winternl.h" +#include "winerror.h" +#include "wine/debug.h" +#include "imagehlp.h" + +WINE_DEFAULT_DEBUG_CHANNEL(imagehlp); /*********************************************************************** * Data */ - -static PLOADED_IMAGE IMAGEHLP_pFirstLoadedImage=NULL; +LIST_ENTRY image_list = { &image_list, &image_list }; DECLSPEC_HIDDEN extern HANDLE IMAGEHLP_hHeap; @@ -61,57 +68,69 @@ DWORD WINAPI GetImageUnusedHeaderBytes( /*********************************************************************** * ImageLoad (IMAGEHLP.@) */ -PLOADED_IMAGE WINAPI ImageLoad(PCSTR DllName, PCSTR DllPath) +PLOADED_IMAGE WINAPI ImageLoad(PCSTR dll_name, PCSTR dll_path) { - PLOADED_IMAGE pLoadedImage; - - FIXME("(%s, %s): stub\n", DllName, DllPath); - - pLoadedImage = HeapAlloc(IMAGEHLP_hHeap, 0, sizeof(LOADED_IMAGE)); - if (pLoadedImage) - pLoadedImage->FileHeader = HeapAlloc(IMAGEHLP_hHeap, 0, sizeof(IMAGE_NT_HEADERS)); - - return pLoadedImage; + LOADED_IMAGE *image; + + TRACE("(%s, %s)\n", dll_name, dll_path); + + image = HeapAlloc(IMAGEHLP_hHeap, 0, sizeof(*image)); + if (!image) return NULL; + + if (!MapAndLoad(dll_name, dll_path, image, TRUE, TRUE)) + { + HeapFree(IMAGEHLP_hHeap, 0, image); + return NULL; + } + + image->Links.Flink = image_list.Flink; + image->Links.Blink = &image_list; + image_list.Flink->Blink = &image->Links; + image_list.Flink = &image->Links; + + return image; } /*********************************************************************** * ImageUnload (IMAGEHLP.@) */ -BOOL WINAPI ImageUnload(PLOADED_IMAGE pLoadedImage) +BOOL WINAPI ImageUnload(PLOADED_IMAGE loaded_image) { - LIST_ENTRY *pCurrent, *pFind; + LIST_ENTRY *entry, *mark; + PLOADED_IMAGE image; + + FIXME("(%p)\n", loaded_image); - TRACE("(%p)\n", pLoadedImage); - - if(!IMAGEHLP_pFirstLoadedImage || !pLoadedImage) + if (!loaded_image) { - /* No image loaded or null pointer */ - SetLastError(ERROR_INVALID_PARAMETER); - return FALSE; + /* No image loaded or null pointer */ + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; } - pFind=&pLoadedImage->Links; - pCurrent=&IMAGEHLP_pFirstLoadedImage->Links; - while((pCurrent != pFind) && - (pCurrent != NULL)) - pCurrent = pCurrent->Flink; - if(!pCurrent) + /* FIXME: do we really need to check this? */ + mark = &image_list; + for (entry = mark->Flink; entry != mark; entry = entry->Flink) { - /* Not found */ - SetLastError(ERROR_INVALID_PARAMETER); - return FALSE; + image = CONTAINING_RECORD(entry, LOADED_IMAGE, Links); + if (image == loaded_image) + break; } - if(pCurrent->Blink) - pCurrent->Blink->Flink = pCurrent->Flink; - else - IMAGEHLP_pFirstLoadedImage = pCurrent->Flink?CONTAINING_RECORD( - pCurrent->Flink, LOADED_IMAGE, Links):NULL; + if (entry == mark) + { + /* Not found */ + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } - if(pCurrent->Flink) - pCurrent->Flink->Blink = pCurrent->Blink; + entry->Blink->Flink = entry->Flink; + entry->Flink->Blink = entry->Blink; - return FALSE; + UnMapAndLoad(loaded_image); + HeapFree(IMAGEHLP_hHeap, 0, loaded_image); + + return TRUE; } /*********************************************************************** diff --git a/dll/win32/imagehlp/imagehlp_main.c b/dll/win32/imagehlp/imagehlp_main.c index a2b79d49b8..e505126381 100644 --- a/dll/win32/imagehlp/imagehlp_main.c +++ b/dll/win32/imagehlp/imagehlp_main.c @@ -18,7 +18,12 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "imagehlp.h" +#include "wine/debug.h" /**********************************************************************/ DECLSPEC_HIDDEN HANDLE IMAGEHLP_hHeap = NULL; diff --git a/dll/win32/imagehlp/integrity.c b/dll/win32/imagehlp/integrity.c index 9d79fa8f61..d86ec11bd5 100644 --- a/dll/win32/imagehlp/integrity.c +++ b/dll/win32/imagehlp/integrity.c @@ -22,7 +22,17 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "winternl.h" +#include "winnt.h" +#include "imagehlp.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(imagehlp); /* * These functions are partially documented at: diff --git a/dll/win32/imagehlp/modify.c b/dll/win32/imagehlp/modify.c index 6adabb6771..ee68a4ef85 100644 --- a/dll/win32/imagehlp/modify.c +++ b/dll/win32/imagehlp/modify.c @@ -18,16 +18,25 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdarg.h> -#include <wine/exception.h> -#include <wine/winternl.h> +#include "windef.h" +#include "winbase.h" +#include "winternl.h" +#include "winerror.h" +#include "wine/debug.h" +#include "wine/exception.h" +#include "imagehlp.h" -static WORD CalcCheckSum(DWORD StartValue, LPVOID BaseAddress, DWORD WordCount); +WINE_DEFAULT_DEBUG_CHANNEL(imagehlp); +static WORD CalcCheckSum(DWORD StartValue, LPVOID BaseAddress, DWORD WordCount); /*********************************************************************** * BindImage (IMAGEHLP.@) + * + * NOTES + * See BindImageEx */ BOOL WINAPI BindImage( PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath) @@ -37,42 +46,138 @@ BOOL WINAPI BindImage( /*********************************************************************** * BindImageEx (IMAGEHLP.@) + * + * Compute the virtual address of each function imported by a PE image + * + * PARAMS + * + * Flags [in] Bind options + * ImageName [in] File name of the image to be bound + * DllPath [in] Root of the fallback search path in case the ImageName file cannot be opened + * SymbolPath [in] Symbol file root search path + * StatusRoutine [in] Pointer to a status routine which will be called during the binding process + * + * RETURNS + * Success: TRUE + * Failure: FALSE + * + * NOTES + * Binding is not implemented yet, so far this function only enumerates + * all imported dlls/functions and returns TRUE. */ BOOL WINAPI BindImageEx( DWORD Flags, PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath, PIMAGEHLP_STATUS_ROUTINE StatusRoutine) { - FIXME("(%d, %s, %s, %s, %p): stub\n", - Flags, debugstr_a(ImageName), debugstr_a(DllPath), - debugstr_a(SymbolPath), StatusRoutine - ); - return TRUE; + LOADED_IMAGE loaded_image; + const IMAGE_IMPORT_DESCRIPTOR *import_desc; + ULONG size; + + FIXME("(%d, %s, %s, %s, %p): semi-stub\n", + Flags, debugstr_a(ImageName), debugstr_a(DllPath), + debugstr_a(SymbolPath), StatusRoutine + ); + + if (!(MapAndLoad(ImageName, DllPath, &loaded_image, TRUE, TRUE))) return FALSE; + + if (!(import_desc = RtlImageDirectoryEntryToData((HMODULE)loaded_image.MappedAddress, FALSE, + IMAGE_DIRECTORY_ENTRY_IMPORT, &size))) + { + UnMapAndLoad(&loaded_image); + return TRUE; /* No imported modules means nothing to bind, so we're done. */ + } + + /* FIXME: Does native imagehlp support both 32-bit and 64-bit PE executables? */ +#ifdef _WIN64 + if (loaded_image.FileHeader->OptionalHeader.Magic != IMAGE_NT_OPTIONAL_HDR64_MAGIC) +#else + if (loaded_image.FileHeader->OptionalHeader.Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC) +#endif + { + FIXME("Wrong architecture in PE header, unable to enumerate imports\n"); + UnMapAndLoad(&loaded_image); + return TRUE; + } + + for (; import_desc->Name && import_desc->FirstThunk; ++import_desc) + { + IMAGE_THUNK_DATA *thunk; + char dll_fullname[MAX_PATH]; + const char *dll_name; + + if (!(dll_name = ImageRvaToVa(loaded_image.FileHeader, loaded_image.MappedAddress, + import_desc->Name, 0))) + { + UnMapAndLoad(&loaded_image); + SetLastError(ERROR_INVALID_ACCESS); /* FIXME */ + return FALSE; + } + + if (StatusRoutine) + StatusRoutine(BindImportModule, ImageName, dll_name, 0, 0); + + if (!SearchPathA(DllPath, dll_name, 0, sizeof(dll_fullname), dll_fullname, 0)) + { + UnMapAndLoad(&loaded_image); + SetLastError(ERROR_FILE_NOT_FOUND); + return FALSE; + } + + if (!(thunk = ImageRvaToVa(loaded_image.FileHeader, loaded_image.MappedAddress, + import_desc->OriginalFirstThunk ? import_desc->OriginalFirstThunk : + import_desc->FirstThunk, 0))) + { + ERR("Can't grab thunk data of %s, going to next imported DLL\n", dll_name); + continue; + } + + for (; thunk->u1.Ordinal; ++thunk) + { + /* Ignoring ordinal imports for now */ + if(!IMAGE_SNAP_BY_ORDINAL(thunk->u1.Ordinal)) + { + IMAGE_IMPORT_BY_NAME *iibn; + + if (!(iibn = ImageRvaToVa(loaded_image.FileHeader, loaded_image.MappedAddress, + thunk->u1.AddressOfData, 0))) + { + ERR("Can't grab import by name info, skipping to next ordinal\n"); + continue; + } + + if (StatusRoutine) + StatusRoutine(BindImportProcedure, ImageName, dll_fullname, 0, (ULONG_PTR)iibn->Name); + } + } + } + + UnMapAndLoad(&loaded_image); + return TRUE; } /*********************************************************************** * CheckSum (internal) */ -static WORD CalcCheckSum( - DWORD StartValue, LPVOID BaseAddress, DWORD WordCount) +static WORD CalcCheckSum(DWORD StartValue, LPVOID BaseAddress, DWORD ByteCount) { - LPWORD Ptr; - DWORD Sum; - DWORD i; - - Sum = StartValue; - Ptr = (LPWORD)BaseAddress; - for (i = 0; i < WordCount; i++) - { - Sum += *Ptr; - if (HIWORD(Sum) != 0) - { - Sum = LOWORD(Sum) + HIWORD(Sum); - } - Ptr++; - } - - return (WORD)(LOWORD(Sum) + HIWORD(Sum)); + LPWORD Ptr; + DWORD Sum, i; + + Sum = StartValue; + Ptr = (LPWORD)BaseAddress; + for (i = ByteCount; i > 1; i -= 2) + { + Sum += *Ptr; + if (HIWORD(Sum) != 0) + Sum = LOWORD(Sum) + HIWORD(Sum); + Ptr++; + } + + if (i == 1) + Sum += *(BYTE *)Ptr; + + return (WORD)(LOWORD(Sum) + HIWORD(Sum)); } @@ -86,37 +191,57 @@ PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile( IMAGE_DOS_HEADER *dos = (IMAGE_DOS_HEADER *) BaseAddress; PIMAGE_NT_HEADERS32 Header32; PIMAGE_NT_HEADERS64 Header64; + PIMAGE_NT_HEADERS ret = NULL; DWORD *ChecksumFile; DWORD CalcSum; - DWORD HdrSum; + DWORD HdrSum = 0; TRACE("(%p, %d, %p, %p)\n", BaseAddress, FileLength, HeaderSum, CheckSum ); - CalcSum = (DWORD)CalcCheckSum(0, - BaseAddress, - (FileLength + 1) / sizeof(WORD)); - - if (dos->e_magic != IMAGE_DOS_SIGNATURE) - return NULL; - - Header32 = (IMAGE_NT_HEADERS32 *)((char *)dos + dos->e_lfanew); - - if (Header32->Signature != IMAGE_NT_SIGNATURE) - return NULL; + CalcSum = (DWORD)CalcCheckSum(0, BaseAddress, FileLength); - if (Header32->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC) - ChecksumFile = &Header32->OptionalHeader.CheckSum; - else if (Header32->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) + __TRY { - Header64 = (IMAGE_NT_HEADERS64 *)Header32; - ChecksumFile = &Header64->OptionalHeader.CheckSum; + if (dos->e_magic != IMAGE_DOS_SIGNATURE) +#ifdef __REACTOS__ + _SEH2_LEAVE; +#else + break; +#endif + + Header32 = (IMAGE_NT_HEADERS32 *)((char *)dos + dos->e_lfanew); + if (Header32->Signature != IMAGE_NT_SIGNATURE) +#ifdef __REACTOS__ + _SEH2_LEAVE; +#else + break; +#endif + + ret = (PIMAGE_NT_HEADERS)Header32; + + if (Header32->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC) + ChecksumFile = &Header32->OptionalHeader.CheckSum; + else if (Header32->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) + { + Header64 = (IMAGE_NT_HEADERS64 *)Header32; + ChecksumFile = &Header64->OptionalHeader.CheckSum; + } + else +#ifdef __REACTOS__ + _SEH2_LEAVE; +#else + break; +#endif + + HdrSum = *ChecksumFile; } - else - return NULL; - - HdrSum = *ChecksumFile; + __EXCEPT_PAGE_FAULT + { + /* nothing */ + } + __ENDTRY /* Subtract image checksum from calculated checksum. */ /* fix low word of checksum */ @@ -143,9 +268,9 @@ PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile( CalcSum += FileLength; *CheckSum = CalcSum; - *HeaderSum = *ChecksumFile; + *HeaderSum = HdrSum; - return (PIMAGE_NT_HEADERS) Header32; + return ret; } /*********************************************************************** diff --git a/dll/win32/imagehlp/precomp.h b/dll/win32/imagehlp/precomp.h index e9f8eef0a8..4195b3095e 100644 --- a/dll/win32/imagehlp/precomp.h +++ b/dll/win32/imagehlp/precomp.h @@ -1,3 +1,4 @@ + #ifndef _IMAGEHLP_PCH_ #define _IMAGEHLP_PCH_ @@ -11,6 +12,5 @@ #include <imagehlp.h> #include <wine/debug.h> -WINE_DEFAULT_DEBUG_CHANNEL(imagehlp); -#endif /* _IMAGEHLP_PCH_ */ +#endif /* !_IMAGEHLP_PCH_ */ diff --git a/media/doc/README.WINE b/media/doc/README.WINE index b235854fff..cd8730679d 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -76,7 +76,7 @@ reactos/dll/win32/httpapi # Synced to WineStaging-3.3 reactos/dll/win32/iccvid # Synced to WineStaging-3.3 reactos/dll/win32/ieframe # Synced to WineStaging-3.3 reactos/dll/win32/imaadp32.acm # Synced to WineStaging-3.3 -reactos/dll/win32/imagehlp # Synced to Wine-3.0 +reactos/dll/win32/imagehlp # Synced to WineStaging-3.3 reactos/dll/win32/imm32 # Synced to Wine-2.22 reactos/dll/win32/inetcomm # Synced to Wine-3.0 reactos/dll/win32/inetmib1 # Synced to WineStaging-2.9
6 years, 9 months
1
0
0
0
01/01: [IMAADP32.ACM] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=82fba961cd590a527f51f…
commit 82fba961cd590a527f51fb429dfb79c392aea871 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Thu Mar 15 12:27:22 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Thu Mar 15 12:27:22 2018 +0100 [IMAADP32.ACM] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/imaadp32.acm/imaadp32.c | 24 +++++++++++------------- media/doc/README.WINE | 2 +- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/dll/win32/imaadp32.acm/imaadp32.c b/dll/win32/imaadp32.acm/imaadp32.c index f0f801a3a0..474f548582 100644 --- a/dll/win32/imaadp32.acm/imaadp32.c +++ b/dll/win32/imaadp32.acm/imaadp32.c @@ -19,21 +19,19 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#define WIN32_NO_STATUS - #include <assert.h> #include <stdarg.h> -//#include <string.h> -#include <windef.h> -#include <winbase.h> -#include <wingdi.h> -#include <winuser.h> -#include <winnls.h> -//#include "mmsystem.h" -//#include "mmreg.h" -//#include "msacm.h" -#include <msacmdrv.h> -#include <wine/debug.h> +#include <string.h> +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" +#include "winnls.h" +#include "mmsystem.h" +#include "mmreg.h" +#include "msacm.h" +#include "msacmdrv.h" +#include "wine/debug.h" /* see
http://www.pcisys.net/~melanson/codecs/adpcm.txt
for the details */ diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 24ceb481b9..b235854fff 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -75,7 +75,7 @@ reactos/dll/win32/hnetcfg # Synced to WineStaging-3.3 reactos/dll/win32/httpapi # Synced to WineStaging-3.3 reactos/dll/win32/iccvid # Synced to WineStaging-3.3 reactos/dll/win32/ieframe # Synced to WineStaging-3.3 -reactos/dll/win32/imaadp32.acm # Synced to WineStaging-2.16 +reactos/dll/win32/imaadp32.acm # Synced to WineStaging-3.3 reactos/dll/win32/imagehlp # Synced to Wine-3.0 reactos/dll/win32/imm32 # Synced to Wine-2.22 reactos/dll/win32/inetcomm # Synced to Wine-3.0
6 years, 9 months
1
0
0
0
01/01: [IEFRAME] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=fc19c80d5239ca61c38fb…
commit fc19c80d5239ca61c38fb8a99746a842b19eebff Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Thu Mar 15 12:26:26 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Thu Mar 15 12:26:26 2018 +0100 [IEFRAME] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/ieframe/CMakeLists.txt | 4 +- dll/win32/ieframe/classinfo.c | 4 ++ dll/win32/ieframe/client.c | 9 +++++ dll/win32/ieframe/dochost.c | 9 ++++- dll/win32/ieframe/events.c | 6 +++ dll/win32/ieframe/frame.c | 4 ++ dll/win32/ieframe/ie.c | 4 ++ dll/win32/ieframe/ieframe.h | 77 +++++++++++---------------------------- dll/win32/ieframe/ieframe.rc | 5 +-- dll/win32/ieframe/ieframe_main.c | 10 ++++- dll/win32/ieframe/iehtmlwnd.c | 4 ++ dll/win32/ieframe/iexplore.c | 28 +++++++++++--- dll/win32/ieframe/intshcut.c | 16 ++++++++ dll/win32/ieframe/navigate.c | 15 +++++++- dll/win32/ieframe/oleobject.c | 10 +++++ dll/win32/ieframe/persist.c | 4 ++ dll/win32/ieframe/precomp.h | 31 ++++++++++++++++ dll/win32/ieframe/resource.h | 3 ++ dll/win32/ieframe/shellbrowser.c | 8 +++- dll/win32/ieframe/shelluihelper.c | 4 ++ dll/win32/ieframe/urlhist.c | 5 ++- dll/win32/ieframe/view.c | 6 ++- dll/win32/ieframe/webbrowser.c | 7 ++++ media/doc/README.WINE | 2 +- 24 files changed, 202 insertions(+), 73 deletions(-) diff --git a/dll/win32/ieframe/CMakeLists.txt b/dll/win32/ieframe/CMakeLists.txt index 3cbc2acb26..bf7b6034cd 100644 --- a/dll/win32/ieframe/CMakeLists.txt +++ b/dll/win32/ieframe/CMakeLists.txt @@ -22,7 +22,7 @@ list(APPEND SOURCE urlhist.c view.c webbrowser.c - ieframe.h + precomp.h ${CMAKE_CURRENT_BINARY_DIR}/ieframe_stubs.c) add_library(ieframe SHARED @@ -42,5 +42,5 @@ add_dependencies(ieframe stdole2) set_module_type(ieframe win32dll) target_link_libraries(ieframe uuid wine) add_importlibs(ieframe urlmon shell32 comctl32 shlwapi oleaut32 ole32 user32 gdi32 advapi32 msvcrt kernel32 ntdll) -add_pch(ieframe ieframe.h SOURCE) +add_pch(ieframe precomp.h SOURCE) add_cd_file(TARGET ieframe DESTINATION reactos/system32 FOR all) diff --git a/dll/win32/ieframe/classinfo.c b/dll/win32/ieframe/classinfo.c index 267064b00d..3fa77bb6ce 100644 --- a/dll/win32/ieframe/classinfo.c +++ b/dll/win32/ieframe/classinfo.c @@ -20,6 +20,10 @@ #include "ieframe.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + /********************************************************************** * Implement the IProvideClassInfo2 interface */ diff --git a/dll/win32/ieframe/client.c b/dll/win32/ieframe/client.c index 36f1a59331..4846e28a05 100644 --- a/dll/win32/ieframe/client.c +++ b/dll/win32/ieframe/client.c @@ -16,8 +16,17 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include <stdio.h> + #include "ieframe.h" +#include "mshtmdid.h" +#include "idispids.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + static inline DocHost *impl_from_IOleClientSite(IOleClientSite *iface) { return CONTAINING_RECORD(iface, DocHost, IOleClientSite_iface); diff --git a/dll/win32/ieframe/dochost.c b/dll/win32/ieframe/dochost.c index 6213aa4d67..424868d62e 100644 --- a/dll/win32/ieframe/dochost.c +++ b/dll/win32/ieframe/dochost.c @@ -18,7 +18,14 @@ #include "ieframe.h" -#include <initguid.h> +#include "exdispid.h" +#include "mshtml.h" +#include "perhist.h" +#include "initguid.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); DEFINE_OLEGUID(CGID_DocHostCmdPriv, 0x000214D4L, 0, 0); diff --git a/dll/win32/ieframe/events.c b/dll/win32/ieframe/events.c index 17bc7f1ce8..eef1c17e6c 100644 --- a/dll/win32/ieframe/events.c +++ b/dll/win32/ieframe/events.c @@ -22,8 +22,14 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include <string.h> + #include "ieframe.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + struct ConnectionPoint { IConnectionPoint IConnectionPoint_iface; diff --git a/dll/win32/ieframe/frame.c b/dll/win32/ieframe/frame.c index 73fea3786e..d86c2714c9 100644 --- a/dll/win32/ieframe/frame.c +++ b/dll/win32/ieframe/frame.c @@ -18,6 +18,10 @@ #include "ieframe.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + static inline DocHost *impl_from_IOleInPlaceFrame(IOleInPlaceFrame *iface) { return CONTAINING_RECORD(iface, DocHost, IOleInPlaceFrame_iface); diff --git a/dll/win32/ieframe/ie.c b/dll/win32/ieframe/ie.c index dc8e329330..d7e3aa150c 100644 --- a/dll/win32/ieframe/ie.c +++ b/dll/win32/ieframe/ie.c @@ -18,6 +18,10 @@ #include "ieframe.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + static inline InternetExplorer *impl_from_IWebBrowser2(IWebBrowser2 *iface) { return CONTAINING_RECORD(iface, InternetExplorer, IWebBrowser2_iface); diff --git a/dll/win32/ieframe/ieframe.h b/dll/win32/ieframe/ieframe.h index bab08f4f6e..fc56da9e46 100644 --- a/dll/win32/ieframe/ieframe.h +++ b/dll/win32/ieframe/ieframe.h @@ -18,44 +18,33 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#ifndef _IEFRAME_H_ -#define _IEFRAME_H_ +#pragma once -#include <stdio.h> - -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H +#include <stdarg.h> #define COBJMACROS -#define NONAMELESSUNION -#define NONAMELESSSTRUCT -#include <windef.h> -#include <winbase.h> -#include <wingdi.h> -#include <winreg.h> +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" +#ifdef __REACTOS__ #include <wincon.h> -#include <shlobj.h> -#include <mshtmhst.h> -#include <mshtmdid.h> -#include <exdispid.h> -#include <htiface.h> -#include <idispids.h> -#include <intshcut.h> -#include <perhist.h> -#include <shellapi.h> -#include <shlwapi.h> -#include <shdeprecated.h> -#include <docobjectservice.h> - -#include <wine/unicode.h> -#include <wine/list.h> - -#include <wine/debug.h> -WINE_DEFAULT_DEBUG_CHANNEL(ieframe); - -#include "resource.h" +#endif + +#include "ole2.h" +#include "olectl.h" +#include "shlobj.h" +#include "mshtmhst.h" +#include "exdisp.h" +#include "hlink.h" +#include "htiface.h" +#include "shdeprecated.h" +#include "docobjectservice.h" + +#include "wine/unicode.h" +#include "wine/heap.h" +#include "wine/list.h" typedef struct ConnectionPoint ConnectionPoint; typedef struct DocHost DocHost; @@ -351,26 +340,6 @@ static inline void unlock_module(void) { InterlockedDecrement(&module_ref); } -static inline void* __WINE_ALLOC_SIZE(1) heap_alloc(size_t size) -{ - return HeapAlloc(GetProcessHeap(), 0, size); -} - -static inline void* __WINE_ALLOC_SIZE(1) heap_alloc_zero(size_t size) -{ - return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size); -} - -static inline void* __WINE_ALLOC_SIZE(2) heap_realloc(void *mem, size_t size) -{ - return HeapReAlloc(GetProcessHeap(), 0, mem, size); -} - -static inline BOOL heap_free(void *mem) -{ - return HeapFree(GetProcessHeap(), 0, mem); -} - static inline LPWSTR heap_strdupW(LPCWSTR str) { LPWSTR ret = NULL; @@ -416,5 +385,3 @@ static inline LPSTR co_strdupWtoA(LPCWSTR str) WideCharToMultiByte(CP_ACP, 0, str, -1, ret, len, 0, 0); return ret; } - -#endif /* _IEFRAME_H_ */ diff --git a/dll/win32/ieframe/ieframe.rc b/dll/win32/ieframe/ieframe.rc index 685c70470c..2c90628291 100644 --- a/dll/win32/ieframe/ieframe.rc +++ b/dll/win32/ieframe/ieframe.rc @@ -16,9 +16,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include <windef.h> -#include <winuser.h> - #include "resource.h" #include <reactos/manifest_dll.rc> @@ -77,7 +74,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #define WINE_PRODUCTVERSION_STR "8.0.6001.18702" #define WINE_EXTRAVALUES VALUE "OLESelfRegister","" -#include <wine/wine_common_ver.rc> +#include "wine/wine_common_ver.rc" /* @makedep: ietoolbar.bmp */ IDB_IETOOLBAR BITMAP "resources/ietoolbar.bmp" diff --git a/dll/win32/ieframe/ieframe_main.c b/dll/win32/ieframe/ieframe_main.c index f1fddab0b7..a862f9afe5 100644 --- a/dll/win32/ieframe/ieframe_main.c +++ b/dll/win32/ieframe/ieframe_main.c @@ -18,7 +18,15 @@ #include "ieframe.h" -#include <rpcproxy.h> +#include "initguid.h" +#include "rpcproxy.h" +#include "shlguid.h" +#include "isguids.h" +#include "ieautomation.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); LONG module_ref = 0; HINSTANCE ieframe_instance; diff --git a/dll/win32/ieframe/iehtmlwnd.c b/dll/win32/ieframe/iehtmlwnd.c index 9ab2e74db5..fe97c6373d 100644 --- a/dll/win32/ieframe/iehtmlwnd.c +++ b/dll/win32/ieframe/iehtmlwnd.c @@ -18,6 +18,10 @@ #include "ieframe.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + static inline IEHTMLWindow *impl_from_IHTMLWindow2(IHTMLWindow2 *iface) { return CONTAINING_RECORD(iface, IEHTMLWindow, IHTMLWindow2_iface); diff --git a/dll/win32/ieframe/iexplore.c b/dll/win32/ieframe/iexplore.c index 1e93ea945c..3d581732ad 100644 --- a/dll/win32/ieframe/iexplore.c +++ b/dll/win32/ieframe/iexplore.c @@ -19,13 +19,31 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "ieframe.h" +#define COBJMACROS -#include <mshtmcid.h> -#include <ddeml.h> +#include <stdarg.h> -#include <initguid.h> -#include <ieautomation.h> +#include "ieframe.h" +#include "resource.h" + +#include "winuser.h" +#include "wingdi.h" +#include "winnls.h" +#include "ole2.h" +#include "exdisp.h" +#include "oleidl.h" + +#include "mshtmcid.h" +#include "shellapi.h" +#include "winreg.h" +#include "shlwapi.h" +#include "intshcut.h" +#include "ddeml.h" +#include "ieautomation.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); #define IDI_APPICON 1 diff --git a/dll/win32/ieframe/intshcut.c b/dll/win32/ieframe/intshcut.c index df357d4865..2376b1b424 100644 --- a/dll/win32/ieframe/intshcut.c +++ b/dll/win32/ieframe/intshcut.c @@ -27,8 +27,24 @@ * The installer for the Zuma Deluxe Popcap game is good for testing. */ +#include <stdio.h> + +#define NONAMELESSUNION + #include "ieframe.h" +#include "shlobj.h" +#include "shobjidl.h" +#include "intshcut.h" +#include "shellapi.h" +#include "winreg.h" +#include "shlwapi.h" +#include "shlguid.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + typedef struct { IUniformResourceLocatorA IUniformResourceLocatorA_iface; diff --git a/dll/win32/ieframe/navigate.c b/dll/win32/ieframe/navigate.c index 39130e09f6..658857fadd 100644 --- a/dll/win32/ieframe/navigate.c +++ b/dll/win32/ieframe/navigate.c @@ -16,9 +16,22 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define NONAMELESSUNION + #include "ieframe.h" -#include <wininet.h> +#include "exdispid.h" +#include "shellapi.h" +#include "winreg.h" +#include "shlwapi.h" +#include "wininet.h" +#include "mshtml.h" +#include "perhist.h" +#include "resource.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); static const WCHAR emptyW[] = {0}; diff --git a/dll/win32/ieframe/oleobject.c b/dll/win32/ieframe/oleobject.c index 01e1821df7..1ff9a92666 100644 --- a/dll/win32/ieframe/oleobject.c +++ b/dll/win32/ieframe/oleobject.c @@ -23,8 +23,18 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include <string.h> + #include "ieframe.h" +#include "htiframe.h" +#include "idispids.h" +#include "mshtmdid.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + /* shlwapi.dll */ HWND WINAPI SHSetParentHwnd(HWND hWnd, HWND hWndParent); diff --git a/dll/win32/ieframe/persist.c b/dll/win32/ieframe/persist.c index e09f2045e0..4c890d7ebf 100644 --- a/dll/win32/ieframe/persist.c +++ b/dll/win32/ieframe/persist.c @@ -21,6 +21,10 @@ #include "ieframe.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + /********************************************************************** * Implement the IPersistStorage interface */ diff --git a/dll/win32/ieframe/precomp.h b/dll/win32/ieframe/precomp.h new file mode 100644 index 0000000000..98cb77ff39 --- /dev/null +++ b/dll/win32/ieframe/precomp.h @@ -0,0 +1,31 @@ + +#ifndef _IEFRAME_PRECOMP_H_ +#define _IEFRAME_PRECOMP_H_ + +#include <stdio.h> + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#define NONAMELESSUNION +#define NONAMELESSSTRUCT + +#include "ieframe.h" + +#include <wingdi.h> +#include <winreg.h> +#include <wincon.h> +#include <mshtmdid.h> +#include <exdispid.h> +#include <idispids.h> +#include <intshcut.h> +#include <perhist.h> +#include <shellapi.h> +#include <shlwapi.h> + +#include <wine/debug.h> + +#include "resource.h" + +#endif /* !_IEFRAME_PRECOMP_H_ */ diff --git a/dll/win32/ieframe/resource.h b/dll/win32/ieframe/resource.h index 81af1582d9..00c79beee7 100644 --- a/dll/win32/ieframe/resource.h +++ b/dll/win32/ieframe/resource.h @@ -20,6 +20,9 @@ #pragma once +#include <windef.h> +#include <winuser.h> + #define IDR_BROWSE_MAIN_MENU 1000 #define IDD_BROWSE_OPEN 1001 #define IDC_BROWSE_OPEN_URL 1002 diff --git a/dll/win32/ieframe/shellbrowser.c b/dll/win32/ieframe/shellbrowser.c index 11ce0736d8..f75689e49a 100644 --- a/dll/win32/ieframe/shellbrowser.c +++ b/dll/win32/ieframe/shellbrowser.c @@ -19,9 +19,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include <assert.h> + #include "ieframe.h" +#include "exdispid.h" +#include "shlwapi.h" -#include <assert.h> +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); static inline ShellBrowser *impl_from_IShellBrowser(IShellBrowser *iface) { diff --git a/dll/win32/ieframe/shelluihelper.c b/dll/win32/ieframe/shelluihelper.c index b6c70300d6..cc636f6bdb 100644 --- a/dll/win32/ieframe/shelluihelper.c +++ b/dll/win32/ieframe/shelluihelper.c @@ -18,6 +18,10 @@ #include "ieframe.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + struct ShellUIHelper { IShellUIHelper2 IShellUIHelper2_iface; LONG ref; diff --git a/dll/win32/ieframe/urlhist.c b/dll/win32/ieframe/urlhist.c index e15e312111..d963d9517c 100644 --- a/dll/win32/ieframe/urlhist.c +++ b/dll/win32/ieframe/urlhist.c @@ -17,8 +17,11 @@ */ #include "ieframe.h" +#include "urlhist.h" -#include <urlhist.h> +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); static HRESULT WINAPI UrlHistoryStg_QueryInterface(IUrlHistoryStg2 *iface, REFIID riid, void **ppv) { diff --git a/dll/win32/ieframe/view.c b/dll/win32/ieframe/view.c index 021dd1bc77..546e2511a3 100644 --- a/dll/win32/ieframe/view.c +++ b/dll/win32/ieframe/view.c @@ -19,6 +19,10 @@ #include "ieframe.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + /********************************************************************** * Implement the IViewObject interface */ @@ -56,7 +60,7 @@ static HRESULT WINAPI ViewObject_Draw(IViewObject2 *iface, DWORD dwDrawAspect, FIXME("(%p)->(%d %d %p %p %p %p %p %p %p %08lx)\n", This, dwDrawAspect, lindex, pvAspect, ptd, hdcTargetDev, hdcDraw, lprcBounds, lprcWBounds, pfnContinue, dwContinue); - return E_NOTIMPL; + return S_OK; } static HRESULT WINAPI ViewObject_GetColorSet(IViewObject2 *iface, DWORD dwAspect, diff --git a/dll/win32/ieframe/webbrowser.c b/dll/win32/ieframe/webbrowser.c index 88abd89f74..03acf38869 100644 --- a/dll/win32/ieframe/webbrowser.c +++ b/dll/win32/ieframe/webbrowser.c @@ -21,6 +21,13 @@ #include "ieframe.h" +#include "exdispid.h" +#include "mshtml.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ieframe); + static inline WebBrowser *impl_from_IWebBrowser2(IWebBrowser2 *iface) { return CONTAINING_RECORD(iface, WebBrowser, IWebBrowser2_iface); diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 0fdb236751..24ceb481b9 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -74,7 +74,7 @@ reactos/dll/win32/hlink # Synced to WineStaging-3.3 reactos/dll/win32/hnetcfg # Synced to WineStaging-3.3 reactos/dll/win32/httpapi # Synced to WineStaging-3.3 reactos/dll/win32/iccvid # Synced to WineStaging-3.3 -reactos/dll/win32/ieframe # Synced to Wine-3.0 +reactos/dll/win32/ieframe # Synced to WineStaging-3.3 reactos/dll/win32/imaadp32.acm # Synced to WineStaging-2.16 reactos/dll/win32/imagehlp # Synced to Wine-3.0 reactos/dll/win32/imm32 # Synced to Wine-2.22
6 years, 9 months
1
0
0
0
← Newer
1
...
28
29
30
31
32
33
34
...
44
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
Results per page:
10
25
50
100
200