[Ttssh2-commit] [5407] 95/NT4. 0で起動できなくなっていた問題を修正した。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2013年 10月 28日 (月) 20:06:19 JST


Revision: 5407
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/5407
Author:   yutakapon
Date:     2013-10-28 20:06:18 +0900 (Mon, 28 Oct 2013)
Log Message:
-----------
95/NT4.0で起動できなくなっていた問題を修正した。
チケット #32323
http://sourceforge.jp/ticket/browse.php?group_id=1412&tid=32323

Ticket Links:
------------
    http://sourceforge.jp/projects/ttssh2/tracker/detail/32323

Modified Paths:
--------------
    trunk/teraterm/ttpcmn/ttcmn.c
    trunk/teraterm/ttpcmn/ttpcmn.vcproj

-------------- next part --------------
Modified: trunk/teraterm/ttpcmn/ttcmn.c
===================================================================
--- trunk/teraterm/ttpcmn/ttcmn.c	2013-10-20 14:13:23 UTC (rev 5406)
+++ trunk/teraterm/ttpcmn/ttcmn.c	2013-10-28 11:06:18 UTC (rev 5407)
@@ -1055,7 +1055,23 @@
 	HMONITOR hMonitor;
 	MONITORINFO mi;
 	int stat = SW_RESTORE;
+	OSVERSIONINFO osvi;
+	int multi_mon = 0;
 
+	// Windows\x82̃o\x81[\x83W\x83\x87\x83\x93\x82\xF0\x8E擾\x82\xB7\x82\xE9\x81B
+	// \x82Ȃ\xA8\x81AWindows8.1\x82ł́AGetVersionEx()\x82\xCDdeprecated API\x82ł\xA0\x82邽\x82߁AWindows8(major=6,minor=2)
+	// \x82ƕԂ\xC1\x82Ă\xAD\x82\xE9\x81BManifest\x83t\x83@\x83C\x83\x8B\x82\xF0\x8FC\x90\xB3\x82\xB7\x82\xE9\x82Ƃ\xA2\x82\xA4\x89\xF1\x94\xF0\x95\xFB\x96@\x82\xAA\x82\xA0\x82\xE9\x82悤\x82\xBE\x82\xAA\x81AVisual Studio 2005\x82ł\xCD
+	// \x8Eg\x82\xA6\x82Ȃ\xA2\x82\xE0\x82̂Ǝv\x82\xED\x82\xEA\x82\xE9\x81B
+	// cf. http://msdn.microsoft.com/en-us/library/windows/desktop/dn302074.aspx
+	osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+	GetVersionEx(&osvi);
+	if ( (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT && osvi.dwMajorVersion == 4) ||
+	     (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS && osvi.dwMinorVersion < 10) ) {
+		multi_mon = 0;
+	} else {
+		multi_mon = 1;
+	}
+
 	// \x88\xEA\x93x\x81A\x95\x9C\x8C\xB3\x82\xB5\x82\xBD\x82\xE7\x83t\x83\x89\x83O\x82͗\x8E\x82Ƃ\xB7\x81B
 	pm->WinUndoFlag = FALSE;
 
