Zebediah Figura : winegstreamer: Convert media type registration to IRegistrar mechanism.

Alexandre Julliard julliard at winehq.org
Tue Apr 23 17:39:55 CDT 2019


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

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Mon Apr 22 21:13:01 2019 -0500

winegstreamer: Convert media type registration to IRegistrar mechanism.

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

---

 dlls/winegstreamer/main.c            | 74 +++---------------------------------
 dlls/winegstreamer/rsrc.rc           |  4 +-
 dlls/winegstreamer/winegstreamer.inf | 12 ------
 dlls/winegstreamer/winegstreamer.rgs | 14 +++++++
 4 files changed, 21 insertions(+), 83 deletions(-)

diff --git a/dlls/winegstreamer/main.c b/dlls/winegstreamer/main.c
index 2a5dbd1..fa0b7e6 100644
--- a/dlls/winegstreamer/main.c
+++ b/dlls/winegstreamer/main.c
@@ -24,16 +24,11 @@
 
 #include <gst/gst.h>
 
-#include "windef.h"
-#include "winbase.h"
-#include "winuser.h"
-#include "winreg.h"
-#include "winerror.h"
-#include "advpub.h"
+#include "gst_private.h"
+#include "rpcproxy.h"
 #include "wine/debug.h"
-
 #include "wine/unicode.h"
-#include "gst_private.h"
+
 #include "initguid.h"
 #include "gst_guids.h"
 
@@ -308,65 +303,6 @@ BOOL init_gstreamer(void)
     return status;
 }
 
-#define INF_SET_ID(id)            \
-    do                            \
-    {                             \
-        static CHAR name[] = #id; \
-                                  \
-        pse[i].pszName = name;    \
-        clsids[i++] = &id;        \
-    } while (0)
-
-#define INF_SET_CLSID(clsid) INF_SET_ID(CLSID_ ## clsid)
-
-static HRESULT register_server(BOOL do_register)
-{
-    HRESULT hres;
-    HMODULE hAdvpack;
-    HRESULT (WINAPI *pRegInstall)(HMODULE hm, LPCSTR pszSection, const STRTABLEA* pstTable);
-    STRTABLEA strtable;
-    STRENTRYA pse[3];
-    static CLSID const *clsids[3];
-    unsigned int i = 0;
-
-    static const WCHAR wszAdvpack[] = {'a','d','v','p','a','c','k','.','d','l','l',0};
-
-    TRACE("(%x)\n", do_register);
-
-    INF_SET_CLSID(AsyncReader);
-    INF_SET_ID(MEDIATYPE_Stream);
-    INF_SET_ID(WINESUBTYPE_Gstreamer);
-
-    for(i = 0; i < ARRAY_SIZE(pse); i++) {
-        pse[i].pszValue = HeapAlloc(GetProcessHeap(),0,39);
-        sprintf(pse[i].pszValue, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
-                clsids[i]->Data1, clsids[i]->Data2, clsids[i]->Data3, clsids[i]->Data4[0],
-                clsids[i]->Data4[1], clsids[i]->Data4[2], clsids[i]->Data4[3], clsids[i]->Data4[4],
-                clsids[i]->Data4[5], clsids[i]->Data4[6], clsids[i]->Data4[7]);
-    }
-
-    strtable.cEntries = ARRAY_SIZE(pse);
-    strtable.pse = pse;
-
-    hAdvpack = LoadLibraryW(wszAdvpack);
-    pRegInstall = (void *)GetProcAddress(hAdvpack, "RegInstall");
-
-    hres = pRegInstall(hInst, do_register ? "RegisterDll" : "UnregisterDll", &strtable);
-
-    for(i = 0; i < ARRAY_SIZE(pse); i++)
-        HeapFree(GetProcessHeap(),0,pse[i].pszValue);
-
-    if(FAILED(hres)) {
-        ERR("RegInstall failed: %08x\n", hres);
-        return hres;
-    }
-
-    return hres;
-}
-
-#undef INF_SET_CLSID
-#undef INF_SET_ID
-
 /***********************************************************************
  *      DllRegisterServer
  */
@@ -378,7 +314,7 @@ HRESULT WINAPI DllRegisterServer(void)
 
     hr = AMovieDllRegisterServer2(TRUE);
     if (SUCCEEDED(hr))
-        hr = register_server(TRUE);
+        hr = __wine_register_resources(hInst);
     return hr;
 }
 
@@ -393,6 +329,6 @@ HRESULT WINAPI DllUnregisterServer(void)
 
     hr = AMovieDllRegisterServer2(FALSE);
     if (SUCCEEDED(hr))
-        hr = register_server(FALSE);
+        hr = __wine_unregister_resources(hInst);
     return hr;
 }
diff --git a/dlls/winegstreamer/rsrc.rc b/dlls/winegstreamer/rsrc.rc
index e12ba77..592bcb0 100644
--- a/dlls/winegstreamer/rsrc.rc
+++ b/dlls/winegstreamer/rsrc.rc
@@ -24,5 +24,5 @@
 
 #include "wine/wine_common_ver.rc"
 
-/* @makedep: winegstreamer.inf */
-REGINST REGINST winegstreamer.inf
+/* @makedep: winegstreamer.rgs */
+1 WINE_REGISTRY winegstreamer.rgs
diff --git a/dlls/winegstreamer/winegstreamer.inf b/dlls/winegstreamer/winegstreamer.inf
deleted file mode 100644
index 6477755..0000000
--- a/dlls/winegstreamer/winegstreamer.inf
+++ /dev/null
@@ -1,12 +0,0 @@
-[version]
-Signature="$CHICAGO$"
-
-[RegisterDll]
-AddReg=MediaParsing.Reg
-
-[UnregisterDll]
-DelReg=MediaParsing.Reg
-
-[MediaParsing.Reg]
-HKCR,"Media Type\%MEDIATYPE_Stream%\%WINESUBTYPE_Gstreamer%","0",,"0,1,00,0"
-HKCR,"Media Type\%MEDIATYPE_Stream%\%WINESUBTYPE_Gstreamer%","Source Filter",,"%CLSID_AsyncReader%"
diff --git a/dlls/winegstreamer/winegstreamer.rgs b/dlls/winegstreamer/winegstreamer.rgs
new file mode 100644
index 0000000..923ba67
--- /dev/null
+++ b/dlls/winegstreamer/winegstreamer.rgs
@@ -0,0 +1,14 @@
+HKCR
+{
+    NoRemove 'Media Type'
+    {
+        '{e436eb83-524f-11ce-9f53-0020af0ba770}'
+        {
+            ForceRemove '{ffffffff-128f-4dd1-ad22-becfa66ce7aa}'
+            {
+                val '0' = s '0,1,00,0'
+                val 'Source Filter' = s '{e436ebb5-524f-11ce-9f53-0020af0ba770}'
+            }
+        }
+    }
+}




More information about the wine-cvs mailing list