Visual C++ 7.1COMWindows VistaVisual Studio .NET 2003Visual Studio 2005Windows 2000Windows XPMFC中级开发Visual StudioWindowsC++
使用 INetCfg COM 接口探索网络配置
获取电脑上已安装的网络驱动程序信息。
引言
要获取已安装网络设备的信息,可以使用 COM 接口 INetCfg
和其他一些接口。
背景
我遇到的问题是证明某个特定的驱动程序是否已安装在电脑上。为此,我查看了微软的 snetcfg.exe 示例,但它对我不起作用。所以我研究了代码,发现它使用了 INetCfg
COM 接口。但我没有找到任何良好的文档化的代码,所以我自己创建了一个类。
Using the Code
要使用此代码,必须安装 Microsoft 的 SDK 和 DDK(或 WDK),以便安装所有文件并设置正确的路径,以便可以找到所有文件。我在最重要的部分做了注释。
//DDK/WDK
#include <Netcfgx.h>
#include <comdef.h>
//Platform SDK
#include <devguid.h>
在使用它之前,您需要创建内部 COM 对象。如果不起作用,COM 错误可能会帮助您。
//Creating the COM-instance
m_NetCfg.Init( L"Codeproject Sample", false );
我的最终用途
是检查是否可以通过 COM 接口访问驱动程序。
HRESULT hr = m_NetCfg.FindComponentDisplayName( bs, csDisplay );
if( IS_OK( hr ) )
{
cs.Format( "Driver found. Displayname is %s", csDisplay );
}
else
{
cs.Format( "Error in NetCfg. COM-Message: %s", m_NetCfg.GetLastErrorMessage() );
}
在错误部分,您可以看到我使用的错误文本函数,用于增强可用性。
关注点
看到 COM 为我工作真是太有趣了,因为我在编写代码时。由于我在 CP 上没有找到太多关于 INetCfg
的信息,所以我决定发布这篇文章。我希望它有所帮助,因为我经常在这里找到帮助。
历史
- 1.0:2007 年 8 月 23 日:初始发布。