@@ -1066,28 +1082,31 @@
 		if (stat == SW_RESTORE && memcmp(&pm->WinPrevRect[i], &rc0, sizeof(rc0)) != 0) {
 			rc = pm->WinPrevRect[i].rcNormalPosition;
 
-			// \x91Ώۃ\x82\x83j\x83^\x82̏\xEE\x95\xF1\x82\xF0\x8E擾
-			hMonitor = MonitorFromRect(&rc, MONITOR_DEFAULTTONEAREST);
-			mi.cbSize = sizeof(MONITORINFO);
-			GetMonitorInfo(hMonitor, &mi);
+			// NT4.0, 95 \x82̓}\x83\x8B\x83`\x83\x82\x83j\x83^API\x82ɔ\xF1\x91Ή\x9E
+			if (multi_mon) {
+				// \x91Ώۃ\x82\x83j\x83^\x82̏\xEE\x95\xF1\x82\xF0\x8E擾
+				hMonitor = MonitorFromRect(&rc, MONITOR_DEFAULTTONEAREST);
+				mi.cbSize = sizeof(MONITORINFO);
+				GetMonitorInfo(hMonitor, &mi);
 
-			// \x88ʒu\x95␳\x81i\x95\x9C\x8C\xB3\x91O\x8C\xE3\x82ʼn𑜓x\x82\xAA\x95ς\xED\x82\xC1\x82Ă\xA2\x82\xE9\x8Fꍇ\x82ւ̑΍\xF4\x81j
-			if (rc.right > mi.rcMonitor.right) {
-				rc.left -= rc.right - mi.rcMonitor.right;
-				rc.right = mi.rcMonitor.right;
+				// \x88ʒu\x95␳\x81i\x95\x9C\x8C\xB3\x91O\x8C\xE3\x82ʼn𑜓x\x82\xAA\x95ς\xED\x82\xC1\x82Ă\xA2\x82\xE9\x8Fꍇ\x82ւ̑΍\xF4\x81j
+				if (rc.right > mi.rcMonitor.right) {
+					rc.left -= rc.right - mi.rcMonitor.right;
+					rc.right = mi.rcMonitor.right;
+				}
+				if (rc.left < mi.rcMonitor.left) {
+					rc.right += mi.rcMonitor.left - rc.left;
+					rc.left = mi.rcMonitor.left;
+				}
+				if (rc.bottom > mi.rcMonitor.bottom) {
+					rc.top -= rc.bottom - mi.rcMonitor.bottom;
+					rc.bottom = mi.rcMonitor.bottom;
+				}
+				if (rc.top < mi.rcMonitor.top) {
+					rc.bottom += mi.rcMonitor.top - rc.top;
+					rc.top = mi.rcMonitor.top;
+				}
 			}
-			if (rc.left < mi.rcMonitor.left) {
-				rc.right += mi.rcMonitor.left - rc.left;
-				rc.left = mi.rcMonitor.left;
-			}
-			if (rc.bottom > mi.rcMonitor.bottom) {
-				rc.top -= rc.bottom - mi.rcMonitor.bottom;
-				rc.bottom = mi.rcMonitor.bottom;
-			}
-			if (rc.top < mi.rcMonitor.top) {
-				rc.bottom += mi.rcMonitor.top - rc.top;
-				rc.top = mi.rcMonitor.top;
-			}
 
 			// \x83E\x83B\x83\x93\x83h\x83E\x88ʒu\x95\x9C\x8C\xB3
 			SetWindowPos(

Modified: trunk/teraterm/ttpcmn/ttpcmn.vcproj
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.vcproj	2013-10-20 14:13:23 UTC (rev 5406)
+++ trunk/teraterm/ttpcmn/ttpcmn.vcproj	2013-10-28 11:06:18 UTC (rev 5407)
@@ -82,7 +82,7 @@
 				LinkIncremental="1"
 				SuppressStartupBanner="true"
 				ModuleDefinitionFile=".\ttpcmn.def"
-				DelayLoadDLLs="setupapi.dll"
+				DelayLoadDLLs="setupapi.dll; user32.dll"
 				GenerateDebugInformation="true"
 				ProgramDatabaseFile="..\Release/ttpcmn.pdb"
 				SubSystem="2"
@@ -181,7 +181,7 @@
 				SuppressStartupBanner="true"
 				AdditionalLibraryDirectories="..\htmlhelp"
 				ModuleDefinitionFile=".\ttpcmn.def"
-				DelayLoadDLLs="setupapi.dll"
+				DelayLoadDLLs="setupapi.dll;user32.dll"
 				GenerateDebugInformation="true"
 				ProgramDatabaseFile="..\Debug/ttpcmn.pdb"
 				SubSystem="2"



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