Canon EDSDK 2.10のEdsSetProgressCallback
機能を使用して、画像保存の完了を知らせようとしています。 inProgressOption
パラメータをkEdsProgressOption_Done
に設定しました。問題は、成功したセービングの後にアクションが実行されないことです。この機能を正しく実装しているかどうか教えていただけますか?EDSDKのEdsSetProgressCallback関数を正しく実装するにはどうすればいいですか?
私のコールバック関数:
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
からが呼び出されることはありません。メッセージボックスを置いてチェックしました;)