[Ttssh2-commit] [8596] Tera Term と htmlhelp ウィンドウを同時に閉じたときエラーが出ないよう修正

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2020年 3月 14日 (土) 23:09:22 JST


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


Ttssh2-commit メーリングリストの案内
Back to archive index