DirectSound StreamingBuffer
-
Hallo zusammen,
ich erhalte kein 'IDirectSoundNotify8 interface'
Ich habs ersmal mit einem StaticBuffer probiert - funktioniert alles. Dann wollte ich das Programm auf StreamingBuffer umstricken und dabei habe ich obiges Problem. Was mache ich falsch?
LPDIRECTSOUND8 lpds; DirectSoundCreate8(&DSDEVID_DefaultPlayback, &lpds, NULL); DSBUFFERDESC dsbdesc; memset(&dsbdesc, 0, sizeof(DSBUFFERDESC)); dsbdesc.dwSize = sizeof(DSBUFFERDESC); dsbdesc.dwFlags = DSBCAPS_CTRLFREQUENCY | DSBCAPS_STICKYFOCUS | DSBCAPS_GETCURRENTPOSITION2; dsbdesc.dwBufferBytes = waveFile.GetSize(); dsbdesc.lpwfxFormat = waveFile.m_pwfx; LPDIRECTSOUNDBUFFER m_lpdsbStatic; lpds->CreateSoundBuffer(&dsbdesc, &m_lpdsbStatic, NULL); //Kopiere Wave in m_lpdsbStatic //bis hier hat alles funktioniert LPDIRECTSOUNDNOTIFY8 lpDsNotify; HRESULT hr = m_lpdsbStatic->QueryInterface(IID_IDirectSoundNotify8, (LPVOID *)&lpDsNotify);
Für hr bekomme ich 'E_NOINTERFACE' zurück Was mach ich denn nur Falsch?
-
Erstmal: Sind alle Pointer gültig? Einfach mal den Debugger benutzen...
cya
-
Pointer sind gültig, habs nochmal geprüft. Außerdem konnte ich ja schon wav's abspielen mit nem Static Buffer und sonst würde ja auch der QueryInterface Aufruf crashen. Die Pointer sind OK.
[ Dieser Beitrag wurde am 17.01.2003 um 17:33 Uhr von mathi editiert. ]
-
Hallo zusammen,
Niemand eine Ahnung?
Kennt ihr denn ein anderes Forum, wo ich das mal fragen kann? Am besten eins, was sich hauptsächlich mit DX beschäftigt?
Gruß mathi
-
Habs gefunden, es fehlt das Flag DSBCAPS_CTRLPOSITIONNOTIFY für den Buffer.