![]() |
General Programming »
Internet / Network »
Internet
Intermediate
License: The Code Project Open License (CPOL)
Using the Internet Connection Sharing (ICS) and Internet Connection Firewall (ICF) COM InterfacesBy Tony SelkeThe NetworkConnectionCollection is a strongly-typed interface that is meant to simplify access to the Internet Connection Sharing and Internet Connection Firewall interfaces for each of the network connections registered on the machine. |
VB.NET 1.1, WinXP, COM, WinForms, VS.NET2003, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||

With the release of Windows XP's Service Pack 2, Microsoft's Internet Connection Sharing (ICS) and Internet Connection Firewall (ICF) features quickly obtained a large degree of notoriety. Many developers have been actively looking for ways to easily "peek and poke" at the ICS & ICF configurations on a given machine.
The good news is that Microsoft released the interfaces with a COM wrapper. The bad news is that it isn't well advertised and it's not very intuitive to use. Getting a full set of details on a particular connection's configuration can require several method calls.
This project contains a strongly-typed collection named NetworkConnectionCollection. When you create an instance of this collection, it automatically uses the ICS/ICF COM interfaces to iterate all of the Network Connections on the local machine and create NetworkConnection objects (as members of the NetworkConnectionCollection).
The NetworkConnection class impliments three ICS/ICF interfaces: INetConnection, INetConnectionProps and INetSharingConfiguration. When you use the ICS/ICF COM interfaces directly, you need to reference each of these independantly. By using the NetworkConnection class, you can access all of the members in one place.
I haven't spent much time on this, since it does what I need at this point. One obvious improvement would be to overload a few of the members to expose/use native types (e.g. the INetConnectionProps.GUID property returns a String, but a System.Guid would be preferable). Another improvement would be to wrap the PortMappings.
Microsoft has exposed the API for the ICS & ICF in a couple of places, but this code uses the COM interface HNetCfg.HNetShare. You can add a reference to this interface to your own projects by using the Reference Browser to select HNETCFG.DLL (typically located in the "C:\Windows\System32\" directory).
| You must Sign In to use this message board. | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 6 Nov 2004 Editor: Nishant Sivakumar |
Copyright 2004 by Tony Selke Everything else Copyright © CodeProject, 1999-2009 Web21 | Advertise on the Code Project |