Gondoltam csinálok egy pici framework-öt, ami minden installálás nélkül fut kb. bárhol. Hangnak DirectSound-ot gondoltam, elég régi cucc, de még megy, nem kell neki semmi extra dll-t installálni. Annyi gond volt vele, hogy nem találtam más tutorialt, mint a Rastertek-eset. Ebben, ha betöltöttünk egy wav-ot, így kell létrehozni, hozzá a buffert,amit a DS le tud játszani:
result = m_DirectSound->CreateSoundBuffer(&bufferDesc, &tempBuffer, NULL); if(FAILED(result)) return false; result = tempBuffer->QueryInterface(IID_IDirectSoundBuffer8, (void**)&*secondaryBuffer); if(FAILED(result))
return false;
Szóval kell egy temp buffer valamér, utána kell megcsinálni a 'secondaryBuffer'-t, ami lejátszható.
Nekem a QueryInterface() E_INVALIDARG-ot ad vissza. Poénból megpróbáltam a tempBuffer-t lock-olni, betölteni abba a hangot.. és le lehet játszani. Úgyhogy a bohóckodás nem kell a QueryInterface()-el.