diff --git a/twain/twain/huagaods.cpp b/twain/twain/huagaods.cpp index 016d270..c82a3c8 100644 --- a/twain/twain/huagaods.cpp +++ b/twain/twain/huagaods.cpp @@ -1571,6 +1571,7 @@ Twpp::Result huagao_ds::setupFileXferReset(const Twpp::Identity& origin, Twpp::S } Result huagao_ds::call(const Identity& origin, DataGroup dg, Dat dat, Msg msg, void* data) { static bool in_calling = false; + static unsigned nested_events = 0; bool calling = in_calling; if (calling) @@ -1585,7 +1586,9 @@ Result huagao_ds::call(const Identity& origin, DataGroup dg, Dat dat, Msg msg, v } else { - load_sane_util::log_info(L"Nested Call: discard 'Msg::ProcessEvent'!\r\n", 0); + if(nested_events == 0) + load_sane_util::log_info(L"Nested Call: discard 'Msg::ProcessEvent'!\r\n", 0); + nested_events++; return { ReturnCode::NotDsEvent, ConditionCode::Success }; } } @@ -1600,6 +1603,13 @@ Result huagao_ds::call(const Identity& origin, DataGroup dg, Dat dat, Msg msg, v { in_calling = true; } + if (nested_events > 1) + { + wchar_t buf[256] = { 0 }; + swprintf_s(buf, _countof(buf) - 1, L"Discard %u nested Msg::ProcessEvent messages before.\r\n", nested_events); + load_sane_util::log_info(buf, 0); + } + nested_events = 0; try { // we can override almost anything from SourceFromThis, even the top-most source instance call