[PATCH v10 6/8] wdscore: Add WdsSetupLogMessage[A/W] stubs.

Mohamad Al-Jaf mohamadaljaf at gmail.com
Mon Apr 11 20:06:30 CDT 2022


The Windows Media Creation Tool crashes on this
unimplemented function.

Signed-off-by: Mohamad Al-Jaf <mohamadaljaf at gmail.com>
---
 dlls/wdscore/main.c             | 24 ++++++++++++++++++++++++
 dlls/wdscore/wdscore.spec       |  4 ++--
 dlls/wdscore/wdscore_internal.h | 29 +++++++++++++++++++++++++++++
 3 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c
index c4d82051b6e..fc95391c167 100644
--- a/dlls/wdscore/main.c
+++ b/dlls/wdscore/main.c
@@ -53,3 +53,27 @@ LPVOID WINAPI ConstructPartialMsgVW( WdsLogLevel level, LPCWSTR msg, va_list arg
     FIXME( "(%u, %s) - stub\n", level, debugstr_w(msg) );
     return NULL;
 }
+
+/***********************************************************************
+ *           WdsSetupLogMessageA (wdscore.@)
+ */
+HRESULT WINAPI WdsSetupLogMessageA( LPVOID msg, WdsLogSource src, LPCSTR str1, LPCSTR str2,
+                                    ULONG unk1, LPCSTR file, LPCSTR func, void *ip, ULONG unk2,
+                                    void *unk3, UINT unk4 )
+{
+    FIXME( "(%p, %u, %s, %s, %lu, %s, %s, %p, %lu, %p, %u) - stub\n", msg, src, debugstr_a(str1),
+           debugstr_a(str2), unk1, debugstr_a(file), debugstr_a(func), ip, unk2, unk3, unk4 );
+    return S_OK;
+}
+
+/***********************************************************************
+ *           WdsSetupLogMessageW (wdscore.@)
+ */
+HRESULT WINAPI WdsSetupLogMessageW( LPVOID msg, WdsLogSource src, LPCWSTR str1, LPCWSTR str2,
+                                    ULONG unk1, LPCWSTR file, LPCWSTR func, void *ip, ULONG unk2,
+                                    void *unk3, UINT unk4 )
+{
+    FIXME( "(%p, %u, %s, %s, %lu, %s, %s, %p, %lu, %p, %u) - stub\n", msg, src, debugstr_w(str1),
+           debugstr_w(str2), unk1, debugstr_w(file), debugstr_w(func), ip, unk2, unk3, unk4 );
+    return S_OK;
+}
diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec
index b14778001a8..7ec8025ddee 100644
--- a/dlls/wdscore/wdscore.spec
+++ b/dlls/wdscore/wdscore.spec
@@ -150,8 +150,8 @@
 @ stub WdsSetUILanguage
 @ stub WdsSetupLogDestroy
 @ stub WdsSetupLogInit
-@ stub WdsSetupLogMessageA
-@ stub WdsSetupLogMessageW
+@ stdcall WdsSetupLogMessageA(ptr long str str long str str ptr long ptr long)
+@ stdcall WdsSetupLogMessageW(ptr long wstr wstr long wstr wstr ptr long ptr long)
 @ stub WdsSubscribeEx
 @ stub WdsTerminate
 @ stub WdsUnlockExecutionGroup
diff --git a/dlls/wdscore/wdscore_internal.h b/dlls/wdscore/wdscore_internal.h
index 5ab070dade2..f29776b2459 100644
--- a/dlls/wdscore/wdscore_internal.h
+++ b/dlls/wdscore/wdscore_internal.h
@@ -32,6 +32,33 @@ typedef enum _WdsLogLevel {
     WdsLogLevelTrace      = 0x70000000
 } WdsLogLevel;
 
+typedef enum _WdsLogSource {
+    WdsLogSourceDPX    = 0x10000,
+    WdsLogSourceCBS    = 0x20000,
+    WdsLogSourceCSI    = 0x18000,
+    WdsLogSourceSXS    = 0x28000,
+    WdsLogSourceCMI    = 0x30000,
+    WdsLogSourceDEPLOY = 0x40000,
+    WdsLogSourceDU     = 0x50000,
+    WdsLogSourceIBS    = 0x60000,
+    WdsLogSourceIBSLIB = 0x64000,
+    WdsLogSourceDIAG   = 0x70000,
+    WdsLogSourceDIAGER = 0x74000,
+    WdsLogSourceMIG    = 0x80000,
+    WdsLogSourceHWARE  = 0x84000,
+    WdsLogSourceMIGUI  = 0x88000,
+    WdsLogSourceUI     = 0xA0000,
+    WdsLogSourceCONX   = 0xA4000,
+    WdsLogSourceMOUPG  = 0xA8000,
+    WdsLogSourceWDS    = 0xB0000,
+    WdsLogSourceDISM   = 0xB8000,
+    WdsLogSourcePANTHR = 0x90000,
+    WdsLogSourceWINPE  = 0xC0000,
+    WdsLogSourceSP     = 0xC8000,
+    WdsLogSourceLIB    = 0xD0000,
+    WdsLogSourceTOOL   = 0xE0000
+} WdsLogSource;
+
 WINAPI void *get_ip(void);
 
 #ifdef __i386__
@@ -55,5 +82,7 @@ __ASM_STDCALL_FUNC(get_ip, 0,
 LPVOID  WINAPI CurrentIP(void);
 LPVOID  WINAPI ConstructPartialMsgVA(WdsLogLevel,LPCSTR,va_list);
 LPVOID  WINAPI ConstructPartialMsgVW(WdsLogLevel,LPCWSTR,va_list);
+HRESULT WINAPI WdsSetupLogMessageA(LPVOID,WdsLogSource,LPCSTR,LPCSTR,ULONG,LPCSTR,LPCSTR,void*,ULONG,void*,UINT);
+HRESULT WINAPI WdsSetupLogMessageW(LPVOID,WdsLogSource,LPCWSTR,LPCWSTR,ULONG,LPCWSTR,LPCWSTR,void*,ULONG,void*,UINT);
 
 #endif /* __WDSCORE_INTERNAL_H__ */
-- 
2.35.1




More information about the wine-devel mailing list