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"