Original Post
Hi! I try to get the li3dListener Interface from my IDirectSound8. DSBUFFERDESC is filled with DSBCAPS_CTRL3D | BufferDesc.guid3DAlgorithm and DS3DALG_DEFAULT. the last hr allways gives me a E_NOINTERFACE. Any suggestions? [cpp] // Listener LPDIRECTSOUND3DLISTENER8 pListener; // Die IDirectSound8-Schnittstelle LPDIRECTSOUND8 pDSound; // Primärer Soundpuffer LPDIRECTSOUNDBUFFER pPrimaryBuffer; HWND hWnd = GetForegroundWindow(); HRESULT hr; DSBUFFERDESC BufferDesc; ZeroMemory(&BufferDesc, sizeof(DSBUFFERDESC)); BufferDesc.dwSize = sizeof(DSBUFFERDESC); BufferDesc.dwFlags = DSBCAPS_CTRL3D | DSBCAPS_PRIMARYBUFFER; BufferDesc.dwBufferBytes = 0; BufferDesc.dwReserved = 0; BufferDesc.lpwfxFormat = NULL; BufferDesc.guid3DAlgorithm = DS3DALG_DEFAULT; // DirectSound-Schnittstelle generieren hr = DirectSoundCreate8(NULL, &pDSound, NULL); // Kooperationsebene setzen hr = pDSound->SetCooperativeLevel(hWnd, DSSCL_PRIORITY); // Primären Soundpuffer erstellen hr = pDSound->CreateSoundBuffer(&BufferDesc, &pPrimaryBuffer, NULL); // Listener holen hr = pDSound->QueryInterface(IID_IDirectSound3DListener8, (LPVOID *)&pListener); [/cpp]