代码如下:HRESULT InitNotifications()
{
ghNotificationEvent = CreateEvent( NULL, FALSE, FALSE, NULL );
HRESULT hr = gpDSBuffer8->QueryInterface( IID_IDirectSoundNotify,( VOID** )&pDSNotify8 );
if( FAILED( hr ) ) return hr; for( INT i = 0; i < NUM_PLAY_NOTIFICATIONS; i++ )
{
aPosNotify[i].dwOffset = ( gdwNotifySize * i ) + gdwNotifySize - 1;
aPosNotify[i].hEventNotify = ghNotificationEvent;
} hr = pDSNotify8->SetNotificationPositions( NUM_PLAY_NOTIFICATIONS,aPosNotify );

if( FAILED( hr ) ) return hr; return S_OK;
}单步调式发现到这里 
hr = pDSNotify8->SetNotificationPositions( 16,aPosNotify );
返回了E_INVALIDARG。
DSBPOSITIONNOTIFY aPosNotify[16];
函数参数都是对的啊。到底什么地方出了问题?
如果说是offset 我改成 1 2 3 4 5 6 7 8 。。都不行。