IDirectSoundBuffer.GetCaps should fail if caps.dwSize is not set.
This commit is contained in:
parent
2aff85c9c8
commit
78561f3eb3
|
@ -766,13 +766,9 @@ static HRESULT WINAPI IDirectSoundBufferImpl_GetCaps(
|
||||||
ICOM_THIS(IDirectSoundBufferImpl,iface);
|
ICOM_THIS(IDirectSoundBufferImpl,iface);
|
||||||
TRACE("(%p)->(%p)\n",This,caps);
|
TRACE("(%p)->(%p)\n",This,caps);
|
||||||
|
|
||||||
if (caps == NULL)
|
if (caps == NULL || caps->dwSize!=sizeof(*caps))
|
||||||
return DSERR_INVALIDPARAM;
|
return DSERR_INVALIDPARAM;
|
||||||
|
|
||||||
/* I think we should check this value, not set it. See */
|
|
||||||
/* Inside DirectX, p215. That should apply here, too. */
|
|
||||||
caps->dwSize = sizeof(*caps);
|
|
||||||
|
|
||||||
caps->dwFlags = This->dsbd.dwFlags;
|
caps->dwFlags = This->dsbd.dwFlags;
|
||||||
if (This->hwbuf) caps->dwFlags |= DSBCAPS_LOCHARDWARE;
|
if (This->hwbuf) caps->dwFlags |= DSBCAPS_LOCHARDWARE;
|
||||||
else caps->dwFlags |= DSBCAPS_LOCSOFTWARE;
|
else caps->dwFlags |= DSBCAPS_LOCSOFTWARE;
|
||||||
|
|
|
@ -754,13 +754,9 @@ static HRESULT WINAPI PrimaryBufferImpl_GetCaps(
|
||||||
ICOM_THIS(PrimaryBufferImpl,iface);
|
ICOM_THIS(PrimaryBufferImpl,iface);
|
||||||
TRACE("(%p)->(%p)\n",This,caps);
|
TRACE("(%p)->(%p)\n",This,caps);
|
||||||
|
|
||||||
if (caps == NULL)
|
if (caps == NULL || caps->dwSize!=sizeof(*caps))
|
||||||
return DSERR_INVALIDPARAM;
|
return DSERR_INVALIDPARAM;
|
||||||
|
|
||||||
/* I think we should check this value, not set it. See */
|
|
||||||
/* Inside DirectX, p215. That should apply here, too. */
|
|
||||||
caps->dwSize = sizeof(*caps);
|
|
||||||
|
|
||||||
caps->dwFlags = This->dsbd.dwFlags;
|
caps->dwFlags = This->dsbd.dwFlags;
|
||||||
if (This->dsound->hwbuf) caps->dwFlags |= DSBCAPS_LOCHARDWARE;
|
if (This->dsound->hwbuf) caps->dwFlags |= DSBCAPS_LOCHARDWARE;
|
||||||
else caps->dwFlags |= DSBCAPS_LOCSOFTWARE;
|
else caps->dwFlags |= DSBCAPS_LOCSOFTWARE;
|
||||||
|
|
Loading…
Reference in New Issue