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;
}
フラグメント 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
、画像が保存された後に呼び出されることはありません。そこにメッセージボックスを置いてチェックしました;)