Wine-devel
Threads by month
- ----- 2026 -----
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 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
April 2019
- 82 participants
- 743 discussions
13 Apr '19
Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
No-op as gcc generates the exact same object files.
Only gdiobj.c, font.c and freetype.c need "CFLAGS=-O2 -g0 -DNDEBUG" as
they use asserts and the line count changes.
dlls/gdi32/dc.c | 2 +-
dlls/gdi32/driver.c | 12 +--
dlls/gdi32/enhmetafile.c | 2 +-
dlls/gdi32/enhmfdrv/init.c | 2 +-
dlls/gdi32/font.c | 34 +++-----
dlls/gdi32/freetype.c | 165 +++++++++++++++----------------------
dlls/gdi32/gdiobj.c | 128 ++++++++++++++--------------
dlls/gdi32/opengl.c | 2 +-
dlls/gdi32/region.c | 2 +-
9 files changed, 151 insertions(+), 198 deletions(-)
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index 8ee8a52d94..159e8436f0 100644
--- a/dlls/gdi32/dc.c
+++ b/dlls/gdi32/dc.c
@@ -36,7 +36,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(dc);
-static const WCHAR displayW[] = { 'd','i','s','p','l','a','y',0 };
+static const WCHAR displayW[] = u"display";
static BOOL DC_DeleteObject( HGDIOBJ handle );
diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c
index 054d7cf418..7dd025813c 100644
--- a/dlls/gdi32/driver.c
+++ b/dlls/gdi32/driver.c
@@ -125,8 +125,8 @@ const struct gdi_dc_funcs *DRIVER_load_driver( LPCWSTR name )
{
HMODULE module;
struct graphics_driver *driver, *new_driver;
- static const WCHAR displayW[] = { 'd','i','s','p','l','a','y',0 };
- static const WCHAR display1W[] = {'\\','\\','.','\\','D','I','S','P','L','A','Y','1',0};
+ static const WCHAR displayW[] = u"display";
+ static const WCHAR display1W[] = u"\\\\.\\DISPLAY1";
/* display driver is a special case */
if (!strcmpiW( name, displayW ) || !strcmpiW( name, display1W )) return get_display_driver();
@@ -858,10 +858,10 @@ const struct gdi_dc_funcs null_driver =
*/
BOOL DRIVER_GetDriverName( LPCWSTR device, LPWSTR driver, DWORD size )
{
- static const WCHAR displayW[] = { 'd','i','s','p','l','a','y',0 };
- static const WCHAR devicesW[] = { 'd','e','v','i','c','e','s',0 };
- static const WCHAR display1W[] = {'\\','\\','.','\\','D','I','S','P','L','A','Y','1',0};
- static const WCHAR empty_strW[] = { 0 };
+ static const WCHAR displayW[] = u"display";
+ static const WCHAR devicesW[] = u"devices";
+ static const WCHAR display1W[] = u"\\\\.\\DISPLAY1";
+ static const WCHAR empty_strW[] = u"";
WCHAR *p;
/* display is a special case */
diff --git a/dlls/gdi32/enhmetafile.c b/dlls/gdi32/enhmetafile.c
index a3360c269a..ff669470d1 100644
--- a/dlls/gdi32/enhmetafile.c
+++ b/dlls/gdi32/enhmetafile.c
@@ -2810,7 +2810,7 @@ typedef struct wmf_in_emf_comment
HENHMETAFILE WINAPI SetWinMetaFileBits(UINT cbBuffer, const BYTE *lpbBuffer, HDC hdcRef,
const METAFILEPICT *lpmfp)
{
- static const WCHAR szDisplayW[] = { 'D','I','S','P','L','A','Y','\0' };
+ static const WCHAR szDisplayW[] = u"DISPLAY";
HMETAFILE hmf = NULL;
HENHMETAFILE ret = NULL;
HDC hdc = NULL, hdcdisp = NULL;
diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c
index 51133705a5..2e47455bdc 100644
--- a/dlls/gdi32/enhmfdrv/init.c
+++ b/dlls/gdi32/enhmfdrv/init.c
@@ -329,7 +329,7 @@ HDC WINAPI CreateEnhMetaFileW(
LPCWSTR description /* [in] optional description */
)
{
- static const WCHAR displayW[] = {'D','I','S','P','L','A','Y',0};
+ static const WCHAR displayW[] = u"DISPLAY";
HDC ret, ref_dc;
DC *dc;
EMFDRV_PDEVICE *physDev;
diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c
index b3d67ff624..14f432f34c 100644
--- a/dlls/gdi32/font.c
+++ b/dlls/gdi32/font.c
@@ -278,8 +278,7 @@ static DWORD get_key_value( HKEY key, const WCHAR *name, DWORD *value )
static UINT get_subpixel_orientation( HKEY key )
{
- static const WCHAR smoothing_orientation[] = {'F','o','n','t','S','m','o','o','t','h','i','n','g',
- 'O','r','i','e','n','t','a','t','i','o','n',0};
+ static const WCHAR smoothing_orientation[] = u"FontSmoothingOrientation";
DWORD orient;
/* FIXME: handle vertical orientations even though Windows doesn't */
@@ -297,8 +296,8 @@ static UINT get_subpixel_orientation( HKEY key )
static UINT get_default_smoothing( HKEY key )
{
- static const WCHAR smoothing[] = {'F','o','n','t','S','m','o','o','t','h','i','n','g',0};
- static const WCHAR smoothing_type[] = {'F','o','n','t','S','m','o','o','t','h','i','n','g','T','y','p','e',0};
+ static const WCHAR smoothing[] = u"FontSmoothing";
+ static const WCHAR smoothing_type[] = u"FontSmoothingType";
DWORD enabled, type;
if (get_key_value( key, smoothing, &enabled )) return 0;
@@ -635,14 +634,11 @@ static DWORD get_associated_charset_info(void)
if (associated_charset == -1)
{
- static const WCHAR assoc_charset_reg_keyW[] = {'S','y','s','t','e','m','\\',
- 'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\',
- 'C','o','n','t','r','o','l','\\','F','o','n','t','A','s','s','o','c','\\',
- 'A','s','s','o','c','i','a','t','e','d',' ','C','h','a','r','s','e','t','\0'};
- static const WCHAR ansiW[] = {'A','N','S','I','(','0','0',')','\0'};
- static const WCHAR oemW[] = {'O','E','M','(','F','F',')','\0'};
- static const WCHAR symbolW[] = {'S','Y','M','B','O','L','(','0','2',')','\0'};
- static const WCHAR yesW[] = {'Y','E','S','\0'};
+ static const WCHAR assoc_charset_reg_keyW[] = u"System\\CurrentControlSet\\Control\\FontAssoc\\Associated Charset";
+ static const WCHAR ansiW[] = u"ANSI(00)";
+ static const WCHAR oemW[] = u"OEM(FF)";
+ static const WCHAR symbolW[] = u"SYMBOL(02)";
+ static const WCHAR yesW[] = u"YES";
HKEY hkey;
WCHAR dataW[32];
DWORD type, data_len;
@@ -731,10 +727,8 @@ static void update_font_code_page( DC *dc, HANDLE font )
static struct font_gamma_ramp *get_font_gamma_ramp( void )
{
- static const WCHAR desktopW[] = { 'C','o','n','t','r','o','l',' ','P','a','n','e','l','\\',
- 'D','e','s','k','t','o','p',0 };
- static const WCHAR smoothing_gamma[] = { 'F','o','n','t','S','m','o','o','t','h','i','n','g',
- 'G','a','m','m','a',0 };
+ static const WCHAR desktopW[] = u"Control Panel\\Desktop";
+ static const WCHAR smoothing_gamma[] = u"FontSmoothingGamma";
const DWORD gamma_default = 1400;
struct font_gamma_ramp *ramp;
DWORD i, gamma;
@@ -863,8 +857,7 @@ static BOOL FONT_DeleteObject( HGDIOBJ handle )
*/
HFONT nulldrv_SelectFont( PHYSDEV dev, HFONT font, UINT *aa_flags )
{
- static const WCHAR desktopW[] = { 'C','o','n','t','r','o','l',' ','P','a','n','e','l','\\',
- 'D','e','s','k','t','o','p',0 };
+ static const WCHAR desktopW[] = u"Control Panel\\Desktop";
static int orientation = -1, smoothing = -1;
LOGFONTW lf;
HKEY key;
@@ -3810,10 +3803,7 @@ UINT WINAPI GetTextCharset(HDC hdc)
LONG WINAPI GdiGetCharDimensions(HDC hdc, LPTEXTMETRICW lptm, LONG *height)
{
SIZE sz;
- static const WCHAR alphabet[] = {
- 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q',
- 'r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H',
- 'I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',0};
+ static const WCHAR alphabet[] = u"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
if(lptm && !GetTextMetricsW(hdc, lptm)) return 0;
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 333856e325..0ada635fea 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -484,21 +484,13 @@ static inline struct freetype_physdev *get_freetype_dev( PHYSDEV dev )
static const struct gdi_dc_funcs freetype_funcs;
-static const WCHAR fontsW[] = {'\\','f','o','n','t','s','\0'};
-static const WCHAR win9x_font_reg_key[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
- 'W','i','n','d','o','w','s','\\',
- 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
- 'F','o','n','t','s','\0'};
-
-static const WCHAR winnt_font_reg_key[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
- 'W','i','n','d','o','w','s',' ','N','T','\\',
- 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
- 'F','o','n','t','s','\0'};
-
-static const WCHAR system_fonts_reg_key[] = {'S','o','f','t','w','a','r','e','\\','F','o','n','t','s','\0'};
-static const WCHAR FixedSys_Value[] = {'F','I','X','E','D','F','O','N','.','F','O','N','\0'};
-static const WCHAR System_Value[] = {'F','O','N','T','S','.','F','O','N','\0'};
-static const WCHAR OEMFont_Value[] = {'O','E','M','F','O','N','T','.','F','O','N','\0'};
+static const WCHAR fontsW[] = u"\\fonts";
+static const WCHAR win9x_font_reg_key[] = u"Software\\Microsoft\\Windows\\CurrentVersion\\Fonts";
+static const WCHAR winnt_font_reg_key[] = u"Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts";
+static const WCHAR system_fonts_reg_key[] = u"Software\\Fonts";
+static const WCHAR FixedSys_Value[] = u"FIXEDFON.FON";
+static const WCHAR System_Value[] = u"FONTS.FON";
+static const WCHAR OEMFont_Value[] = u"OEMFONT.FON";
static const WCHAR * const SystemFontValues[] = {
System_Value,
@@ -507,29 +499,27 @@ static const WCHAR * const SystemFontValues[] = {
NULL
};
-static const WCHAR external_fonts_reg_key[] = {'S','o','f','t','w','a','r','e','\\','W','i','n','e','\\',
- 'F','o','n','t','s','\\','E','x','t','e','r','n','a','l',' ','F','o','n','t','s','\0'};
+static const WCHAR external_fonts_reg_key[] = u"Software\\Wine\\Fonts\\External Fonts";
/* Interesting and well-known (frequently-assumed!) font names */
-static const WCHAR Lucida_Sans_Unicode[] = {'L','u','c','i','d','a',' ','S','a','n','s',' ','U','n','i','c','o','d','e',0};
-static const WCHAR Microsoft_Sans_Serif[] = {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f',0 };
-static const WCHAR Tahoma[] = {'T','a','h','o','m','a',0};
-static const WCHAR MS_UI_Gothic[] = {'M','S',' ','U','I',' ','G','o','t','h','i','c',0};
-static const WCHAR SimSun[] = {'S','i','m','S','u','n',0};
-static const WCHAR Gulim[] = {'G','u','l','i','m',0};
-static const WCHAR PMingLiU[] = {'P','M','i','n','g','L','i','U',0};
-static const WCHAR Batang[] = {'B','a','t','a','n','g',0};
-
-static const WCHAR arial[] = {'A','r','i','a','l',0};
-static const WCHAR bitstream_vera_sans[] = {'B','i','t','s','t','r','e','a','m',' ','V','e','r','a',' ','S','a','n','s',0};
-static const WCHAR bitstream_vera_sans_mono[] = {'B','i','t','s','t','r','e','a','m',' ','V','e','r','a',' ','S','a','n','s',' ','M','o','n','o',0};
-static const WCHAR bitstream_vera_serif[] = {'B','i','t','s','t','r','e','a','m',' ','V','e','r','a',' ','S','e','r','i','f',0};
-static const WCHAR courier_new[] = {'C','o','u','r','i','e','r',' ','N','e','w',0};
-static const WCHAR liberation_mono[] = {'L','i','b','e','r','a','t','i','o','n',' ','M','o','n','o',0};
-static const WCHAR liberation_sans[] = {'L','i','b','e','r','a','t','i','o','n',' ','S','a','n','s',0};
-static const WCHAR liberation_serif[] = {'L','i','b','e','r','a','t','i','o','n',' ','S','e','r','i','f',0};
-static const WCHAR times_new_roman[] = {'T','i','m','e','s',' ','N','e','w',' ','R','o','m','a','n',0};
-static const WCHAR SymbolW[] = {'S','y','m','b','o','l','\0'};
+static const WCHAR Lucida_Sans_Unicode[] = u"Lucida Sans Unicode";
+static const WCHAR Microsoft_Sans_Serif[] = u"Microsoft Sans Serif";
+static const WCHAR Tahoma[] = u"Tahoma";
+static const WCHAR MS_UI_Gothic[] = u"MS UI Gothic";
+static const WCHAR SimSun[] = u"SimSun";
+static const WCHAR Gulim[] = u"Gulim";
+static const WCHAR PMingLiU[] = u"PMingLiU";
+static const WCHAR Batang[] = u"Batang";
+static const WCHAR arial[] = u"Arial";
+static const WCHAR bitstream_vera_sans[] = u"Bitstream Vera Sans";
+static const WCHAR bitstream_vera_sans_mono[] = u"Bitstream Vera Sans Mono";
+static const WCHAR bitstream_vera_serif[] = u"Bitstream Vera Serif";
+static const WCHAR courier_new[] = u"Courier New";
+static const WCHAR liberation_mono[] = u"Liberation Mono";
+static const WCHAR liberation_sans[] = u"Liberation Sans";
+static const WCHAR liberation_serif[] = u"Liberation Serif";
+static const WCHAR times_new_roman[] = u"Times New Roman";
+static const WCHAR SymbolW[] = u"Symbol";
static const WCHAR *default_serif_list[] =
{
@@ -571,23 +561,22 @@ typedef struct tagFontSubst {
} FontSubst;
/* Registry font cache key and value names */
-static const WCHAR wine_fonts_key[] = {'S','o','f','t','w','a','r','e','\\','W','i','n','e','\\',
- 'F','o','n','t','s',0};
-static const WCHAR wine_fonts_cache_key[] = {'C','a','c','h','e',0};
-static const WCHAR english_name_value[] = {'E','n','g','l','i','s','h',' ','N','a','m','e',0};
-static const WCHAR face_index_value[] = {'I','n','d','e','x',0};
-static const WCHAR face_ntmflags_value[] = {'N','t','m','f','l','a','g','s',0};
-static const WCHAR face_version_value[] = {'V','e','r','s','i','o','n',0};
-static const WCHAR face_height_value[] = {'H','e','i','g','h','t',0};
-static const WCHAR face_width_value[] = {'W','i','d','t','h',0};
-static const WCHAR face_size_value[] = {'S','i','z','e',0};
-static const WCHAR face_x_ppem_value[] = {'X','p','p','e','m',0};
-static const WCHAR face_y_ppem_value[] = {'Y','p','p','e','m',0};
-static const WCHAR face_flags_value[] = {'F','l','a','g','s',0};
-static const WCHAR face_internal_leading_value[] = {'I','n','t','e','r','n','a','l',' ','L','e','a','d','i','n','g',0};
-static const WCHAR face_font_sig_value[] = {'F','o','n','t',' ','S','i','g','n','a','t','u','r','e',0};
-static const WCHAR face_file_name_value[] = {'F','i','l','e',' ','N','a','m','e','\0'};
-static const WCHAR face_full_name_value[] = {'F','u','l','l',' ','N','a','m','e','\0'};
+static const WCHAR wine_fonts_key[] = u"Software\\Wine\\Fonts";
+static const WCHAR wine_fonts_cache_key[] = u"Cache";
+static const WCHAR english_name_value[] = u"English Name";
+static const WCHAR face_index_value[] = u"Index";
+static const WCHAR face_ntmflags_value[] = u"Ntmflags";
+static const WCHAR face_version_value[] = u"Version";
+static const WCHAR face_height_value[] = u"Height";
+static const WCHAR face_width_value[] = u"Width";
+static const WCHAR face_size_value[] = u"Size";
+static const WCHAR face_x_ppem_value[] = u"Xppem";
+static const WCHAR face_y_ppem_value[] = u"Yppem";
+static const WCHAR face_flags_value[] = u"Flags";
+static const WCHAR face_internal_leading_value[] = u"Internal Leading";
+static const WCHAR face_font_sig_value[] = u"Font Signature";
+static const WCHAR face_file_name_value[] = u"File Name";
+static const WCHAR face_full_name_value[] = u"Full Name";
struct font_mapping
@@ -615,9 +604,9 @@ static CRITICAL_SECTION_DEBUG critsect_debug =
};
static CRITICAL_SECTION freetype_cs = { &critsect_debug, -1, 0, 0, 0, 0 };
-static const WCHAR font_mutex_nameW[] = {'_','_','W','I','N','E','_','F','O','N','T','_','M','U','T','E','X','_','_','\0'};
+static const WCHAR font_mutex_nameW[] = u"__WINE_FONT_MUTEX__";
-static const WCHAR szDefaultFallbackLink[] = {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f',0};
+static const WCHAR szDefaultFallbackLink[] = u"Microsoft Sans Serif";
static BOOL use_default_fallback = FALSE;
static BOOL get_glyph_index_linked(GdiFont *font, UINT c, GdiFont **linked_font, FT_UInt *glyph, BOOL *vert);
@@ -626,10 +615,7 @@ static BOOL get_bitmap_text_metrics(GdiFont *font);
static BOOL get_text_metrics(GdiFont *font, LPTEXTMETRICW ptm);
static void remove_face_from_cache( Face *face );
-static const WCHAR system_link[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
- 'W','i','n','d','o','w','s',' ','N','T','\\',
- 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','F','o','n','t','L','i','n','k','\\',
- 'S','y','s','t','e','m','L','i','n','k',0};
+static const WCHAR system_link[] = u"Software\\Microsoft\\Windows NT\\CurrentVersion\\FontLink\\SystemLink";
/****************************************
* Notes on .fon files
@@ -1835,7 +1821,7 @@ static void add_face_to_cache(Face *face)
face_key_name = face->StyleName;
else
{
- static const WCHAR fmtW[] = {'%','s','\\','%','d',0};
+ static const WCHAR fmtW[] = u"%s\\%d";
face_key_name = HeapAlloc(GetProcessHeap(), 0, (strlenW(face->StyleName) + 10) * sizeof(WCHAR));
sprintfW(face_key_name, fmtW, face->StyleName, face->size.y_ppem);
}
@@ -1882,7 +1868,7 @@ static void remove_face_from_cache( Face *face )
}
else
{
- static const WCHAR fmtW[] = {'%','s','\\','%','d',0};
+ static const WCHAR fmtW[] = u"%s\\%d";
WCHAR *face_key_name = HeapAlloc(GetProcessHeap(), 0, (strlenW(face->StyleName) + 10) * sizeof(WCHAR));
sprintfW(face_key_name, fmtW, face->StyleName, face->size.y_ppem);
RegDeleteKeyW( hkey_family, face_key_name );
@@ -2576,9 +2562,9 @@ static void init_system_links(void)
WCHAR *entry, *next;
SYSTEM_LINKS *font_link, *system_font_link;
CHILD_FONT *child_font;
- static const WCHAR tahoma_ttf[] = {'t','a','h','o','m','a','.','t','t','f',0};
- static const WCHAR System[] = {'S','y','s','t','e','m',0};
- static const WCHAR MS_Shell_Dlg[] = {'M','S',' ','S','h','e','l','l',' ','D','l','g',0};
+ static const WCHAR tahoma_ttf[] = u"tahoma.ttf";
+ static const WCHAR System[] = u"System";
+ static const WCHAR MS_Shell_Dlg[] = u"MS Shell Dlg";
Face *face;
FontSubst *psub;
UINT i, j;
@@ -3067,7 +3053,7 @@ static BOOL load_font_from_data_dir(LPCWSTR file)
static char *get_winfonts_dir_path(LPCWSTR file)
{
- static const WCHAR slashW[] = {'\\','\0'};
+ static const WCHAR slashW[] = u"\\";
WCHAR windowsdir[MAX_PATH];
GetWindowsDirectoryW(windowsdir, ARRAY_SIZE(windowsdir));
@@ -3083,7 +3069,7 @@ static void load_system_fonts(void)
WCHAR data[MAX_PATH], windowsdir[MAX_PATH], pathW[MAX_PATH];
const WCHAR * const *value;
DWORD dlen, type;
- static const WCHAR fmtW[] = {'%','s','\\','%','s','\0'};
+ static const WCHAR fmtW[] = u"%s\\%s";
char *unixname;
if(RegOpenKeyW(HKEY_CURRENT_CONFIG, system_fonts_reg_key, &hkey) == ERROR_SUCCESS) {
@@ -3123,7 +3109,7 @@ static void update_reg_entries(void)
Family *family;
Face *face;
WCHAR *file, *path;
- static const WCHAR TrueType[] = {' ','(','T','r','u','e','T','y','p','e',')','\0'};
+ static const WCHAR TrueType[] = u" (TrueType)";
if(RegCreateKeyExW(HKEY_LOCAL_MACHINE, winnt_font_reg_key,
0, NULL, 0, KEY_ALL_ACCESS, NULL, &winnt_key, NULL) != ERROR_SUCCESS) {
@@ -3931,35 +3917,15 @@ static void set_multi_value_key(HKEY hkey, const WCHAR *name, const WCHAR *value
static void update_font_system_link_info(UINT current_ansi_codepage)
{
static const WCHAR system_link_simplified_chinese[] =
- {'S','I','M','S','U','N','.','T','T','C',',','S','i','m','S','u','n','\0',
- 'M','I','N','G','L','I','U','.','T','T','C',',','P','M','i','n','g','L','i','u','\0',
- 'M','S','G','O','T','H','I','C','.','T','T','C',',','M','S',' ','U','I',' ','G','o','t','h','i','c','\0',
- 'B','A','T','A','N','G','.','T','T','C',',','B','a','t','a','n','g','\0',
- '\0'};
+ u"SIMSUN.TTC,SimSun\0MINGLIU.TTC,PMingLiu\0MSGOTHIC.TTC,MS UI Gothic\0BATANG.TTC,Batang\0";
static const WCHAR system_link_traditional_chinese[] =
- {'M','I','N','G','L','I','U','.','T','T','C',',','P','M','i','n','g','L','i','u','\0',
- 'S','I','M','S','U','N','.','T','T','C',',','S','i','m','S','u','n','\0',
- 'M','S','G','O','T','H','I','C','.','T','T','C',',','M','S',' ','U','I',' ','G','o','t','h','i','c','\0',
- 'B','A','T','A','N','G','.','T','T','C',',','B','a','t','a','n','g','\0',
- '\0'};
+ u"MINGLIU.TTC,PMingLiu\0SIMSUN.TTC,SimSun\0MSGOTHIC.TTC,MS UI Gothic\0BATANG.TTC,Batang\0";
static const WCHAR system_link_japanese[] =
- {'M','S','G','O','T','H','I','C','.','T','T','C',',','M','S',' ','U','I',' ','G','o','t','h','i','c','\0',
- 'M','I','N','G','L','I','U','.','T','T','C',',','P','M','i','n','g','L','i','U','\0',
- 'S','I','M','S','U','N','.','T','T','C',',','S','i','m','S','u','n','\0',
- 'G','U','L','I','M','.','T','T','C',',','G','u','l','i','m','\0',
- '\0'};
+ u"MSGOTHIC.TTC,MS UI Gothic\0MINGLIU.TTC,PMingLiU\0SIMSUN.TTC,SimSun\0GULIM.TTC,Gulim\0";
static const WCHAR system_link_korean[] =
- {'G','U','L','I','M','.','T','T','C',',','G','u','l','i','m','\0',
- 'M','S','G','O','T','H','I','C','.','T','T','C',',','M','S',' ','U','I',' ','G','o','t','h','i','c','\0',
- 'M','I','N','G','L','I','U','.','T','T','C',',','P','M','i','n','g','L','i','U','\0',
- 'S','I','M','S','U','N','.','T','T','C',',','S','i','m','S','u','n','\0',
- '\0'};
+ u"GULIM.TTC,Gulim\0MSGOTHIC.TTC,MS UI Gothic\0MINGLIU.TTC,PMingLiU\0SIMSUN.TTC,SimSun\0";
static const WCHAR system_link_non_cjk[] =
- {'M','S','G','O','T','H','I','C','.','T','T','C',',','M','S',' ','U','I',' ','G','o','t','h','i','c','\0',
- 'M','I','N','G','L','I','U','.','T','T','C',',','P','M','i','n','g','L','i','U','\0',
- 'S','I','M','S','U','N','.','T','T','C',',','S','i','m','S','u','n','\0',
- 'G','U','L','I','M','.','T','T','C',',','G','u','l','i','m','\0',
- '\0'};
+ u"MSGOTHIC.TTC,MS UI Gothic\0MINGLIU.TTC,PMingLiU\0SIMSUN.TTC,SimSun\0GULIM.TTC,Gulim\0";
HKEY hkey;
if (RegCreateKeyW(HKEY_LOCAL_MACHINE, system_link, &hkey) == ERROR_SUCCESS)
@@ -3998,7 +3964,7 @@ static void update_font_system_link_info(UINT current_ansi_codepage)
static void update_font_info(void)
{
- static const WCHAR logpixels[] = { 'L','o','g','P','i','x','e','l','s',0 };
+ static const WCHAR logpixels[] = u"LogPixels";
char buf[40], cpbuf[40];
DWORD len, type;
HKEY hkey = 0;
@@ -4199,8 +4165,8 @@ sym_not_found:
static void init_font_list(void)
{
- static const WCHAR dot_fonW[] = {'.','f','o','n','\0'};
- static const WCHAR pathW[] = {'P','a','t','h',0};
+ static const WCHAR dot_fonW[] = u".fon";
+ static const WCHAR pathW[] = u"Path";
HKEY hkey;
DWORD valuelen, datalen, i = 0, type, dlen, vlen;
WCHAR windowsdir[MAX_PATH];
@@ -4260,7 +4226,7 @@ static void init_font_list(void)
else if(dlen / 2 >= 6 && !strcmpiW(data + dlen / 2 - 5, dot_fonW))
{
WCHAR pathW[MAX_PATH];
- static const WCHAR fmtW[] = {'%','s','\\','%','s','\0'};
+ static const WCHAR fmtW[] = u"%s\\%s";
BOOL added = FALSE;
sprintfW(pathW, fmtW, windowsdir, data);
@@ -4391,9 +4357,8 @@ BOOL WineEngInit(void)
if (!RegOpenKeyExW(HKEY_CURRENT_USER, wine_fonts_key, 0, KEY_READ, &hkey))
{
- static const WCHAR antialias_fake_bold_or_italic[] = { 'A','n','t','i','a','l','i','a','s','F','a','k','e',
- 'B','o','l','d','O','r','I','t','a','l','i','c',0 };
- static const WCHAR true_options[] = { 'y','Y','t','T','1',0 };
+ static const WCHAR antialias_fake_bold_or_italic[] = u"AntialiasFakeBoldOrItalic";
+ static const WCHAR true_options[] = u"yYtT1";
DWORD type, size;
WCHAR buffer[20];
@@ -7934,7 +7899,7 @@ static BOOL get_outline_text_metrics(GdiFont *font)
full_nameW = get_face_name( ft_face, TT_NAME_ID_UNIQUE_ID, GetSystemDefaultLangID() );
if (!full_nameW)
{
- static const WCHAR fake_nameW[] = {'f','a','k','e',' ','n','a','m','e', 0};
+ static const WCHAR fake_nameW[] = u"fake name";
FIXME("failed to read full_nameW for font %s!\n", wine_dbgstr_w(font->name));
full_nameW = strdupW(fake_nameW);
}
diff --git a/dlls/gdi32/gdiobj.c b/dlls/gdi32/gdiobj.c
index 083a504569..0daa426111 100644
--- a/dlls/gdi32/gdiobj.c
+++ b/dlls/gdi32/gdiobj.c
@@ -128,17 +128,15 @@ static CRITICAL_SECTION gdi_section = { &critsect_debug, -1, 0, 0, 0, 0 };
static const LOGFONTW OEMFixedFont =
{ 12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, OEM_CHARSET,
- 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, {'\0'} };
+ 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, u""};
static const LOGFONTW AnsiFixedFont =
{ 12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET,
- 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'} };
+ 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, u"Courier"};
static const LOGFONTW AnsiVarFont =
{ 12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET,
- 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','a','n','s',' ','S','e','r','i','f','\0'} };
+ 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, u"MS Sans Serif"};
/******************************************************************************
*
@@ -173,308 +171,308 @@ static const struct DefaultFontInfo default_fonts[] =
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ EASTEUROPE_CHARSET,
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ RUSSIAN_CHARSET,
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, RUSSIAN_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, RUSSIAN_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, RUSSIAN_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, RUSSIAN_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ GREEK_CHARSET,
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GREEK_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GREEK_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GREEK_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GREEK_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ TURKISH_CHARSET,
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, TURKISH_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, TURKISH_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, TURKISH_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, TURKISH_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ HEBREW_CHARSET,
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, HEBREW_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, HEBREW_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HEBREW_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HEBREW_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ ARABIC_CHARSET,
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ARABIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ARABIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ARABIC_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ARABIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ BALTIC_CHARSET,
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, BALTIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, BALTIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, BALTIC_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, BALTIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ THAI_CHARSET,
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, THAI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, THAI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, THAI_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, THAI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ SHIFTJIS_CHARSET,
{ /* System */
18, 8, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
18, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ GB2312_CHARSET,
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GB2312_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GB2312_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GB2312_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GB2312_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ HANGEUL_CHARSET,
{ /* System */
16, 8, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ CHINESEBIG5_CHARSET,
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
{ JOHAB_CHARSET,
{ /* System */
16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, JOHAB_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* Device Default */
16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, JOHAB_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'S','y','s','t','e','m','\0'}
+ u"System"
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, JOHAB_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'C','o','u','r','i','e','r','\0'}
+ u"Courier"
},
{ /* DefaultGuiFont */
-12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, JOHAB_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
+ u"MS Shell Dlg"
},
},
};
@@ -598,9 +596,9 @@ BOOL GDI_dec_ref_count( HGDIOBJ handle )
return entry != NULL;
}
-static const WCHAR dpi_key_name[] = {'C','o','n','t','r','o','l',' ','P','a','n','e','l','\\','D','e','s','k','t','o','p','\0'};
-static const WCHAR def_dpi_key_name[] = {'S','o','f','t','w','a','r','e','\\','F','o','n','t','s','\0'};
-static const WCHAR dpi_value_name[] = {'L','o','g','P','i','x','e','l','s','\0'};
+static const WCHAR dpi_key_name[] = u"Control Panel\\Desktop";
+static const WCHAR def_dpi_key_name[] = u"Software\\Fonts";
+static const WCHAR dpi_value_name[] = u"LogPixels";
/******************************************************************************
* get_reg_dword
@@ -653,7 +651,7 @@ DWORD get_system_dpi(void)
if (!pGetDpiForSystem)
{
- static const WCHAR user32W[] = {'u','s','e','r','3','2','.','d','l','l',0};
+ static const WCHAR user32W[] = u"user32.dll";
HMODULE user = GetModuleHandleW( user32W );
if (user) pGetDpiForSystem = (void *)GetProcAddress( user, "GetDpiForSystem" );
}
diff --git a/dlls/gdi32/opengl.c b/dlls/gdi32/opengl.c
index 578737994a..dd23538b82 100644
--- a/dlls/gdi32/opengl.c
+++ b/dlls/gdi32/opengl.c
@@ -36,7 +36,7 @@
#include "gdi_private.h"
-static const WCHAR opengl32W[] = {'o','p','e','n','g','l','3','2','.','d','l','l',0};
+static const WCHAR opengl32W[] = u"opengl32.dll";
static HMODULE opengl32;
static INT (WINAPI *wglChoosePixelFormat)(HDC,const PIXELFORMATDESCRIPTOR *);
static INT (WINAPI *wglDescribePixelFormat)(HDC,INT,UINT,PIXELFORMATDESCRIPTOR*);
diff --git a/dlls/gdi32/region.c b/dlls/gdi32/region.c
index cad6428dc9..b2c3882ad9 100644
--- a/dlls/gdi32/region.c
+++ b/dlls/gdi32/region.c
@@ -1437,7 +1437,7 @@ INT mirror_region( HRGN dst, HRGN src, INT width )
*/
BOOL WINAPI MirrorRgn( HWND hwnd, HRGN hrgn )
{
- static const WCHAR user32W[] = {'u','s','e','r','3','2','.','d','l','l',0};
+ static const WCHAR user32W[] = u"user32.dll";
static BOOL (WINAPI *pGetWindowRect)( HWND hwnd, LPRECT rect );
RECT rect;
--
2.20.1
11
20
13 Apr '19
Signed-off-by: Vincent Povirk <vincent(a)codeweavers.com>
---
This fixes upgrades from a local runtime install to a shared
install.
We should give the local install special treatment because
installing the support msi will remove any runtime msi that
doesn't match. If the other parts of the search path have an
outdated version, installing the support msi won't fix that,
and they shouldn't because the path contains the version.
dlls/mscoree/metahost.c | 6 +-
dlls/mscoree/mscoree_main.c | 102 +++++++++++++++++++++------------
dlls/mscoree/mscoree_private.h | 2 +-
3 files changed, 68 insertions(+), 42 deletions(-)
diff --git a/dlls/mscoree/metahost.c b/dlls/mscoree/metahost.c
index 1b2abd26e4..b268acc449 100644
--- a/dlls/mscoree/metahost.c
+++ b/dlls/mscoree/metahost.c
@@ -339,7 +339,7 @@ static HRESULT CLRRuntimeInfo_GetRuntimeHost(CLRRuntimeInfo *This, RuntimeHost *
return hr;
}
- if (!get_mono_path(mono_path))
+ if (!get_mono_path(mono_path, FALSE))
{
ERR("Wine Mono is not installed\n");
return CLR_E_SHIM_RUNTIME;
@@ -778,9 +778,9 @@ static BOOL get_mono_path_datadir(LPWSTR path)
return ret;
}
-BOOL get_mono_path(LPWSTR path)
+BOOL get_mono_path(LPWSTR path, BOOL skip_local)
{
- return get_mono_path_local(path) ||
+ return (!skip_local && get_mono_path_local(path)) ||
get_mono_path_registry(path) ||
get_mono_path_datadir(path) ||
get_mono_path_unix(INSTALL_DATADIR "/wine/mono/wine-mono-" WINE_MONO_VERSION, path) ||
diff --git a/dlls/mscoree/mscoree_main.c b/dlls/mscoree/mscoree_main.c
index 6393af8c6c..40577de714 100644
--- a/dlls/mscoree/mscoree_main.c
+++ b/dlls/mscoree/mscoree_main.c
@@ -717,23 +717,65 @@ static BOOL invoke_appwiz(void)
return ret;
}
-static BOOL install_wine_mono(void)
+static BOOL get_support_msi(LPCWSTR mono_path, LPWSTR msi_path)
{
static const WCHAR support_msi_relative[] = {'\\','s','u','p','p','o','r','t','\\','w','i','n','e','m','o','n','o','-','s','u','p','p','o','r','t','.','m','s','i',0};
+ UINT (WINAPI *pMsiOpenPackageW)(LPCWSTR,ULONG*);
+ UINT (WINAPI *pMsiGetProductPropertyA)(ULONG,LPCSTR,LPSTR,LPDWORD);
+ UINT (WINAPI *pMsiCloseHandle)(ULONG);
+ HMODULE hmsi = NULL;
+ char versionstringbuf[15];
+ UINT res;
+ DWORD buffer_size;
+ ULONG msiproduct;
+ BOOL ret=FALSE;
+
+ hmsi = GetModuleHandleA("msi");
+
+ strcpyW(msi_path, mono_path);
+ strcatW(msi_path, support_msi_relative);
+
+ pMsiOpenPackageW = (void*)GetProcAddress(hmsi, "MsiOpenPackageW");
+
+ res = pMsiOpenPackageW(msi_path, &msiproduct);
+
+ if (res == ERROR_SUCCESS)
+ {
+ buffer_size = sizeof(versionstringbuf);
+
+ pMsiGetProductPropertyA = (void*)GetProcAddress(hmsi, "MsiGetProductPropertyA");
+
+ res = pMsiGetProductPropertyA(msiproduct, "ProductVersion", versionstringbuf, &buffer_size);
+
+ pMsiCloseHandle = (void*)GetProcAddress(hmsi, "MsiCloseHandle");
+
+ pMsiCloseHandle(msiproduct);
+ }
+
+ if (res == ERROR_SUCCESS) {
+ TRACE("found support msi version %s at %s\n", versionstringbuf, debugstr_w(msi_path));
+
+ if (compare_versions(WINE_MONO_VERSION, versionstringbuf) <= 0)
+ {
+ ret = TRUE;
+ }
+ }
+
+ return ret;
+}
+
+static BOOL install_wine_mono(void)
+{
BOOL is_wow64 = FALSE;
HMODULE hmsi = NULL;
HRESULT initresult = E_FAIL;
UINT (WINAPI *pMsiEnumRelatedProductsA)(LPCSTR,DWORD,DWORD,LPSTR);
UINT (WINAPI *pMsiGetProductInfoA)(LPCSTR,LPCSTR,LPSTR,DWORD*);
- UINT (WINAPI *pMsiOpenPackageW)(LPCWSTR,ULONG*);
- UINT (WINAPI *pMsiGetProductPropertyA)(ULONG,LPCSTR,LPSTR,LPDWORD);
- UINT (WINAPI *pMsiCloseHandle)(ULONG);
UINT (WINAPI *pMsiInstallProductW)(LPCWSTR,LPCWSTR);
char versionstringbuf[15];
char productcodebuf[39];
UINT res;
DWORD buffer_size;
- ULONG msiproduct;
BOOL ret;
WCHAR mono_path[MAX_PATH];
WCHAR support_msi_path[MAX_PATH];
@@ -750,7 +792,7 @@ static BOOL install_wine_mono(void)
TRACE("searching for mono runtime\n");
- if (!get_mono_path(mono_path))
+ if (!get_mono_path(mono_path, FALSE))
{
TRACE("mono runtime not found\n");
return invoke_appwiz();
@@ -795,47 +837,31 @@ static BOOL install_wine_mono(void)
}
}
- strcpyW(support_msi_path, mono_path);
- strcatW(support_msi_path, support_msi_relative);
-
initresult = CoInitialize(NULL);
- pMsiOpenPackageW = (void*)GetProcAddress(hmsi, "MsiOpenPackageW");
-
- res = pMsiOpenPackageW(support_msi_path, &msiproduct);
-
- if (res == ERROR_SUCCESS)
+ ret = get_support_msi(mono_path, support_msi_path);
+ if (!ret)
{
- buffer_size = sizeof(versionstringbuf);
-
- pMsiGetProductPropertyA = (void*)GetProcAddress(hmsi, "MsiGetProductPropertyA");
-
- res = pMsiGetProductPropertyA(msiproduct, "ProductVersion", versionstringbuf, &buffer_size);
-
- pMsiCloseHandle = (void*)GetProcAddress(hmsi, "MsiCloseHandle");
-
- pMsiCloseHandle(msiproduct);
+ /* Try looking outside c:\windows\mono */
+ ret = (get_mono_path(mono_path, TRUE) &&
+ get_support_msi(mono_path, support_msi_path));
}
- if (res == ERROR_SUCCESS) {
- TRACE("found support msi version %s at %s\n", versionstringbuf, debugstr_w(support_msi_path));
-
- if (compare_versions(WINE_MONO_VERSION, versionstringbuf) <= 0)
- {
- TRACE("installing support msi\n");
+ if (ret)
+ {
+ TRACE("installing support msi\n");
- pMsiInstallProductW = (void*)GetProcAddress(hmsi, "MsiInstallProductW");
+ pMsiInstallProductW = (void*)GetProcAddress(hmsi, "MsiInstallProductW");
- res = pMsiInstallProductW(support_msi_path, NULL);
+ res = pMsiInstallProductW(support_msi_path, NULL);
- if (res == ERROR_SUCCESS)
- {
- ret = TRUE;
- goto end;
- }
- else
- ERR("MsiInstallProduct failed, err=%i\n", res);
+ if (res == ERROR_SUCCESS)
+ {
+ ret = TRUE;
+ goto end;
}
+ else
+ ERR("MsiInstallProduct failed, err=%i\n", res);
}
ret = invoke_appwiz();
diff --git a/dlls/mscoree/mscoree_private.h b/dlls/mscoree/mscoree_private.h
index 43209fd187..3a3631e708 100644
--- a/dlls/mscoree/mscoree_private.h
+++ b/dlls/mscoree/mscoree_private.h
@@ -108,7 +108,7 @@ extern HRESULT get_runtime_info(LPCWSTR exefile, LPCWSTR version, LPCWSTR config
IStream *config_stream, DWORD startup_flags, DWORD runtimeinfo_flags, BOOL legacy,
ICLRRuntimeInfo **result) DECLSPEC_HIDDEN;
-extern BOOL get_mono_path(LPWSTR path) DECLSPEC_HIDDEN;
+extern BOOL get_mono_path(LPWSTR path, BOOL skip_local) DECLSPEC_HIDDEN;
extern HRESULT ICLRRuntimeInfo_GetRuntimeHost(ICLRRuntimeInfo *iface, RuntimeHost **result) DECLSPEC_HIDDEN;
--
2.17.1
1
0
Re: [PATCH 1/4] shell32/autocomplete: Implement the listbox scrollbar manually
by Gabriel Ivăncescu 13 Apr '19
by Gabriel Ivăncescu 13 Apr '19
13 Apr '19
Hi,
I think this was rejected too hastily. Sorry if the analysis will be a
little verbose, but sometimes it's really hard to convince...
I don't think SBS_SIZEBOX is a net gain in code simplicity (on the
contrary) if you take the entire patchset into account. I tried it first
and gave up on it, but maybe I'm missing something...
I mean, what are the problems with the current code? As far as I am
aware (please elaborate if I'm missing something), the possible ones:
(1) is painting the grip manually an issue?
(2) is WM_NCHITTEST an issue?
(3) is WM_NCCALCSIZE an issue?
I can't see anything else compared to a SBS_SIZEBOX implementation, so
let's analyze the above 3 and understand why they are needed *even* with
SBS_SIZEBOX. But first, please take a look at patch 4/4 (162405) if you
haven't, to see what kind of code would need to be at the end of the
series. That's very important for my point below.
Now, let's assume that SBS_SIZEBOX was used for the grip on patch 2/4
(presumably that's why it was rejected) and look at the 3 issues again,
with the patch 4/4 in mind:
(1) painting the grip manually will *still* have to be done because the
grip needs to be flipped vertically in patch 4/4. No gain in simplicity.
(2) WM_NCHITTEST will *still* have to be done manually because of the
vertical flip (HTTOPRIGHT instead) *and* the fact the grip acts like a
square even when it's a triangle, to match Windows. No gain.
(3) WM_NCCALCSIZE can be removed. However, since with SBS_SIZEBOX when
the scrollbar is visible, we can't just simply set the scroll/grip
window to the listbox height in update_listbox_size, but instead have to
special-case the flip to position both properly in that case... it would
simply move the logic to update_listbox_size instead of WM_NCCALCSIZE.
No real gain in simplicity.
Meanwhile, using SBS_SIZEBOX means adding yet another window to keep
track of, initialize, and then position in update_listbox_size with the
rest. No matter how I look at it, it will add *more* code, not less,
after patch 4/4. But again, maybe I am missing something, and if so
please elaborate on why you think using SBS_SIZEBOX is a better idea.
I'd appreciate if I didn't have to actually waste time changing the code
to end up with slightly more complex code, which is the opposite goal of
what was intended...
Thanks,
Gabriel
On 4/12/19 9:11 PM, Marvin wrote:
> Thank you for your contribution to Wine!
>
> This is an automated notification to let you know that your patch has
> been reviewed and its status set to "Rejected".
>
> This means that the patch has been rejected by a reviewer. You should
> have received a mail explaining why it was rejected. You need to fix
> the issue and resend the patch, or if you are convinced that your
> patch is good as is, you should reply to the rejection message with
> your counterarguments.
>
> If you do not understand the reason for this status, disagree with our
> assessment, or are simply not sure how to proceed next, please ask for
> clarification by replying to this email.
>
1
0
With yesterday's Git update, Wine now has the ability to use a shared
install of Wine Mono. This greatly reduces the disk space needed by
each prefix, and it probably speeds up prefix creation as well. Those
changes will be in Wine 4.6.
The .msi package will continue to work as before. We recently added
/opt/wine/mono and /opt/wine/gecko to the search paths for the Mono
and Gecko msi's, mainly so that third-party distro packages (such as
winehq's) can install them without interfering with future official
distribution packages that may be named differently. I think the
commit adding this, 2f6896b14d2b1905a25b1ef55bcdc792f9fa02ac, is safe
to apply to older versions.
The "shared" version of Wine Mono can be found at
https://dl.winehq.org/wine/wine-mono/4.8.1/wine-mono-bin-4.8.1.tar.gz.
It should be extracted to /usr/share/wine/mono or /opt/wine/mono. This
will create a directory that includes the version number, so multiple
versions can be installed independently. This file can also be built
using the source tarball, of course.
For more details, see the release notes I put on Github:
https://github.com/madewokherd/wine-mono/releases/tag/wine-mono-4.8.1
2
2
13 Apr '19
Signed-off-by: Mathew Hodson <mathew.hodson(a)gmail.com>
---
include/wine/test.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/wine/test.h b/include/wine/test.h
index 22ba7e8..0797204 100644
--- a/include/wine/test.h
+++ b/include/wine/test.h
@@ -511,7 +511,7 @@ const char *wine_dbgstr_wn( const WCHAR *str, int n )
case '\\': *dst++ = '\\'; *dst++ = '\\'; break;
default:
if (c >= ' ' && c <= 126)
- *dst++ = c;
+ *dst++ = (char)c;
else
{
*dst++ = '\\';
--
2.7.4
1
0
12 Apr '19
> That's not a commit message. Regardless, would whatever issue this
> resolves also apply to d3d11_swapchain_Present1(),
> d3d12_swapchain_Present() and/or d3d12_swapchain_Present1()?
Any of the listed have no effect.
1
0
12 Apr '19
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=12501
I've implemented some of the functions in mspatcha.dll, including
ApplyPatchToFileW. I'm currently writing tests, but patch creation is not
implemented, so only Windows can generate patch test files. How does
testing normally work in this situation? It is possible to embed some very
small test files as strings within the source code. A crosstest build
should work too. Any other suggestions? I am not yet very familiar with the
code base.
Regards,
Conor
2
1
[PATCH vkd3d 5/5] vkd3d: Implement d3d12_versioned_root_signature_deserializer_GetRootSignatureDescAtVersion().
by Józef Kucia 12 Apr '19
by Józef Kucia 12 Apr '19
12 Apr '19
From: Józef Kucia <jkucia(a)codeweavers.com>
Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com>
---
libs/vkd3d/vkd3d_main.c | 51 +++++++++++++++++++++++++++++++++++++----
1 file changed, 47 insertions(+), 4 deletions(-)
diff --git a/libs/vkd3d/vkd3d_main.c b/libs/vkd3d/vkd3d_main.c
index be8c400caf4c..29e7e8ae5ca6 100644
--- a/libs/vkd3d/vkd3d_main.c
+++ b/libs/vkd3d/vkd3d_main.c
@@ -217,7 +217,7 @@ struct d3d12_versioned_root_signature_deserializer
{
D3D12_VERSIONED_ROOT_SIGNATURE_DESC d3d12;
struct vkd3d_versioned_root_signature_desc vkd3d;
- } desc;
+ } desc, other_desc;
};
STATIC_ASSERT(sizeof(D3D12_VERSIONED_ROOT_SIGNATURE_DESC) == sizeof(struct vkd3d_versioned_root_signature_desc));
@@ -270,20 +270,61 @@ static ULONG STDMETHODCALLTYPE d3d12_versioned_root_signature_deserializer_Relea
if (!refcount)
{
vkd3d_shader_free_versioned_root_signature(&deserializer->desc.vkd3d);
+ vkd3d_shader_free_versioned_root_signature(&deserializer->other_desc.vkd3d);
vkd3d_free(deserializer);
}
return refcount;
}
+static enum vkd3d_root_signature_version vkd3d_root_signature_version_from_d3d12(D3D_ROOT_SIGNATURE_VERSION version)
+{
+ switch (version)
+ {
+ case D3D_ROOT_SIGNATURE_VERSION_1_0:
+ return VKD3D_ROOT_SIGNATURE_VERSION_1_0;
+ case D3D_ROOT_SIGNATURE_VERSION_1_1:
+ return VKD3D_ROOT_SIGNATURE_VERSION_1_1;
+ default:
+ WARN("Unknown root signature version %#x.\n", version);
+ return 0;
+ }
+}
+
static HRESULT STDMETHODCALLTYPE d3d12_versioned_root_signature_deserializer_GetRootSignatureDescAtVersion(
ID3D12VersionedRootSignatureDeserializer *iface, D3D_ROOT_SIGNATURE_VERSION version,
const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc)
{
- FIXME("iface %p, version %#x, desc %p stub!\n", iface, version, desc);
+ struct d3d12_versioned_root_signature_deserializer *deserializer = impl_from_ID3D12VersionedRootSignatureDeserializer(iface);
+ int ret;
- *desc = NULL;
- return E_NOTIMPL;
+ TRACE("iface %p, version %#x, desc %p.\n", iface, version, desc);
+
+ if (version != D3D_ROOT_SIGNATURE_VERSION_1_0 && version != D3D_ROOT_SIGNATURE_VERSION_1_1)
+ {
+ WARN("Root signature version %#x not supported.\n", version);
+ return E_INVALIDARG;
+ }
+
+ if (deserializer->desc.d3d12.Version == version)
+ {
+ *desc = &deserializer->desc.d3d12;
+ return S_OK;
+ }
+
+ if (!deserializer->other_desc.d3d12.Version)
+ {
+ if ((ret = vkd3d_shader_convert_root_signature(&deserializer->other_desc.vkd3d,
+ vkd3d_root_signature_version_from_d3d12(version), &deserializer->desc.vkd3d)) < 0)
+ {
+ WARN("Failed to convert versioned root signature, vkd3d result %d.\n", ret);
+ return hresult_from_vkd3d_result(ret);
+ }
+ }
+
+ assert(deserializer->other_desc.d3d12.Version == version);
+ *desc = &deserializer->other_desc.d3d12;
+ return S_OK;
}
static const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE
@@ -321,6 +362,8 @@ static HRESULT d3d12_versioned_root_signature_deserializer_init(struct d3d12_ver
return hresult_from_vkd3d_result(ret);
}
+ memset(&deserializer->other_desc, 0, sizeof(deserializer->other_desc));
+
return S_OK;
}
--
2.21.0
1
0
[PATCH vkd3d 3/5] vkd3d: Implement vkd3d_create_versioned_root_signature_deserializer().
by Józef Kucia 12 Apr '19
by Józef Kucia 12 Apr '19
12 Apr '19
From: Józef Kucia <jkucia(a)codeweavers.com>
Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com>
---
libs/vkd3d/vkd3d_main.c | 137 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 135 insertions(+), 2 deletions(-)
diff --git a/libs/vkd3d/vkd3d_main.c b/libs/vkd3d/vkd3d_main.c
index 8f9351bbacac..be8c400caf4c 100644
--- a/libs/vkd3d/vkd3d_main.c
+++ b/libs/vkd3d/vkd3d_main.c
@@ -92,6 +92,8 @@ struct d3d12_root_signature_deserializer
} desc;
};
+STATIC_ASSERT(sizeof(D3D12_ROOT_SIGNATURE_DESC) == sizeof(struct vkd3d_root_signature_desc));
+
static struct d3d12_root_signature_deserializer *impl_from_ID3D12RootSignatureDeserializer(
ID3D12RootSignatureDeserializer *iface)
{
@@ -205,13 +207,144 @@ HRESULT vkd3d_create_root_signature_deserializer(const void *data, SIZE_T data_s
&IID_ID3D12RootSignatureDeserializer, iid, deserializer);
}
+/* ID3D12VersionedRootSignatureDeserializer */
+struct d3d12_versioned_root_signature_deserializer
+{
+ ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer_iface;
+ LONG refcount;
+
+ union
+ {
+ D3D12_VERSIONED_ROOT_SIGNATURE_DESC d3d12;
+ struct vkd3d_versioned_root_signature_desc vkd3d;
+ } desc;
+};
+
+STATIC_ASSERT(sizeof(D3D12_VERSIONED_ROOT_SIGNATURE_DESC) == sizeof(struct vkd3d_versioned_root_signature_desc));
+
+static struct d3d12_versioned_root_signature_deserializer *impl_from_ID3D12VersionedRootSignatureDeserializer(
+ ID3D12VersionedRootSignatureDeserializer *iface)
+{
+ return CONTAINING_RECORD(iface, struct d3d12_versioned_root_signature_deserializer,
+ ID3D12VersionedRootSignatureDeserializer_iface);
+}
+
+static HRESULT STDMETHODCALLTYPE d3d12_versioned_root_signature_deserializer_QueryInterface(
+ ID3D12VersionedRootSignatureDeserializer *iface, REFIID iid, void **object)
+{
+ TRACE("iface %p, iid %s, object %p.\n", iface, debugstr_guid(iid), object);
+
+ /* QueryInterface() implementation is broken, E_NOINTERFACE is returned for
+ * IUnknown.
+ */
+ if (IsEqualGUID(iid, &IID_ID3D12VersionedRootSignatureDeserializer))
+ {
+ ID3D12VersionedRootSignatureDeserializer_AddRef(iface);
+ *object = iface;
+ return S_OK;
+ }
+
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
+
+ *object = NULL;
+ return E_NOINTERFACE;
+}
+
+static ULONG STDMETHODCALLTYPE d3d12_versioned_root_signature_deserializer_AddRef(ID3D12VersionedRootSignatureDeserializer *iface)
+{
+ struct d3d12_versioned_root_signature_deserializer *deserializer = impl_from_ID3D12VersionedRootSignatureDeserializer(iface);
+ ULONG refcount = InterlockedIncrement(&deserializer->refcount);
+
+ TRACE("%p increasing refcount to %u.\n", deserializer, refcount);
+
+ return refcount;
+}
+
+static ULONG STDMETHODCALLTYPE d3d12_versioned_root_signature_deserializer_Release(ID3D12VersionedRootSignatureDeserializer *iface)
+{
+ struct d3d12_versioned_root_signature_deserializer *deserializer = impl_from_ID3D12VersionedRootSignatureDeserializer(iface);
+ ULONG refcount = InterlockedDecrement(&deserializer->refcount);
+
+ TRACE("%p decreasing refcount to %u.\n", deserializer, refcount);
+
+ if (!refcount)
+ {
+ vkd3d_shader_free_versioned_root_signature(&deserializer->desc.vkd3d);
+ vkd3d_free(deserializer);
+ }
+
+ return refcount;
+}
+
+static HRESULT STDMETHODCALLTYPE d3d12_versioned_root_signature_deserializer_GetRootSignatureDescAtVersion(
+ ID3D12VersionedRootSignatureDeserializer *iface, D3D_ROOT_SIGNATURE_VERSION version,
+ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc)
+{
+ FIXME("iface %p, version %#x, desc %p stub!\n", iface, version, desc);
+
+ *desc = NULL;
+ return E_NOTIMPL;
+}
+
+static const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE
+d3d12_versioned_root_signature_deserializer_GetUnconvertedRootSignatureDesc(ID3D12VersionedRootSignatureDeserializer *iface)
+{
+ struct d3d12_versioned_root_signature_deserializer *deserializer = impl_from_ID3D12VersionedRootSignatureDeserializer(iface);
+
+ TRACE("iface %p.\n", iface);
+
+ return &deserializer->desc.d3d12;
+}
+
+static const struct ID3D12VersionedRootSignatureDeserializerVtbl d3d12_versioned_root_signature_deserializer_vtbl =
+{
+ /* IUnknown methods */
+ d3d12_versioned_root_signature_deserializer_QueryInterface,
+ d3d12_versioned_root_signature_deserializer_AddRef,
+ d3d12_versioned_root_signature_deserializer_Release,
+ /* ID3D12VersionedRootSignatureDeserializer methods */
+ d3d12_versioned_root_signature_deserializer_GetRootSignatureDescAtVersion,
+ d3d12_versioned_root_signature_deserializer_GetUnconvertedRootSignatureDesc,
+};
+
+static HRESULT d3d12_versioned_root_signature_deserializer_init(struct d3d12_versioned_root_signature_deserializer *deserializer,
+ const struct vkd3d_shader_code *dxbc)
+{
+ int ret;
+
+ deserializer->ID3D12VersionedRootSignatureDeserializer_iface.lpVtbl = &d3d12_versioned_root_signature_deserializer_vtbl;
+ deserializer->refcount = 1;
+
+ if ((ret = vkd3d_shader_parse_versioned_root_signature(dxbc, &deserializer->desc.vkd3d)) < 0)
+ {
+ WARN("Failed to parse root signature, vkd3d result %d.\n", ret);
+ return hresult_from_vkd3d_result(ret);
+ }
+
+ return S_OK;
+}
+
HRESULT vkd3d_create_versioned_root_signature_deserializer(const void *data, SIZE_T data_size,
REFIID iid, void **deserializer)
{
- FIXME("data %p, data_size %lu, iid %s, deserializer %p stub!\n",
+ struct d3d12_versioned_root_signature_deserializer *object;
+ struct vkd3d_shader_code dxbc = {data, data_size};
+ HRESULT hr;
+
+ TRACE("data %p, data_size %lu, iid %s, deserializer %p.\n",
data, data_size, debugstr_guid(iid), deserializer);
- return E_NOTIMPL;
+ if (!(object = vkd3d_malloc(sizeof(*object))))
+ return E_OUTOFMEMORY;
+
+ if (FAILED(hr = d3d12_versioned_root_signature_deserializer_init(object, &dxbc)))
+ {
+ vkd3d_free(object);
+ return hr;
+ }
+
+ return return_interface(&object->ID3D12VersionedRootSignatureDeserializer_iface,
+ &IID_ID3D12VersionedRootSignatureDeserializer, iid, deserializer);
}
/* ID3DBlob */
--
2.21.0
1
0
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
dlls/dbgeng/dbgeng.c | 795 +++++++++++++++++++++++++++++++++++++++----
1 file changed, 733 insertions(+), 62 deletions(-)
diff --git a/dlls/dbgeng/dbgeng.c b/dlls/dbgeng/dbgeng.c
index f9faef06dd..c54d13f6cd 100644
--- a/dlls/dbgeng/dbgeng.c
+++ b/dlls/dbgeng/dbgeng.c
@@ -46,7 +46,7 @@ struct debug_client
{
IDebugClient IDebugClient_iface;
IDebugDataSpaces IDebugDataSpaces_iface;
- IDebugSymbols IDebugSymbols_iface;
+ IDebugSymbols3 IDebugSymbols3_iface;
IDebugControl2 IDebugControl2_iface;
LONG refcount;
ULONG engine_options;
@@ -64,9 +64,9 @@ static struct debug_client *impl_from_IDebugDataSpaces(IDebugDataSpaces *iface)
return CONTAINING_RECORD(iface, struct debug_client, IDebugDataSpaces_iface);
}
-static struct debug_client *impl_from_IDebugSymbols(IDebugSymbols *iface)
+static struct debug_client *impl_from_IDebugSymbols3(IDebugSymbols3 *iface)
{
- return CONTAINING_RECORD(iface, struct debug_client, IDebugSymbols_iface);
+ return CONTAINING_RECORD(iface, struct debug_client, IDebugSymbols3_iface);
}
static struct debug_client *impl_from_IDebugControl2(IDebugControl2 *iface)
@@ -89,9 +89,11 @@ static HRESULT STDMETHODCALLTYPE debugclient_QueryInterface(IDebugClient *iface,
{
*obj = &debug_client->IDebugDataSpaces_iface;
}
- else if (IsEqualIID(riid, &IID_IDebugSymbols))
+ else if (IsEqualIID(riid, &IID_IDebugSymbols)
+ || IsEqualIID(riid, &IID_IDebugSymbols2)
+ || IsEqualIID(riid, &IID_IDebugSymbols3))
{
- *obj = &debug_client->IDebugSymbols_iface;
+ *obj = &debug_client->IDebugSymbols3_iface;
}
else if (IsEqualIID(riid, &IID_IDebugControl2)
|| IsEqualIID(riid, &IID_IDebugControl))
@@ -766,56 +768,56 @@ static const IDebugDataSpacesVtbl debugdataspacesvtbl =
debugdataspaces_ReadProcessorSystemData,
};
-static HRESULT STDMETHODCALLTYPE debugsymbols_QueryInterface(IDebugSymbols *iface, REFIID riid, void **obj)
+static HRESULT STDMETHODCALLTYPE debugsymbols_QueryInterface(IDebugSymbols3 *iface, REFIID riid, void **obj)
{
- struct debug_client *debug_client = impl_from_IDebugSymbols(iface);
+ struct debug_client *debug_client = impl_from_IDebugSymbols3(iface);
IUnknown *unk = (IUnknown *)&debug_client->IDebugClient_iface;
return IUnknown_QueryInterface(unk, riid, obj);
}
-static ULONG STDMETHODCALLTYPE debugsymbols_AddRef(IDebugSymbols *iface)
+static ULONG STDMETHODCALLTYPE debugsymbols_AddRef(IDebugSymbols3 *iface)
{
- struct debug_client *debug_client = impl_from_IDebugSymbols(iface);
+ struct debug_client *debug_client = impl_from_IDebugSymbols3(iface);
IUnknown *unk = (IUnknown *)&debug_client->IDebugClient_iface;
return IUnknown_AddRef(unk);
}
-static ULONG STDMETHODCALLTYPE debugsymbols_Release(IDebugSymbols *iface)
+static ULONG STDMETHODCALLTYPE debugsymbols_Release(IDebugSymbols3 *iface)
{
- struct debug_client *debug_client = impl_from_IDebugSymbols(iface);
+ struct debug_client *debug_client = impl_from_IDebugSymbols3(iface);
IUnknown *unk = (IUnknown *)&debug_client->IDebugClient_iface;
return IUnknown_Release(unk);
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolOptions(IDebugSymbols *iface, ULONG *options)
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolOptions(IDebugSymbols3 *iface, ULONG *options)
{
FIXME("%p, %p stub.\n", iface, options);
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_AddSymbolOptions(IDebugSymbols *iface, ULONG options)
+static HRESULT STDMETHODCALLTYPE debugsymbols_AddSymbolOptions(IDebugSymbols3 *iface, ULONG options)
{
FIXME("%p, %#x stub.\n", iface, options);
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_RemoveSymbolOptions(IDebugSymbols *iface, ULONG options)
+static HRESULT STDMETHODCALLTYPE debugsymbols_RemoveSymbolOptions(IDebugSymbols3 *iface, ULONG options)
{
FIXME("%p, %#x stub.\n", iface, options);
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_SetSymbolOptions(IDebugSymbols *iface, ULONG options)
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetSymbolOptions(IDebugSymbols3 *iface, ULONG options)
{
FIXME("%p, %#x stub.\n", iface, options);
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetNameByOffset(IDebugSymbols *iface, ULONG64 offset, char *buffer,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetNameByOffset(IDebugSymbols3 *iface, ULONG64 offset, char *buffer,
ULONG buffer_size, ULONG *name_size, ULONG64 *displacement)
{
FIXME("%p, %s, %p, %u, %p, %p stub.\n", iface, wine_dbgstr_longlong(offset), buffer, buffer_size,
@@ -824,7 +826,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetNameByOffset(IDebugSymbols *ifa
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetOffsetByName(IDebugSymbols *iface, const char *symbol,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetOffsetByName(IDebugSymbols3 *iface, const char *symbol,
ULONG64 *offset)
{
FIXME("%p, %s, %p stub.\n", iface, debugstr_a(symbol), offset);
@@ -832,7 +834,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetOffsetByName(IDebugSymbols *ifa
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetNearNameByOffset(IDebugSymbols *iface, ULONG64 offset, LONG delta,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetNearNameByOffset(IDebugSymbols3 *iface, ULONG64 offset, LONG delta,
char *buffer, ULONG buffer_size, ULONG *name_size, ULONG64 *displacement)
{
FIXME("%p, %s, %d, %p, %u, %p, %p stub.\n", iface, wine_dbgstr_longlong(offset), delta, buffer, buffer_size,
@@ -841,7 +843,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetNearNameByOffset(IDebugSymbols
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetLineByOffset(IDebugSymbols *iface, ULONG64 offset, ULONG *line,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetLineByOffset(IDebugSymbols3 *iface, ULONG64 offset, ULONG *line,
char *buffer, ULONG buffer_size, ULONG *file_size, ULONG64 *displacement)
{
FIXME("%p, %s, %p, %p, %u, %p, %p stub.\n", iface, wine_dbgstr_longlong(offset), line, buffer, buffer_size,
@@ -850,7 +852,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetLineByOffset(IDebugSymbols *ifa
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetOffsetByLine(IDebugSymbols *iface, ULONG line, const char *file,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetOffsetByLine(IDebugSymbols3 *iface, ULONG line, const char *file,
ULONG64 *offset)
{
FIXME("%p, %u, %s, %p stub.\n", iface, line, debugstr_a(file), offset);
@@ -858,21 +860,21 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetOffsetByLine(IDebugSymbols *ifa
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetNumberModules(IDebugSymbols *iface, ULONG *loaded, ULONG *unloaded)
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetNumberModules(IDebugSymbols3 *iface, ULONG *loaded, ULONG *unloaded)
{
FIXME("%p, %p, %p stub.\n", iface, loaded, unloaded);
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByIndex(IDebugSymbols *iface, ULONG index, ULONG64 *base)
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByIndex(IDebugSymbols3 *iface, ULONG index, ULONG64 *base)
{
FIXME("%p, %u, %p stub.\n", iface, index, base);
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByModuleName(IDebugSymbols *iface, const char *name,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByModuleName(IDebugSymbols3 *iface, const char *name,
ULONG start_index, ULONG *index, ULONG64 *base)
{
FIXME("%p, %s, %u, %p, %p stub.\n", iface, debugstr_a(name), start_index, index, base);
@@ -880,7 +882,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByModuleName(IDebugSymbol
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByOffset(IDebugSymbols *iface, ULONG64 offset,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByOffset(IDebugSymbols3 *iface, ULONG64 offset,
ULONG start_index, ULONG *index, ULONG64 *base)
{
FIXME("%p, %s, %u, %p, %p stub.\n", iface, wine_dbgstr_longlong(offset), start_index, index, base);
@@ -888,7 +890,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByOffset(IDebugSymbols *i
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleNames(IDebugSymbols *iface, ULONG index, ULONG64 base,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleNames(IDebugSymbols3 *iface, ULONG index, ULONG64 base,
char *image_name, ULONG image_name_buffer_size, ULONG *image_name_size, char *module_name,
ULONG module_name_buffer_size, ULONG *module_name_size, char *loaded_image_name,
ULONG loaded_image_name_buffer_size, ULONG *loaded_image_size)
@@ -900,7 +902,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleNames(IDebugSymbols *ifac
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleParameters(IDebugSymbols *iface, ULONG count, ULONG64 *bases,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleParameters(IDebugSymbols3 *iface, ULONG count, ULONG64 *bases,
ULONG start, DEBUG_MODULE_PARAMETERS *parameters)
{
FIXME("%p, %u, %p, %u, %p stub.\n", iface, count, bases, start, parameters);
@@ -908,14 +910,14 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleParameters(IDebugSymbols
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolModule(IDebugSymbols *iface, const char *symbol, ULONG64 *base)
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolModule(IDebugSymbols3 *iface, const char *symbol, ULONG64 *base)
{
FIXME("%p, %s, %p stub.\n", iface, debugstr_a(symbol), base);
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeName(IDebugSymbols *iface, ULONG64 base, ULONG type_id,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeName(IDebugSymbols3 *iface, ULONG64 base, ULONG type_id,
char *buffer, ULONG buffer_size, ULONG *name_size)
{
FIXME("%p, %s, %u, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(base), type_id, buffer,
@@ -924,7 +926,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeName(IDebugSymbols *iface,
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeId(IDebugSymbols *iface, ULONG64 base, const char *name,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeId(IDebugSymbols3 *iface, ULONG64 base, const char *name,
ULONG *type_id)
{
FIXME("%p, %s, %s, %p stub.\n", iface, wine_dbgstr_longlong(base), debugstr_a(name), type_id);
@@ -932,7 +934,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeId(IDebugSymbols *iface, UL
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeSize(IDebugSymbols *iface, ULONG64 base, ULONG type_id,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeSize(IDebugSymbols3 *iface, ULONG64 base, ULONG type_id,
ULONG *size)
{
FIXME("%p, %s, %u, %p stub.\n", iface, wine_dbgstr_longlong(base), type_id, size);
@@ -940,7 +942,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeSize(IDebugSymbols *iface,
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetFieldOffset(IDebugSymbols *iface, ULONG64 base, ULONG type_id,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetFieldOffset(IDebugSymbols3 *iface, ULONG64 base, ULONG type_id,
const char *field, ULONG *offset)
{
FIXME("%p, %s, %u, %s, %p stub.\n", iface, wine_dbgstr_longlong(base), type_id, debugstr_a(field), offset);
@@ -948,7 +950,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetFieldOffset(IDebugSymbols *ifac
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolTypeId(IDebugSymbols *iface, const char *symbol, ULONG *type_id,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolTypeId(IDebugSymbols3 *iface, const char *symbol, ULONG *type_id,
ULONG64 *base)
{
FIXME("%p, %s, %p, %p stub.\n", iface, debugstr_a(symbol), type_id, base);
@@ -956,7 +958,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolTypeId(IDebugSymbols *ifa
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetOffsetTypeId(IDebugSymbols *iface, ULONG64 offset, ULONG *type_id,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetOffsetTypeId(IDebugSymbols3 *iface, ULONG64 offset, ULONG *type_id,
ULONG64 *base)
{
FIXME("%p, %s, %p, %p stub.\n", iface, wine_dbgstr_longlong(offset), type_id, base);
@@ -964,7 +966,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetOffsetTypeId(IDebugSymbols *ifa
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_ReadTypedDataVirtual(IDebugSymbols *iface, ULONG64 offset, ULONG64 base,
+static HRESULT STDMETHODCALLTYPE debugsymbols_ReadTypedDataVirtual(IDebugSymbols3 *iface, ULONG64 offset, ULONG64 base,
ULONG type_id, void *buffer, ULONG buffer_size, ULONG *read_len)
{
FIXME("%p, %s, %s, %u, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(offset), wine_dbgstr_longlong(base),
@@ -973,7 +975,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_ReadTypedDataVirtual(IDebugSymbols
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_WriteTypedDataVirtual(IDebugSymbols *iface, ULONG64 offset, ULONG64 base,
+static HRESULT STDMETHODCALLTYPE debugsymbols_WriteTypedDataVirtual(IDebugSymbols3 *iface, ULONG64 offset, ULONG64 base,
ULONG type_id, void *buffer, ULONG buffer_size, ULONG *written)
{
FIXME("%p, %s, %s, %u, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(offset), wine_dbgstr_longlong(base),
@@ -982,7 +984,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_WriteTypedDataVirtual(IDebugSymbol
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_OutputTypedDataVirtual(IDebugSymbols *iface, ULONG output_control,
+static HRESULT STDMETHODCALLTYPE debugsymbols_OutputTypedDataVirtual(IDebugSymbols3 *iface, ULONG output_control,
ULONG64 offset, ULONG64 base, ULONG type_id, ULONG flags)
{
FIXME("%p, %#x, %s, %s, %u, %#x stub.\n", iface, output_control, wine_dbgstr_longlong(offset),
@@ -991,7 +993,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_OutputTypedDataVirtual(IDebugSymbo
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_ReadTypedDataPhysical(IDebugSymbols *iface, ULONG64 offset, ULONG64 base,
+static HRESULT STDMETHODCALLTYPE debugsymbols_ReadTypedDataPhysical(IDebugSymbols3 *iface, ULONG64 offset, ULONG64 base,
ULONG type_id, void *buffer, ULONG buffer_size, ULONG *read_len)
{
FIXME("%p, %s, %s, %u, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(offset), wine_dbgstr_longlong(base),
@@ -1000,7 +1002,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_ReadTypedDataPhysical(IDebugSymbol
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_WriteTypedDataPhysical(IDebugSymbols *iface, ULONG64 offset,
+static HRESULT STDMETHODCALLTYPE debugsymbols_WriteTypedDataPhysical(IDebugSymbols3 *iface, ULONG64 offset,
ULONG64 base, ULONG type_id, void *buffer, ULONG buffer_size, ULONG *written)
{
FIXME("%p, %s, %s, %u, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(offset), wine_dbgstr_longlong(base),
@@ -1009,7 +1011,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_WriteTypedDataPhysical(IDebugSymbo
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_OutputTypedDataPhysical(IDebugSymbols *iface, ULONG output_control,
+static HRESULT STDMETHODCALLTYPE debugsymbols_OutputTypedDataPhysical(IDebugSymbols3 *iface, ULONG output_control,
ULONG64 offset, ULONG64 base, ULONG type_id, ULONG flags)
{
FIXME("%p, %#x, %s, %s, %u, %#x stub.\n", iface, output_control, wine_dbgstr_longlong(offset),
@@ -1018,7 +1020,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_OutputTypedDataPhysical(IDebugSymb
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetScope(IDebugSymbols *iface, ULONG64 *instr_offset,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetScope(IDebugSymbols3 *iface, ULONG64 *instr_offset,
DEBUG_STACK_FRAME *frame, void *scope_context, ULONG scope_context_size)
{
FIXME("%p, %p, %p, %p, %u stub.\n", iface, instr_offset, frame, scope_context, scope_context_size);
@@ -1026,7 +1028,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetScope(IDebugSymbols *iface, ULO
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_SetScope(IDebugSymbols *iface, ULONG64 instr_offset,
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetScope(IDebugSymbols3 *iface, ULONG64 instr_offset,
DEBUG_STACK_FRAME *frame, void *scope_context, ULONG scope_context_size)
{
FIXME("%p, %s, %p, %p, %u stub.\n", iface, wine_dbgstr_longlong(instr_offset), frame, scope_context,
@@ -1035,14 +1037,14 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_SetScope(IDebugSymbols *iface, ULO
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_ResetScope(IDebugSymbols *iface)
+static HRESULT STDMETHODCALLTYPE debugsymbols_ResetScope(IDebugSymbols3 *iface)
{
FIXME("%p stub.\n", iface);
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetScopeSymbolGroup(IDebugSymbols *iface, ULONG flags,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetScopeSymbolGroup(IDebugSymbols3 *iface, ULONG flags,
IDebugSymbolGroup *update, IDebugSymbolGroup **symbols)
{
FIXME("%p, %#x, %p, %p stub.\n", iface, flags, update, symbols);
@@ -1050,14 +1052,14 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetScopeSymbolGroup(IDebugSymbols
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_CreateSymbolGroup(IDebugSymbols *iface, IDebugSymbolGroup **group)
+static HRESULT STDMETHODCALLTYPE debugsymbols_CreateSymbolGroup(IDebugSymbols3 *iface, IDebugSymbolGroup **group)
{
FIXME("%p, %p stub.\n", iface, group);
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_StartSymbolMatch(IDebugSymbols *iface, const char *pattern,
+static HRESULT STDMETHODCALLTYPE debugsymbols_StartSymbolMatch(IDebugSymbols3 *iface, const char *pattern,
ULONG64 *handle)
{
FIXME("%p, %s, %p stub.\n", iface, pattern, handle);
@@ -1065,7 +1067,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_StartSymbolMatch(IDebugSymbols *if
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetNextSymbolMatch(IDebugSymbols *iface, ULONG64 handle, char *buffer,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetNextSymbolMatch(IDebugSymbols3 *iface, ULONG64 handle, char *buffer,
ULONG buffer_size, ULONG *match_size, ULONG64 *offset)
{
FIXME("%p, %s, %p, %u, %p, %p stub.\n", iface, wine_dbgstr_longlong(handle), buffer, buffer_size, match_size, offset);
@@ -1073,21 +1075,21 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetNextSymbolMatch(IDebugSymbols *
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_EndSymbolMatch(IDebugSymbols *iface, ULONG64 handle)
+static HRESULT STDMETHODCALLTYPE debugsymbols_EndSymbolMatch(IDebugSymbols3 *iface, ULONG64 handle)
{
FIXME("%p, %s stub.\n", iface, wine_dbgstr_longlong(handle));
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_Reload(IDebugSymbols *iface, const char *path)
+static HRESULT STDMETHODCALLTYPE debugsymbols_Reload(IDebugSymbols3 *iface, const char *path)
{
FIXME("%p, %s stub.\n", iface, debugstr_a(path));
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolPath(IDebugSymbols *iface, char *buffer, ULONG buffer_size,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolPath(IDebugSymbols3 *iface, char *buffer, ULONG buffer_size,
ULONG *path_size)
{
FIXME("%p, %p, %u, %p stub.\n", iface, buffer, buffer_size, path_size);
@@ -1095,21 +1097,21 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolPath(IDebugSymbols *iface
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_SetSymbolPath(IDebugSymbols *iface, const char *path)
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetSymbolPath(IDebugSymbols3 *iface, const char *path)
{
FIXME("%p, %s stub.\n", iface, debugstr_a(path));
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_AppendSymbolPath(IDebugSymbols *iface, const char *path)
+static HRESULT STDMETHODCALLTYPE debugsymbols_AppendSymbolPath(IDebugSymbols3 *iface, const char *path)
{
FIXME("%p, %s stub.\n", iface, debugstr_a(path));
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetImagePath(IDebugSymbols *iface, char *buffer, ULONG buffer_size,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetImagePath(IDebugSymbols3 *iface, char *buffer, ULONG buffer_size,
ULONG *path_size)
{
FIXME("%p, %p, %u, %p stub.\n", iface, buffer, buffer_size, path_size);
@@ -1117,21 +1119,21 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetImagePath(IDebugSymbols *iface,
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_SetImagePath(IDebugSymbols *iface, const char *path)
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetImagePath(IDebugSymbols3 *iface, const char *path)
{
FIXME("%p, %s stub.\n", iface, debugstr_a(path));
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_AppendImagePath(IDebugSymbols *iface, const char *path)
+static HRESULT STDMETHODCALLTYPE debugsymbols_AppendImagePath(IDebugSymbols3 *iface, const char *path)
{
FIXME("%p, %s stub.\n", iface, debugstr_a(path));
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourcePath(IDebugSymbols *iface, char *buffer, ULONG buffer_size,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourcePath(IDebugSymbols3 *iface, char *buffer, ULONG buffer_size,
ULONG *path_size)
{
FIXME("%p, %p, %u, %p stub.\n", iface, buffer, buffer_size, path_size);
@@ -1139,7 +1141,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourcePath(IDebugSymbols *iface
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourcePathElement(IDebugSymbols *iface, ULONG index, char *buffer,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourcePathElement(IDebugSymbols3 *iface, ULONG index, char *buffer,
ULONG buffer_size, ULONG *element_size)
{
FIXME("%p, %u, %p, %u, %p stub.\n", iface, index, buffer, buffer_size, element_size);
@@ -1147,21 +1149,21 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourcePathElement(IDebugSymbols
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_SetSourcePath(IDebugSymbols *iface, const char *path)
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetSourcePath(IDebugSymbols3 *iface, const char *path)
{
FIXME("%p, %s stub.\n", iface, debugstr_a(path));
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_AppendSourcePath(IDebugSymbols *iface, const char *path)
+static HRESULT STDMETHODCALLTYPE debugsymbols_AppendSourcePath(IDebugSymbols3 *iface, const char *path)
{
FIXME("%p, %s stub.\n", iface, debugstr_a(path));
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_FindSourceFile(IDebugSymbols *iface, ULONG start, const char *file,
+static HRESULT STDMETHODCALLTYPE debugsymbols_FindSourceFile(IDebugSymbols3 *iface, ULONG start, const char *file,
ULONG flags, ULONG *found_element, char *buffer, ULONG buffer_size, ULONG *found_size)
{
FIXME("%p, %u, %s, %#x, %p, %p, %u, %p stub.\n", iface, start, debugstr_a(file), flags, found_element, buffer,
@@ -1170,7 +1172,7 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_FindSourceFile(IDebugSymbols *ifac
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourceFileLineOffsets(IDebugSymbols *iface, const char *file,
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourceFileLineOffsets(IDebugSymbols3 *iface, const char *file,
ULONG64 *buffer, ULONG buffer_lines, ULONG *file_lines)
{
FIXME("%p, %s, %p, %u, %p stub.\n", iface, debugstr_a(file), buffer, buffer_lines, file_lines);
@@ -1178,7 +1180,600 @@ static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourceFileLineOffsets(IDebugSym
return E_NOTIMPL;
}
-static const IDebugSymbolsVtbl debugsymbolsvtbl =
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleVersionInformation(IDebugSymbols3 *iface, ULONG index,
+ ULONG64 base, const char *item, void *buffer, ULONG buffer_size, ULONG *info_size)
+{
+ FIXME("%p, %u, %s, %s, %p, %u, %p stub.\n", iface, index, wine_dbgstr_longlong(base), debugstr_a(item), buffer,
+ buffer_size, info_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleNameString(IDebugSymbols3 *iface, ULONG which, ULONG index,
+ ULONG64 base, char *buffer, ULONG buffer_size, ULONG *name_size)
+{
+ FIXME("%p, %u, %u, %s, %p, %u, %p stub.\n", iface, which, index, wine_dbgstr_longlong(base), buffer, buffer_size,
+ name_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetConstantName(IDebugSymbols3 *iface, ULONG64 module, ULONG type_id,
+ ULONG64 value, char *buffer, ULONG buffer_size, ULONG *name_size)
+{
+ FIXME("%p, %s, %u, %s, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(module), type_id,
+ wine_dbgstr_longlong(value), buffer, buffer_size, name_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetFieldName(IDebugSymbols3 *iface, ULONG64 module, ULONG type_id,
+ ULONG field_index, char *buffer, ULONG buffer_size, ULONG *name_size)
+{
+ FIXME("%p, %s, %u, %u, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(module), type_id, field_index, buffer,
+ buffer_size, name_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeOptions(IDebugSymbols3 *iface, ULONG *options)
+{
+ FIXME("%p, %p stub.\n", iface, options);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_AddTypeOptions(IDebugSymbols3 *iface, ULONG options)
+{
+ FIXME("%p, %#x stub.\n", iface, options);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_RemoveTypeOptions(IDebugSymbols3 *iface, ULONG options)
+{
+ FIXME("%p, %#x stub.\n", iface, options);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetTypeOptions(IDebugSymbols3 *iface, ULONG options)
+{
+ FIXME("%p, %#x stub.\n", iface, options);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetNameByOffsetWide(IDebugSymbols3 *iface, ULONG64 offset, WCHAR *buffer,
+ ULONG buffer_size, ULONG *name_size, ULONG64 *displacement)
+{
+ FIXME("%p, %s, %p, %u, %p, %p stub.\n", iface, wine_dbgstr_longlong(offset), buffer, buffer_size, name_size,
+ displacement);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetOffsetByNameWide(IDebugSymbols3 *iface, const WCHAR *symbol,
+ ULONG64 *offset)
+{
+ FIXME("%p, %s, %p stub.\n", iface, debugstr_w(symbol), offset);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetNearNameByOffsetWide(IDebugSymbols3 *iface, ULONG64 offset,
+ LONG delta, WCHAR *buffer, ULONG buffer_size, ULONG *name_size, ULONG64 *displacement)
+{
+ FIXME("%p, %s, %d, %p, %u, %p, %p stub.\n", iface, wine_dbgstr_longlong(offset), delta, buffer, buffer_size,
+ name_size, displacement);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetLineByOffsetWide(IDebugSymbols3 *iface, ULONG64 offset, ULONG *line,
+ WCHAR *buffer, ULONG buffer_size, ULONG *file_size, ULONG64 *displacement)
+{
+ FIXME("%p, %s, %p, %p, %u, %p, %p stub.\n", iface, wine_dbgstr_longlong(offset), line, buffer, buffer_size,
+ file_size, displacement);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetOffsetByLineWide(IDebugSymbols3 *iface, ULONG line, const WCHAR *file,
+ ULONG64 *offset)
+{
+ FIXME("%p, %u, %s, %p stub.\n", iface, line, debugstr_w(file), offset);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByModuleNameWide(IDebugSymbols3 *iface, const WCHAR *name,
+ ULONG start_index, ULONG *index, ULONG64 *base)
+{
+ FIXME("%p, %s, %u, %p, %p stub.\n", iface, debugstr_w(name), start_index, index, base);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolModuleWide(IDebugSymbols3 *iface, const WCHAR *symbol,
+ ULONG64 *base)
+{
+ FIXME("%p, %s, %p stub.\n", iface, debugstr_w(symbol), base);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeNameWide(IDebugSymbols3 *iface, ULONG64 module, ULONG type_id,
+ WCHAR *buffer, ULONG buffer_size, ULONG *name_size)
+{
+ FIXME("%p, %s, %u, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(module), type_id, buffer, buffer_size,
+ name_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetTypeIdWide(IDebugSymbols3 *iface, ULONG64 module, const WCHAR *name,
+ ULONG *type_id)
+{
+ FIXME("%p, %s, %s, %p stub.\n", iface, wine_dbgstr_longlong(module), debugstr_w(name), type_id);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetFieldOffsetWide(IDebugSymbols3 *iface, ULONG64 module, ULONG type_id,
+ const WCHAR *field, ULONG *offset)
+{
+ FIXME("%p, %s, %u, %s, %p stub.\n", iface, wine_dbgstr_longlong(module), type_id, debugstr_w(field), offset);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolTypeIdWide(IDebugSymbols3 *iface, const WCHAR *symbol,
+ ULONG *type_id, ULONG64 *module)
+{
+ FIXME("%p, %s, %p, %p stub.\n", iface, debugstr_w(symbol), type_id, module);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetScopeSymbolGroup2(IDebugSymbols3 *iface, ULONG flags,
+ PDEBUG_SYMBOL_GROUP2 update, PDEBUG_SYMBOL_GROUP2 *symbols)
+{
+ FIXME("%p, %#x, %p, %p stub.\n", iface, flags, update, symbols);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_CreateSymbolGroup2(IDebugSymbols3 *iface, PDEBUG_SYMBOL_GROUP2 *group)
+{
+ FIXME("%p, %p stub.\n", iface, group);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_StartSymbolMatchWide(IDebugSymbols3 *iface, const WCHAR *pattern,
+ ULONG64 *handle)
+{
+ FIXME("%p, %s, %p stub.\n", iface, debugstr_w(pattern), handle);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetNextSymbolMatchWide(IDebugSymbols3 *iface, ULONG64 handle,
+ WCHAR *buffer, ULONG buffer_size, ULONG *match_size, ULONG64 *offset)
+{
+ FIXME("%p, %s, %p, %u, %p, %p stub.\n", iface, wine_dbgstr_longlong(handle), buffer, buffer_size, match_size, offset);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_ReloadWide(IDebugSymbols3 *iface, const WCHAR *module)
+{
+ FIXME("%p, %s stub.\n", iface, debugstr_w(module));
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolPathWide(IDebugSymbols3 *iface, WCHAR *buffer, ULONG buffer_size,
+ ULONG *path_size)
+{
+ FIXME("%p, %p, %u, %p stub.\n", iface, buffer, buffer_size, path_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetSymbolPathWide(IDebugSymbols3 *iface, const WCHAR *path)
+{
+ FIXME("%p, %s stub.\n", iface, debugstr_w(path));
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_AppendSymbolPathWide(IDebugSymbols3 *iface, const WCHAR *addition)
+{
+ FIXME("%p, %s stub.\n", iface, debugstr_w(addition));
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetImagePathWide(IDebugSymbols3 *iface, WCHAR *buffer, ULONG buffer_size,
+ ULONG *path_size)
+{
+ FIXME("%p, %p, %u, %p stub.\n", iface, buffer, buffer_size, path_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetImagePathWide(IDebugSymbols3 *iface, const WCHAR *path)
+{
+ FIXME("%p, %s stub.\n", iface, debugstr_w(path));
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_AppendImagePathWide(IDebugSymbols3 *iface, const WCHAR *addition)
+{
+ FIXME("%p, %s stub.\n", iface, debugstr_w(addition));
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourcePathWide(IDebugSymbols3 *iface, WCHAR *buffer, ULONG buffer_size,
+ ULONG *path_size)
+{
+ FIXME("%p, %p, %u, %p stub.\n", iface, buffer, buffer_size, path_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourcePathElementWide(IDebugSymbols3 *iface, ULONG index,
+ WCHAR *buffer, ULONG buffer_size, ULONG *element_size)
+{
+ FIXME("%p, %u, %p, %u, %p stub.\n", iface, index, buffer, buffer_size, element_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetSourcePathWide(IDebugSymbols3 *iface, const WCHAR *path)
+{
+ FIXME("%p, %s stub.\n", iface, debugstr_w(path));
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_AppendSourcePathWide(IDebugSymbols3 *iface, const WCHAR *addition)
+{
+ FIXME("%p, %s stub.\n", iface, debugstr_w(addition));
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_FindSourceFileWide(IDebugSymbols3 *iface, ULONG start_element,
+ const WCHAR *file, ULONG flags, ULONG *found_element, WCHAR *buffer, ULONG buffer_size, ULONG *found_size)
+{
+ FIXME("%p, %u, %s, %#x, %p, %p, %u, %p stub.\n", iface, start_element, debugstr_w(file), flags, found_element,
+ buffer, buffer_size, found_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourceFileLineOffsetsWide(IDebugSymbols3 *iface, const WCHAR *file,
+ ULONG64 *buffer, ULONG buffer_lines, ULONG *file_lines)
+{
+ FIXME("%p, %s, %p, %u, %p stub.\n", iface, debugstr_w(file), buffer, buffer_lines, file_lines);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleVersionInformationWide(IDebugSymbols3 *iface, ULONG index,
+ ULONG64 base, const WCHAR *item, void *buffer, ULONG buffer_size, ULONG *version_info_size)
+{
+ FIXME("%p, %u, %s, %s, %p, %u, %p stub.\n", iface, index, wine_dbgstr_longlong(base), debugstr_w(item), buffer,
+ buffer_size, version_info_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleNameStringWide(IDebugSymbols3 *iface, ULONG which, ULONG index,
+ ULONG64 base, WCHAR *buffer, ULONG buffer_size, ULONG *name_size)
+{
+ FIXME("%p, %u, %u, %s, %p, %u, %p stub.\n", iface, which, index, wine_dbgstr_longlong(base), buffer, buffer_size,
+ name_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetConstantNameWide(IDebugSymbols3 *iface, ULONG64 module, ULONG type_id,
+ ULONG64 value, WCHAR *buffer, ULONG buffer_size, ULONG *name_size)
+{
+ FIXME("%p, %s, %u, %s, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(module), type_id,
+ wine_dbgstr_longlong(value), buffer, buffer_size, name_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetFieldNameWide(IDebugSymbols3 *iface, ULONG64 module, ULONG type_id,
+ ULONG field_index, WCHAR *buffer, ULONG buffer_size, ULONG *name_size)
+{
+ FIXME("%p, %s, %u, %u, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(module), type_id, field_index, buffer,
+ buffer_size, name_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_IsManagedModule(IDebugSymbols3 *iface, ULONG index, ULONG64 base)
+{
+ FIXME("%p, %u, %s stub.\n", iface, index, wine_dbgstr_longlong(base));
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByModuleName2(IDebugSymbols3 *iface, const char *name,
+ ULONG start_index, ULONG flags, ULONG *index, ULONG64 *base)
+{
+ FIXME("%p, %s, %u, %#x, %p, %p stub.\n", iface, debugstr_a(name), start_index, flags, index, base);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByModuleName2Wide(IDebugSymbols3 *iface, const WCHAR *name,
+ ULONG start_index, ULONG flags, ULONG *index, ULONG64 *base)
+{
+ FIXME("%p, %s, %u, %#x, %p, %p stub.\n", iface, debugstr_w(name), start_index, flags, index, base);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetModuleByOffset2(IDebugSymbols3 *iface, ULONG64 offset,
+ ULONG start_index, ULONG flags, ULONG *index, ULONG64 *base)
+{
+ FIXME("%p, %s, %u, %#x, %p, %p stub.\n", iface, wine_dbgstr_longlong(offset), start_index, flags, index, base);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_AddSyntheticModule(IDebugSymbols3 *iface, ULONG64 base, ULONG size,
+ const char *image_path, const char *module_name, ULONG flags)
+{
+ FIXME("%p, %s, %u, %s, %s, %#x stub.\n", iface, wine_dbgstr_longlong(base), size, debugstr_a(image_path),
+ debugstr_a(module_name), flags);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_AddSyntheticModuleWide(IDebugSymbols3 *iface, ULONG64 base, ULONG size,
+ const WCHAR *image_path, const WCHAR *module_name, ULONG flags)
+{
+ FIXME("%p, %s, %u, %s, %s, %#x stub.\n", iface, wine_dbgstr_longlong(base), size, debugstr_w(image_path),
+ debugstr_w(module_name), flags);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_RemoveSyntheticModule(IDebugSymbols3 *iface, ULONG64 base)
+{
+ FIXME("%p, %s stub.\n", iface, wine_dbgstr_longlong(base));
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetCurrentScopeFrameIndex(IDebugSymbols3 *iface, ULONG *index)
+{
+ FIXME("%p, %p stub.\n", iface, index);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetScopeFrameByIndex(IDebugSymbols3 *iface, ULONG index)
+{
+ FIXME("%p, %u stub.\n", iface, index);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetScopeFromJitDebugInfo(IDebugSymbols3 *iface, ULONG output_control,
+ ULONG64 info_offset)
+{
+ FIXME("%p, %u, %s stub.\n", iface, output_control, wine_dbgstr_longlong(info_offset));
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_SetScopeFromStoredEvent(IDebugSymbols3 *iface)
+{
+ FIXME("%p stub.\n", iface);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_OutputSymbolByOffset(IDebugSymbols3 *iface, ULONG output_control,
+ ULONG flags, ULONG64 offset)
+{
+ FIXME("%p, %u, %#x, %s stub.\n", iface, output_control, flags, wine_dbgstr_longlong(offset));
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetFunctionEntryByOffset(IDebugSymbols3 *iface, ULONG64 offset,
+ ULONG flags, void *buffer, ULONG buffer_size, ULONG *needed_size)
+{
+ FIXME("%p, %s, %#x, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(offset), flags, buffer, buffer_size,
+ needed_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetFieldTypeAndOffset(IDebugSymbols3 *iface, ULONG64 module,
+ ULONG container_type_id, const char *field, ULONG *field_type_id, ULONG *offset)
+{
+ FIXME("%p, %s, %u, %s, %p, %p stub.\n", iface, wine_dbgstr_longlong(module), container_type_id, debugstr_a(field),
+ field_type_id, offset);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetFieldTypeAndOffsetWide(IDebugSymbols3 *iface, ULONG64 module,
+ ULONG container_type_id, const WCHAR *field, ULONG *field_type_id, ULONG *offset)
+{
+ FIXME("%p, %s, %u, %s, %p, %p stub.\n", iface, wine_dbgstr_longlong(module), container_type_id, debugstr_w(field),
+ field_type_id, offset);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_AddSyntheticSymbol(IDebugSymbols3 *iface, ULONG64 offset, ULONG size,
+ const char *name, ULONG flags, DEBUG_MODULE_AND_ID *id)
+{
+ FIXME("%p, %s, %u, %s, %#x, %p stub.\n", iface, wine_dbgstr_longlong(offset), size, debugstr_a(name), flags, id);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_AddSyntheticSymbolWide(IDebugSymbols3 *iface, ULONG64 offset, ULONG size,
+ const WCHAR *name, ULONG flags, DEBUG_MODULE_AND_ID *id)
+{
+ FIXME("%p, %s, %u, %s, %#x, %p stub.\n", iface, wine_dbgstr_longlong(offset), size, debugstr_w(name), flags, id);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_RemoveSyntheticSymbol(IDebugSymbols3 *iface, DEBUG_MODULE_AND_ID *id)
+{
+ FIXME("%p, %p stub.\n", iface, id);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolEntriesByOffset(IDebugSymbols3 *iface, ULONG64 offset,
+ ULONG flags, DEBUG_MODULE_AND_ID *ids, LONG64 *displacements, ULONG count, ULONG *entries)
+{
+ FIXME("%p, %s, %#x, %p, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(offset), flags, ids, displacements, count,
+ entries);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolEntriesByName(IDebugSymbols3 *iface, const char *symbol,
+ ULONG flags, DEBUG_MODULE_AND_ID *ids, ULONG count, ULONG *entries)
+{
+ FIXME("%p, %s, %#x, %p, %u, %p stub.\n", iface, debugstr_a(symbol), flags, ids, count, entries);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolEntriesByNameWide(IDebugSymbols3 *iface, const WCHAR *symbol,
+ ULONG flags, DEBUG_MODULE_AND_ID *ids, ULONG count, ULONG *entries)
+{
+ FIXME("%p, %s, %#x, %p, %u, %p stub.\n", iface, debugstr_w(symbol), flags, ids, count, entries);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolEntryByToken(IDebugSymbols3 *iface, ULONG64 base, ULONG token,
+ DEBUG_MODULE_AND_ID *id)
+{
+ FIXME("%p, %s, %p stub.\n", iface, wine_dbgstr_longlong(base), id);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolEntryInformation(IDebugSymbols3 *iface, DEBUG_MODULE_AND_ID *id,
+ DEBUG_SYMBOL_ENTRY *info)
+{
+ FIXME("%p, %p, %p stub.\n", iface, id, info);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolEntryString(IDebugSymbols3 *iface, DEBUG_MODULE_AND_ID *id,
+ ULONG which, char *buffer, ULONG buffer_size, ULONG *string_size)
+{
+ FIXME("%p, %p, %u, %p, %u, %p stub.\n", iface, id, which, buffer, buffer_size, string_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolEntryStringWide(IDebugSymbols3 *iface, DEBUG_MODULE_AND_ID *id,
+ ULONG which, WCHAR *buffer, ULONG buffer_size, ULONG *string_size)
+{
+ FIXME("%p, %p, %u, %p, %u, %p stub.\n", iface, id, which, buffer, buffer_size, string_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolEntryOffsetRegions(IDebugSymbols3 *iface, DEBUG_MODULE_AND_ID *id,
+ ULONG flags, DEBUG_OFFSET_REGION *regions, ULONG regions_count, ULONG *regions_avail)
+{
+ FIXME("%p, %p, %#x, %p, %u, %p stub.\n", iface, id, flags, regions, regions_count, regions_avail);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSymbolEntryBySymbolEntry(IDebugSymbols3 *iface,
+ DEBUG_MODULE_AND_ID *from_id, ULONG flags, DEBUG_MODULE_AND_ID *to_id)
+{
+ FIXME("%p, %p, %#x, %p stub.\n", iface, from_id, flags, to_id);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourceEntriesByOffset(IDebugSymbols3 *iface, ULONG64 offset,
+ ULONG flags, DEBUG_SYMBOL_SOURCE_ENTRY *entries, ULONG count, ULONG *entries_avail)
+{
+ FIXME("%p, %s, %#x, %p, %u, %p stub.\n", iface, wine_dbgstr_longlong(offset), flags, entries, count, entries_avail);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourceEntriesByLine(IDebugSymbols3 *iface, ULONG line,
+ const char *file, ULONG flags, DEBUG_SYMBOL_SOURCE_ENTRY *entries, ULONG count, ULONG *entries_avail)
+{
+ FIXME("%p, %s, %#x, %p, %u, %p stub.\n", iface, debugstr_a(file), flags, entries, count, entries_avail);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourceEntriesByLineWide(IDebugSymbols3 *iface, ULONG line,
+ const WCHAR *file, ULONG flags, DEBUG_SYMBOL_SOURCE_ENTRY *entries, ULONG count, ULONG *entries_avail)
+{
+ FIXME("%p, %s, %#x, %p, %u, %p stub.\n", iface, debugstr_w(file), flags, entries, count, entries_avail);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourceEntryString(IDebugSymbols3 *iface,
+ DEBUG_SYMBOL_SOURCE_ENTRY *entry, ULONG which, char *buffer, ULONG buffer_size, ULONG *string_size)
+{
+ FIXME("%p, %p, %u, %p, %u, %p stub.\n", iface, entry, which, buffer, buffer_size, string_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourceEntryStringWide(IDebugSymbols3 *iface,
+ DEBUG_SYMBOL_SOURCE_ENTRY *entry, ULONG which, WCHAR *buffer, ULONG buffer_size, ULONG *string_size)
+{
+ FIXME("%p, %p, %u, %p, %u, %p stub.\n", iface, entry, which, buffer, buffer_size, string_size);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourceEntryOffsetRegions(IDebugSymbols3 *iface,
+ DEBUG_SYMBOL_SOURCE_ENTRY *entry, ULONG flags, DEBUG_OFFSET_REGION *regions, ULONG count, ULONG *regions_avail)
+{
+ FIXME("%p, %p, %#x, %p, %u, %p stub.\n", iface, entry, flags, regions, count, regions_avail);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE debugsymbols_GetSourceEntryBySourceEntry(IDebugSymbols3 *iface,
+ DEBUG_SYMBOL_SOURCE_ENTRY *from_entry, ULONG flags, DEBUG_SYMBOL_SOURCE_ENTRY *to_entry)
+{
+ FIXME("%p, %p, %#x, %p stub.\n", iface, from_entry, flags, to_entry);
+
+ return E_NOTIMPL;
+}
+
+static const IDebugSymbols3Vtbl debugsymbolsvtbl =
{
debugsymbols_QueryInterface,
debugsymbols_AddRef,
@@ -1232,6 +1827,82 @@ static const IDebugSymbolsVtbl debugsymbolsvtbl =
debugsymbols_AppendSourcePath,
debugsymbols_FindSourceFile,
debugsymbols_GetSourceFileLineOffsets,
+ /* IDebugSymbols2 */
+ debugsymbols_GetModuleVersionInformation,
+ debugsymbols_GetModuleNameString,
+ debugsymbols_GetConstantName,
+ debugsymbols_GetFieldName,
+ debugsymbols_GetTypeOptions,
+ debugsymbols_AddTypeOptions,
+ debugsymbols_RemoveTypeOptions,
+ debugsymbols_SetTypeOptions,
+ /* IDebugSymbols3 */
+ debugsymbols_GetNameByOffsetWide,
+ debugsymbols_GetOffsetByNameWide,
+ debugsymbols_GetNearNameByOffsetWide,
+ debugsymbols_GetLineByOffsetWide,
+ debugsymbols_GetOffsetByLineWide,
+ debugsymbols_GetModuleByModuleNameWide,
+ debugsymbols_GetSymbolModuleWide,
+ debugsymbols_GetTypeNameWide,
+ debugsymbols_GetTypeIdWide,
+ debugsymbols_GetFieldOffsetWide,
+ debugsymbols_GetSymbolTypeIdWide,
+ debugsymbols_GetScopeSymbolGroup2,
+ debugsymbols_CreateSymbolGroup2,
+ debugsymbols_StartSymbolMatchWide,
+ debugsymbols_GetNextSymbolMatchWide,
+ debugsymbols_ReloadWide,
+ debugsymbols_GetSymbolPathWide,
+ debugsymbols_SetSymbolPathWide,
+ debugsymbols_AppendSymbolPathWide,
+ debugsymbols_GetImagePathWide,
+ debugsymbols_SetImagePathWide,
+ debugsymbols_AppendImagePathWide,
+ debugsymbols_GetSourcePathWide,
+ debugsymbols_GetSourcePathElementWide,
+ debugsymbols_SetSourcePathWide,
+ debugsymbols_AppendSourcePathWide,
+ debugsymbols_FindSourceFileWide,
+ debugsymbols_GetSourceFileLineOffsetsWide,
+ debugsymbols_GetModuleVersionInformationWide,
+ debugsymbols_GetModuleNameStringWide,
+ debugsymbols_GetConstantNameWide,
+ debugsymbols_GetFieldNameWide,
+ debugsymbols_IsManagedModule,
+ debugsymbols_GetModuleByModuleName2,
+ debugsymbols_GetModuleByModuleName2Wide,
+ debugsymbols_GetModuleByOffset2,
+ debugsymbols_AddSyntheticModule,
+ debugsymbols_AddSyntheticModuleWide,
+ debugsymbols_RemoveSyntheticModule,
+ debugsymbols_GetCurrentScopeFrameIndex,
+ debugsymbols_SetScopeFrameByIndex,
+ debugsymbols_SetScopeFromJitDebugInfo,
+ debugsymbols_SetScopeFromStoredEvent,
+ debugsymbols_OutputSymbolByOffset,
+ debugsymbols_GetFunctionEntryByOffset,
+ debugsymbols_GetFieldTypeAndOffset,
+ debugsymbols_GetFieldTypeAndOffsetWide,
+ debugsymbols_AddSyntheticSymbol,
+ debugsymbols_AddSyntheticSymbolWide,
+ debugsymbols_RemoveSyntheticSymbol,
+ debugsymbols_GetSymbolEntriesByOffset,
+ debugsymbols_GetSymbolEntriesByName,
+ debugsymbols_GetSymbolEntriesByNameWide,
+ debugsymbols_GetSymbolEntryByToken,
+ debugsymbols_GetSymbolEntryInformation,
+ debugsymbols_GetSymbolEntryString,
+ debugsymbols_GetSymbolEntryStringWide,
+ debugsymbols_GetSymbolEntryOffsetRegions,
+ debugsymbols_GetSymbolEntryBySymbolEntry,
+ debugsymbols_GetSourceEntriesByOffset,
+ debugsymbols_GetSourceEntriesByLine,
+ debugsymbols_GetSourceEntriesByLineWide,
+ debugsymbols_GetSourceEntryString,
+ debugsymbols_GetSourceEntryStringWide,
+ debugsymbols_GetSourceEntryOffsetRegions,
+ debugsymbols_GetSourceEntryBySourceEntry,
};
static HRESULT STDMETHODCALLTYPE debugcontrol_QueryInterface(IDebugControl2 *iface, REFIID riid, void **obj)
@@ -2191,7 +2862,7 @@ HRESULT WINAPI DebugCreate(REFIID riid, void **obj)
debug_client->IDebugClient_iface.lpVtbl = &debugclientvtbl;
debug_client->IDebugDataSpaces_iface.lpVtbl = &debugdataspacesvtbl;
- debug_client->IDebugSymbols_iface.lpVtbl = &debugsymbolsvtbl;
+ debug_client->IDebugSymbols3_iface.lpVtbl = &debugsymbolsvtbl;
debug_client->IDebugControl2_iface.lpVtbl = &debugcontrolvtbl;
debug_client->refcount = 1;
list_init(&debug_client->targets);
--
2.20.1
1
0