From 9123f28e46d0fe2d6bc64a4ec90a47fc2dacd7a5 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Tue, 24 Nov 2009 14:16:52 +0100 Subject: [PATCH] dsound: Call DSOUND_FullDuplexCreate instead of creating it directly. --- dlls/dsound/duplex.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/dlls/dsound/duplex.c b/dlls/dsound/duplex.c index 305bea0646c..2faf5078ee8 100644 --- a/dlls/dsound/duplex.c +++ b/dlls/dsound/duplex.c @@ -745,22 +745,8 @@ DirectSoundFullDuplexCreate( return DSERR_INVALIDPARAM; } - /* Get dsound configuration */ - setup_dsound_options(); - - This = HeapAlloc(GetProcessHeap(), - HEAP_ZERO_MEMORY, sizeof(IDirectSoundFullDuplexImpl)); - - if (This == NULL) { - WARN("out of memory\n"); - *ppDSFD = NULL; - return DSERR_OUTOFMEMORY; - } - - This->lpVtbl = &dsfdvt; - This->ref = 1; - This->capture_device = NULL; - This->renderer_device = NULL; + hres = DSOUND_FullDuplexCreate(&IID_IDirectSoundFullDuplex, (LPDIRECTSOUNDFULLDUPLEX*)&This); + if (FAILED(hres)) return hres; hres = IDirectSoundFullDuplexImpl_Initialize((LPDIRECTSOUNDFULLDUPLEX)This, pcGuidCaptureDevice, @@ -770,7 +756,7 @@ DirectSoundFullDuplexCreate( hWnd, dwLevel, ppDSCBuffer8, ppDSBuffer8); if (hres != DS_OK) { - HeapFree(GetProcessHeap(), 0, This); + IUnknown_Release((LPDIRECTSOUNDFULLDUPLEX)This); WARN("IDirectSoundFullDuplexImpl_Initialize failed\n"); *ppDSFD = NULL; } else