oleaut32: Only unregister those types that were registered.
This commit is contained in:
parent
adeba6ee80
commit
fbaaedd967
|
@ -835,19 +835,23 @@ HRESULT WINAPI UnRegisterTypeLib(
|
||||||
goto enddeleteloop;
|
goto enddeleteloop;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* the path to the type */
|
if ((kind == TKIND_INTERFACE && (typeAttr->wTypeFlags & TYPEFLAG_FOLEAUTOMATION)) ||
|
||||||
get_interface_key( &typeAttr->guid, subKeyName );
|
kind == TKIND_DISPATCH)
|
||||||
|
{
|
||||||
|
/* the path to the type */
|
||||||
|
get_interface_key( &typeAttr->guid, subKeyName );
|
||||||
|
|
||||||
/* Delete its bits */
|
/* Delete its bits */
|
||||||
if (RegOpenKeyExW(HKEY_CLASSES_ROOT, subKeyName, 0, KEY_WRITE, &subKey) != ERROR_SUCCESS) {
|
if (RegOpenKeyExW(HKEY_CLASSES_ROOT, subKeyName, 0, KEY_WRITE, &subKey) != ERROR_SUCCESS)
|
||||||
goto enddeleteloop;
|
goto enddeleteloop;
|
||||||
|
|
||||||
|
RegDeleteKeyW(subKey, ProxyStubClsidW);
|
||||||
|
RegDeleteKeyW(subKey, ProxyStubClsid32W);
|
||||||
|
RegDeleteKeyW(subKey, TypeLibW);
|
||||||
|
RegCloseKey(subKey);
|
||||||
|
subKey = NULL;
|
||||||
|
RegDeleteKeyW(HKEY_CLASSES_ROOT, subKeyName);
|
||||||
}
|
}
|
||||||
RegDeleteKeyW(subKey, ProxyStubClsidW);
|
|
||||||
RegDeleteKeyW(subKey, ProxyStubClsid32W);
|
|
||||||
RegDeleteKeyW(subKey, TypeLibW);
|
|
||||||
RegCloseKey(subKey);
|
|
||||||
subKey = NULL;
|
|
||||||
RegDeleteKeyW(HKEY_CLASSES_ROOT, subKeyName);
|
|
||||||
|
|
||||||
enddeleteloop:
|
enddeleteloop:
|
||||||
if (typeAttr) ITypeInfo_ReleaseTypeAttr(typeInfo, typeAttr);
|
if (typeAttr) ITypeInfo_ReleaseTypeAttr(typeInfo, typeAttr);
|
||||||
|
|
Loading…
Reference in New Issue