HRESULT InternetTransport_HandsOffCallback(InternetTransport *This) { if (!This->pCallback) return S_FALSE; ITransportCallback_Release(This->pCallback); This->pCallback = NULL; return S_OK; }
static ULONG WINAPI IMAPTransport_Release(IIMAPTransport *iface) { IMAPTransport *This = (IMAPTransport *)iface; ULONG refs = InterlockedDecrement((LONG *)&This->refs); if (!refs) { TRACE("destroying %p\n", This); if (This->InetTransport.Status != IXP_DISCONNECTED) InternetTransport_DropConnection(&This->InetTransport); if (This->InetTransport.pCallback) ITransportCallback_Release(This->InetTransport.pCallback); HeapFree(GetProcessHeap(), 0, This); } return refs; }