[PATCH 2/4] mfplat: Implement MFTUnregister.

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Thu Apr 27 23:28:40 CDT 2017


From: Michael Müller <michael at fds-team.de>

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 dlls/mfplat/main.c      | 38 ++++++++++++++++++++++++++++++++++++++
 dlls/mfplat/mfplat.spec |  2 +-
 2 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c
index 424c7f4..84b2025 100644
--- a/dlls/mfplat/main.c
+++ b/dlls/mfplat/main.c
@@ -191,6 +191,44 @@ HRESULT WINAPI MFTRegister(CLSID clsid, GUID category, LPWSTR name, UINT32 flags
 }
 
 /***********************************************************************
+ *      MFTUnregister (mfplat.@)
+ */
+HRESULT WINAPI MFTUnregister(CLSID clsid)
+{
+    WCHAR buffer[64], category[MAX_PATH];
+    HKEY htransform, hcategory, htmp;
+    DWORD size = MAX_PATH;
+    DWORD index = 0;
+
+    FIXME("(%s)\n", debugstr_guid(&clsid));
+
+    GUIDToString(buffer, &clsid);
+
+    if (!RegOpenKeyW(HKEY_LOCAL_MACHINE, transform_keyW, &htransform))
+    {
+        RegDeleteKeyW(htransform, buffer);
+        RegCloseKey(htransform);
+    }
+
+    if (!RegOpenKeyW(HKEY_LOCAL_MACHINE, categories_keyW, &hcategory))
+    {
+        while (RegEnumKeyExW(hcategory, index, category, &size, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
+        {
+            if (!RegOpenKeyW(hcategory, category, &htmp))
+            {
+                RegDeleteKeyW(htmp, buffer);
+                RegCloseKey(htmp);
+            }
+            size = MAX_PATH;
+            index++;
+        }
+        RegCloseKey(hcategory);
+    }
+
+    return S_OK;
+}
+
+/***********************************************************************
  *      MFStartup (mfplat.@)
  */
 HRESULT WINAPI MFStartup(ULONG version, DWORD flags)
diff --git a/dlls/mfplat/mfplat.spec b/dlls/mfplat/mfplat.spec
index 042a919..dc6f402 100644
--- a/dlls/mfplat/mfplat.spec
+++ b/dlls/mfplat/mfplat.spec
@@ -140,7 +140,7 @@
 @ stdcall MFTRegister(int128 int128 wstr long long ptr long ptr ptr)
 @ stub MFTRegisterLocal
 @ stub MFTRegisterLocalByCLSID
-@ stub MFTUnregister
+@ stdcall MFTUnregister(int128)
 @ stub MFTUnregisterLocal
 @ stub MFTUnregisterLocalByCLSID
 @ stub MFTraceError
-- 
1.9.1



More information about the wine-patches mailing list