[Ttssh2-commit] [8216] シリアルポート設定ダイアログの詳細情報に、COMポートとデバイスドライバの情報を表示するようにした。

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2019年 9月 22日 (日) 14:00:12 JST


Revision: 8216
          https://osdn.net/projects/ttssh2/scm/svn/commits/8216
Author:   yutakapon
Date:     2019-09-22 14:00:12 +0900 (Sun, 22 Sep 2019)
Log Message:
-----------
シリアルポート設定ダイアログの詳細情報に、COMポートとデバイスドライバの情報を表示するようにした。

Modified Paths:
--------------
    trunk/teraterm/teraterm/ttermpro.v10.vcxproj
    trunk/teraterm/teraterm/ttermpro.v11.vcxproj
    trunk/teraterm/teraterm/ttermpro.v12.vcxproj
    trunk/teraterm/teraterm/ttermpro.v14.vcxproj
    trunk/teraterm/teraterm/ttermpro.v15.vcxproj
    trunk/teraterm/teraterm/ttermpro.v15.vcxproj.filters
    trunk/teraterm/teraterm/ttermpro.v16.vcxproj
    trunk/teraterm/teraterm/ttermpro.v16.vcxproj.filters
    trunk/teraterm/teraterm/ttermpro.v9.vcproj
    trunk/teraterm/teraterm/ttermpro.vcproj
    trunk/teraterm/ttpcmn/ttpcmn.v10.vcxproj
    trunk/teraterm/ttpcmn/ttpcmn.v11.vcxproj
    trunk/teraterm/ttpcmn/ttpcmn.v12.vcxproj
    trunk/teraterm/ttpcmn/ttpcmn.v14.vcxproj
    trunk/teraterm/ttpcmn/ttpcmn.v15.vcxproj
    trunk/teraterm/ttpcmn/ttpcmn.v15.vcxproj.filters
    trunk/teraterm/ttpcmn/ttpcmn.v16.vcxproj
    trunk/teraterm/ttpcmn/ttpcmn.v16.vcxproj.filters
    trunk/teraterm/ttpcmn/ttpcmn.v9.vcproj
    trunk/teraterm/ttpcmn/ttpcmn.vcproj
    trunk/teraterm/ttpdlg/ttdlg.c
    trunk/teraterm/ttpdlg/ttpdlg.rc

Added Paths:
-----------
    trunk/teraterm/ttpcmn/comportinfo.cpp
    trunk/teraterm/ttpcmn/comportinfo.h
    trunk/teraterm/ttpcmn/devpkey_teraterm.h

Property Changed:
----------------
    trunk/
    trunk/teraterm/

-------------- next part --------------
Index: trunk
===================================================================
--- trunk	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk	2019-09-22 05:00:12 UTC (rev 8216)

Property changes on: trunk
___________________________________________________________________
Modified: svn:mergeinfo
## -2,7 +2,7 ##
 /branches/flowctrl_dsrdtr:7825-7827
 /branches/openssl_1_1_1_v2:7888
 /branches/portfwd_memleak:7732,7736-7737,7764
-/branches/serial_port_improved:8119,8140-8141,8144,8150,8158-8160,8163,8170-8172,8183,8185,8204
+/branches/serial_port_improved:8119,8140-8141,8144,8150,8158-8160,8163,8170-8172,8183,8185,8204,8209,8212-8215
 /branches/ssh_ed25519:5495-5544
 /branches/ttproxy_improved:8041,8055-8056
 /branches/ttssh_improved:8027,8036,8040,8044,8053-8054,8058,8060,8063,8081,8085
Index: trunk/teraterm
===================================================================
--- trunk/teraterm	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm	2019-09-22 05:00:12 UTC (rev 8216)

Property changes on: trunk/teraterm
___________________________________________________________________
Modified: svn:mergeinfo
## -1,4 +1,4 ##
 /branches/drag_and_drop/teraterm:7130,7139,7141,7143-7147
 /branches/flowctrl_dsrdtr/teraterm:7825-7827
-/branches/serial_port_improved/teraterm:8119,8140-8141,8144,8150,8158-8160,8163,8170,8172,8183,8185,8204
+/branches/serial_port_improved/teraterm:8119,8140-8141,8144,8150,8158-8160,8163,8170,8172,8183,8185,8204,8209,8212-8215
 /branches/vs2015_warn/teraterm:6194-6285
\ No newline at end of property
Modified: trunk/teraterm/teraterm/ttermpro.v10.vcxproj
===================================================================
--- trunk/teraterm/teraterm/ttermpro.v10.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/teraterm/ttermpro.v10.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -63,7 +63,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation>
@@ -109,7 +109,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

Modified: trunk/teraterm/teraterm/ttermpro.v11.vcxproj
===================================================================
--- trunk/teraterm/teraterm/ttermpro.v11.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/teraterm/ttermpro.v11.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -62,7 +62,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation />
@@ -106,7 +106,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

Modified: trunk/teraterm/teraterm/ttermpro.v12.vcxproj
===================================================================
--- trunk/teraterm/teraterm/ttermpro.v12.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/teraterm/ttermpro.v12.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -62,7 +62,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation />
@@ -106,7 +106,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

Modified: trunk/teraterm/teraterm/ttermpro.v14.vcxproj
===================================================================
--- trunk/teraterm/teraterm/ttermpro.v14.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/teraterm/ttermpro.v14.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -64,7 +64,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation />
@@ -108,7 +108,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

Modified: trunk/teraterm/teraterm/ttermpro.v15.vcxproj
===================================================================
--- trunk/teraterm/teraterm/ttermpro.v15.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/teraterm/ttermpro.v15.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -65,7 +65,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation />
@@ -110,7 +110,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@@ -278,4 +278,4 @@
       <UserProperties RESOURCE_FILE="ttermpro.rc" />
     </VisualStudio>
   </ProjectExtensions>
