#include #include #include LRESULT SourceDialog::perform(void) { mDriverIndex=-1; ::DialogBoxParam(processInstance(),(LPSTR)"SOURCE",mhParent,(DLGPROC)DWindow::DlgProc,(LONG)((DWindow*)this)); return mDriverIndex; } CallbackData::ReturnType SourceDialog::initDialogHandler(CallbackData &/*someCallbackData*/) { mListBox=new Control(getItem(SOURCE_LIST),SOURCE_LIST,FALSE); mListBox.disposition(PointerDisposition::Delete); getDrivers(); return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType SourceDialog::dialogCodeHandler(CallbackData &/*someCallbackData*/) { return (CallbackData::ReturnType)DLGC_WANTALLKEYS; } CallbackData::ReturnType SourceDialog::commandHandler(CallbackData &someCallbackData) { switch(someCallbackData.wmCommandID()) { case IDOK : getDriverIndex(); endDialog(TRUE); break; case IDCANCEL : mDriverIndex=-1; endDialog(FALSE); break; case SOURCE_LIST : if(LBN_DBLCLK==someCallbackData.wmCommandCommand()){getDriverIndex();endDialog(true);} break; } return (CallbackData::ReturnType)FALSE; } void SourceDialog::getDrivers(void) { Block drivers; mListBox->sendMessage(LB_RESETCONTENT,0,0L); VidCap::getDrivers(drivers); for(int index=0;indexsendMessage(LB_INSERTSTRING,-1,(LPARAM)String(drivers[index].driverName()+String("[")+ drivers[index].driverVersion()+String("]")).str()); } if(drivers.size())mListBox->sendMessage(LB_SETCURSEL,0,0); } LRESULT SourceDialog::getDriverIndex(void) { if(mListBox->sendMessage(LB_GETCOUNT,0,0))return mDriverIndex=mListBox->sendMessage(LB_GETCURSEL,0,0L); else return mDriverIndex=-1; }