[PATCH v2] shcore: Add stub for GetScaleFactorForMonitor

Vijay Kiran Kamuju infyquest at gmail.com
Mon Nov 25 02:00:26 CST 2019


Based on patch from Esdras Tarsis <esdrastarsis at gmail.com>

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48016

Signed-off-by: Vijay Kiran Kamuju <infyquest at gmail.com>
---
 .../api-ms-win-shcore-scaling-l1-1-1.spec     |  2 +-
 dlls/shcore/main.c                            |  8 +++++++
 dlls/shcore/shcore.spec                       |  2 +-
 include/shellscalingapi.h                     |  4 ++++
 include/shtypes.idl                           | 21 +++++++++++++++++++
 5 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/dlls/api-ms-win-shcore-scaling-l1-1-1/api-ms-win-shcore-scaling-l1-1-1.spec b/dlls/api-ms-win-shcore-scaling-l1-1-1/api-ms-win-shcore-scaling-l1-1-1.spec
index 6194c8ce9dfc..9ebda5164c1d 100644
--- a/dlls/api-ms-win-shcore-scaling-l1-1-1/api-ms-win-shcore-scaling-l1-1-1.spec
+++ b/dlls/api-ms-win-shcore-scaling-l1-1-1/api-ms-win-shcore-scaling-l1-1-1.spec
@@ -1,7 +1,7 @@
 @ stdcall GetDpiForMonitor(long long ptr ptr) shcore.GetDpiForMonitor
 @ stdcall GetProcessDpiAwareness(long ptr) shcore.GetProcessDpiAwareness
 @ stub GetScaleFactorForDevice
-@ stub GetScaleFactorForMonitor
+@ stdcall GetScaleFactorForMonitor(long ptr) shcore.GetScaleFactorForMonitor
 @ stub RegisterScaleChangeEvent
 @ stub RegisterScaleChangeNotifications
 @ stub RevokeScaleChangeNotifications
diff --git a/dlls/shcore/main.c b/dlls/shcore/main.c
index 6a6247930f52..3f95c1ffd872 100644
--- a/dlls/shcore/main.c
+++ b/dlls/shcore/main.c
@@ -78,6 +78,14 @@ HRESULT WINAPI GetDpiForMonitor(HMONITOR monitor, MONITOR_DPI_TYPE type, UINT *x
     return HRESULT_FROM_WIN32( GetLastError() );
 }
 
+HRESULT WINAPI GetScaleFactorForMonitor(HMONITOR monitor, DEVICE_SCALE_FACTOR *scale)
+{
+    FIXME("(%p %p): stub\n", monitor, scale);
+
+    *scale = SCALE_100_PERCENT;
+    return S_OK;
+}
+
 HRESULT WINAPI _IStream_Read(IStream *stream, void *dest, ULONG size)
 {
     ULONG read;
diff --git a/dlls/shcore/shcore.spec b/dlls/shcore/shcore.spec
index 6a634bdee5c8..d5b7a342e319 100644
--- a/dlls/shcore/shcore.spec
+++ b/dlls/shcore/shcore.spec
@@ -12,7 +12,7 @@
 @ stdcall GetProcessDpiAwareness(long ptr)
 @ stdcall GetProcessReference(ptr)
 @ stub GetScaleFactorForDevice
-@ stub GetScaleFactorForMonitor
+@ stdcall GetScaleFactorForMonitor(long ptr)
 @ stub IStream_Copy
 @ stdcall IStream_Read(ptr ptr long) _IStream_Read
 @ stub IStream_ReadStr
diff --git a/include/shellscalingapi.h b/include/shellscalingapi.h
index 1df85d598280..6f2f7188738e 100644
--- a/include/shellscalingapi.h
+++ b/include/shellscalingapi.h
@@ -19,6 +19,8 @@
 #ifndef __WINE_SHELLSCALINGAPI_H
 #define __WINE_SHELLSCALINGAPI_H
 
+#include <shtypes.h>
+
 typedef enum MONITOR_DPI_TYPE
 {
     MDT_EFFECTIVE_DPI   = 0,
@@ -34,6 +36,8 @@ typedef enum PROCESS_DPI_AWARENESS
     PROCESS_PER_MONITOR_DPI_AWARE
 } PROCESS_DPI_AWARENESS;
 
+HRESULT WINAPI GetScaleFactorForMonitor(HMONITOR,DEVICE_SCALE_FACTOR*);
+
 HRESULT WINAPI GetDpiForMonitor(HMONITOR,MONITOR_DPI_TYPE,UINT*,UINT*);
 HRESULT WINAPI GetProcessDpiAwareness(HANDLE,PROCESS_DPI_AWARENESS*);
 HRESULT WINAPI SetProcessDpiAwareness(PROCESS_DPI_AWARENESS);
diff --git a/include/shtypes.idl b/include/shtypes.idl
index 3d54c8038187..c83562a24bb1 100644
--- a/include/shtypes.idl
+++ b/include/shtypes.idl
@@ -161,3 +161,24 @@ cpp_quote("#define PERCEIVEDFLAG_NATIVESUPPORT 0x0004")
 cpp_quote("#define PERCEIVEDFLAG_GDIPLUS       0x0010")
 cpp_quote("#define PERCEIVEDFLAG_WMSDK         0x0020")
 cpp_quote("#define PERCEIVEDFLAG_ZIPFOLDER     0x0040")
+
+typedef [v1_enum] enum DEVICE_SCALE_FACTOR
+{
+  DEVICE_SCALE_FACTOR_INVALID = 0,
+  SCALE_100_PERCENT = 100,
+  SCALE_120_PERCENT = 120,
+  SCALE_125_PERCENT = 125,
+  SCALE_140_PERCENT = 140,
+  SCALE_150_PERCENT = 150,
+  SCALE_160_PERCENT = 160,
+  SCALE_175_PERCENT = 175,
+  SCALE_180_PERCENT = 180,
+  SCALE_200_PERCENT = 200,
+  SCALE_225_PERCENT = 225,
+  SCALE_250_PERCENT = 250,
+  SCALE_300_PERCENT = 300,
+  SCALE_350_PERCENT = 350,
+  SCALE_400_PERCENT = 400,
+  SCALE_450_PERCENT = 450,
+  SCALE_500_PERCENT = 500
+} DEVICE_SCALE_FACTOR;
-- 
2.21.0




More information about the wine-devel mailing list