static ULONG WINAPI AEV_AddRef(IAudioEndpointVolumeEx *iface) { AEVImpl *This = impl_from_IAudioEndpointVolumeEx(iface); ULONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) new ref %u\n", This, ref); return ref; }
static ULONG WINAPI AEV_Release(IAudioEndpointVolumeEx *iface) { AEVImpl *This = impl_from_IAudioEndpointVolumeEx(iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) new ref %u\n", This, ref); if (!ref) AudioEndpointVolume_Destroy(This); return ref; }
static HRESULT WINAPI AEV_SetMute(IAudioEndpointVolumeEx *iface, BOOL mute, const GUID *ctx) { AEVImpl *This = impl_from_IAudioEndpointVolumeEx(iface); FIXME("(%p)->(%u,%s): stub\n", iface, mute, debugstr_guid(ctx)); This->mute = mute; return S_OK; }
static HRESULT WINAPI AEV_SetMasterVolumeLevel(IAudioEndpointVolumeEx *iface, float leveldb, const GUID *ctx) { AEVImpl *This = impl_from_IAudioEndpointVolumeEx(iface); FIXME("(%p)->(%f,%s): stub\n", iface, leveldb, debugstr_guid(ctx)); This->level = leveldb; return S_OK; }
static HRESULT WINAPI AEV_GetMute(IAudioEndpointVolumeEx *iface, BOOL *mute) { AEVImpl *This = impl_from_IAudioEndpointVolumeEx(iface); FIXME("(%p)->(%p): stub\n", iface, mute); if (!mute) return E_POINTER; *mute = This->mute; return S_OK; }
static HRESULT WINAPI AEV_GetMasterVolumeLevel(IAudioEndpointVolumeEx *iface, float *leveldb) { AEVImpl *This = impl_from_IAudioEndpointVolumeEx(iface); FIXME("(%p)->(%p): stub\n", iface, leveldb); if (!leveldb) return E_POINTER; *leveldb = This->level; return S_OK; }
static HRESULT WINAPI AEV_QueryInterface(IAudioEndpointVolumeEx *iface, REFIID riid, void **ppv) { AEVImpl *This = impl_from_IAudioEndpointVolumeEx(iface); TRACE("(%p)->(%s,%p)\n", This, debugstr_guid(riid), ppv); if (!ppv) return E_POINTER; *ppv = NULL; if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioEndpointVolume) || IsEqualIID(riid, &IID_IAudioEndpointVolumeEx)) { *ppv = This; } else return E_NOINTERFACE; IUnknown_AddRef((IUnknown *)*ppv); return S_OK; }