Zebediah Figura : qedit: Register the sample grabber and null renderer.

Alexandre Julliard julliard at winehq.org
Mon Mar 9 17:42:33 CDT 2020


Module: wine
Branch: master
Commit: cf376c96e8d7ac8308f37217400de251d13299cd
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=cf376c96e8d7ac8308f37217400de251d13299cd

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Sun Mar  8 14:05:07 2020 -0500

qedit: Register the sample grabber and null renderer.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/qedit/main.c          | 77 ++++++++++++++++++++++++++++++++++++++++++++--
 dlls/qedit/qedit_private.h |  3 +-
 dlls/quartz/regsvr.c       | 12 --------
 3 files changed, 77 insertions(+), 15 deletions(-)

diff --git a/dlls/qedit/main.c b/dlls/qedit/main.c
index a271f9adb7..3797d96dcf 100644
--- a/dlls/qedit/main.c
+++ b/dlls/qedit/main.c
@@ -192,12 +192,71 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
     return S_OK;
 }
 
+static const REGPINTYPES reg_null_mt = {&GUID_NULL, &GUID_NULL};
+
+static const REGFILTERPINS2 reg_sample_grabber_pins[2] =
+{
+    {
+        .cInstances = 1,
+        .nMediaTypes = 1,
+        .lpMediaType = &reg_null_mt,
+    },
+    {
+        .dwFlags = REG_PINFLAG_B_OUTPUT,
+        .cInstances = 1,
+        .nMediaTypes = 1,
+        .lpMediaType = &reg_null_mt,
+    },
+};
+
+static const REGFILTER2 reg_sample_grabber =
+{
+    .dwVersion = 2,
+    .dwMerit = MERIT_DO_NOT_USE,
+    .u.s2.cPins2 = 2,
+    .u.s2.rgPins2 = reg_sample_grabber_pins,
+};
+
+static const REGFILTERPINS2 reg_null_renderer_pins[1] =
+{
+    {
+        .dwFlags = REG_PINFLAG_B_OUTPUT,
+        .cInstances = 1,
+        .nMediaTypes = 1,
+        .lpMediaType = &reg_null_mt,
+    },
+};
+
+static const REGFILTER2 reg_null_renderer =
+{
+    .dwVersion = 2,
+    .dwMerit = MERIT_DO_NOT_USE,
+    .u.s2.cPins2 = 1,
+    .u.s2.rgPins2 = reg_null_renderer_pins,
+};
+
 /***********************************************************************
  *		DllRegisterServer (QEDIT.@)
  */
 HRESULT WINAPI DllRegisterServer(void)
 {
-    return __wine_register_resources( instance );
+    IFilterMapper2 *mapper;
+    HRESULT hr;
+
+    if (FAILED(hr = __wine_register_resources( instance )))
+        return hr;
+
+    if (FAILED(hr = CoCreateInstance(&CLSID_FilterMapper2, NULL, CLSCTX_INPROC_SERVER,
+            &IID_IFilterMapper2, (void **)&mapper)))
+        return hr;
+
+    IFilterMapper2_RegisterFilter(mapper, &CLSID_SampleGrabber, L"SampleGrabber",
+            NULL, NULL, NULL, &reg_sample_grabber);
+    IFilterMapper2_RegisterFilter(mapper, &CLSID_NullRenderer, L"Null Renderer",
+            NULL, NULL, NULL, &reg_null_renderer);
+
+    IFilterMapper2_Release(mapper);
+    return S_OK;
 }
 
 /***********************************************************************
@@ -205,5 +264,19 @@ HRESULT WINAPI DllRegisterServer(void)
  */
 HRESULT WINAPI DllUnregisterServer(void)
 {
-    return __wine_unregister_resources( instance );
+    IFilterMapper2 *mapper;
+    HRESULT hr;
+
+    if (FAILED(hr = __wine_unregister_resources( instance )))
+        return hr;
+
+    if (FAILED(hr = CoCreateInstance(&CLSID_FilterMapper2, NULL, CLSCTX_INPROC_SERVER,
+            &IID_IFilterMapper2, (void **)&mapper)))
+        return hr;
+
+    IFilterMapper2_UnregisterFilter(mapper, NULL, NULL, &CLSID_SampleGrabber);
+    IFilterMapper2_UnregisterFilter(mapper, NULL, NULL, &CLSID_NullRenderer);
+
+    IFilterMapper2_Release(mapper);
+    return S_OK;
 }
diff --git a/dlls/qedit/qedit_private.h b/dlls/qedit/qedit_private.h
index 344656d7d8..96f21bcb3b 100644
--- a/dlls/qedit/qedit_private.h
+++ b/dlls/qedit/qedit_private.h
@@ -23,7 +23,8 @@
 #include <stdarg.h>
 
 #define COBJMACROS
-
+#define NONAMELESSSTRUCT
+#define NONAMELESSUNION
 #include "windef.h"
 #include "winbase.h"
 #include "wtypes.h"
diff --git a/dlls/quartz/regsvr.c b/dlls/quartz/regsvr.c
index ff5db662f0..7196f79a54 100644
--- a/dlls/quartz/regsvr.c
+++ b/dlls/quartz/regsvr.c
@@ -174,18 +174,6 @@ static HRESULT unregister_filters(struct regsvr_filter const *list)
  */
 
 static struct regsvr_filter const filter_list[] = {
-    {   &CLSID_NullRenderer,
-        &CLSID_LegacyAmFilterCategory,
-        L"Null Renderer",
-        0x200000,
-        {   {   REG_PINFLAG_B_RENDERER,
-                {   { &MEDIATYPE_NULL, &GUID_NULL },
-                    { NULL }
-                },
-            },
-            { 0xFFFFFFFF },
-        }
-    },
     {   &CLSID_VideoRenderer,
 	&CLSID_LegacyAmFilterCategory,
 	L"Video Renderer",




More information about the wine-cvs mailing list