www.pudn.com > 播放mp3的控件.rar > ElSound.h
#ifndef ELSOUND_H #define ELSOUND_H #include// Possible modes to take data from enum esInputMode { imFile, imCallback }; // Possible modes to put data to enum esOutputMode { omMMSystem, omWaveFile, omDirectSound, omCallback }; // Current player mode enum esPlayerMode { pmClosed, pmOpened, pmReady, pmStopped, pmPlaying, pmPaused }; enum esPlayerError { peNoError, peNotImplemented, // Feature not implemented peIncorrectMode, // not correct mode for performing an operation peInternalError, // failed to allocate memory/resources peInvalidHandle, // Invalid player object handle peInputError, peOutputError, peNoMemory, peNoResources, peNoCallback }; typedef bool (_stdcall *WaveOutCB)(void *SampleData, int SBits, int Channels, unsigned long SampleRate, unsigned long Size, unsigned long userdata); typedef bool (_stdcall *WaveOutActionCB)(bool Init, unsigned long userdata); typedef bool (_stdcall *InFileOpenCB)(unsigned long UserData1, unsigned long *UserData2, bool *IsSeekable); typedef bool (_stdcall *InFileCloseCB)(unsigned long UserData1, unsigned long UserData2); typedef bool (_stdcall *InFileGetSizeCB)(unsigned long UserData1, unsigned long UserData2, unsigned long *InSize); typedef bool (_stdcall *InFileSeekCB)(unsigned long UserData1, unsigned long UserData2, LPDWORD NewPos, DWORD dwMoveMethod); typedef bool (_stdcall *InFileReadCB)(unsigned long UserData1, unsigned long UserData2, LPVOID buffer, DWORD bytes_to_read, DWORD *bytes_read); typedef HANDLE (*InitModuleProc)(); typedef bool (*DeInitModuleProc)(HANDLE handle); typedef bool (*OpenProc) (HANDLE handle); typedef bool (*CloseProc) (HANDLE handle); typedef bool (*PlayProc) (HANDLE handle); typedef bool (*StopProc) (HANDLE handle); typedef bool (*PauseProc) (HANDLE handle); typedef bool (*ResumeProc)(HANDLE handle); typedef long (*GetLastErrorProc)(HANDLE handle); typedef bool (*SetPosProc)(HANDLE handle, unsigned long NewPos); typedef long (*GetVersionProc)(); typedef long (*GetAboutProc)(char *buffer, unsigned long *buflen); typedef long (*GetInfo1Proc)(char *buffer, unsigned long *buflen); typedef long (*GetExtsProc)(char *buffer, unsigned long *buflen); typedef bool (*SetInputNameProc)(HANDLE handle, char *Name); typedef bool (*SetOutputNameProc)(HANDLE handle, char *Name); typedef bool (*SetInputModeProc)(HANDLE handle, unsigned long InMode); typedef bool (*SetOutputModeProc)(HANDLE handle, unsigned long OutMode); typedef bool (*SetOutputDevProc)(HANDLE handle, unsigned long DevNum); typedef unsigned long (*GetPosProc)(HANDLE handle); typedef unsigned long (*GetSizeProc)(HANDLE handle); typedef unsigned long (*GetModeProc)(HANDLE handle); typedef bool (*SetAudioBuffersProc)(HANDLE handle, unsigned long buffers, unsigned long size); typedef bool (*SetPriorityProc)(HANDLE handle, long Priority); typedef bool (*SetLimitsProc)(HANDLE handle, unsigned long StartPos, unsigned long EndPos); typedef bool (*SetOutCBProc)(HANDLE handle, WaveOutCB OutCB, WaveOutActionCB OutActionCB, unsigned long UserData); typedef bool (*ESGetInfo2Proc)(HANDLE handle, unsigned long *Info2); typedef bool (*SetInCBProc)(HANDLE handle, InFileOpenCB openCB, InFileCloseCB closeCB, InFileGetSizeCB getsizeCB, InFileSeekCB seekCB, InFileReadCB readCB, unsigned long UserData1); typedef bool (*ESSetVolumeProc)(HANDLE handle, unsigned long Volume); typedef bool (*ESGetVolumeProc)(HANDLE handle, unsigned long *Volume); typedef bool (*ESCanSetVolumeProc)(HANDLE handle, bool *Separate); typedef bool (*ESSetDevNumProc)(HANDLE handle, unsigned long DevNum); typedef bool (*ESSetWindowProc)(HANDLE handle, HWND Wnd); typedef bool (*ESCanPauseProc)(HANDLE handle); typedef bool (*ESCanSetPosProc)(HANDLE handle); typedef bool (*ESSetExtrasProc)(HANDLE handle, void *Volume); typedef bool (*ESUseOutCBProc)(HANDLE handle, bool UseCB); typedef bool (*ESHasEQProc)(HANDLE handle, bool *ItDoes); typedef bool (*ESEQProc)(HANDLE handle, LPVOID *EQData, unsigned long *channels, unsigned long *bands); typedef bool (*ESUseEQProc)(HANDLE handle, bool UseEQ); HANDLE __declspec(dllexport) _stdcall ESInitModule(); long __declspec(dllexport) _stdcall ESGetLastError(HANDLE handle); bool __declspec(dllexport) _stdcall ESDeInitModule(HANDLE handle); bool __declspec(dllexport) _stdcall ESOpen(HANDLE handle); bool __declspec(dllexport) _stdcall ESClose(HANDLE handle); bool __declspec(dllexport) _stdcall ESPlay(HANDLE handle); bool __declspec(dllexport) _stdcall ESStop(HANDLE handle); bool __declspec(dllexport) _stdcall ESPause(HANDLE handle); bool __declspec(dllexport) _stdcall ESResume(HANDLE handle); unsigned long __declspec(dllexport) _stdcall ESGetPos(HANDLE handle); unsigned long __declspec(dllexport) _stdcall ESGetSize(HANDLE handle); bool __declspec(dllexport) _stdcall ESSetPos(HANDLE handle, unsigned long NewPos); bool __declspec(dllexport) _stdcall ESGetAbout(char *buffer, unsigned long *buflen); bool __declspec(dllexport) _stdcall ESGetExts(char *buffer, unsigned long *buflen); bool __declspec(dllexport) _stdcall ESGetName(char *buffer, unsigned long *buflen); long __declspec(dllexport) _stdcall ESGetVersion(); bool __declspec(dllexport) _stdcall ESSetPriority(HANDLE handle, long Priority); bool __declspec(dllexport) _stdcall ESSetInputName(HANDLE handle, char *Name); bool __declspec(dllexport) _stdcall ESSetOutputName(HANDLE handle, char *Name); bool __declspec(dllexport) _stdcall ESSetInputMode(HANDLE handle, unsigned long InMode); bool __declspec(dllexport) _stdcall ESSetOutputMode(HANDLE handle, unsigned long OutMode); bool __declspec(dllexport) _stdcall ESSetOutputDev(HANDLE handle, unsigned long DevNum); unsigned long __declspec(dllexport) _stdcall ESGetPlayerMode(HANDLE handle); bool __declspec(dllexport) _stdcall ESSetAudioBuffers(HANDLE handle, unsigned long buffers, unsigned long size); bool __declspec(dllexport) _stdcall ESSetLimits(HANDLE handle, unsigned long StartPos, unsigned long EndPos); bool __declspec(dllexport) _stdcall ESSetOutCB(HANDLE handle, WaveOutCB OutCB, WaveOutActionCB OutActionCB, unsigned long UserData); bool __declspec(dllexport) _stdcall ESGetInfo1(HANDLE handle, void *InfoBuf, unsigned long *buflen); bool __declspec(dllexport) _stdcall ESGetInfo2(HANDLE handle, unsigned long *Info2); bool __declspec(dllexport) _stdcall ESSetInCB(HANDLE handle, InFileOpenCB openCB, InFileCloseCB closeCB, InFileGetSizeCB getsizeCB, InFileSeekCB seekCB, InFileReadCB readCB, unsigned long UserData1); bool __declspec(dllexport) _stdcall ESCanSetVolume(HANDLE handle, bool *Separate); bool __declspec(dllexport) _stdcall ESSetVolume(HANDLE handle, unsigned long Volume); bool __declspec(dllexport) _stdcall ESGetVolume(HANDLE handle, unsigned long *Volume); bool __declspec(dllexport) _stdcall ESSetDevNum(HANDLE handle, unsigned long DevNum); bool __declspec(dllexport) _stdcall ESInitStream(HANDLE handle); bool __declspec(dllexport) _stdcall ESSetWindow(HANDLE handle, HWND Wnd); bool __declspec(dllexport) _stdcall ESCanPause(HANDLE handle); bool __declspec(dllexport) _stdcall ESCanSetPos(HANDLE handle); bool __declspec(dllexport) _stdcall ESSetExtras(HANDLE handle, void *Param); bool __declspec(dllexport) _stdcall ESUseOutCB(HANDLE handle, bool UseCB); bool __declspec(dllexport) _stdcall ESHasEQ(HANDLE handle, bool *ItDoes); bool __declspec(dllexport) _stdcall ESEQ(HANDLE handle, LPVOID *EQData, unsigned long *channels, unsigned long *bands); bool __declspec(dllexport) _stdcall ESUseEQ(HANDLE handle, bool UseEQ); #endif