• R/O
  • SSH
  • HTTPS

ttssh2: Commit


Commit MetaInfo

Revision6256 (tree)
Time2016-01-07 22:09:58
Author(del#1144)

Log Message

バージョンチェックを変更

OS のバージョン番号ではなく関数の有無をチェックする関数を作成
不要なバージョンチェックを削除

Change Summary

Incremental Difference

--- branches/vs2015_warn/teraterm/teraterm/clipboar.c (revision 6255)
+++ branches/vs2015_warn/teraterm/teraterm/clipboar.c (revision 6256)
@@ -621,7 +621,7 @@
621621 // キャレットが画面からはみ出しているときに貼り付けをすると
622622 // 確認ウインドウが見えるところに表示されないことがある。
623623 // ウインドウからはみ出した場合に調節する (2008.4.24 maya)
624- if (IsWindows95() || IsWindowsNT4()) {
624+ if (!HasMultiMonitorSupport()) {
625625 // NT4.0, 95 はマルチモニタAPIに非対応
626626 SystemParametersInfo(SPI_GETWORKAREA, 0, &rc_dsk, 0);
627627 }
--- branches/vs2015_warn/teraterm/teraterm/vtdisp.c (revision 6255)
+++ branches/vs2015_warn/teraterm/teraterm/vtdisp.c (revision 6256)
@@ -1786,7 +1786,7 @@
17861786 /* background paintbrush */
17871787 Background = CreateSolidBrush(ts.VTColor[1]);
17881788 /* CRT width & height */
1789- if (!IsWindows95() && !IsWindowsNT4()) {
1789+ if (HasMultiMonitorSupport()) {
17901790 bMultiDisplaySupport = TRUE;
17911791 }
17921792 if( bMultiDisplaySupport ) {
--- branches/vs2015_warn/teraterm/teraterm/vtwin.cpp (revision 6255)
+++ branches/vs2015_warn/teraterm/teraterm/vtwin.cpp (revision 6256)
@@ -2700,7 +2700,6 @@
27002700 SIZE sz;
27012701 RECT wr;
27022702 int ix, iy;
2703- HMODULE mod;
27042703 HMONITOR hm;
27052704
27062705 /* calculate the tip's size */
@@ -2714,8 +2713,7 @@
27142713 ix = wr.left;
27152714 iy = wr.top - sz.cy;
27162715
2717- if (((mod = GetModuleHandle("user32.dll")) != NULL) &&
2718- (GetProcAddress(mod,"MonitorFromPoint") != NULL)) {
2716+ if (HasMultiMonitorSupport()) {
27192717 // マルチモニタがサポートされている場合
27202718 POINT p;
27212719 p.x = ix;
--- branches/vs2015_warn/teraterm/common/ttlib.c (revision 6255)
+++ branches/vs2015_warn/teraterm/common/ttlib.c (revision 6256)
@@ -1201,6 +1201,33 @@
12011201 #endif
12021202 }
12031203
1204+// OS がマルチモニタ API をサポートしているかどうかを判別する。
1205+// 98 以降/2000 以降は TRUE を返す
1206+BOOL HasMultiMonitorSupport()
1207+{
1208+ HMODULE mod;
1209+
1210+ if (((mod = GetModuleHandle("user32.dll")) != NULL) &&
1211+ (GetProcAddress(mod, "MonitorFromPoint") != NULL)) {
1212+ return TRUE;
1213+ }
1214+ return FALSE;
1215+}
1216+
1217+// OS が GetAdaptersAddresses をサポートしているかどうかを判別する。
1218+// XP 以降は TRUE を返す
1219+// 2000 以降は IPv6 に対応しているが GetAdaptersAddresses がない
1220+BOOL HasGetAdaptersAddresses()
1221+{
1222+ HMODULE mod;
1223+
1224+ if (((mod = GetModuleHandle("iphlpapi.dll")) != NULL) &&
1225+ (GetProcAddress(mod, "GetAdaptersAddresses") != NULL)) {
1226+ return TRUE;
1227+ }
1228+ return FALSE;
1229+}
1230+
12041231 int get_OPENFILENAME_SIZE()
12051232 {
12061233 if (IsWindows2000OrLater()) {
--- branches/vs2015_warn/teraterm/common/ttlib.h (revision 6255)
+++ branches/vs2015_warn/teraterm/common/ttlib.h (revision 6256)
@@ -52,6 +52,8 @@
5252 BOOL IsWindows2000OrLater();
5353 BOOL IsWindowsVistaOrLater();
5454 BOOL IsWindows7OrLater();
55+BOOL HasMultiMonitorSupport();
56+BOOL HasGetAdaptersAddresses();
5557 int KanjiCode2List(int lang, int kcode);
5658 int List2KanjiCode(int lang, int kcode);
5759 int KanjiCodeTranslate(int lang, int kcode);
--- branches/vs2015_warn/teraterm/ttpmacro/ttmlib.c (revision 6255)
+++ branches/vs2015_warn/teraterm/ttpmacro/ttmlib.c (revision 6256)
@@ -104,16 +104,6 @@
104104 char Path[MAX_PATH] = "";
105105 LPITEMIDLIST pidl;
106106
107- if (!IsWindowsNTKernel() || IsWindowsNT4()) {
108- switch (CSIDL) {
109- case CSIDL_COMMON_DESKTOPDIRECTORY:
110- case CSIDL_COMMON_STARTMENU:
111- case CSIDL_COMMON_PROGRAMS:
112- case CSIDL_COMMON_STARTUP:
113- return 0;
114- }
115- }
116-
117107 if (SHGetSpecialFolderLocation(NULL, CSIDL, &pidl) != S_OK) {
118108 return 0;
119109 }
@@ -186,7 +176,7 @@
186176
187177 int GetMonitorLeftmost(int PosX, int PosY)
188178 {
189- if (IsWindows95() || IsWindowsNT4()) {
179+ if (!HasMultiMonitorSupport()) {
190180 // // NT4.0, 95 はマルチモニタAPIに非対応
191181 return 0;
192182 }
--- branches/vs2015_warn/teraterm/ttpmacro/ttl.c (revision 6255)
+++ branches/vs2015_warn/teraterm/ttpmacro/ttl.c (revision 6256)
@@ -2393,9 +2393,8 @@
23932393 Err = ErrSyntax;
23942394 if (Err!=0) return Err;
23952395
2396- // IPv6 がサポートされていない OS はここで return
2397- if (!IsWindowsNTKernel() || IsWindowsNT4()) {
2398- // 9x, NT4.0 は IPv6 非対応
2396+ // GetAdaptersAddresses がサポートされていない OS はここで return
2397+ if (!HasGetAdaptersAddresses()) {
23992398 SetResult(-1);
24002399 SetIntVal(VarId2, 0);
24012400 return Err;
--- branches/vs2015_warn/teraterm/ttpcmn/ttcmn.c (revision 6255)
+++ branches/vs2015_warn/teraterm/ttpcmn/ttcmn.c (revision 6256)
@@ -1061,7 +1061,7 @@
10611061 int stat = SW_RESTORE;
10621062 int multi_mon = 0;
10631063
1064- if (!IsWindows95() && !IsWindowsNT4()) {
1064+ if (HasMultiMonitorSupport()) {
10651065 multi_mon = 1;
10661066 }
10671067
--- branches/vs2015_warn/TTXSamples/TTXResizeMenu/TTXResizeMenu.c (revision 6255)
+++ branches/vs2015_warn/TTXSamples/TTXResizeMenu/TTXResizeMenu.c (revision 6256)
@@ -159,7 +159,7 @@
159159 pvar->ResizeMenu = NULL;
160160 pvar->MenuItems = 0;
161161
162- if (IsWindows95() || IsWindowsNT4()) {
162+ if (!HasMultiMonitorSupport()) {
163163 pvar->useMultiMonitorAPI = FALSE;
164164 }
165165 else {
Show on old repository browser