-</Project>
+</Project>
\ No newline at end of file

Modified: trunk/teraterm/teraterm/ttermpro.v15.vcxproj.filters
===================================================================
--- trunk/teraterm/teraterm/ttermpro.v15.vcxproj.filters	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/teraterm/ttermpro.v15.vcxproj.filters	2019-09-22 05:00:12 UTC (rev 8216)
@@ -312,5 +312,8 @@
     <ClInclude Include="..\common\tmfc.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\common\tipwin.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
 </Project>
\ No newline at end of file

Modified: trunk/teraterm/teraterm/ttermpro.v16.vcxproj
===================================================================
--- trunk/teraterm/teraterm/ttermpro.v16.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/teraterm/ttermpro.v16.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -65,7 +65,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation />
@@ -110,7 +110,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@@ -278,4 +278,4 @@
       <UserProperties RESOURCE_FILE="ttermpro.rc" />
     </VisualStudio>
   </ProjectExtensions>
-</Project>
+</Project>
\ No newline at end of file

Modified: trunk/teraterm/teraterm/ttermpro.v16.vcxproj.filters
===================================================================
--- trunk/teraterm/teraterm/ttermpro.v16.vcxproj.filters	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/teraterm/ttermpro.v16.vcxproj.filters	2019-09-22 05:00:12 UTC (rev 8216)
@@ -312,5 +312,8 @@
     <ClInclude Include="..\common\tmfc.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\common\tipwin.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
 </Project>
\ No newline at end of file

Modified: trunk/teraterm/teraterm/ttermpro.v9.vcproj
===================================================================
--- trunk/teraterm/teraterm/ttermpro.v9.vcproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/teraterm/ttermpro.v9.vcproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -51,7 +51,7 @@
 				Name="VCCLCompilerTool"
 				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="0"
-				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
+				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
 				RuntimeLibrary="1"
 				BrowseInformation="0"
@@ -145,7 +145,7 @@
 				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="2"
 				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
+				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
 				StringPooling="true"
 				RuntimeLibrary="0"

Modified: trunk/teraterm/teraterm/ttermpro.vcproj
===================================================================
--- trunk/teraterm/teraterm/ttermpro.vcproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/teraterm/ttermpro.vcproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -50,7 +50,7 @@
 				Name="VCCLCompilerTool"
 				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="0"
-				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
+				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
 				RuntimeLibrary="1"
 				BrowseInformation="0"
@@ -145,7 +145,7 @@
 				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="2"
 				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
+				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;$(SolutionDir)ttpcmn"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
 				StringPooling="true"
 				RuntimeLibrary="0"

