Rémi Bernon : dswave: Always return S_FALSE from DllCanUnloadNow.
Module: wine Branch: master Commit: 65f25a150fe19eb883cae89327960d63a22afab5 URL: https://gitlab.winehq.org/wine/wine/-/commit/65f25a150fe19eb883cae89327960d6... Author: Rémi Bernon <rbernon(a)codeweavers.com> Date: Tue Aug 22 17:36:49 2023 +0200 dswave: Always return S_FALSE from DllCanUnloadNow. --- dlls/dswave/dswave.c | 2 -- dlls/dswave/dswave_main.c | 23 ----------------------- dlls/dswave/dswave_private.h | 7 ------- 3 files changed, 32 deletions(-) diff --git a/dlls/dswave/dswave.c b/dlls/dswave/dswave.c index e6d85d738fe..8e06fc8d13d 100644 --- a/dlls/dswave/dswave.c +++ b/dlls/dswave/dswave.c @@ -86,7 +86,6 @@ static ULONG WINAPI IUnknownImpl_Release(IUnknown *iface) if (!ref) { HeapFree(GetProcessHeap(), 0, This); - DSWAVE_UnlockModule(); } return ref; @@ -191,7 +190,6 @@ HRESULT create_dswave(REFIID lpcGUID, void **ppobj) obj->dmobj.IDirectMusicObject_iface.lpVtbl = &dmobject_vtbl; obj->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl; - DSWAVE_LockModule(); hr = IUnknown_QueryInterface(&obj->IUnknown_iface, lpcGUID, ppobj); IUnknown_Release(&obj->IUnknown_iface); return hr; diff --git a/dlls/dswave/dswave_main.c b/dlls/dswave/dswave_main.c index 81dcc73de85..f2ce7bb950f 100644 --- a/dlls/dswave/dswave_main.c +++ b/dlls/dswave/dswave_main.c @@ -39,8 +39,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(dswave); -LONG DSWAVE_refCount = 0; - typedef struct { IClassFactory IClassFactory_iface; } IClassFactoryImpl; @@ -70,15 +68,11 @@ static HRESULT WINAPI WaveCF_QueryInterface(IClassFactory * iface, REFIID riid, static ULONG WINAPI WaveCF_AddRef(IClassFactory * iface) { - DSWAVE_LockModule(); - return 2; /* non-heap based object */ } static ULONG WINAPI WaveCF_Release(IClassFactory * iface) { - DSWAVE_UnlockModule(); - return 1; /* non-heap based object */ } @@ -98,12 +92,6 @@ static HRESULT WINAPI WaveCF_CreateInstance(IClassFactory * iface, IUnknown *out static HRESULT WINAPI WaveCF_LockServer(IClassFactory * iface, BOOL dolock) { TRACE("(%d)\n", dolock); - - if (dolock) - DSWAVE_LockModule(); - else - DSWAVE_UnlockModule(); - return S_OK; } @@ -117,17 +105,6 @@ static const IClassFactoryVtbl WaveCF_Vtbl = { static IClassFactoryImpl Wave_CF = {{&WaveCF_Vtbl}}; -/****************************************************************** - * DllCanUnloadNow (DSWAVE.@) - * - * - */ -HRESULT WINAPI DllCanUnloadNow(void) -{ - return DSWAVE_refCount != 0 ? S_FALSE : S_OK; -} - - /****************************************************************** * DllGetClassObject (DSWAVE.@) * diff --git a/dlls/dswave/dswave_private.h b/dlls/dswave/dswave_private.h index a7758a970bc..50406c676c1 100644 --- a/dlls/dswave/dswave_private.h +++ b/dlls/dswave/dswave_private.h @@ -44,11 +44,4 @@ */ extern HRESULT create_dswave(REFIID lpcGUID, void **ret_iface); -/********************************************************************** - * Dll lifetime tracking declaration for dswave.dll - */ -extern LONG DSWAVE_refCount; -static inline void DSWAVE_LockModule(void) { InterlockedIncrement( &DSWAVE_refCount ); } -static inline void DSWAVE_UnlockModule(void) { InterlockedDecrement( &DSWAVE_refCount ); } - #endif /* __WINE_DSWAVE_PRIVATE_H */
participants (1)
-
Alexandre Julliard