[PATCH] mf: Implement MFCreateNetSchemePlugin().
Nikolay Sivov
nsivov at codeweavers.com
Mon Apr 11 03:43:50 CDT 2022
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/mf/main.c | 10 ++++++++++
dlls/mf/mf.spec | 2 +-
dlls/mf/tests/mf.c | 23 +++++++++++++++++++++++
include/mfidl.idl | 1 +
4 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/dlls/mf/main.c b/dlls/mf/main.c
index 6b1d9293c8a..55e071d23f4 100644
--- a/dlls/mf/main.c
+++ b/dlls/mf/main.c
@@ -1419,3 +1419,13 @@ HRESULT WINAPI MFRequireProtectedEnvironment(IMFPresentationDescriptor *pd)
return protected ? S_OK : S_FALSE;
}
+
+/***********************************************************************
+ * MFCreateNetSchemePlugin (mf.@)
+ */
+HRESULT WINAPI MFCreateNetSchemePlugin(REFIID riid, void **out)
+{
+ TRACE("%s, %p.\n", debugstr_guid(riid), out);
+
+ return CoCreateInstance(&CLSID_NetSchemePlugin, NULL, CLSCTX_INPROC_SERVER, riid, (void **)out);
+}
diff --git a/dlls/mf/mf.spec b/dlls/mf/mf.spec
index 8f340243fc2..162feac4b34 100644
--- a/dlls/mf/mf.spec
+++ b/dlls/mf/mf.spec
@@ -41,7 +41,7 @@
@ stub MFCreateMediaProcessor
@ stdcall MFCreateMediaSession(ptr ptr)
@ stub MFCreateNSCByteStreamPlugin
-@ stub MFCreateNetSchemePlugin
+@ stdcall MFCreateNetSchemePlugin(ptr ptr)
@ stub MFCreatePMPHost
@ stub MFCreatePMPMediaSession
@ stub MFCreatePMPServer
diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c
index 31a84e47bc1..4015ca79910 100644
--- a/dlls/mf/tests/mf.c
+++ b/dlls/mf/tests/mf.c
@@ -6971,6 +6971,28 @@ failed:
CoUninitialize();
}
+static void test_MFCreateNetSchemePlugin(void)
+{
+ IMFSchemeHandler *handler;
+ HRESULT hr;
+
+ hr = MFCreateNetSchemePlugin(&IID_IMFSchemeHandler, (void **)&handler);
+ todo_wine
+ ok(hr == CO_E_NOTINITIALIZED, "Unexpected hr %#lx.\n", hr);
+
+ hr = CoInitialize(NULL);
+ ok(hr == S_OK, "Failed to initialize, hr %#lx.\n", hr);
+
+ hr = MFCreateNetSchemePlugin(&IID_IMFSchemeHandler, (void **)&handler);
+ todo_wine
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ if (SUCCEEDED(hr))
+ IMFSchemeHandler_Release(handler);
+
+ CoUninitialize();
+}
+
START_TEST(mf)
{
init_functions();
@@ -7004,6 +7026,7 @@ START_TEST(mf)
test_sample_copier_output_processing();
test_MFGetTopoNodeCurrentType();
test_MFRequireProtectedEnvironment();
+ test_MFCreateNetSchemePlugin();
test_wma_encoder();
test_wma_decoder();
test_h264_decoder();
diff --git a/include/mfidl.idl b/include/mfidl.idl
index 7034378f585..68057de54c8 100644
--- a/include/mfidl.idl
+++ b/include/mfidl.idl
@@ -673,6 +673,7 @@ cpp_quote("HRESULT WINAPI MFCreateAudioRendererActivate(IMFActivate **activate);
cpp_quote("HRESULT WINAPI MFCreateMediaSession(IMFAttributes *config, IMFMediaSession **session);")
cpp_quote("HRESULT WINAPI MFCreateMFByteStreamOnStream(IStream *stream, IMFByteStream **bytestream);" )
cpp_quote("HRESULT WINAPI MFCreateMFByteStreamOnStreamEx(IUnknown *stream, IMFByteStream **bytestream);")
+cpp_quote("HRESULT WINAPI MFCreateNetSchemePlugin(REFIID riid, void **obj);")
cpp_quote("HRESULT WINAPI MFCreatePresentationClock(IMFPresentationClock **clock);")
cpp_quote("HRESULT WINAPI MFCreatePresentationDescriptor(DWORD count, IMFStreamDescriptor **descriptors,")
cpp_quote(" IMFPresentationDescriptor **presentation_desc);")
--
2.35.1
More information about the wine-devel
mailing list