#include #include void DeviceHandler::insertHandlers(void) { mWindowHandler.insertHandler(VectorHandler::MMOpenHandler,&mMMOpenHandler); mWindowHandler.insertHandler(VectorHandler::MMCloseHandler,&mMMCloseHandler); mWindowHandler.insertHandler(VectorHandler::MMDoneHandler,&mMMDoneHandler); } void DeviceHandler::removeHandlers(void) { mWindowHandler.removeHandler(VectorHandler::MMOpenHandler,&mMMOpenHandler); mWindowHandler.removeHandler(VectorHandler::MMCloseHandler,&mMMCloseHandler); mWindowHandler.removeHandler(VectorHandler::MMDoneHandler,&mMMDoneHandler); } void DeviceHandler::mmSystemErrorMessage(MMRESULT mmResult)const { String errorString; ::waveOutGetErrorText(mmResult,(LPSTR)errorString,String::MaxString); message(errorString); } void DeviceHandler::genericErrorMessage(ErrorCode errorCode)const { if(errorCode==InvalidFormat)message("Invalid Format."); else if(errorCode==InvalidDeviceHandle)message("Invalid Device Handle."); else if(errorCode==InvalidHeader)message("Invalid Header."); else message("Unknown Error."); return; } WORD DeviceHandler::operator==(const DeviceHandler &/*someDeviceHandler*/)const { return FALSE; } CallbackData::ReturnType DeviceHandler::mmOpenHandler(CallbackData &someCallbackData) { openHandler(someCallbackData); return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType DeviceHandler::mmCloseHandler(CallbackData &someCallbackData) { closeHandler(someCallbackData); return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType DeviceHandler::mmDoneHandler(CallbackData &someCallbackData) { doneHandler(someCallbackData); return (CallbackData::ReturnType)FALSE; } // virtuals void DeviceHandler::openHandler(CallbackData &/*someCallbackData*/) { return; } void DeviceHandler::closeHandler(CallbackData &/*someCallbackData*/) { return; } void DeviceHandler::doneHandler(CallbackData &/*someCallbackData*/) { return; } void DeviceHandler::message(const String &strErrorMessage)const { ::MessageBox(::GetFocus(),(LPSTR)(String&)strErrorMessage,(LPSTR)"DeviceHandler",MB_OK); }