Copied: trunk/teraterm/ttpcmn/comportinfo.cpp (from rev 8209, branches/serial_port_improved/teraterm/ttpcmn/comportinfo.cpp)
===================================================================
--- trunk/teraterm/ttpcmn/comportinfo.cpp	                        (rev 0)
+++ trunk/teraterm/ttpcmn/comportinfo.cpp	2019-09-22 05:00:12 UTC (rev 8216)
@@ -0,0 +1,421 @@
+/*
+ * Copyright (C) 2019 TeraTerm Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// for comportinfo_test
+//#define TEST_FOR_NT
+//#define TEST_FOR_9X
+
+#include <windows.h>
+#include <devguid.h>
+#include <setupapi.h>
+#include <tchar.h>
+#include <stdio.h>
+#define _CRTDBG_MAP_ALLOC
+#include <crtdbg.h>
+
+#include "devpkey_teraterm.h"
+#include "ttlib.h"
+#include "codeconv.h"
+
+#define DllExport __declspec(dllexport)
+#include "comportinfo.h"
+
+typedef BOOL (WINAPI *TSetupDiGetDevicePropertyW)(
+	HDEVINFO DeviceInfoSet,
+	PSP_DEVINFO_DATA DeviceInfoData,
+	const DEVPROPKEY *PropertyKey,
+	DEVPROPTYPE *PropertyType,
+	PBYTE PropertyBuffer,
+	DWORD PropertyBufferSize,
+	PDWORD RequiredSize,
+	DWORD Flags
+	);
+
+typedef BOOL (WINAPI *TSetupDiGetDeviceRegistryPropertyW)(
+	HDEVINFO DeviceInfoSet,
+	PSP_DEVINFO_DATA DeviceInfoData,
+	DWORD Property,
+	PDWORD PropertyRegDataType,
+	PBYTE PropertyBuffer,
+	DWORD PropertyBufferSize,
+	PDWORD RequiredSize
+	);
+
+typedef LONG (WINAPI *TRegQueryValueExW)(
+	HKEY hKey,
+	LPCWSTR lpValueName,
+	LPDWORD lpReserved,
+	LPDWORD lpType,
+	LPBYTE lpData,
+	LPDWORD lpcbData
+	);
+
+static BOOL IsWindows9X()
+{
+	return !IsWindowsNTKernel();
+}
+
+/**
+ *	\x83|\x81[\x83g\x96\xBC\x82\xF0\x8E擾
+ */
+static BOOL GetComPortName(HDEVINFO hDevInfo, SP_DEVINFO_DATA *DeviceInfoData, wchar_t **str)
+{
+	TRegQueryValueExW pRegQueryValueExW =
+		(TRegQueryValueExW)GetProcAddress(
+			GetModuleHandleA("ADVAPI32.dll"), "RegQueryValueExW");
+	DWORD byte_len;
+	DWORD dwType = REG_SZ;
+	HKEY hKey = SetupDiOpenDevRegKey(hDevInfo,
+									 DeviceInfoData,
+									 DICS_FLAG_GLOBAL,
+									 0, DIREG_DEV, KEY_READ);
+	if (hKey == NULL){
+		// \x83|\x81[\x83g\x96\xBC\x82\xAA\x8E擾\x82ł\xAB\x82Ȃ\xA2?
+		*str = NULL;
+		return FALSE;
+	}
+
+	wchar_t* port_name = NULL;
+	long r;
+	if (pRegQueryValueExW != NULL && !IsWindows9X()) {
+		// 9x\x8Cn\x82ł͂\xA4\x82܂\xAD\x93\xAE\x8D삵\x82Ȃ\xA2
+		r = pRegQueryValueExW(hKey, L"PortName", 0,
+			&dwType, NULL, &byte_len);
+		port_name = (wchar_t* )malloc(byte_len);
+		r = pRegQueryValueExW(hKey, L"PortName", 0,
+								&dwType, (LPBYTE)port_name, &byte_len);
+	} else {
+		r = RegQueryValueExA(hKey, "PortName", 0,
+								&dwType, (LPBYTE)NULL, &byte_len);
+		char *port_name_a = (char *)malloc(byte_len);
+		r = RegQueryValueExA(hKey, "PortName", 0,
+								&dwType, (LPBYTE)port_name_a, &byte_len);
+		if (r == ERROR_SUCCESS) {
+			size_t len_w = MultiByteToWideChar(CP_ACP, MB_ERR_INVALID_CHARS,
+											   port_name_a, byte_len,
+											   NULL, 0);
+			port_name = (wchar_t *)malloc(sizeof(wchar_t) * len_w);
+			MultiByteToWideChar(CP_ACP, MB_ERR_INVALID_CHARS,
+								port_name_a, byte_len,
+								port_name, (int)len_w);
+		}
+		free(port_name_a);
+	}
+	RegCloseKey(hKey);
+	if (r != ERROR_SUCCESS) {
+		free(port_name);
+		*str = NULL;
+		return FALSE;
+	}
+	*str = port_name;
+	return TRUE;
+}
+
+/**
+ *	\x83v\x83\x8D\x83p\x83e\x83B\x8E擾
+ *
+ * \x83\x8C\x83W\x83X\x83g\x83\x8A\x82̏ꏊ(Windows10)
+ * HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{GUID}\0000
+ *
+ */
+static void GetComPropartys(HDEVINFO hDevInfo, SP_DEVINFO_DATA *DeviceInfoData, const char *lang,
+							wchar_t **friendly_name, wchar_t **str)
+{
+	const char *FriendlyNameString = "FRIENDLY_NAME";
+	const char *DriverDateString = "DRIVER_DATE";
+	typedef struct {
+		const wchar_t *name;  // \x96{\x8A֐\x94\x93\xE0\x82Ŏg\x82\xA4
+		const char *key;      // \x96{\x8A֐\x94\x93\xE0\x82Ŏg\x82\xA4
+		const DEVPROPKEY *PropertyKey; // \x83\x8C\x83W\x83X\x83g\x83\x8A\x8E擾\x82Ɏg\x82\xA4\x82̂͂\xB1\x82\xEA\x82̂\xDD
+		DWORD Property;       // \x96\xA2\x8Eg\x97p
+	} list_t;
+	static const list_t list[] = {
+		{ L"Device Friendly Name",
+		  FriendlyNameString,
+		  &DEVPKEY_Device_FriendlyName,
+		  SPDRP_FRIENDLYNAME },
+		{ L"Device Instance ID",
+		  "DEVICE_INSTANCE_ID",
+		  &DEVPKEY_Device_InstanceId,
+		  SPDRP_MAXIMUM_PROPERTY },
+		{ L"Device Manufacturer",
+		  "DEVICE_MANUFACTURER",
+		  &DEVPKEY_Device_Manufacturer,
+		  SPDRP_MFG },
+		{ L"Provider Name",
+		  "PROVIDER_NAME",
+		  &DEVPKEY_Device_DriverProvider,
+		  SPDRP_MAXIMUM_PROPERTY },
+		{ L"Driver Date",
+		  DriverDateString,
+		  &DEVPKEY_Device_DriverDate,
+		  SPDRP_MAXIMUM_PROPERTY },
+		{ L"Driver Version",
+		  "DRIVER_VERSION",
+		  &DEVPKEY_Device_DriverVersion,
+		  SPDRP_MAXIMUM_PROPERTY },
+	};
+	TSetupDiGetDevicePropertyW pSetupDiGetDevicePropertyW =
+		(TSetupDiGetDevicePropertyW)GetProcAddress(
+			GetModuleHandleA("Setupapi.dll"),
+			"SetupDiGetDevicePropertyW");
+	TSetupDiGetDeviceRegistryPropertyW pSetupDiGetDeviceRegistryPropertyW =
+		(TSetupDiGetDeviceRegistryPropertyW)GetProcAddress(
+			GetModuleHandleA("Setupapi.dll"),
+			"SetupDiGetDeviceRegistryPropertyW");
+
+	wchar_t *s = _wcsdup(L"");
+	size_t len = 0;
+	for (size_t i = 0; i < _countof(list); i++) {
+		const list_t *p = &list[i];
+		BOOL r;
+		wchar_t *str_prop = NULL;
+		DWORD size;
+
+		if (pSetupDiGetDevicePropertyW != NULL) {
+			DEVPROPTYPE ulPropertyType;
+			pSetupDiGetDevicePropertyW(hDevInfo, DeviceInfoData, p->PropertyKey,
+									   &ulPropertyType, NULL, 0, &size, 0);
+			str_prop = (wchar_t *)malloc(size);
+			r = pSetupDiGetDevicePropertyW(hDevInfo, DeviceInfoData, p->PropertyKey,
+										   &ulPropertyType, (PBYTE)str_prop, size, &size, 0);
+		} else if (p->PropertyKey == &DEVPKEY_Device_InstanceId) {
+			// InstanceId\x82\xCDA\x8Cn\x82Ō\x88\x82ߑł\xBF
+			DWORD len_a;
+			SetupDiGetDeviceInstanceIdA(hDevInfo,
+										DeviceInfoData,
+										NULL, 0,
+										&len_a);
+			char *str_instance_a = (char *)malloc(len_a);
+			r = SetupDiGetDeviceInstanceIdA(hDevInfo,
+											DeviceInfoData,
+											str_instance_a, len_a,
+											&len_a);
+			if (r != FALSE) {
+				int len_w = MultiByteToWideChar(CP_ACP, MB_ERR_INVALID_CHARS,
+												str_instance_a, len_a,
+												NULL, 0);
+				str_prop = (wchar_t *)malloc(sizeof(wchar_t) * len_w);
+				MultiByteToWideChar(CP_ACP, MB_ERR_INVALID_CHARS,
+									str_instance_a, len_a,
+									str_prop, (int)len_w);
+			}
+			free(str_instance_a);
+		} else if (p->Property == SPDRP_MAXIMUM_PROPERTY) {
+			r = FALSE;
+		} else if (pSetupDiGetDeviceRegistryPropertyW != NULL && !IsWindows9X()) {
+			// 9x\x8Cn\x82ł͂\xA4\x82܂\xAD\x93\xAE\x8D삵\x82Ȃ\xA2
+			DWORD dwPropType;
+			r = pSetupDiGetDeviceRegistryPropertyW(hDevInfo,
+												   DeviceInfoData,
+												   p->Property,
+												   &dwPropType,
+												   NULL, 0,
+												   &size);
+			str_prop = (wchar_t *)malloc(size);
+			r = pSetupDiGetDeviceRegistryPropertyW(hDevInfo,
+												   DeviceInfoData,
+												   p->Property,
+												   &dwPropType,
+												   (LPBYTE)str_prop, size,
+												   &size);
+		} else {
+			DWORD dwPropType;
+			DWORD len_a;
+			r = SetupDiGetDeviceRegistryPropertyA(hDevInfo,
+												  DeviceInfoData,
+												  p->Property,
+												  &dwPropType,
+												  NULL, 0,
+												  &len_a);
+			char *str_prop_a = (char *)malloc(len_a);
+			r = SetupDiGetDeviceRegistryPropertyA(hDevInfo,
+												  DeviceInfoData,
+												  p->Property,
+												  &dwPropType,
+												  (PBYTE)str_prop_a, len_a,
+												  &len_a);
+			if (r != FALSE) {
+				int len_w = MultiByteToWideChar(CP_ACP, MB_ERR_INVALID_CHARS,
+												str_prop_a, len_a,
+												NULL, 0);
+				str_prop = (wchar_t *)malloc(sizeof(wchar_t) * len_w);
+				MultiByteToWideChar(CP_ACP, MB_ERR_INVALID_CHARS,
+									str_prop_a, len_a,
+									str_prop, (int)len_w);
+			}
+			free(str_prop_a);
+		}
+		if (r != FALSE) {
+			/* Driver Date\x82\xCD DEVPROP_TYPE_FILETIME \x82ł\xA0\x82邽\x82߁A
+			 * FILETIME \x8D\\x91\xA2\x91̂\xCC8\x83o\x83C\x83g\x82ŕԂ邽\x82߁ASYSTEMTIME \x82ɕϊ\xB7\x82\xB7\x82\xE9\x81B
+			 */
+			if (strcmp(list[i].key, DriverDateString) == 0) {
+				FILETIME ftFileTime;
+				SYSTEMTIME stFileTime;
+				int wbuflen = 64;
+				int buflen = sizeof(wchar_t) * wbuflen;
+
+				ZeroMemory(&ftFileTime, sizeof(FILETIME));
+				if (sizeof(ftFileTime) >= size) {
+					// str_prop\x82\xCDsize\x83o\x83C\x83g
+					memcpy(&ftFileTime, str_prop, size);  
+				}
+				ZeroMemory(&stFileTime, sizeof(SYSTEMTIME));
+				FileTimeToSystemTime(&ftFileTime , &stFileTime);
+				str_prop = (wchar_t *)realloc(str_prop, buflen);
+				_snwprintf_s(str_prop, wbuflen, _TRUNCATE, L"%d-%d-%d",
+					stFileTime.wMonth, stFileTime.wDay, stFileTime.wYear				
+					);
+			}
+
+			size_t name_len = wcslen(p->name);
+			size_t prop_len = wcslen(str_prop);
+			len = len + (name_len + (i==0?1:2) + 2 + 2 + prop_len);
+			s = (wchar_t *)realloc(s, sizeof(wchar_t) * len);
+			if (i != 0) 
+				wcscat_s(s, len, L"\r\n");
+			wcscat_s(s, len, p->name);
+			wcscat_s(s, len, L": ");
+			wcscat_s(s, len, str_prop);
+		}
+
+		if (strcmp(list[i].key, FriendlyNameString) == 0) {
+			// str_prop\x82̃\x81\x83\x82\x83\x8A\x82\xCD ComPortInfoFree() \x82ʼn\xF0\x95\xFA\x82\xB3\x82\xEA\x82\xE9\x81B
+			*friendly_name = str_prop;
+
+		} else {
+			// s \x82ɃR\x83s\x81[\x82\xB5\x82\xBD\x82̂\xC5str_prop\x82̃\x81\x83\x82\x83\x8A\x82͕s\x97v\x82ƂȂ\xE9\x81B
+			if (str_prop != NULL) {
+				free(str_prop);
+			}
+		}
+	}
+
+	*str = s;
+}
+
+/* \x94z\x97\xF1\x83\\x81[\x83g\x97p */
+static int sort_sub(const void *a_, const void *b_)
+{
+	const ComPortInfo_t *a = (ComPortInfo_t *)a_;
+	const ComPortInfo_t *b = (ComPortInfo_t *)b_;
+	if (wcsncmp(a->port_name, L"COM", 3) == 0 &&
+		wcsncmp(b->port_name, L"COM", 3) == 0) {
+		int a_no = _wtoi(&a->port_name[3]);
+		int b_no = _wtoi(&b->port_name[3]);
+		return a_no > b_no;
+	}
+	return wcscmp(a->port_name, b->port_name);
+}
+
+/**
+ *	com\x83|\x81[\x83g\x82̏\xEE\x95\xF1\x82\xF0\x8E擾\x82\xB7\x82\xE9
+ *
+ *	@param[out]	count	 	\x8F\xEE\x95\xF1\x90\x94(0\x82̂Ƃ\xABcom\x83|\x81[\x83g\x82Ȃ\xB5)
+ *	@return		\x8F\xEE\x95\xF1\x82ւ̃|\x83C\x83\x93\x83^(\x94z\x97\xF1)\x81A\x83|\x81[\x83g\x94ԍ\x86\x82̏\xAC\x82\xB3\x82\xA2\x8F\x87
+ *				NULL\x82̂Ƃ\xABcom\x83|\x81[\x83g\x82Ȃ\xB5
+ *				\x8Eg\x97p\x8C\xE3ComPortInfoFree()\x82\xF0\x8CĂԂ\xB1\x82\xC6
+ */
+ComPortInfo_t * WINAPI ComPortInfoGet(int *count, const char *lang)
+{
+	int comport_count = 0;
+	ComPortInfo_t *comport_infos = NULL;
+	const GUID *pClassGuid = &GUID_DEVCLASS_PORTS;
+
+	// List all connected serial devices
+	HDEVINFO hDevInfo = SetupDiGetClassDevsA(pClassGuid, NULL, NULL, DIGCF_PRESENT | DIGCF_PROFILE);
+	if (hDevInfo == INVALID_HANDLE_VALUE) {
+		*count = 0;
+		return NULL;
+	}
+
+	// Find the ones that are driverless
+	for (int i = 0; ; i++) {
+		SP_DEVINFO_DATA DeviceInfoData;
+		DeviceInfoData.cbSize = sizeof (DeviceInfoData);
+		if (!SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData))
+			break;
+
+		// \x83|\x81[\x83g\x96\xBC\x8E擾 ("COM1"\x82Ȃ\xC7)
+		wchar_t *port_name;
+		if (!GetComPortName(hDevInfo, &DeviceInfoData, &port_name)) {
+			continue;
+		}
+		int port_no = 0;
+		if (wcsncmp(port_name, L"COM", 3) == 0) {
+			port_no = _wtoi(port_name+3);
+		}
+
+		// \x8F\xEE\x95\xF1\x8E擾
+		wchar_t *str_friendly_name = NULL;
+		wchar_t *str_prop = NULL;
+		GetComPropartys(hDevInfo, &DeviceInfoData, lang, &str_friendly_name, &str_prop);
+
+		comport_count++;
+		comport_infos = (ComPortInfo_t *)realloc(comport_infos,
+								sizeof(ComPortInfo_t) * comport_count);
+		ComPortInfo_t *p = &comport_infos[comport_count-1];
+		p->port_name = port_name;  // COM\x83|\x81[\x83g\x96\xBC
+		p->port_no = port_no;  // COM\x83|\x81[\x83g\x94ԍ\x86
+		p->friendly_name = str_friendly_name;  // Device Description
+		p->property = str_prop;  // \x91S\x8Fڍ׏\xEE\x95\xF1
+
+#if 0
+		{
+		char *a, *b, *c;
+		a = ToCharW(p->port_name);
+		b = ToCharW(p->friendly_name);
+		c = ToCharW(p->property);
+		OutputDebugPrintf("%s: [%s] [%d] [%s] [%s]\n", __FUNCTION__,
+			a, p->port_no, b, c
+			);
+		free(a);
+		free(b);
+		free(c);
+		}
+#endif
+	}
+
+	/* \x83|\x81[\x83g\x96\xBC\x8F\x87\x82ɕ\xC0\x82ׂ\xE9 */
+	qsort(comport_infos, comport_count, sizeof(comport_infos[0]), sort_sub);
+
+	*count = comport_count;
+	return comport_infos;
+}
+
+void WINAPI ComPortInfoFree(ComPortInfo_t *info, int count)
+{
+	for (int i=0; i< count; i++) {
+		ComPortInfo_t *p = &info[i];
+		free(p->port_name);
+		free(p->friendly_name);
+		free(p->property);
+	}
+	free(info);
+}

