mfplat: Implement MFTUnregister.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Michael Müller 2017-05-08 22:50:38 +00:00 committed by Alexandre Julliard
parent 993f59361a
commit 4615f4db3a
3 changed files with 40 additions and 1 deletions

View File

@ -163,6 +163,44 @@ HRESULT WINAPI MFTRegister(CLSID clsid, GUID category, LPWSTR name, UINT32 flags
return hr;
}
/***********************************************************************
* 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.@)
*/

View File

@ -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

View File

@ -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 */