|
音频方面的东西加了都够用comctl32.lib dxerr9.lib winmm.lib dsound.lib dxguid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
下面我做的一个东西,头文件和代码:
#include <mmsystem.h>
#include <dsound.h>
#pragma comment (lib,"dsound.LIB")
#pragma comment (lib,"dxguid.LIB")
void Sound2::PlayMidi()
{
UINT wDeviceID;
DWORD dwReturn;
MCI_OPEN_PARMS mciOpenParms;
MCI_PLAY_PARMS mciPlayParms;
MCI_STATUS_PARMS mciStatusParms;
MCI_SEQ_SET_PARMS mciSeqSetParms;
mciOpenParms.lpstrDeviceType="sequencer";
mciOpenParms.lpstrElementName="E:\\fan\\hurrican.mid" ; //MIDI name
if(dwReturn=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_ELEMENT,(DWORD)(LPVOID) &mciOpenParms))
{
//MessageBox("ERROR");
return;
}
wDeviceID =mciOpenParms.wDeviceID;
mciStatusParms.dwItem=MCI_SEQ_STATUS_PORT;
if(dwReturn=mciSendCommand(wDeviceID,MCI_STATUS,MCI_STATUS_ITEM,(DWORD)(LPVOID)&mciStatusParms))
{
mciSendCommand(wDeviceID,MCI_CLOSE,0,NULL);
return ;
}
if(LOWORD(mciStatusParms.dwReturn)!=MIDI_MAPPER)
{
// if(MessageBox("midi map not exist ,return?")
// {
// mciCommand(wDeviceID,MCI_CLOSE,0,NULL);
// return (0L);
// }
}
mciPlayParms.dwCallback=(DWORD)AfxGetApp()->GetMainWnd();
if(dwReturn=mciSendCommand(wDeviceID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&mciPlayParms))
{
mciSendCommand(wDeviceID,MCI_CLOSE,0,NULL);
return ;
}
return ;
}
sinbud 于 2006-04-16 16:22:45.0 编辑
[回复该贴]
|