The Windows Media Creation Tool crashes on this unimplemented function.
Signed-off-by: Mohamad Al-Jaf mohamadaljaf@gmail.com --- The deletions are just an extra space added to line up the prototypes. --- dlls/wdscore/main.c | 24 ++++++++++++++++++++++ dlls/wdscore/wdscore.spec | 4 ++-- dlls/wdscore/wdscore_internal.h | 35 ++++++++++++++++++++++++++++++--- 3 files changed, 58 insertions(+), 5 deletions(-)
diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c index d6b491802bf..8d67215bbe7 100644 --- a/dlls/wdscore/main.c +++ b/dlls/wdscore/main.c @@ -71,3 +71,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 6b39727f1c5..767bbf3bfa8 100644 --- a/dlls/wdscore/wdscore_internal.h +++ b/dlls/wdscore/wdscore_internal.h @@ -30,8 +30,37 @@ typedef enum _WdsLogLevel { WdsLogLevelTrace = 0x70000000 } WdsLogLevel;
-LPVOID WINAPI CurrentIP(void); -LPVOID WINAPI ConstructPartialMsgVA(WdsLogLevel,LPCSTR,va_list); -LPVOID WINAPI ConstructPartialMsgVW(WdsLogLevel,LPCWSTR,va_list); +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; + +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__ */