Otherwise GTA San Andreas runs into it and crashes. This stub let's it work again.
a workaround is to disable wmvcore in winecfg...
---
dlls/wmvcore/wmvcore.spec | 2 +-
dlls/wmvcore/wmvcore_main.c | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/dlls/wmvcore/wmvcore.spec b/dlls/wmvcore/wmvcore.spec
index 1c6cb1f..e0fa2e9 100644
--- a/dlls/wmvcore/wmvcore.spec
+++ b/dlls/wmvcore/wmvcore.spec
@@ -11,7 +11,7 @@
@ stub WMCreateProfileManager
@ stub WMCreateReader
@ stub WMCreateReaderPriv
-@ stub WMCreateSyncReader
+@ stdcall WMCreateSyncReader(ptr long ptr)
@ stub WMCreateWriter
@ stub WMCreateWriterFileSink
@ stub WMCreateWriterNetworkSink
diff --git a/dlls/wmvcore/wmvcore_main.c b/dlls/wmvcore/wmvcore_main.c
index 096328b..5fce972 100644
--- a/dlls/wmvcore/wmvcore_main.c
+++ b/dlls/wmvcore/wmvcore_main.c
@@ -22,6 +22,7 @@
#include "windef.h"
#include "winbase.h"
+#include "objbase.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(wmvcore);
@@ -43,3 +44,10 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
return TRUE;
}
+
+HRESULT WINAPI WMCreateSyncReader(IUnknown *pcert, DWORD rights,
+ IUnknown /* FIXME: IWMSyncReader */ **syncreader)
+{
+ FIXME("(%p, %x, %p): stub\n", pcert, rights, syncreader);
+ return E_NOTIMPL;
+}
You'll be probably requested to add a proper .idl for that with
interface definition. Also it makes sense to init out parameter to
0, as a common practice for such creation methods/calls.