static HRESULT WINAPI DXDiagCF_LockServer(IClassFactory *iface, BOOL dolock) { TRACE("(%d)\n", dolock); if (dolock) DXDIAGN_LockModule(); else DXDIAGN_UnlockModule(); return S_OK; }
static ULONG WINAPI IDxDiagContainerImpl_Release(PDXDIAGCONTAINER iface) { IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface; ULONG refCount = InterlockedDecrement(&This->ref); TRACE("(%p)->(ref before=%lu)\n", This, refCount + 1); if (!refCount) { HeapFree(GetProcessHeap(), 0, This); } DXDIAGN_UnlockModule(); return refCount; }
static ULONG WINAPI DXDiagCF_Release(IClassFactory * iface) { DXDIAGN_UnlockModule(); return 1; /* non-heap based object */ }