Revision: 8596 https://osdn.net/projects/ttssh2/scm/svn/commits/8596 Author: zmatsuo Date: 2020-03-14 23:09:21 +0900 (Sat, 14 Mar 2020) Log Message: ----------- Tera Term と htmlhelp ウィンドウを同時に閉じたときエラーが出ないよう修正 - 起動時に HtmlHelp(NULL, NULL, HH_INITIALIZE, ...) を追加 - 終了時に HtmlHelp(NULL, NULL, HH_CLOSE_ALL, 0) を行うようにした - ドキュメントによると HH_CLOSE_ALL 時は引数を 0, NULL にする - 従来はファイル名などを渡していた - 従来は WM_DESOTRY メッセージ受信時に行っていた - 終了時に HtmlHelp(NULL, NULL, HH_UNINITIALIZE, ...) を追加 - r8576, r8582 - ticket #40216 Revision Links: -------------- https://osdn.net/projects/ttssh2/scm/svn/commits/8576 https://osdn.net/projects/ttssh2/scm/svn/commits/8582 Ticket Links: ------------ https://osdn.net/projects/ttssh2/tracker/detail/40216 Modified Paths: -------------- branches/4-stable/doc/en/html/about/history.html branches/4-stable/doc/ja/html/about/history.html branches/4-stable/teraterm/teraterm/teraterm.cpp branches/4-stable/teraterm/teraterm/vtwin.cpp -------------- next part -------------- Modified: branches/4-stable/doc/en/html/about/history.html =================================================================== --- branches/4-stable/doc/en/html/about/history.html 2020-03-12 15:52:09 UTC (rev 8595) +++ branches/4-stable/doc/en/html/about/history.html 2020-03-14 14:09:21 UTC (rev 8596) @@ -44,6 +44,7 @@ <li>Fixed memory leak when tooltip show. This bug was introduced in 4.103.</li> <li>Fixed support for IME feedback back and forth function. This bug was introduced in 4.103.</li> <li>Fixed desktop images can not be displayed on background other than main display. This bug was introduced in 4.103.</li> + <li>Fixed an application fault occurs when VT Window and HtmlHelp Windows are closed at same time</li> </ul> </li> Modified: branches/4-stable/doc/ja/html/about/history.html =================================================================== --- branches/4-stable/doc/ja/html/about/history.html 2020-03-12 15:52:09 UTC (rev 8595) +++ branches/4-stable/doc/ja/html/about/history.html 2020-03-14 14:09:21 UTC (rev 8596) @@ -42,8 +42,9 @@ <li>\x83o\x83O\x8FC\x90\xB3 <ul> <li>\x83c\x81[\x83\x8B\x83`\x83b\x83v\x95\\x8E\xA6\x8E\x9E\x82̃\x81\x83\x82\x83\x8A\x83\x8A\x81[\x83N\x82\xF0\x8FC\x90\xB3\x81B4.103\x82ł̃G\x83\x93\x83o\x83O\x81B</li> - <li><a href="../usage/tips/ime.html#feedback">IME\x82̑O\x8C\xE3\x8EQ\x8Fƕϊ\xB7\x8B@\x94\</a>\x82\xAA\x93\xAE\x8D삷\x82\xE9\x82悤\x8FC\x90\xB3\x81B4.103\x82ł̃G\x83\x93\x83o\x83O\x81B</li> + <li><a href="../usage/tips/ime.html#feedback">IME\x82̑O\x8C\xE3\x8EQ\x8Fƕϊ\xB7\x8B@\x94\</a>\x82\xAA\x93\xAE\x8D삷\x82\xE9\x82悤\x8FC\x90\xB3\x81B4.103\x82ł̃G\x83\x93\x83o\x83O\x81B</li> <li>\x83\x81\x83C\x83\x93\x83f\x83B\x83X\x83v\x83\x8C\x83C\x88ȊO\x82Ńf\x83X\x83N\x83g\x83b\x83v\x89摜\x82\xF0\x94w\x8Ci\x82ɕ\\x8E\xA6\x82ł\xAB\x82Ȃ\xA9\x82\xC1\x82\xBD\x82̂\xF0\x8FC\x90\xB3\x81B4.101\x82ł̃G\x83\x93\x83o\x83O\x81B</li> + <li>VT \x83E\x83B\x83\x93\x83h\x83E\x82\xC6 Html\x83w\x83\x8B\x83v\x83E\x83B\x83\x93\x83h\x83E\x82\x9E\x82ɕ\xB6\x82\xE9\x82ƃA\x83v\x83\x8A\x83P\x81[\x83V\x83\x87\x83\x93\x83t\x83H\x81[\x83\x8B\x83g\x82\xAA\x94\xAD\x90\xB6\x82\xB7\x82\xE9\x95s\x8B\x82\xF0\x8FC\x90\xB3</li> </ul> </li> Modified: branches/4-stable/teraterm/teraterm/teraterm.cpp =================================================================== --- branches/4-stable/teraterm/teraterm/teraterm.cpp 2020-03-12 15:52:09 UTC (rev 8595) +++ branches/4-stable/teraterm/teraterm/teraterm.cpp 2020-03-14 14:09:21 UTC (rev 8596) @@ -1,6 +1,6 @@ /* * Copyright (C) 1994-1998 T. Teranishi - * (C) 2006-2019 TeraTerm Project + * (C) 2006-2020 TeraTerm Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,7 +32,8 @@ #include "teraterm_conf.h" #include <crtdbg.h> -#include <tchar.h> +#include <windows.h> +#include <htmlhelp.h> #include "teraterm.h" #include "tttypes.h" #include "commlib.h" @@ -61,6 +62,8 @@ static BOOL AddFontFlag; static TCHAR TSpecialFont[MAX_PATH]; static CVTWindow* pVTWin; +static HWND(WINAPI *pHtmlHelp)(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData); +static DWORD HtmlHelpCookie; static void LoadSpecialFont() { @@ -290,6 +293,20 @@ return TRUE; } +static void GetHtmlHelpAdr() +{ + HINSTANCE hDll; + TCHAR dllName[MAX_PATH]; + GetSystemDirectory(dllName, _countof(dllName)); + _tcscat_s(dllName, _countof(dllName), _T("\\hhctrl.ocx")); + hDll = LoadLibrary(dllName); + if (hDll == NULL) { + return; + } + void **func = (void **)&pHtmlHelp; + *func = (void *)GetProcAddress(hDll, "HtmlHelpA"); +} + int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst, LPSTR lpszCmdLine, int nCmdShow) { @@ -300,6 +317,10 @@ _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); #endif init(); + GetHtmlHelpAdr(); + if (pHtmlHelp != NULL) { + pHtmlHelp(NULL, NULL, HH_INITIALIZE, (DWORD_PTR)&HtmlHelpCookie); + } hInst = hInstance; CVTWindow *m_pMainWnd = new CVTWindow(hInstance); pVTWin = m_pMainWnd; @@ -373,6 +394,11 @@ delete m_pMainWnd; m_pMainWnd = NULL; + if (pHtmlHelp != NULL) { + pHtmlHelp(NULL, NULL, HH_CLOSE_ALL, 0); + pHtmlHelp(NULL, NULL, HH_UNINITIALIZE, HtmlHelpCookie); + } + UnloadSpecialFont(); DLLExit(); Modified: branches/4-stable/teraterm/teraterm/vtwin.cpp =================================================================== --- branches/4-stable/teraterm/teraterm/vtwin.cpp 2020-03-12 15:52:09 UTC (rev 8595) +++ branches/4-stable/teraterm/teraterm/vtwin.cpp 2020-03-14 14:09:21 UTC (rev 8596) @@ -1898,8 +1898,6 @@ } CommClose(&cv); - OpenHelp(HH_CLOSE_ALL, 0, ts.UILanguageFile); - FreeIME(HVTWin); FreeTTSET(); #if 0 // free\x82Ɏ\xB8\x94s\x82\xB7\x82\xE9\x82܂\xC5free\x82\xB5\x91\xB1\x82\xAF\x82\xE9