亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? enumser.htm

?? enumser是掃描電腦端口的一個(gè)好工具
?? HTM
字號(hào):
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>EnumSerialPorts v1.16</title>
<link rel="stylesheet" type="text/css" href="./naughter.css">
</head>

<body>

<h2 align="left"><img src="enumser.gif" width="32" height="32">EnumSerialPorts 
v1.16</h2>
<p>Welcome to EnumSerialPorts, A simple set of MFC/ATL functions to enumerate the serial 
ports installed on your machine.</p>
<p>&nbsp;</p>
<table>
	<tr>
		<td><a href="#Features">Features</a></td>
	</tr>
	<tr>
		<td><a href="#Usage">Usage</a></td>
	</tr>
	<tr>
		<td><a href="#Copyright">Copyright</a></td>
	</tr>
	<tr>
		<td><a href="#History">History</a></td>
	</tr>
	<tr>
		<td><a href="#APIReference">API Reference</a></td>
	</tr>
	<tr>
		<td><a href="#Contact">Contacting the Author</a></td>
	</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2><a name="Features"></a>Features</h2>
<ul>
	<li>Simple C++ class interface.</li>
	<li>The code works on both Windows 95/98, NT, 2000, XP, 2003 and Vista.</li>
	<li>The code is fully Unicode compliant and include Unicode built options in 
	the workspace file.</li>
	<li>Can be compiled with or without MFC support. If you do not want MFC 
	support, then the code falls back to using the ATL CSimpleArray classes. 
	Please note that this non MFC mode requires a recentish copy of Visual 
	Studio and will not support Visual C++ 6.0 as the code makes use of the ATL 
	CString class.</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2><a name="Usage"></a>Usage</h2>
<ul>
	<li>To use the functions in your code simply include enumser.cpp in your project 
	and #include enumser.h in which ever of your modules needs to make calls to 
	the function.</li>
  <li>You will need an up to date Platform SDK installed to compile the code if 
	you are using an older compiler such as Visual C++ 6 (February 2003 was the 
	last version which was compatible with VC 6). For further information on 
	this, please see my blog entry from April 14 2007 titled &quot;Common problems 
	compiling my code&quot; at <a href="http://naughter.spaces.live.com/blog/">
	http://naughter.spaces.live.com/blog/.</a> Also note that on this older 
	compiler you will only be able to use the MFC mode of the class.</li>
	<li>Your code will need to include MFC either statically or dynamically.</li>
	<li>To see the class in action, have a look at the main function in the module 
	&quot;main.cpp&quot;.</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2><a name="Copyright"></a>Copyright</h2>
<ul>
	<li>You are allowed to include the source code in any product (commercial, shareware, 
	freeware or otherwise) when your product is released in binary form.</li>
	<li>You are allowed to modify the source code in any way you want except you 
	cannot modify the copyright details at the top of each module.</li>
	<li>If you want to distribute source code with your application, then you are 
	only allowed to distribute versions released by the author. This is to maintain 
	a single distribution point for the source code.</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2><a name="History"></a>History</h2>
<p><strong>v1.0 (3 November 1998)</strong> </p>
<ul>
	<li>Initial public release.</li>
</ul>
<p><strong>v1.01 (23 February 1999)</strong> </p>
<ul>
	<li>Code now uses QueryDosDevice if running on NT to determine which serial 
	ports are available. This avoids having to open the ports at all. It should 
	operate a lot faster in addition.</li>
</ul>
<p><strong>v1.02 (12 December 1999)</strong> </p>
<ul>
	<li>Fixed a problem in the Win9x code path when trying to detect deactivated 
	IRDA-ports. When trying to open those, you will get the error-code ERROR_GEN_FAILURE.
	</li>
</ul>
<p><strong>v1.03 (17 May 2000)</strong> </p>
<ul>
	<li>Code now uses GetDefaultCommConfig in all cases to detect the ports.</li>
</ul>
<p><strong>v1.04 (29 March 2001)</strong> </p>
<ul>
	<li>Reverted code to use CreateFile or QueryDosDevice as it is much faster than 
	using the GetDefaultCommConfig method.</li>
	<li>Updated copyright message.</li>
</ul>
<p><strong>v1.05 (25 June 2001)</strong> </p>
<ul>
	<li>Guess what, You now have the choice of using the GetDefaultCommConfig thro 
	the use of three versions of the function. You take your pick. </li>
	<li>Fixed problem where port fails to be reported thro the CreateFile mechanism 
	when the error code is ERROR_SHARING_VIOLATION i.e. someone has the port already 
	open. </li>