Copied: trunk/teraterm/ttpcmn/comportinfo.h (from rev 8209, branches/serial_port_improved/teraterm/ttpcmn/comportinfo.h)
===================================================================
--- trunk/teraterm/ttpcmn/comportinfo.h	                        (rev 0)
+++ trunk/teraterm/ttpcmn/comportinfo.h	2019-09-22 05:00:12 UTC (rev 8216)
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2019 TeraTerm Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <windows.h>	// for WORD
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(DllExport)
+#define DllExport __declspec(dllimport)
+#endif
+
+typedef struct {
+	wchar_t *port_name;			// \x83|\x81[\x83g\x96\xBC
+	int port_no;				// 0..128(9x)/255(xp)
+	wchar_t *friendly_name;
+	wchar_t *property;
+} ComPortInfo_t;
+
+DllExport ComPortInfo_t * WINAPI ComPortInfoGet(int *count, const char *lang);
+DllExport void WINAPI ComPortInfoFree(ComPortInfo_t *info, int count);
+
+#ifdef __cplusplus
+}
+#endif

Copied: trunk/teraterm/ttpcmn/devpkey_teraterm.h (from rev 8209, branches/serial_port_improved/teraterm/ttpcmn/devpkey_teraterm.h)
===================================================================
--- trunk/teraterm/ttpcmn/devpkey_teraterm.h	                        (rev 0)
+++ trunk/teraterm/ttpcmn/devpkey_teraterm.h	2019-09-22 05:00:12 UTC (rev 8216)
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2019 TeraTerm Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+/*
+ * Visual Studio 2005\x82Ńr\x83\x8B\x83h\x82\xF0\x92ʂ\xB7\x82\xBD\x82߂ɂ͉\xBA\x8BL\x82̒\xE8\x8B`\x82\xAA\x95K\x97v\x81B
+ * Visual Studio 2019\x82ł͕s\x97v\x81B
+ */
+#if _MSC_VER == 1400
+typedef ULONG DEVPROPTYPE, *PDEVPROPTYPE;
+
+typedef GUID  DEVPROPGUID, *PDEVPROPGUID;
+typedef ULONG DEVPROPID,   *PDEVPROPID;
+
+typedef struct _DEVPROPKEY {
+    DEVPROPGUID fmtid;
+    DEVPROPID   pid;
+} DEVPROPKEY, *PDEVPROPKEY;
+#endif
+
+#undef DEFINE_DEVPROPKEY
+#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const DEVPROPKEY DECLSPEC_SELECTANY name = { { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }, pid }
+
+/*
+ * Platform SDK\x82\xCCdevpkey.h\x82\xE6\x82\xE8
+ */
+
+DEFINE_DEVPROPKEY(DEVPKEY_Device_FriendlyName,           0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14);    // DEVPROP_TYPE_STRING
+DEFINE_DEVPROPKEY(DEVPKEY_Device_InstanceId,             0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 256);   // DEVPROP_TYPE_STRING
+DEFINE_DEVPROPKEY(DEVPKEY_Device_Manufacturer,           0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 13);    // DEVPROP_TYPE_STRING
+DEFINE_DEVPROPKEY(DEVPKEY_Device_DriverProvider,           0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 9);     // DEVPROP_TYPE_STRING
+DEFINE_DEVPROPKEY(DEVPKEY_Device_DriverDate,               0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 2);     // DEVPROP_TYPE_FILETIME
+DEFINE_DEVPROPKEY(DEVPKEY_Device_DriverVersion,            0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 3);     // DEVPROP_TYPE_STRING
+

Modified: trunk/teraterm/ttpcmn/ttpcmn.v10.vcxproj
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.v10.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpcmn/ttpcmn.v10.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -124,6 +124,7 @@
   <ItemGroup>
     <ClCompile Include="..\common\codeconv.cpp" />
     <ClCompile Include="..\common\i18n.c" />
+    <ClCompile Include="comportinfo.cpp" />
     <ClCompile Include="language.c" />
     <ClCompile Include="..\common\servicenames.c" />
     <ClCompile Include="ttcmn.c" />
@@ -131,6 +132,8 @@
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\common\i18n.h" />
+    <ClInclude Include="comportinfo.h" />
+    <ClInclude Include="devpkey_teraterm.h" />    
     <ClInclude Include="language.h" />
     <ClInclude Include="..\common\servicenames.h" />
     <ClInclude Include="..\common\ttlib.h" />

Modified: trunk/teraterm/ttpcmn/ttpcmn.v11.vcxproj
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.v11.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpcmn/ttpcmn.v11.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -130,6 +130,7 @@
   <ItemGroup>
     <ClCompile Include="..\common\codeconv.cpp" />
     <ClCompile Include="..\common\i18n.c" />
+    <ClCompile Include="comportinfo.cpp" />
     <ClCompile Include="language.c" />
     <ClCompile Include="..\common\servicenames.c" />
     <ClCompile Include="ttcmn.c" />
@@ -137,6 +138,8 @@
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\common\i18n.h" />
+    <ClInclude Include="comportinfo.h" />
+    <ClInclude Include="devpkey_teraterm.h" />    
     <ClInclude Include="language.h" />
     <ClInclude Include="..\common\servicenames.h" />
     <ClInclude Include="..\common\ttlib.h" />

Modified: trunk/teraterm/ttpcmn/ttpcmn.v12.vcxproj
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.v12.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpcmn/ttpcmn.v12.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -130,6 +130,7 @@
   <ItemGroup>
     <ClCompile Include="..\common\codeconv.cpp" />
     <ClCompile Include="..\common\i18n.c" />
+    <ClCompile Include="comportinfo.cpp" />
     <ClCompile Include="..\common\ttlib.c" />
     <ClCompile Include="language.c" />
     <ClCompile Include="..\common\servicenames.c" />
@@ -137,6 +138,8 @@
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\common\i18n.h" />
+    <ClInclude Include="comportinfo.h" />
+    <ClInclude Include="devpkey_teraterm.h" />    
     <ClInclude Include="..\common\ttlib.h" />
     <ClInclude Include="language.h" />
     <ClInclude Include="..\common\servicenames.h" />

Modified: trunk/teraterm/ttpcmn/ttpcmn.v14.vcxproj
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.v14.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpcmn/ttpcmn.v14.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -130,6 +130,7 @@
   <ItemGroup>
     <ClCompile Include="..\common\codeconv.cpp" />
     <ClCompile Include="..\common\i18n.c" />
+    <ClCompile Include="comportinfo.cpp" />
     <ClCompile Include="..\common\ttlib.c" />
     <ClCompile Include="language.c" />
     <ClCompile Include="..\common\servicenames.c" />
@@ -137,6 +138,8 @@
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\common\i18n.h" />
+    <ClInclude Include="comportinfo.h" />
+    <ClInclude Include="devpkey_teraterm.h" />    
     <ClInclude Include="..\common\ttlib.h" />
     <ClInclude Include="language.h" />
     <ClInclude Include="..\common\servicenames.h" />

Modified: trunk/teraterm/ttpcmn/ttpcmn.v15.vcxproj
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.v15.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpcmn/ttpcmn.v15.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -134,6 +134,7 @@
     <ClCompile Include="..\common\codeconv.cpp" />
     <ClCompile Include="..\common\i18n.c" />
     <ClCompile Include="..\common\ttlib.c" />
+    <ClCompile Include="comportinfo.cpp" />
     <ClCompile Include="language.c" />
     <ClCompile Include="..\common\servicenames.c" />
     <ClCompile Include="ttcmn.c" />
@@ -141,6 +142,8 @@
   <ItemGroup>
     <ClInclude Include="..\common\i18n.h" />
     <ClInclude Include="..\common\ttlib.h" />
+    <ClInclude Include="comportinfo.h" />
+    <ClInclude Include="devpkey_teraterm.h" />
     <ClInclude Include="language.h" />
     <ClInclude Include="..\common\servicenames.h" />
   </ItemGroup>
@@ -153,4 +156,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
+</Project>
\ No newline at end of file

Modified: trunk/teraterm/ttpcmn/ttpcmn.v15.vcxproj.filters
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.v15.vcxproj.filters	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpcmn/ttpcmn.v15.vcxproj.filters	2019-09-22 05:00:12 UTC (rev 8216)
@@ -37,6 +37,9 @@
     <ClCompile Include="..\common\codeconv.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="comportinfo.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\common\i18n.h">
@@ -51,6 +54,12 @@
     <ClInclude Include="..\common\ttlib.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="devpkey_teraterm.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="comportinfo.h">
+      <Filter>Source Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="ttpcmn.def">
@@ -62,4 +71,4 @@
       <Filter>Resource Files</Filter>
     </ResourceCompile>
   </ItemGroup>
-</Project>
+</Project>
\ No newline at end of file

Modified: trunk/teraterm/ttpcmn/ttpcmn.v16.vcxproj
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.v16.vcxproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpcmn/ttpcmn.v16.vcxproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -134,6 +134,7 @@
     <ClCompile Include="..\common\codeconv.cpp" />
     <ClCompile Include="..\common\i18n.c" />
     <ClCompile Include="..\common\ttlib.c" />
+    <ClCompile Include="comportinfo.cpp" />
     <ClCompile Include="language.c" />
     <ClCompile Include="..\common\servicenames.c" />
     <ClCompile Include="ttcmn.c" />
@@ -141,6 +142,8 @@
   <ItemGroup>
     <ClInclude Include="..\common\i18n.h" />
     <ClInclude Include="..\common\ttlib.h" />
+    <ClInclude Include="comportinfo.h" />
+    <ClInclude Include="devpkey_teraterm.h" />
     <ClInclude Include="language.h" />
     <ClInclude Include="..\common\servicenames.h" />
   </ItemGroup>
@@ -153,4 +156,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
+</Project>
\ No newline at end of file

Modified: trunk/teraterm/ttpcmn/ttpcmn.v16.vcxproj.filters
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.v16.vcxproj.filters	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpcmn/ttpcmn.v16.vcxproj.filters	2019-09-22 05:00:12 UTC (rev 8216)
@@ -37,6 +37,9 @@
     <ClCompile Include="..\common\codeconv.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="comportinfo.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\common\i18n.h">
@@ -51,6 +54,12 @@
     <ClInclude Include="..\common\ttlib.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="devpkey_teraterm.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="comportinfo.h">
+      <Filter>Source Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="ttpcmn.def">
@@ -62,4 +71,4 @@
       <Filter>Resource Files</Filter>
     </ResourceCompile>
   </ItemGroup>
-</Project>
+</Project>
\ No newline at end of file

Modified: trunk/teraterm/ttpcmn/ttpcmn.v9.vcproj
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.v9.vcproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpcmn/ttpcmn.v9.vcproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -210,6 +210,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\comportinfo.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\common\i18n.c"
 				>
 			</File>
@@ -235,6 +239,14 @@
 			Filter="h;hpp;hxx;hm;inl;fi;fd"
 			>
 			<File
+				RelativePath=".\comportinfo.h"
+				>
+			</File>
+			<File
+				RelativePath=".\devpkey_teraterm.h"
+				>
+			</File>
+			<File
 				RelativePath="..\common\i18n.h"
 				>
 			</File>

Modified: trunk/teraterm/ttpcmn/ttpcmn.vcproj
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.vcproj	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpcmn/ttpcmn.vcproj	2019-09-22 05:00:12 UTC (rev 8216)
@@ -211,6 +211,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\comportinfo.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\common\i18n.c"
 				>
 			</File>
@@ -236,6 +240,14 @@
 			Filter="h;hpp;hxx;hm;inl;fi;fd"
 			>
 			<File
+				RelativePath=".\comportinfo.h"
+				>
+			</File>
+			<File
+				RelativePath=".\devpkey_teraterm.h"
+				>
+			</File>
+			<File
 				RelativePath="..\common\i18n.h"
 				>
 			</File>

