From 4ab2323a335bb364685c19017056b4263e316dbb Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Tue, 11 Jul 2023 11:20:11 +0800 Subject: [PATCH] restore check of show ui --- twain/build.sh | 0 twain/huagaods.cpp | 5 ++++- twain/scanner.cpp | 5 ++++- 3 files changed, 8 insertions(+), 2 deletions(-) mode change 100644 => 100755 twain/build.sh diff --git a/twain/build.sh b/twain/build.sh old mode 100644 new mode 100755 diff --git a/twain/huagaods.cpp b/twain/huagaods.cpp index 6200149..049a02c 100644 --- a/twain/huagaods.cpp +++ b/twain/huagaods.cpp @@ -828,6 +828,7 @@ int huagao_ds::on_scanner_event(int ev, void* param) const Identity& huagao_ds::defaultIdentity() noexcept { // remember, we return a reference, therefore the identity must not be placed on the stack of this method + return *srcIdent; } Result huagao_ds::selectIdentity(Twpp::Identity& ident) noexcept { @@ -1019,6 +1020,8 @@ Result huagao_ds::identityOpenDs(const Identity& id) m_fileXfer.setFormat(ImageFileFormat::Bmp); scanner_status_ = SCANNER_STATUS_READY; + log_mem_info("srcIdent:", srcIdent, sizeof(*srcIdent)); + return success(); } Result huagao_ds::identityCloseDs(const Identity&) @@ -1124,7 +1127,7 @@ Result huagao_ds::userInterfaceEnable(const Identity&, UserInterface& ui) bUiOnly_ = false; show_setting_ = false; scanner_->twain_set_transfer((twain_xfer)m_capXferMech); - // if (!ui.showUi()) + if (!ui.showUi()) { scanner_->ui_show_progress((HWND)ui.parent().raw(), m_bIndicator); //if (m_bIndicator && !) diff --git a/twain/scanner.cpp b/twain/scanner.cpp index d59bbe9..95206fe 100644 --- a/twain/scanner.cpp +++ b/twain/scanner.cpp @@ -291,7 +291,9 @@ namespace callback { #define GET_API(api) \ proc = (FARPROC*)&api; \ - *proc = GetProcAddress(hui, #api); + *proc = GetProcAddress(hui, #api); \ + if(*proc == nullptr) \ + utils::to_log(LOG_LEVEL_FATAL, "TWAINUI - function '%s' not found!\n", #api); FARPROC* proc = nullptr; @@ -2897,6 +2899,7 @@ COM_API_IMPLEMENT(scanner, bool, ui_show_main(HWND parent)) } COM_API_IMPLEMENT(scanner, bool, ui_show_setting(HWND parent, bool with_scan, bool indicator)) { + printf("ui_show_setting(%p, %s, %s), api = %p\n", parent, with_scan ? "with scan" : "only ui", indicator ? "has indicator" : "no indicator", callback::show_setting_ui); is_show_ui_ = with_scan; is_show_setting_ = true; events_.clear();