protected override bool ReleaseHandle() { bool result = true; try { NativeMethods.DestroyClientLibDelegate destroyClientLib; GetLibraryMethod("ts3client_destroyClientLib", out destroyClientLib); destroyClientLib(); } catch { result = false; } try { PlatformSpecific.UnloadDynamicLibrary(Platform, handle); } catch { result = false; } try { DllUnloaded.Set(); } catch (ObjectDisposedException) { /* nop */ } return(result); }