</ul>
<p><strong>v1.06 (11 August 2001)</strong> </p>
<ul>
	<li>Made code path which uses QueryDosDevice more robust by checking to make 
	sure the device name is of the form &quot;COMxyz..&quot; where xyz are numeric. </li>
</ul>
<p><strong>v1.07 (13 August 2001)</strong> </p>
<ul>
	<li>Made the code in IsNumeric more robust when sent an empty string </li>
	<li>Optimized the code in EnumerateSerialPorts2 somewhat. Thanks to Dennis Lim 
	for these suggestions. </li>
</ul>
<p><strong>v1.08 (22 May 2003)</strong> </p>
<ul>
	<li>Updated copyright details. </li>
	<li>Addition of a EnumerateSerialPorts4 which uses Device Manager API </li>
</ul>
<p><strong>v1.09 (20 September 2003)</strong> </p>
<ul>
	<li>Addition of a &quot;EnumerateSerialPorts5&quot; method. This method (hopefully the 
	last method!) uses EnumPorts and was provided by Andi Martin. </li>
</ul>
<p><strong>v1.10 (12 December 2003)</strong> </p>
<ul>
	<li>Updated the sample app to VC 6. </li>
	<li>Addition of a &quot;EnumerateSerialPorts6&quot; (See Note 4 below) which uses WMI.
	</li>
	<li>You can now optionally exclude each function using preprocessor defines 
	of the form &quot;NO_ENUMSERIAL_USING_XYX&quot;. </li>
	<li>Made the functions members of a C++ class and renamed them to using more 
	meaningful names </li>
</ul>
<p><strong>v1.11 (13 May 2004)</strong> </p>
<ul>
	<li>Extended CEnumerateSerial::UsingSetupAPI to now also return the friendly 
	name of the port. Thanks to Jay C. Howard for prompting this update.</li>
</ul>
<p><strong>v1.12 (9 July 2006)</strong> </p>
<ul>
	<li>Updated copyright details.</li>
	<li>Addition of a CENUMERATESERIAL_EXT_CLASS macro to allow the code to be easily 
	added to an extension dll</li>
	<li>Code now uses newer C++ style casts instead of C style casts.</li>
	<li>Updated the code to clean compile on VC 2005.</li>
	<li>Updated the documentation to use the same style as the web site.</li>
</ul>
<p><strong>v1.13 (8 November 2006)</strong> </p>
<ul>
	<li>Extended CEnumerateSerial::UsingWMI to now also return the friendly name 
	of the port. Thanks to Giovanni Bajo for providing this update.</li>
	<li>Fixed a bug where CEnumerateSerial::UsingSetupAPI forget to empty out 
	the Friendly name array on start.</li>
	<li>VariantInit is now called for the 2 VARIANT structs used in the UsingWMI
	method code.</li>
</ul>
<p><strong>v1.14 (29 January 2007)</strong> </p>
<ul>
	<li>Updated copyright details.</li>
	<li>UsingSetupAPI code now uses the GUID_DEVINTERFACE_COMPORT guid to 
	enumerate COM ports. Thanks to David McMinn for reporting this nice 
	addition.</li>
	<li>Detection code which uses CreateFile call, now treats the error code of 
	ERROR_SEM_TIMEOUT as indication that a port is present.</li>
</ul>
<p><strong>v1.15 (9 June 2007)</strong> </p>
<ul>
	<li>Following feedback from John Miles, it looks like my previous change of 
	the 29 January 2007 to use GUID_DEVINTERFACE_COMPORT in the UsingSetupAPI 
	method had the unintended consequence of causing this method not to work on 
	any versions of Windows prior to Windows 2000. What I have now done is 
	reinstate the old mechanism using the name UsingSetupAPI2 so that you can 
	continue to use this approach if you need to support NT 4 and Windows 9x. 
	The new approach of using GUID_DEVINTERFACE_COMPORT has been renamed to 
	UsingSetupAPI1.</li>
</ul>
<p><strong>v1.16 (5 July 2007)</strong> </p>
<ul>
	<li>Updated the code to work if the code does not include MFC. In this case, 
	CUIntArray parameters becomes the ATL class CSimpleArray&lt;UINT&gt; and 
	CStringArray parameters become the ATL class CSimpleArray&lt;CString&gt;. Please 
	note that this support requires a recentish copy of Visual Studio and will 
	not support Visual C++ 6.0 as the code makes use of the ATL CString class. 
	Thanks to Michael Venus for prompting this update.</li>
	<li>CEnumerateSerial::UsingWMI method now uses ATL smart pointers to improve 
	robustness of the code.</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p class="crt"><a name="APIReference"></a><strong>API Reference</strong></p>
