Hi everyone. Sorry for not contributing anything to dmusic in a while, but I'm currently busy with final exams... As I can see, more work was done on it :)
Is anyone of you working on Dmusic interfaces ? Now doing test with Dxdiag doesnt work, it says "No such interface" when trying to create a IDirectPerformance object.
This problem can be fixed with adding a
if (IsEqualGUID(lpcGUID, &IID_IDirectMusicPerformance) || IsEqualGUID(lpcGUID, &IID_IDirectMusicPerformance8))
in DMUSIC_CreateDirectMusicPerformance8 (at the time being, there's check for IID_IDirectMusicPerformance8 only).
But even with this added, dxdiag creates interface, calls some functions and then crashes (though I have no idea why).
I was looking at code and i wonder if it's ok to allocate memory for interfaces like this: segment = (IDirectMusicSegmentImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectMusicImpl));
I mean, it's IDirectMusicSegmentImpl, why using size of IDirectMusicImpl then? (or this doesn't matter?)
Another thing... does anyone of you know how to write effective chunk loading function (it will be needed sooner or later since most dmusic objects are stored in files)?