https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d6c879a0e0d08d5dae37c…
commit d6c879a0e0d08d5dae37c9b7f9a8e56505cd7291
Author: Amine Khaldi <amine.khaldi(a)reactos.org>
AuthorDate: Sat Oct 26 13:05:45 2019 +0100
Commit: Amine Khaldi <amine.khaldi(a)reactos.org>
CommitDate: Sat Oct 26 13:05:45 2019 +0100
[DXDIAGN] Sync with Wine Staging 4.18. CORE-16441
---
dll/directx/wine/dxdiagn/CMakeLists.txt | 3 +-
dll/directx/wine/dxdiagn/container.c | 20 +---
dll/directx/wine/dxdiagn/dxdiag_main.c | 1 -
dll/directx/wine/dxdiagn/fil_data.idl | 47 ----------
dll/directx/wine/dxdiagn/guid.c | 2 +-
dll/directx/wine/dxdiagn/precomp.h | 2 -
dll/directx/wine/dxdiagn/provider.c | 158 +++++++++++++++++---------------
media/doc/README.WINE | 2 +-
8 files changed, 93 insertions(+), 142 deletions(-)
diff --git a/dll/directx/wine/dxdiagn/CMakeLists.txt
b/dll/directx/wine/dxdiagn/CMakeLists.txt
index 34c3b637378..16fdc1f73a8 100644
--- a/dll/directx/wine/dxdiagn/CMakeLists.txt
+++ b/dll/directx/wine/dxdiagn/CMakeLists.txt
@@ -2,7 +2,6 @@
add_definitions(-D__WINESRC__)
include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine)
spec2def(dxdiagn.dll dxdiagn.spec)
-add_idl_headers(dxdiagn_idlheader fil_data.idl)
list(APPEND SOURCE
container.c
@@ -18,7 +17,7 @@ add_library(dxdiagn MODULE
set_module_type(dxdiagn win32dll)
target_link_libraries(dxdiagn strmiids dxguid uuid wine)
-add_dependencies(dxdiagn dxdiagn_idlheader)
+add_dependencies(dxdiagn wineheaders)
add_importlibs(dxdiagn d3d9 ddraw version ole32 oleaut32 psapi user32 dsound msvcrt
kernel32 ntdll)
add_pch(dxdiagn precomp.h SOURCE)
add_cd_file(TARGET dxdiagn DESTINATION reactos/system32 FOR all)
diff --git a/dll/directx/wine/dxdiagn/container.c b/dll/directx/wine/dxdiagn/container.c
index 6e068e572d5..d84f185a795 100644
--- a/dll/directx/wine/dxdiagn/container.c
+++ b/dll/directx/wine/dxdiagn/container.c
@@ -19,12 +19,10 @@
*
*/
-#include "config.h"
#define COBJMACROS
#include "dxdiag_private.h"
#include "wine/debug.h"
-#include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL(dxdiag);
@@ -114,7 +112,7 @@ static HRESULT WINAPI
IDxDiagContainerImpl_EnumChildContainerNames(IDxDiagContai
if (dwIndex == i) {
TRACE("Found container name %s, copying string\n",
debugstr_w(p->contName));
lstrcpynW(pwszContainer, p->contName, cchContainer);
- return (cchContainer <= strlenW(p->contName)) ?
+ return (cchContainer <= lstrlenW(p->contName)) ?
DXDIAG_E_INSUFFICIENT_BUFFER : S_OK;
}
++i;
@@ -157,20 +155,12 @@ static HRESULT WINAPI
IDxDiagContainerImpl_GetChildContainer(IDxDiagContainer *i
*ppInstance = NULL;
- tmp_len = strlenW(pwszContainer) + 1;
+ tmp_len = lstrlenW(pwszContainer) + 1;
orig_tmp = tmp = HeapAlloc(GetProcessHeap(), 0, tmp_len * sizeof(WCHAR));
if (NULL == tmp) return E_FAIL;
lstrcpynW(tmp, pwszContainer, tmp_len);
- /* special handling for an empty string and leaf container */
- if (!tmp[0] && list_empty(&pContainer->subContainers)) {
- hr = DXDiag_CreateDXDiagContainer(&IID_IDxDiagContainer, pContainer,
This->pProv, (void **)ppInstance);
- if (SUCCEEDED(hr))
- TRACE("Succeeded in getting the container instance\n");
- goto out;
- }
-
- cur = strchrW(tmp, '.');
+ cur = wcschr(tmp, '.');
while (NULL != cur) {
*cur = '\0'; /* cut tmp string to '.' */
if (!*(cur + 1)) break; /* Account for a lone terminating period, as in
"cont1.cont2.". */
@@ -180,7 +170,7 @@ static HRESULT WINAPI
IDxDiagContainerImpl_GetChildContainer(IDxDiagContainer *i
goto out;
cur++; /* go after '.' (just replaced by \0) */
tmp = cur;
- cur = strchrW(tmp, '.');
+ cur = wcschr(tmp, '.');
}
TRACE("Trying to get container %s\n", debugstr_w(tmp));
@@ -227,7 +217,7 @@ static HRESULT WINAPI
IDxDiagContainerImpl_EnumPropNames(IDxDiagContainer *iface
if (dwIndex == i) {
TRACE("Found property name %s, copying string\n",
debugstr_w(p->propName));
lstrcpynW(pwszPropName, p->propName, cchPropName);
- return (cchPropName <= strlenW(p->propName)) ?
+ return (cchPropName <= lstrlenW(p->propName)) ?
DXDIAG_E_INSUFFICIENT_BUFFER : S_OK;
}
++i;
diff --git a/dll/directx/wine/dxdiagn/dxdiag_main.c
b/dll/directx/wine/dxdiagn/dxdiag_main.c
index e034b4e595e..719984f4e7d 100644
--- a/dll/directx/wine/dxdiagn/dxdiag_main.c
+++ b/dll/directx/wine/dxdiagn/dxdiag_main.c
@@ -21,7 +21,6 @@
#define COBJMACROS
-#include "config.h"
#include <stdarg.h>
#include "windef.h"
diff --git a/dll/directx/wine/dxdiagn/fil_data.idl
b/dll/directx/wine/dxdiagn/fil_data.idl
deleted file mode 100644
index 7e37a755d91..00000000000
--- a/dll/directx/wine/dxdiagn/fil_data.idl
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2009 Vitaliy Margolen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#pragma makedep header
-
-import "objidl.idl";
-import "strmif.idl";
-import "unknwn.idl";
-
-
-/*****************************************************************************
- * IAMFilterData interface
- */
-[
- object,
- uuid(97f7c4d4-547b-4a5f-8332-536430ad2e4d),
- pointer_default(unique)
-]
-interface IAMFilterData : IUnknown
-{
- typedef [unique] IAMFilterData *LPIAMFILTERDATA;
-
- HRESULT ParseFilterData(
- [in] BYTE * rgbFilterData,
- [in] ULONG cb,
- [out] BYTE ** prgbRegFilter2);
-
- HRESULT CreateFilterData(
- [in] REGFILTER2 * prf2,
- [out] BYTE ** prgbFilterData,
- [out] ULONG * pcb);
-}
diff --git a/dll/directx/wine/dxdiagn/guid.c b/dll/directx/wine/dxdiagn/guid.c
index d72e84cb7cf..119dcf0a6e9 100644
--- a/dll/directx/wine/dxdiagn/guid.c
+++ b/dll/directx/wine/dxdiagn/guid.c
@@ -11,7 +11,7 @@
#include <wingdi.h>
#include <objbase.h>
#include <initguid.h>
-#include <fil_data.h>
+#include <wine/fil_data.h>
#include <wbemcli.h>
#include <wine/dxdiag.h>
diff --git a/dll/directx/wine/dxdiagn/precomp.h b/dll/directx/wine/dxdiagn/precomp.h
index dcc9acb99c1..d310510b1be 100644
--- a/dll/directx/wine/dxdiagn/precomp.h
+++ b/dll/directx/wine/dxdiagn/precomp.h
@@ -2,8 +2,6 @@
#ifndef __WINE_DXDIAG_PRECOMP_H
#define __WINE_DXDIAG_PRECOMP_H
-#include <wine/config.h>
-
#define WIN32_NO_STATUS
#define _INC_WINDOWS
#define COM_NO_WINDOWS_H
diff --git a/dll/directx/wine/dxdiagn/provider.c b/dll/directx/wine/dxdiagn/provider.c
index f0498532f57..063e58c827e 100644
--- a/dll/directx/wine/dxdiagn/provider.c
+++ b/dll/directx/wine/dxdiagn/provider.c
@@ -20,13 +20,16 @@
*
*/
-#include "config.h"
#define COBJMACROS
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
+
+#ifdef __REACTOS__
+#include <wchar.h>
+#endif
+
#include "dxdiag_private.h"
-#include "wine/unicode.h"
#include "winver.h"
#include "objidl.h"
#include "uuids.h"
@@ -35,7 +38,7 @@
#include "d3d9.h"
#include "strmif.h"
#include "initguid.h"
-#include "fil_data.h"
+#include "wine/fil_data.h"
#include "psapi.h"
#include "wbemcli.h"
#include "dsound.h"
@@ -271,13 +274,13 @@ static IDxDiagContainerImpl_Container
*allocate_information_node(const WCHAR *na
if (name)
{
- ret->contName = HeapAlloc(GetProcessHeap(), 0, (strlenW(name) + 1) *
sizeof(*name));
+ ret->contName = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(name) + 1) *
sizeof(*name));
if (!ret->contName)
{
HeapFree(GetProcessHeap(), 0, ret);
return NULL;
}
- strcpyW(ret->contName, name);
+ lstrcpyW(ret->contName, name);
}
list_init(&ret->subContainers);
@@ -294,13 +297,13 @@ static IDxDiagContainerImpl_Property
*allocate_property_information(const WCHAR
if (!ret)
return NULL;
- ret->propName = HeapAlloc(GetProcessHeap(), 0, (strlenW(name) + 1) *
sizeof(*name));
+ ret->propName = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(name) + 1) *
sizeof(*name));
if (!ret->propName)
{
HeapFree(GetProcessHeap(), 0, ret);
return NULL;
}
- strcpyW(ret->propName, name);
+ lstrcpyW(ret->propName, name);
return ret;
}
@@ -495,7 +498,7 @@ static BOOL is_netmeeting_running(void)
for (i = 0; i < list_count; i++)
{
- if (get_process_name_from_pid(pid_list[i], process_name,
sizeof(process_name)/sizeof(WCHAR)) &&
+ if (get_process_name_from_pid(pid_list[i], process_name,
ARRAY_SIZE(process_name)) &&
!lstrcmpW(conf_exe, process_name))
{
HeapFree(GetProcessHeap(), 0, pid_list);
@@ -519,21 +522,23 @@ static HRESULT
fill_language_information(IDxDiagContainerImpl_Container *node)
HRESULT hr;
/* szLanguagesLocalized */
- GetLocaleInfoW(LOCALE_SYSTEM_DEFAULT, LOCALE_SNATIVELANGNAME, system_lang,
sizeof(system_lang)/sizeof(WCHAR));
- LoadStringW(dxdiagn_instance, IDS_REGIONAL_SETTING, regional_setting,
sizeof(regional_setting)/sizeof(WCHAR));
- GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SNATIVELANGNAME, user_lang,
sizeof(user_lang)/sizeof(WCHAR));
+ GetLocaleInfoW(LOCALE_SYSTEM_DEFAULT, LOCALE_SNATIVELANGNAME, system_lang,
ARRAY_SIZE(system_lang));
+ LoadStringW(dxdiagn_instance, IDS_REGIONAL_SETTING, regional_setting,
ARRAY_SIZE(regional_setting));
+ GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SNATIVELANGNAME, user_lang,
ARRAY_SIZE(user_lang));
- snprintfW(language_str, sizeof(language_str)/sizeof(WCHAR), languages_fmtW,
system_lang, regional_setting, user_lang);
+ swprintf(language_str, languages_fmtW, system_lang, regional_setting,
+ user_lang);
hr = add_bstr_property(node, szLanguagesLocalized, language_str);
if (FAILED(hr))
return hr;
/* szLanguagesEnglish */
- GetLocaleInfoW(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLANGUAGE, system_lang,
sizeof(system_lang)/sizeof(WCHAR));
- GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SENGLANGUAGE, user_lang,
sizeof(user_lang)/sizeof(WCHAR));
+ GetLocaleInfoW(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLANGUAGE, system_lang,
ARRAY_SIZE(system_lang));
+ GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SENGLANGUAGE, user_lang,
ARRAY_SIZE(user_lang));
- snprintfW(language_str, sizeof(language_str)/sizeof(WCHAR), languages_fmtW,
system_lang, regional_setting_engW, user_lang);
+ swprintf(language_str, languages_fmtW, system_lang,
+ regional_setting_engW, user_lang);
hr = add_bstr_property(node, szLanguagesEnglish, language_str);
if (FAILED(hr))
@@ -556,21 +561,21 @@ static HRESULT
fill_datetime_information(IDxDiagContainerImpl_Container *node)
GetLocalTime(&curtime);
- GetTimeFormatW(LOCALE_NEUTRAL, 0, &curtime, time_fmtW, time_str,
sizeof(time_str)/sizeof(WCHAR));
+ GetTimeFormatW(LOCALE_NEUTRAL, 0, &curtime, time_fmtW, time_str,
ARRAY_SIZE(time_str));
/* szTimeLocalized */
- GetDateFormatW(LOCALE_USER_DEFAULT, DATE_LONGDATE, &curtime, NULL, date_str,
sizeof(date_str)/sizeof(WCHAR));
+ GetDateFormatW(LOCALE_USER_DEFAULT, DATE_LONGDATE, &curtime, NULL, date_str,
ARRAY_SIZE(date_str));
- snprintfW(datetime_str, sizeof(datetime_str)/sizeof(WCHAR), datetime_fmtW, date_str,
time_str);
+ swprintf(datetime_str, datetime_fmtW, date_str, time_str);
hr = add_bstr_property(node, szTimeLocalized, datetime_str);
if (FAILED(hr))
return hr;
/* szTimeEnglish */
- GetDateFormatW(LOCALE_NEUTRAL, 0, &curtime, date_fmtW, date_str,
sizeof(date_str)/sizeof(WCHAR));
+ GetDateFormatW(LOCALE_NEUTRAL, 0, &curtime, date_fmtW, date_str,
ARRAY_SIZE(date_str));
- snprintfW(datetime_str, sizeof(datetime_str)/sizeof(WCHAR), datetime_fmtW, date_str,
time_str);
+ swprintf(datetime_str, datetime_fmtW, date_str, time_str);
hr = add_bstr_property(node, szTimeEnglish, datetime_str);
if (FAILED(hr))
@@ -597,7 +602,7 @@ static HRESULT
fill_os_string_information(IDxDiagContainerImpl_Container *node,
/* FIXME: OS detection should be performed, and localized OS strings
* should contain translated versions of the "build" phrase. */
- for (i = 0; i < sizeof(prop_list)/sizeof(prop_list[0]); i++)
+ for (i = 0; i < ARRAY_SIZE(prop_list); i++)
{
hr = add_bstr_property(node, prop_list[i], winxpW);
if (FAILED(hr))
@@ -675,7 +680,8 @@ static HRESULT
fill_processor_information(IDxDiagContainerImpl_Container *node)
if(FAILED(hr))
return hr;
- sprintfW(print_buf, processor_fmtW, V_BSTR(&cpu_name), V_I4(&cpu_no),
V_I4(&clock_speed));
+ swprintf(print_buf, processor_fmtW,
+ V_BSTR(&cpu_name), V_I4(&cpu_no), V_I4(&clock_speed));
VariantClear(&cpu_name);
VariantClear(&cpu_no);
VariantClear(&clock_speed);
@@ -799,25 +805,26 @@ static HRESULT build_systeminfo_tree(IDxDiagContainerImpl_Container
*node)
return hr;
/* FIXME: Roundoff should not be done with truncated division. */
- snprintfW(print_buf, sizeof(print_buf)/sizeof(WCHAR), physmem_fmtW,
(DWORD)(msex.ullTotalPhys / (1024 * 1024)));
+ swprintf(print_buf, physmem_fmtW,
+ (DWORD)(msex.ullTotalPhys / (1024 * 1024)));
hr = add_bstr_property(node, szPhysicalMemoryEnglish, print_buf);
if (FAILED(hr))
return hr;
usedpage_mb = (DWORD)((msex.ullTotalPageFile - msex.ullAvailPageFile) / (1024 *
1024));
availpage_mb = (DWORD)(msex.ullAvailPageFile / (1024 * 1024));
- LoadStringW(dxdiagn_instance, IDS_PAGE_FILE_FORMAT, localized_pagefile_fmt,
sizeof(localized_pagefile_fmt)/sizeof(WCHAR));
+ LoadStringW(dxdiagn_instance, IDS_PAGE_FILE_FORMAT, localized_pagefile_fmt,
+ ARRAY_SIZE(localized_pagefile_fmt));
args[0] = usedpage_mb;
args[1] = availpage_mb;
- FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY,
- localized_pagefile_fmt, 0, 0, print_buf,
- sizeof(print_buf)/sizeof(*print_buf), (__ms_va_list*)args);
+ FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY,
localized_pagefile_fmt,
+ 0, 0, print_buf, ARRAY_SIZE(print_buf), (__ms_va_list*)args);
hr = add_bstr_property(node, szPageFileLocalized, print_buf);
if (FAILED(hr))
return hr;
- snprintfW(print_buf, sizeof(print_buf)/sizeof(WCHAR), pagefile_fmtW, usedpage_mb,
availpage_mb);
+ swprintf(print_buf, pagefile_fmtW, usedpage_mb, availpage_mb);
hr = add_bstr_property(node, szPageFileEnglish, print_buf);
if (FAILED(hr))
@@ -829,7 +836,7 @@ static HRESULT build_systeminfo_tree(IDxDiagContainerImpl_Container
*node)
if (FAILED(hr))
return hr;
- count = sizeof(computer_name)/sizeof(WCHAR);
+ count = ARRAY_SIZE(computer_name);
if (!GetComputerNameW(computer_name, &count))
return E_FAIL;
@@ -918,31 +925,37 @@ static BOOL get_texture_memory(GUID *adapter, DWORD *available_mem)
static const WCHAR *vendor_id_to_manufacturer_string(DWORD vendor_id)
{
+ unsigned int i;
+
static const WCHAR atiW[] = {'A','T','I','
','T','e','c','h','n','o','l','o','g','i','e','s','
','I','n','c','.',0};
static const WCHAR nvidiaW[] =
{'N','V','I','D','I','A',0};
static const WCHAR intelW[] =
{'I','n','t','e','l','
','C','o','r','p','o','r','a','t','i','o','n',0};
+ static const WCHAR vmwareW[] =
{'V','M','w','a','r','e',0};
+ static const WCHAR redhatW[] = {'R','e','d','
','H','a','t',0};
static const WCHAR unknownW[] =
{'U','n','k','n','o','w','n',0};
-
- /* Enumeration copied from dlls/wined3d/wined3d_private.h and slightly modified. */
- enum pci_vendor
+ static const struct
{
- HW_VENDOR_AMD = 0x1002,
- HW_VENDOR_NVIDIA = 0x10de,
- HW_VENDOR_INTEL = 0x8086,
+ DWORD id;
+ const WCHAR *name;
+ }
+ vendors[] =
+ {
+ {0x1002, atiW},
+ {0x10de, nvidiaW},
+ {0x15ad, vmwareW},
+ {0x1af4, redhatW},
+ {0x8086, intelW},
};
- switch (vendor_id)
+ for (i = 0; i < ARRAY_SIZE(vendors); ++i)
{
- case HW_VENDOR_AMD:
- return atiW;
- case HW_VENDOR_NVIDIA:
- return nvidiaW;
- case HW_VENDOR_INTEL:
- return intelW;
- default:
- FIXME("Unknown PCI vendor ID 0x%04x\n", vendor_id);
- return unknownW;
+ if (vendors[i].id == vendor_id)
+ return vendors[i].name;
}
+
+ FIXME("Unknown PCI vendor ID 0x%04x.\n", vendor_id);
+
+ return unknownW;
}
static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node)
@@ -985,7 +998,7 @@ static HRESULT
fill_display_information_d3d(IDxDiagContainerImpl_Container *node
DWORD available_mem = 0;
BOOL hardware_accel;
- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), adapterid_fmtW, index);
+ swprintf(buffer, adapterid_fmtW, index);
display_adapter = allocate_information_node(buffer);
if (!display_adapter)
{
@@ -1002,9 +1015,11 @@ static HRESULT
fill_display_information_d3d(IDxDiagContainerImpl_Container *node
WCHAR descriptionW[sizeof(adapter_info.Description)];
WCHAR devicenameW[sizeof(adapter_info.DeviceName)];
- MultiByteToWideChar(CP_ACP, 0, adapter_info.Driver, -1, driverW,
sizeof(driverW)/sizeof(WCHAR));
- MultiByteToWideChar(CP_ACP, 0, adapter_info.Description, -1, descriptionW,
sizeof(descriptionW)/sizeof(WCHAR));
- MultiByteToWideChar(CP_ACP, 0, adapter_info.DeviceName, -1, devicenameW,
sizeof(devicenameW)/sizeof(WCHAR));
+ MultiByteToWideChar(CP_ACP, 0, adapter_info.Driver, -1, driverW,
ARRAY_SIZE(driverW));
+ MultiByteToWideChar(CP_ACP, 0, adapter_info.Description, -1, descriptionW,
+ ARRAY_SIZE(descriptionW));
+ MultiByteToWideChar(CP_ACP, 0, adapter_info.DeviceName, -1, devicenameW,
+ ARRAY_SIZE(devicenameW));
hr = add_bstr_property(display_adapter, szDriverName, driverW);
if (FAILED(hr))
@@ -1018,7 +1033,7 @@ static HRESULT
fill_display_information_d3d(IDxDiagContainerImpl_Container *node
if (FAILED(hr))
goto cleanup;
- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), driverversion_fmtW,
+ swprintf(buffer, driverversion_fmtW,
HIWORD(adapter_info.DriverVersion.u.HighPart),
LOWORD(adapter_info.DriverVersion.u.HighPart),
HIWORD(adapter_info.DriverVersion.u.LowPart),
LOWORD(adapter_info.DriverVersion.u.LowPart));
@@ -1026,22 +1041,22 @@ static HRESULT
fill_display_information_d3d(IDxDiagContainerImpl_Container *node
if (FAILED(hr))
goto cleanup;
- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), id_fmtW,
adapter_info.VendorId);
+ swprintf(buffer, id_fmtW, adapter_info.VendorId);
hr = add_bstr_property(display_adapter, szVendorId, buffer);
if (FAILED(hr))
goto cleanup;
- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), id_fmtW,
adapter_info.DeviceId);
+ swprintf(buffer, id_fmtW, adapter_info.DeviceId);
hr = add_bstr_property(display_adapter, szDeviceId, buffer);
if (FAILED(hr))
goto cleanup;
- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), subsysid_fmtW,
adapter_info.SubSysId);
+ swprintf(buffer, subsysid_fmtW, adapter_info.SubSysId);
hr = add_bstr_property(display_adapter, szSubSysId, buffer);
if (FAILED(hr))
goto cleanup;
- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), id_fmtW,
adapter_info.Revision);
+ swprintf(buffer, id_fmtW, adapter_info.Revision);
hr = add_bstr_property(display_adapter, szRevisionId, buffer);
if (FAILED(hr))
goto cleanup;
@@ -1075,7 +1090,7 @@ static HRESULT
fill_display_information_d3d(IDxDiagContainerImpl_Container *node
if (FAILED(hr))
goto cleanup;
- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), mode_fmtW,
adapter_mode.Width, adapter_mode.Height,
+ swprintf(buffer, mode_fmtW, adapter_mode.Width, adapter_mode.Height,
depth_for_pixelformat(adapter_mode.Format),
adapter_mode.RefreshRate);
hr = add_bstr_property(display_adapter, szDisplayModeLocalized, buffer);
@@ -1110,7 +1125,7 @@ static HRESULT
fill_display_information_d3d(IDxDiagContainerImpl_Container *node
if (!get_texture_memory(&adapter_info.DeviceIdentifier, &available_mem))
WARN("get_texture_memory helper failed\n");
- snprintfW(buffer, sizeof(buffer)/sizeof(buffer[0]), mem_fmt, available_mem /
1000000.0f);
+ swprintf(buffer, mem_fmt, available_mem / 1000000.0f);
hr = add_bstr_property(display_adapter, szDisplayMemoryLocalized, buffer);
if (FAILED(hr))
@@ -1289,7 +1304,7 @@ static HRESULT
fill_display_information_fallback(IDxDiagContainerImpl_Container
{
static const WCHAR mem_fmt[] =
{'%','.','1','f',' ','M','B',0};
- snprintfW(buffer, sizeof(buffer)/sizeof(buffer[0]), mem_fmt, tmp / 1000000.0f);
+ swprintf(buffer, mem_fmt, tmp / 1000000.0f);
hr = add_bstr_property(display_adapter, szDisplayMemoryLocalized, buffer);
if (FAILED(hr))
@@ -1330,7 +1345,7 @@ static HRESULT
fill_display_information_fallback(IDxDiagContainerImpl_Container
if (FAILED(hr))
goto cleanup;
- for (tmp = 0; tmp < sizeof(empty_properties)/sizeof(empty_properties[0]); tmp++)
+ for (tmp = 0; tmp < ARRAY_SIZE(empty_properties); tmp++)
{
hr = add_bstr_property(display_adapter, empty_properties[tmp], szEmpty);
if (FAILED(hr))
@@ -1393,7 +1408,7 @@ BOOL CALLBACK dsound_enum(LPGUID guid, LPCWSTR desc, LPCWSTR module,
LPVOID cont
/* the default device is enumerated twice, one time without GUID */
if (!guid) return TRUE;
- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), deviceid_fmtW, enum_ctx->index);
+ _snwprintf(buffer, sizeof(buffer)/sizeof(WCHAR), deviceid_fmtW, enum_ctx->index);
device = allocate_information_node(buffer);
if (!device)
{
@@ -1417,8 +1432,8 @@ BOOL CALLBACK dsound_enum(LPGUID guid, LPCWSTR desc, LPCWSTR module,
LPVOID cont
return FALSE;
name = module;
- if ((p = strrchrW(name, '\\'))) name = p + 1;
- if ((p = strrchrW(name, '/'))) name = p + 1;
+ if ((p = wcsrchr(name, '\\'))) name = p + 1;
+ if ((p = wcsrchr(name, '/'))) name = p + 1;
enum_ctx->hr = add_bstr_property(device, szDriverName, name);
if (FAILED(enum_ctx->hr))
@@ -1556,12 +1571,9 @@ static HRESULT fill_file_description(IDxDiagContainerImpl_Container
*node, const
if (boolret)
{
- snprintfW(szVersion_v, sizeof(szVersion_v)/sizeof(szVersion_v[0]),
- szVersionFormat,
- HIWORD(pFileInfo->dwFileVersionMS),
- LOWORD(pFileInfo->dwFileVersionMS),
- HIWORD(pFileInfo->dwFileVersionLS),
- LOWORD(pFileInfo->dwFileVersionLS));
+ swprintf(szVersion_v, szVersionFormat,
+ HIWORD(pFileInfo->dwFileVersionMS),
LOWORD(pFileInfo->dwFileVersionMS),
+ HIWORD(pFileInfo->dwFileVersionLS),
LOWORD(pFileInfo->dwFileVersionLS));
TRACE("Found version as (%s)\n", debugstr_w(szVersion_v));
@@ -1633,14 +1645,14 @@ static HRESULT
build_directxfiles_tree(IDxDiagContainerImpl_Container *node)
GetSystemDirectoryW(szFilePath, MAX_PATH);
- for (i = 0; i < sizeof(dlls) / sizeof(dlls[0]); i++)
+ for (i = 0; i < ARRAY_SIZE(dlls); i++)
{
static const WCHAR szFormat[] = {'%','d',0};
WCHAR szFileID[5];
IDxDiagContainerImpl_Container *file_container;
- snprintfW(szFileID, sizeof(szFileID)/sizeof(szFileID[0]), szFormat, i);
+ swprintf(szFileID, szFormat, i);
file_container = allocate_information_node(szFileID);
if (!file_container)
@@ -1710,12 +1722,12 @@ static HRESULT
fill_filter_data_information(IDxDiagContainerImpl_Container *subc
if (FAILED(hr))
goto cleanup;
- hr = IAMFilterData_ParseFilterData(pFilterData, pData, cb, (BYTE **)&ppRF);
+ hr = IAMFilterData_ParseFilterData(pFilterData, pData, cb, &ppRF);
if (FAILED(hr))
goto cleanup;
pRF = ((REGFILTER2**)ppRF)[0];
- snprintfW(bufferW, sizeof(bufferW)/sizeof(bufferW[0]), szVersionFormat,
pRF->dwVersion);
+ swprintf(bufferW, szVersionFormat, pRF->dwVersion);
hr = add_bstr_property(subcont, szVersionW, bufferW);
if (FAILED(hr))
goto cleanup;
@@ -1887,7 +1899,7 @@ static HRESULT
build_directshowfilters_tree(IDxDiagContainerImpl_Container *node
WCHAR bufferW[10];
IDxDiagContainerImpl_Container *subcont;
- snprintfW(bufferW, sizeof(bufferW)/sizeof(bufferW[0]), szIdFormat, i);
+ swprintf(bufferW, szIdFormat, i);
subcont = allocate_information_node(bufferW);
if (!subcont)
{
@@ -1984,7 +1996,7 @@ static HRESULT build_information_tree(IDxDiagContainerImpl_Container
**pinfo_roo
if (!info_root)
return E_OUTOFMEMORY;
- for (index = 0; index < sizeof(root_children)/sizeof(root_children[0]); index++)
+ for (index = 0; index < ARRAY_SIZE(root_children); index++)
{
IDxDiagContainerImpl_Container *node;
HRESULT hr;
diff --git a/media/doc/README.WINE b/media/doc/README.WINE
index 97ff756270b..c61431446bb 100644
--- a/media/doc/README.WINE
+++ b/media/doc/README.WINE
@@ -37,7 +37,7 @@ dll/directx/wine/dplay # Synced to WineStaging-3.3
dll/directx/wine/dplayx # Synced to WineStaging-4.18
dll/directx/wine/dpnhpast # Synced to WineStaging-4.18
dll/directx/wine/dsound # Synced to Wine-1.3.29
-dll/directx/wine/dxdiagn # Synced to WineStaging-3.3
+dll/directx/wine/dxdiagn # Synced to WineStaging-4.18
dll/directx/wine/msdmo # Synced to WineStaging-3.17
dll/directx/wine/qedit # Synced to WineStaging-3.17
dll/directx/wine/quartz # Synced to WineStaging-3.9