=?UTF-8?Q?Michael=20M=C3=BCller=20?=: mfplat: Implement MFTUnregister.
Alexandre Julliard
julliard at winehq.org
Tue May 9 17:21:01 CDT 2017
Module: wine
Branch: master
Commit: 4615f4db3ad665957995c574236072a7abb4eb67
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4615f4db3ad665957995c574236072a7abb4eb67
Author: Michael Müller <michael at fds-team.de>
Date: Mon May 8 22:50:38 2017 +0000
mfplat: Implement MFTUnregister.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mfplat/main.c | 38 ++++++++++++++++++++++++++++++++++++++
dlls/mfplat/mfplat.spec | 2 +-
include/mfapi.h | 1 +
3 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c
index 19e3cab..b54dc9d 100644
--- a/dlls/mfplat/main.c
+++ b/dlls/mfplat/main.c
@@ -164,6 +164,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;
+
+ TRACE("(%s)\n", debugstr_guid(&clsid));
+
+ GUIDToString(buffer, &clsid);
+
+ if (!RegOpenKeyW(HKEY_CLASSES_ROOT, transform_keyW, &htransform))
+ {
+ RegDeleteKeyW(htransform, buffer);
+ RegCloseKey(htransform);
+ }
+
+ if (!RegOpenKeyW(HKEY_CLASSES_ROOT, 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
diff --git a/include/mfapi.h b/include/mfapi.h
index 2eca9c3..a37d655 100644
--- a/include/mfapi.h
+++ b/include/mfapi.h
@@ -39,6 +39,7 @@ HRESULT WINAPI MFTRegister(CLSID clsid, GUID category, LPWSTR name, UINT32 flags
HRESULT WINAPI MFShutdown(void);
HRESULT WINAPI MFStartup(ULONG version, DWORD flags);
HRESULT WINAPI MFUnlockPlatform(void);
+HRESULT WINAPI MFTUnregister(CLSID clsid);
HRESULT WINAPI MFGetPluginControl(IMFPluginControl**);
#endif /* __WINE_MFAPI_H */
More information about the wine-cvs
mailing list