<p><strong>CEnumerateSerial::UsingCreateFile</strong></p>
<p><strong>BOOL CEnumerateSerial::UsingCreateFile(CUIntArray&amp;&nbsp; ports);</strong></p>
<p><strong>Parameters</strong></p>
<p><em>ports</em> Upon return this array will contain the port numbers of all the 
serial ports installed on the computer</p>
<p><strong>Remarks</strong></p>
<p>This function uses the CreateFile method of detecting serial ports. This will 
work on all Win32 OS&#39;es, but requires actually opening the port. If you 
compile the code without MFC support, then the CUIntArray parameter becomes the 
ATL class CSimpleArray&lt;UINT&gt;.</p>
<p>&nbsp;</p>
<p><strong>CEnumerateSerial::UsingQueryDosDevice</strong></p>
<p><strong>BOOL CEnumerateSerial::UsingQueryDosDevice(CUIntArray&amp;&nbsp; ports);</strong></p>
<p><strong>Parameters</strong></p>
<p><em>ports</em> Upon return this array will contain the port numbers of all the 
serial ports installed on the computer</p>
<p><strong>Remarks</strong></p>
<p>This function uses the QueryDosDevice method of detect serial ports. Please note 
that this only works correctly on NT, Windows 2000, XP or 2003. If you compile 
the code without MFC support, then the CUIntArray parameter becomes the ATL 
class CSimpleArray&lt;UINT&gt;.</p>
<p>&nbsp;</p>
<p><strong>CEnumerateSerial::UsingGetDefaultCommConfig</strong></p>
<p><strong>BOOL CEnumerateSerial::UsingGetDefaultCommConfig(CUIntArray&amp;&nbsp; ports);</strong></p>
<p><strong>Parameters</strong></p>
<p><em>ports</em> Upon return this array will contain the port numbers of all the 
serial ports installed on the computer</p>
<p><strong>Remarks</strong></p>
<p>This function uses the GetDefaultCommConfig method of detect serial ports. Please 
note that this is the most compatible way of detecting serial ports and will work 
on all Win32 OS&#39;es from Windows 95 onwards but also happens to be the slowest. 
If you compile the code without MFC support, then the CUIntArray parameter 
becomes the ATL class CSimpleArray&lt;UINT&gt;.</p>
<p>&nbsp;</p>
<p><strong>CEnumerateSerial::UsingSetupAPI1</strong></p>
<p><strong>BOOL CEnumerateSerial::UsingSetupAPI1(CUIntArray&amp;&nbsp; ports, CStringArray&amp; 
sFriendlyNames);</strong></p>
<p><strong>Parameters</strong></p>
<p><em>ports</em> Upon return this array will contain the port numbers of all the 
serial ports installed on the computer</p>
<p><i>sFriendlyNames</i> Upon return this array will contain the Friendly names 
as appears in the Device Manager corresponding to the serial ports returned in
<i>&quot;ports&quot;</i>.</p>
<p><strong>Remarks</strong></p>
<p>This function uses the Device Manager &quot;SetupDi..&quot;&nbsp;APIs and the 
value GUID_DEVINTERFACE_COMPORT device interface class to detect serial 
ports. Please note that this will only work 
on Windows 2000 or later. If you compile the code without MFC support, then the 
CUIntArray parameter becomes the ATL class CSimpleArray&lt;UINT&gt; and the 
CStringArray parameter becomes the ATL class CSimpleArray&lt;CString&gt;.</p>
<p>&nbsp;</p>
<p><strong>CEnumerateSerial::UsingSetupAPI2</strong></p>
<p><strong>BOOL CEnumerateSerial::UsingSetupAPI2(CUIntArray&amp;&nbsp; ports, CStringArray&amp; 
sFriendlyNames);</strong></p>
<p><strong>Parameters</strong></p>
<p><em>ports</em> Upon return this array will contain the port numbers of all the 
serial ports installed on the computer</p>
<p><i>sFriendlyNames</i> Upon return this array will contain the Friendly names 
as appears in the Device Manager corresponding to the serial ports returned in
<i>&quot;ports&quot;</i>.</p>
<p><strong>Remarks</strong></p>
<p>This function uses the Device Manager &quot;SetupDi..&quot;&nbsp;APIs and the 
&quot;Ports&quot; device information set to detect serial 
ports. The code of course implements logic to exclude parallel ports from the 
returned array as they are included in the &quot;Ports&quot; device information set in 
addition to serial ports. This approach will work on all Win32 OS&#39;es from 
Windows 95 onwards. If you compile the code without MFC support, then the 
CUIntArray parameter becomes the ATL class CSimpleArray&lt;UINT&gt; and the 
CStringArray parameter becomes the ATL class CSimpleArray&lt;CString&gt;.</p>
<p>&nbsp;</p>
<p><strong>CEnumerateSerial::UsingEnumPorts</strong></p>
<p><strong>BOOL CEnumerateSerial::UsingEnumPorts(CUIntArray&amp;&nbsp; ports);</strong></p>
<p><strong>Parameters</strong></p>
<p><em>ports</em> Upon return this array will contain the port numbers of all the 
serial ports installed on the computer</p>
<p><strong>Remarks</strong></p>
<p>This function uses the Win32 SDK call &quot;EnumPorts&quot;&nbsp; APIs to detect serial 
ports. This will work on all Win32 OS&#39;es from Windows 95 onwards. If you 
compile the code without MFC support, then the CUIntArray parameter becomes the 
ATL class CSimpleArray&lt;UINT&gt;.</p>
<p>&nbsp;</p>
<p><strong>CEnumerateSerial::UsingWMI</strong></p>
<p><strong>BOOL CEnumerateSerial::UsingWMI(CUIntArray&amp;&nbsp; ports, CStringArray&amp; 
sFriendlyNames);</strong></p>
<p><strong>Parameters</strong></p>
<p><em>ports</em> Upon return this array will contain the port numbers of all the 
serial ports installed on the computer</p>
<p><i>sFriendlyNames</i> Upon return this array will contain the Friendly names 
as reported using WMI corresponding to the serial ports returned in
<i>&quot;ports&quot;</i>.</p>
<p><strong>Remarks</strong></p>
<p>This function uses the WMI COM interfaces to detect serial ports. This will only 
work on Windows NT 4 SP4, Windows 2000, XP or 2003 (i.e versions of Windows on which 
WMI is available). If you compile the code without MFC support, then the 
CUIntArray parameter becomes the ATL class CSimpleArray&lt;UINT&gt; and the 
CStringArray parameter becomes the ATL class CSimpleArray&lt;CString&gt;.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2><a name="Contact"></a>Contacting the Author</h2>
<p>PJ Naughter<br>
Email: <a href="mailto:pjna@naughter.com">pjna@naughter.com</a><br>
Web: <a href="http://www.naughter.com">http://www.naughter.com</a><br>
5 July 2007</p>

</body>

</html>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性感一类影片在线播放| 欧美电视剧在线看免费| 麻豆免费精品视频| 亚洲欧洲日韩在线| 久久影院视频免费| 欧美精品粉嫩高潮一区二区| 不卡免费追剧大全电视剧网站| 日韩电影在线一区| 亚洲色图制服诱惑 | 一区二区在线观看免费视频播放| 日韩午夜电影在线观看| 色88888久久久久久影院野外| 国产又黄又大久久| 日本系列欧美系列| 亚洲一区在线观看免费 | 成人综合婷婷国产精品久久蜜臀| 天堂成人国产精品一区| 伊人开心综合网| 国产精品人妖ts系列视频| www国产成人免费观看视频 深夜成人网| 色哟哟精品一区| 不卡高清视频专区| 国产精品一区二区久激情瑜伽| 麻豆91小视频| 日本不卡高清视频| 日韩在线卡一卡二| 舔着乳尖日韩一区| 午夜激情综合网| 亚洲精品国产精华液| 亚洲欧洲美洲综合色网| 中文文精品字幕一区二区| 精品女同一区二区| 精品va天堂亚洲国产| 精品久久久久一区| 欧美成人a在线| 精品国产一二三区| 2020国产精品自拍| 国产亚洲美州欧州综合国| 国产亚洲视频系列| 国产区在线观看成人精品| 国产午夜一区二区三区| 久久久美女毛片| 欧美激情一区三区| 国产精品成人网| 亚洲乱码国产乱码精品精可以看| 亚洲欧美精品午睡沙发| 一区二区三区四区高清精品免费观看 | 美女被吸乳得到大胸91| 久久精品99国产国产精| 国产精品亚洲一区二区三区在线| 国产精品性做久久久久久| 国产不卡视频在线播放| 99久久99久久精品国产片果冻| 91一区一区三区| 欧美日韩一区二区欧美激情| 91麻豆精品91久久久久同性| 日韩欧美一区在线观看| 久久精品亚洲国产奇米99| 国产精品国产a| 亚洲国产综合色| 狂野欧美性猛交blacked| 国内精品免费在线观看| 高清不卡一二三区| 91精品办公室少妇高潮对白| 91精品免费在线| 国产女人aaa级久久久级| 日韩码欧中文字| 亚洲线精品一区二区三区| 日本欧美一区二区| 成人国产精品免费观看动漫| 色女孩综合影院| 日韩欧美区一区二| 1000部国产精品成人观看| 天涯成人国产亚洲精品一区av| 狠狠色丁香久久婷婷综合丁香| www.日韩精品| 3d动漫精品啪啪1区2区免费| 国产日产欧美一区二区三区| 亚洲第一在线综合网站| 国产乱码一区二区三区| 欧美吞精做爰啪啪高潮| 精品国精品国产尤物美女| 中文字幕在线不卡| 蜜臀久久久久久久| 91视视频在线观看入口直接观看www| 欧美二区乱c少妇| 国产精品传媒视频| 久久精品二区亚洲w码| 在线观看亚洲成人| 久久嫩草精品久久久精品一| 一区二区三区在线播| 国产成人免费在线视频| 欧美高清视频一二三区| 亚洲视频在线观看三级| 韩国视频一区二区| 欧美日韩1234| 亚洲天堂成人在线观看| 韩国午夜理伦三级不卡影院| 欧美体内she精高潮| 国产精品久久久99| 韩国av一区二区三区四区| 欧美午夜在线一二页| 国产精品欧美一级免费| 精品一区二区免费视频| 欧美视频一区二区在线观看| 国产精品久久久久一区二区三区 | 国产精品理论片| 久久99深爱久久99精品| 欧美日韩的一区二区| 亚洲日本在线视频观看| 东方欧美亚洲色图在线| 精品久久久久久无| 日韩精品久久理论片| 欧洲一区在线电影| 亚洲婷婷综合色高清在线| 国产精品一区一区三区| 精品少妇一区二区三区免费观看| 天堂一区二区在线| 欧美性xxxxx极品少妇| 综合激情网...| 成人不卡免费av| 国产欧美一区二区三区网站| 久久精品国产久精国产爱| 91精品国产欧美一区二区成人| 亚洲综合小说图片| 欧美在线free| 亚洲高清免费观看| 91国产免费观看| 亚洲夂夂婷婷色拍ww47| 91精彩视频在线观看| 亚洲精品欧美激情| 欧美自拍偷拍午夜视频| 一区二区三区四区视频精品免费| 色吊一区二区三区| 亚洲国产欧美一区二区三区丁香婷 | 成人激情开心网| 中日韩免费视频中文字幕| 丰满岳乱妇一区二区三区| 国产亚洲成年网址在线观看| 国产成+人+日韩+欧美+亚洲| 国产精品色哟哟网站| av中文字幕一区| 亚洲乱码中文字幕综合| 欧美亚洲综合色| 亚洲成人午夜影院| 欧美一区国产二区| 国产在线一区二区综合免费视频| 久久精品视频一区二区| 成人精品视频一区| 亚洲免费观看高清完整版在线观看 | 亚洲色图欧美激情| 欧美视频一区二区| 蜜芽一区二区三区| 国产欧美精品一区| 99精品视频一区| 亚洲一区二区av电影| 欧美一区二区日韩一区二区| 激情五月播播久久久精品| 欧美激情在线一区二区三区| 色老综合老女人久久久| 美女一区二区视频| 国产精品日产欧美久久久久| 欧美午夜在线一二页| 久久se这里有精品| 中文字幕一区二区三| 欧美日韩国产精品成人| 久久精品国内一区二区三区| 国产精品国产馆在线真实露脸| 欧美视频完全免费看| 国内精品久久久久影院薰衣草| 国产精品久久久久久久久久久免费看 | 91亚洲精品一区二区乱码| 亚洲国产精品精华液网站| 亚洲精品一线二线三线| 91网站黄www| 麻豆91在线播放| 亚洲天堂福利av| 日韩精品专区在线影院重磅| 成年人网站91| 日本一不卡视频| 亚洲欧洲国产日韩| 欧美一区二区在线播放| eeuss影院一区二区三区| 天堂久久久久va久久久久| 国产精品久久久久婷婷二区次| 91麻豆精品国产91久久久更新时间 | 岛国精品在线观看| 午夜精品影院在线观看| 国产精品毛片高清在线完整版| 在线观看亚洲精品视频| 国产福利一区在线| 日本成人超碰在线观看| 亚洲欧洲一区二区三区| 2024国产精品| 欧美日韩卡一卡二| 99久久精品情趣| 久久超碰97中文字幕| 亚瑟在线精品视频| √…a在线天堂一区| 久久久久99精品国产片|