Is it safe do this...
if(lpDSBuffer1 != NULL) lpDSBuffer1->Play(0,0,0);
Thats how I am doing it, but think sometimes the lpDSBuffer1 has no data but the object contains a value other than NULL, causing my app to hang the whole system.
Also...does the buffer lose its data completely when it returns BUFFERLOST, requiring you to reload the wave file, or can you easily recover the data by using ->restore?