diff --git a/patches/mfplat-MFTRegisterLocal/0001-mfplat-Add-MFTRegisterLocal-stub.patch b/patches/mfplat-MFTRegisterLocal/0001-mfplat-Add-MFTRegisterLocal-stub.patch new file mode 100644 index 00000000..1e86b427 --- /dev/null +++ b/patches/mfplat-MFTRegisterLocal/0001-mfplat-Add-MFTRegisterLocal-stub.patch @@ -0,0 +1,64 @@ +From 1756ba1db0f6ad6f473107f8cb258d6ba6eedcbb Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Thu, 23 Aug 2018 15:27:51 +1000 +Subject: [PATCH 1/2] mfplat: Add MFTRegisterLocal stub + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45622 +Signed-off-by: Alistair Leslie-Hughes +--- + dlls/mfplat/main.c | 10 ++++++++++ + dlls/mfplat/mfplat.spec | 2 +- + include/mfapi.h | 3 +++ + 3 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c +index df61f3c..c5c8ad8 100644 +--- a/dlls/mfplat/main.c ++++ b/dlls/mfplat/main.c +@@ -230,6 +230,16 @@ HRESULT WINAPI MFTRegister(CLSID clsid, GUID category, LPWSTR name, UINT32 flags + return hr; + } + ++HRESULT WINAPI MFTRegisterLocal(IClassFactory *factory, REFGUID category, LPCWSTR name, ++ UINT32 flags, UINT32 cinput, const MFT_REGISTER_TYPE_INFO *input_types, ++ UINT32 coutput, const MFT_REGISTER_TYPE_INFO* output_types) ++{ ++ FIXME("(%p, %s, %s, %x, %u, %p, %u, %p)\n", factory, debugstr_guid(category), debugstr_w(name), ++ flags, cinput, input_types, coutput, output_types); ++ ++ return S_OK; ++} ++ + static BOOL match_type(const WCHAR *clsid_str, const WCHAR *type_str, MFT_REGISTER_TYPE_INFO *type) + { + HKEY htransform, hfilter; +diff --git a/dlls/mfplat/mfplat.spec b/dlls/mfplat/mfplat.spec +index a66f4d1..c143814 100644 +--- a/dlls/mfplat/mfplat.spec ++++ b/dlls/mfplat/mfplat.spec +@@ -138,7 +138,7 @@ + @ stdcall MFTEnumEx(int128 long ptr ptr ptr ptr) + @ stub MFTGetInfo + @ stdcall MFTRegister(int128 int128 wstr long long ptr long ptr ptr) +-@ stub MFTRegisterLocal ++@ stub MFTRegisterLocal(ptr ptr wstr long long ptr long ptr) + @ stub MFTRegisterLocalByCLSID + @ stdcall MFTUnregister(int128) + @ stub MFTUnregisterLocal +diff --git a/include/mfapi.h b/include/mfapi.h +index 5aead1e..f889840 100644 +--- a/include/mfapi.h ++++ b/include/mfapi.h +@@ -78,6 +78,9 @@ HRESULT WINAPI MFLockPlatform(void); + HRESULT WINAPI MFTRegister(CLSID clsid, GUID category, LPWSTR name, UINT32 flags, UINT32 cinput, + MFT_REGISTER_TYPE_INFO *input_types, UINT32 coutput, + MFT_REGISTER_TYPE_INFO *output_types, IMFAttributes *attributes); ++HRESULT WINAPI MFTRegisterLocal(IClassFactory *factory, REFGUID category, LPCWSTR name, ++ UINT32 flags, UINT32 cinput, const MFT_REGISTER_TYPE_INFO *input_types, ++ UINT32 coutput, const MFT_REGISTER_TYPE_INFO* output_types); + HRESULT WINAPI MFShutdown(void); + HRESULT WINAPI MFStartup(ULONG version, DWORD flags); + HRESULT WINAPI MFUnlockPlatform(void); +-- +1.9.1 + diff --git a/patches/mfplat-MFTRegisterLocal/0002-mfplat-Add-MFTUnregisterLocal-stub.patch b/patches/mfplat-MFTRegisterLocal/0002-mfplat-Add-MFTUnregisterLocal-stub.patch new file mode 100644 index 00000000..dbfb1f9b --- /dev/null +++ b/patches/mfplat-MFTRegisterLocal/0002-mfplat-Add-MFTUnregisterLocal-stub.patch @@ -0,0 +1,58 @@ +From 07b9d77b6b374fcf777c53dca09efe5c2cb5beda Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Fri, 24 Aug 2018 09:34:24 +1000 +Subject: [PATCH 2/2] mfplat: Add MFTUnregisterLocal stub + +Signed-off-by: Alistair Leslie-Hughes +--- + dlls/mfplat/main.c | 7 +++++++ + dlls/mfplat/mfplat.spec | 2 +- + include/mfapi.h | 1 + + 3 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c +index c5c8ad8..56f844f 100644 +--- a/dlls/mfplat/main.c ++++ b/dlls/mfplat/main.c +@@ -240,6 +240,13 @@ HRESULT WINAPI MFTRegisterLocal(IClassFactory *factory, REFGUID category, LPCWST + return S_OK; + } + ++HRESULT WINAPI MFTUnregisterLocal(IClassFactory *factory) ++{ ++ FIXME("(%p)\n", factory); ++ ++ return S_OK; ++} ++ + static BOOL match_type(const WCHAR *clsid_str, const WCHAR *type_str, MFT_REGISTER_TYPE_INFO *type) + { + HKEY htransform, hfilter; +diff --git a/dlls/mfplat/mfplat.spec b/dlls/mfplat/mfplat.spec +index c143814..1b33e2d 100644 +--- a/dlls/mfplat/mfplat.spec ++++ b/dlls/mfplat/mfplat.spec +@@ -141,7 +141,7 @@ + @ stub MFTRegisterLocal(ptr ptr wstr long long ptr long ptr) + @ stub MFTRegisterLocalByCLSID + @ stdcall MFTUnregister(int128) +-@ stub MFTUnregisterLocal ++@ stdcall MFTUnregisterLocal(ptr) + @ stub MFTUnregisterLocalByCLSID + @ stub MFTraceError + @ stub MFTraceFuncEnter +diff --git a/include/mfapi.h b/include/mfapi.h +index f889840..890d7bd 100644 +--- a/include/mfapi.h ++++ b/include/mfapi.h +@@ -85,6 +85,7 @@ HRESULT WINAPI MFShutdown(void); + HRESULT WINAPI MFStartup(ULONG version, DWORD flags); + HRESULT WINAPI MFUnlockPlatform(void); + HRESULT WINAPI MFTUnregister(CLSID clsid); ++HRESULT WINAPI MFTUnregisterLocal(IClassFactory *factory); + HRESULT WINAPI MFGetPluginControl(IMFPluginControl**); + + #endif /* __WINE_MFAPI_H */ +-- +1.9.1 + diff --git a/patches/mfplat-MFTRegisterLocal/definition b/patches/mfplat-MFTRegisterLocal/definition new file mode 100644 index 00000000..0799ae1c --- /dev/null +++ b/patches/mfplat-MFTRegisterLocal/definition @@ -0,0 +1,2 @@ +Fixes: [45622] Add MFTRegisterLocal stub +Fixes: Add MFTUnregisterLocal stub diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 78fdb037..23e7b13f 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -183,6 +183,7 @@ patch_enable_all () enable_libs_Debug_Channel="$1" enable_libs_Unicode_Collation="$1" enable_loader_OSX_Preloader="$1" + enable_mfplat_MFTRegisterLocal="$1" enable_mmsystem_dll16_MIDIHDR_Refcount="$1" enable_mountmgr_DosDevices="$1" enable_mscoree_CorValidateImage="$1" @@ -723,6 +724,9 @@ patch_enable () loader-OSX_Preloader) enable_loader_OSX_Preloader="$2" ;; + mfplat-MFTRegisterLocal) + enable_mfplat_MFTRegisterLocal="$2" + ;; mmsystem.dll16-MIDIHDR_Refcount) enable_mmsystem_dll16_MIDIHDR_Refcount="$2" ;; @@ -4371,6 +4375,23 @@ if test "$enable_loader_OSX_Preloader" -eq 1; then ) >> "$patchlist" fi +# Patchset mfplat-MFTRegisterLocal +# | +# | This patchset fixes the following Wine bugs: +# | * [#45622] Add MFTRegisterLocal stub +# | +# | Modified files: +# | * dlls/mfplat/main.c, dlls/mfplat/mfplat.spec, include/mfapi.h +# | +if test "$enable_mfplat_MFTRegisterLocal" -eq 1; then + patch_apply mfplat-MFTRegisterLocal/0001-mfplat-Add-MFTRegisterLocal-stub.patch + patch_apply mfplat-MFTRegisterLocal/0002-mfplat-Add-MFTUnregisterLocal-stub.patch + ( + printf '%s\n' '+ { "Alistair Leslie-Hughes", "mfplat: Add MFTRegisterLocal stub.", 1 },'; + printf '%s\n' '+ { "Alistair Leslie-Hughes", "mfplat: Add MFTUnregisterLocal stub.", 1 },'; + ) >> "$patchlist" +fi + # Patchset mmsystem.dll16-MIDIHDR_Refcount # | # | This patchset fixes the following Wine bugs: