1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
DSBUFFERDESC tmpDesc;
tmpDesc.dwSize = sizeof(DSBUFFERDESC);
tmpDesc.dwFlags = DSBCAPS_STATIC | DSBCAPS_LOCDEFER | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLPAN | DSBCAPS_CTRLFREQUENCY;
tmpDesc.dwBufferBytes =dataSize;
tmpDesc.dwReserved = 0;
tmpDesc.lpwfxFormat = &tmpFormat;
LPDIRECTSOUNDBUFFER tmpBuffer;
LPDIRECTSOUNDBUFFER8 tmpBuffer8;
directSound->CreateSoundBuffer(&tmpDesc, &tmpBuffer, NULL);
directSound->QueryInterface(IID_IDirectSoundBuffer8, (void**)(&tmpBuffer8));
tmpBuffer->Release();
MessageBox(wndHandle,"tmpBuffer released","tmpBuffer",0);
HRESULT r;
r = tmpBuffer8->Lock(0,0,&tmpVoid,&NumBytes,NULL,NULL,DSBLOCK_ENTIREBUFFER);
switch(r)
{
case DS_OK:
MessageBox(wndHandle,"Buffer gesperrt","DS_OK",0);
break;
case DSERR_BUFFERLOST:
MessageBox(wndHandle,"Buffer verloren","DSERR_BUFFERLOST",0);
break;
case DSERR_INVALIDCALL:
MessageBox(wndHandle,"Fehler beim Aufruf","DSERR_INVALIDCALL",0);
break;
case DSERR_INVALIDPARAM:
MessageBox(wndHandle,"Fehlerhafte Parameter","DSERR_INVALIDPARAM",0);
break;
case DSERR_PRIOLEVELNEEDED:
MessageBox(wndHandle,"höhere Priorität benötigt","DSERR_PRIOLEVELNEEDED",0);
break;
default:
MessageBox(wndHandle,"Unbekannter Fehler aufgetreten","unbekannt",0);
}
MessageBox(wndHandle,"Buffer8 gesperrt","Buffer8",0);
|