Modified: trunk/teraterm/ttpdlg/ttdlg.c
===================================================================
--- trunk/teraterm/ttpdlg/ttdlg.c	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpdlg/ttdlg.c	2019-09-22 05:00:12 UTC (rev 8216)
@@ -48,6 +48,8 @@
 #include "svnversion.h"
 #include "ttdlg.h"
 #include "tipwin.h"
+#include "comportinfo.h"
+#include "codeconv.h"
 
 // Oniguruma: Regular expression library
 #define ONIG_EXTERN extern
@@ -123,6 +125,11 @@
 	 "14400","19200","38400","57600","115200",
 	 "230400", "460800", "921600", NULL};
 
+/*
+ * COM\x83|\x81[\x83g\x82Ɋւ\xB7\x82\xE9\x8Fڍ׏\xEE\x95\xF1
+ */
+static ComPortInfo_t *ComPortInfoPtr;
+static int ComPortInfoCount;
 
 static INT_PTR CALLBACK TermDlg(HWND Dialog, UINT Message, WPARAM wParam, LPARAM lParam)
 {
@@ -1168,15 +1175,21 @@
  */
 static void serial_dlg_set_comport_info(HWND dlg, int portno, char *desc)
 {
-	char buf[1024];
+	int i;
+	ComPortInfo_t *p;
+	char *strA;
 
-	// WindowsNT4.0\x88ȑO\x82͏ڍ׏\xEE\x95񂪎擾\x82ł\xAB\x82Ȃ\xA2\x81B
-	if (desc == NULL)
+	for (i = 0 ; i < ComPortInfoCount ; i++) {
+		p = &ComPortInfoPtr[i];
+		if (p->port_no == portno)
+			break;
+	}
+	if (i >= ComPortInfoCount)  // \x8AY\x93\x96\x82\xB7\x82\xE9COM\x83|\x81[\x83g\x82\xAA\x8C\xA9\x82‚\xA9\x82\xE7\x82Ȃ\xA9\x82\xC1\x82\xBD
 		return;
 
-	_snprintf_s(buf, sizeof(buf), _TRUNCATE, "%s\r\n", desc);
-
-	SendDlgItemMessage(dlg, IDC_SERIALTEXT, WM_SETTEXT, 0, (LPARAM)(char *)buf);
+	strA = ToCharW(p->property);
+	SetDlgItemTextA(dlg, IDC_SERIALTEXT, strA);
+	free(strA);
 }
 
 /*
@@ -1312,6 +1325,11 @@
 			EnableDlgItem(Dialog, IDC_SERIALPORT_LABEL, IDC_SERIALPORT_LABEL);
 			EnableDlgItem(Dialog, IDOK, IDOK);
 
+			// COM\x83|\x81[\x83g\x82̏ڍ׏\xEE\x95\xF1\x82\xF0\x8E擾\x82\xB7\x82\xE9\x81B
+			// COM\x82̐ڑ\xB1\x8F󋵂͓s\x93x\x95ς\xED\x82邽\x82߁A\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95\\x8E\xA6\x82\xB7\x82\xE9\x93x\x82Ɏ擾\x82\xB7\x82\xE9\x81B
+			// \x95s\x97v\x82ɂȂ\xC1\x82\xBD\x82\xE7\x81AComPortInfoFree()\x82Ń\x81\x83\x82\x83\x8A\x82\xF0\x89\xF0\x95\xFA\x82\xB7\x82邱\x82ƁB
+			ComPortInfoPtr = ComPortInfoGet(&ComPortInfoCount, UILanguageFile);
+
 			w = 0;
 
 			if ((comports = DetectComPorts(ComPortTable, ts->MaxComPort, ComPortDesc)) > 0) {
@@ -1416,6 +1434,13 @@
 
 			return TRUE;
 
+		case WM_DESTROY:
+			// COM\x83|\x81[\x83g\x82̏ڍ׏\xEE\x95\xF1\x82\xF0\x89\xF0\x95\xFA\x82\xB7\x82\xE9\x81B
+			ComPortInfoFree(ComPortInfoPtr, ComPortInfoCount);
+			ComPortInfoPtr = NULL;
+			ComPortInfoCount = 0;
+			break;
+
 		case WM_COMMAND:
 			switch (LOWORD(wParam)) {
 				case IDOK:

Modified: trunk/teraterm/ttpdlg/ttpdlg.rc
===================================================================
--- trunk/teraterm/ttpdlg/ttpdlg.rc	2019-09-22 04:55:45 UTC (rev 8215)
+++ trunk/teraterm/ttpdlg/ttpdlg.rc	2019-09-22 05:00:12 UTC (rev 8216)
@@ -125,7 +125,7 @@
     EDITTEXT        IDC_LOCALE_EDIT,59,140,63,13,ES_AUTOHSCROLL
 END
 
-IDD_SERIALDLG DIALOGEX 20, 20, 190, 205
+IDD_SERIALDLG DIALOGEX 20, 20, 190, 214
 STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Tera Term: Serial port setup and connection"
 FONT 14, "System", 0, 0, 0x0
@@ -150,7 +150,7 @@
     DEFPUSHBUTTON   "OK",IDOK,138,9,40,45,BS_LEFT | BS_MULTILINE | WS_GROUP
     PUSHBUTTON      "Cancel",IDCANCEL,138,60,40,16,BS_LEFT
     PUSHBUTTON      "&Help",IDC_SERIALHELP,138,84,40,16,BS_LEFT
-    EDITTEXT        IDC_SERIALTEXT,10,141,170,59,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL
+    EDITTEXT        IDC_SERIALTEXT,10,141,170,70,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL
 END
 
 IDD_TCPIPDLG DIALOGEX 20, 20, 222, 157


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