diff --git a/sln/hgscanner.sln b/sln/hgscanner.sln index f7a6e06..5afc528 100644 --- a/sln/hgscanner.sln +++ b/sln/hgscanner.sln @@ -32,6 +32,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_TWAIN_App", "..\..\doc EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "saneui", "..\..\doc_and_tools\tools\apps\saneui\saneui.vcxproj", "{9C925903-62C0-4517-B435-93F6291E2D27}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pic_viewer", "..\..\doc_and_tools\tools\apps\pic_viewer\pic_viewer.vcxproj", "{8C3DEF78-4DF1-4C26-A11E-7031FF77391C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -102,6 +104,14 @@ Global {9C925903-62C0-4517-B435-93F6291E2D27}.Release|x64.Build.0 = Release|x64 {9C925903-62C0-4517-B435-93F6291E2D27}.Release|x86.ActiveCfg = Release|Win32 {9C925903-62C0-4517-B435-93F6291E2D27}.Release|x86.Build.0 = Release|Win32 + {8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Debug|x64.ActiveCfg = Debug|x64 + {8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Debug|x64.Build.0 = Debug|x64 + {8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Debug|x86.ActiveCfg = Debug|Win32 + {8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Debug|x86.Build.0 = Debug|Win32 + {8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Release|x64.ActiveCfg = Release|x64 + {8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Release|x64.Build.0 = Release|x64 + {8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Release|x86.ActiveCfg = Release|Win32 + {8C3DEF78-4DF1-4C26-A11E-7031FF77391C}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -115,6 +125,7 @@ Global {4C912767-88BE-463E-BFFC-AF994A92E425} = {53E5EDD9-13BA-4F3C-A387-C73CB06C686D} {8C3DEF78-4DF1-4C26-A11E-7031FF773E7D} = {53E5EDD9-13BA-4F3C-A387-C73CB06C686D} {9C925903-62C0-4517-B435-93F6291E2D27} = {53E5EDD9-13BA-4F3C-A387-C73CB06C686D} + {8C3DEF78-4DF1-4C26-A11E-7031FF77391C} = {53E5EDD9-13BA-4F3C-A387-C73CB06C686D} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A89068FF-95C4-3C1E-B126-70B66C9824BB} diff --git a/sln/usb_tools/DlgScanner.cpp b/sln/usb_tools/DlgScanner.cpp index ba7bb10..bb3341a 100644 --- a/sln/usb_tools/DlgScanner.cpp +++ b/sln/usb_tools/DlgScanner.cpp @@ -722,12 +722,13 @@ static DWORD thread_open_id_ = 0; static safe_fifo images_("images"); static DWORD WINAPI thread_open_image(void* lp) { + thread_open_id_ = GetCurrentThreadId(); while (1) { std::wstring file(L""); if (images_.take(file, true)) ShellExecuteW(NULL, L"Open", file.c_str(), NULL, NULL, SW_SHOWNORMAL); - else + else if(thread_open_id_ == 0) break; } return 0; @@ -781,6 +782,7 @@ CDlgScanner::CDlgScanner(CWnd* pParent /*=nullptr*/) CDlgScanner::~CDlgScanner() { ::PostThreadMessage(thread_open_id_, WM_USER + 1001, 0, 0); + thread_open_id_ = 0; images_.trigger(); if (scanner_) {