我正在尝试使用EdsSetProgressCallback
Canon EDSDK 2.10 中的功能来通知用户图像保存完成。我已将inProgressOption
参数设置为kEdsProgressOption_Done
. 问题是,成功保存后没有执行任何操作。你能告诉我我是否正确地实现了这个功能吗?
我的回调函数:
EdsError EDSCALLBACK CManEosDlg::ProgressFunc (EdsUInt32 inPercent, EdsVoid* inContext, EdsBool* outCancel) {
CManEosDlg *pobj = (CManEosDlg *)inContext;
CStatic *pProgress=(CStatic*)pobj->GetDlgItem(IDC_LABEL);
pProgress->SetWindowText("Image saved");
return EDS_ERR_OK;
}
Fragment od图像保存功能:
EdsStreamRef DstStreamRef;
EdsError err = EdsCreateFileStream( path , kEdsFileCreateDisposition_CreateAlways , kEdsAccess_Write , &DstStreamRef );
if( err == EDS_ERR_OK ) {
err = EdsSetProgressCallback(DstStreamRef, ProgressFunc, kEdsProgressOption_Done, this);
if(err == EDS_ERR_OK) {
err = EdsSaveImage(_imageModel->getImageObject(), inImageType , inSaveSetting , DstStreamRef );
}
}
EdsRelease(DstStreamRef);
后者返回 EDS_ERR_OK ,EdsSetProgressCallback
但ProgressFunc
在保存图像后从不调用。我已经通过将消息框放在那里进行了检查;)