quartz: Simplify FilterMapper3_UnregisterFilter().
Avoid some unnecessary allocations. Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
82abd74351
commit
071a58e847
|
@ -73,7 +73,6 @@ static inline FilterMapper3Impl *impl_from_IUnknown( IUnknown *iface )
|
||||||
}
|
}
|
||||||
|
|
||||||
static const WCHAR wszClsidSlash[] = {'C','L','S','I','D','\\',0};
|
static const WCHAR wszClsidSlash[] = {'C','L','S','I','D','\\',0};
|
||||||
static const WCHAR wszSlashInstance[] = {'\\','I','n','s','t','a','n','c','e','\\',0};
|
|
||||||
static const WCHAR wszSlash[] = {'\\',0};
|
static const WCHAR wszSlash[] = {'\\',0};
|
||||||
|
|
||||||
/* CLSID property in media category Moniker */
|
/* CLSID property in media category Moniker */
|
||||||
|
@ -293,49 +292,26 @@ static HRESULT WINAPI FilterMapper3_CreateCategory(IFilterMapper3 *iface,
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI FilterMapper3_UnregisterFilter(
|
static HRESULT WINAPI FilterMapper3_UnregisterFilter(IFilterMapper3 *iface,
|
||||||
IFilterMapper3 * iface,
|
const CLSID *category, const WCHAR *instance, REFCLSID clsid)
|
||||||
const CLSID *pclsidCategory,
|
|
||||||
const OLECHAR *szInstance,
|
|
||||||
REFCLSID Filter)
|
|
||||||
{
|
{
|
||||||
WCHAR wszKeyName[MAX_PATH];
|
WCHAR keypath[93];
|
||||||
LPWSTR wClsidCategory = NULL;
|
|
||||||
LPWSTR wFilter = NULL;
|
|
||||||
HRESULT hr;
|
|
||||||
|
|
||||||
TRACE("(%p, %s, %s)\n", pclsidCategory, debugstr_w(szInstance), debugstr_guid(Filter));
|
TRACE("iface %p, category %s, instance %s, clsid %s.\n",
|
||||||
|
iface, debugstr_guid(category), debugstr_w(instance), debugstr_guid(clsid));
|
||||||
|
|
||||||
if (!pclsidCategory)
|
if (!category)
|
||||||
pclsidCategory = &CLSID_LegacyAmFilterCategory;
|
category = &CLSID_LegacyAmFilterCategory;
|
||||||
|
|
||||||
hr = StringFromCLSID(pclsidCategory, &wClsidCategory);
|
wcscpy(keypath, L"CLSID\\");
|
||||||
|
StringFromGUID2(category, keypath + wcslen(keypath), ARRAY_SIZE(keypath) - wcslen(keypath));
|
||||||
|
wcscat(keypath, L"\\Instance\\");
|
||||||
|
if (instance)
|
||||||
|
wcscat(keypath, instance);
|
||||||
|
else
|
||||||
|
StringFromGUID2(clsid, keypath + wcslen(keypath), ARRAY_SIZE(keypath) - wcslen(keypath));
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
return HRESULT_FROM_WIN32(RegDeleteKeyW(HKEY_CLASSES_ROOT, keypath));
|
||||||
{
|
|
||||||
lstrcpyW(wszKeyName, wszClsidSlash);
|
|
||||||
lstrcatW(wszKeyName, wClsidCategory);
|
|
||||||
lstrcatW(wszKeyName, wszSlashInstance);
|
|
||||||
if (szInstance)
|
|
||||||
lstrcatW(wszKeyName, szInstance);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
hr = StringFromCLSID(Filter, &wFilter);
|
|
||||||
if (SUCCEEDED(hr))
|
|
||||||
lstrcatW(wszKeyName, wFilter);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
|
||||||
{
|
|
||||||
LONG lRet = RegDeleteKeyW(HKEY_CLASSES_ROOT, wszKeyName);
|
|
||||||
hr = HRESULT_FROM_WIN32(lRet);
|
|
||||||
}
|
|
||||||
|
|
||||||
CoTaskMemFree(wClsidCategory);
|
|
||||||
CoTaskMemFree(wFilter);
|
|
||||||
|
|
||||||
return hr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT FM2_WriteFriendlyName(IPropertyBag * pPropBag, LPCWSTR szName)
|
static HRESULT FM2_WriteFriendlyName(IPropertyBag * pPropBag, LPCWSTR szName)
|
||||||
|
|
Loading…
Reference in New Issue