home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / Complete_W1770747172004.psc / WISPA / dllsrc / CInterface.cls < prev    next >
Text File  |  2004-04-16  |  6KB  |  124 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "CInterface"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = True
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  16. ' *************************************************************************************************
  17. ' Copyright (C) Chris Waddell
  18. '
  19. ' This program is free software; you can redistribute it and/or modify
  20. ' it under the terms of the GNU General Public License as published by
  21. ' the Free Software Foundation; either version 2, or (at your option)
  22. ' any later version.
  23. '
  24. ' This program is distributed in the hope that it will be useful,
  25. ' but WITHOUT ANY WARRANTY; without even the implied warranty of
  26. ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  27. ' GNU General Public License for more details.
  28. '
  29. ' You should have received a copy of the GNU General Public License
  30. ' along with this program; if not, write to the Free Software
  31. ' Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  32. '
  33. ' Please consult the LICENSE.txt file included with this project for
  34. ' more details
  35. '
  36. ' *************************************************************************************************
  37. Option Explicit
  38.  
  39.  
  40. ' The local copy
  41. Private m_Interface As API_INTERFACE_INFO
  42.  
  43.  
  44. ' *************************************************************************************************
  45. ' Description: Get the interface by a pointer to an API_INTERFACE_INFO structure.
  46. '              lpInterfaceInfo MUST be a valid pointer to an API_INTERFACE_INFO structure or else a
  47. '              general protection fault is likely to occur
  48. ' Author:      Chris Waddell
  49. ' Copyright:   Copyright (c) 2004 Chris Waddell
  50. ' Contact:     IRBMe on irc.undernet.org or irc.quakenet.org
  51. ' Modified:    05/04/2004 by Chris Waddell
  52. ' *************************************************************************************************
  53. Public Sub GetInterfaceByStructPtr(ByVal lpInterfaceInfo As Long)
  54.     If lpInterfaceInfo <= 0 Then Exit Sub
  55.     RtlMoveMemory ByVal VarPtr(m_Interface), lpInterfaceInfo, LenB(m_Interface)
  56. End Sub
  57.  
  58.  
  59. ' *************************************************************************************************
  60. ' The address of the interface.
  61. ' *************************************************************************************************
  62. Public Property Get Address() As CSocketAddress
  63.     Set Address = New CSocketAddress
  64.     Address.GetBySockAddr VarPtr(m_Interface.iiAddress.AddressIn)
  65. End Property
  66.  
  67.  
  68. ' *************************************************************************************************
  69. ' The address used to broadcast on the interface. Only valid if broadcasting is supported.
  70. ' *************************************************************************************************
  71. Public Property Get BroadcastAddress() As CSocketAddress
  72.     Set BroadcastAddress = New CSocketAddress
  73.     BroadcastAddress.GetBySockAddr VarPtr(m_Interface.iiBroadcastAddress.AddressIn)
  74. End Property
  75.  
  76.  
  77. ' *************************************************************************************************
  78. ' The subnet mask address of the interface.
  79. ' *************************************************************************************************
  80. Public Property Get SubnetMask() As CSocketAddress
  81.     Set SubnetMask = New CSocketAddress
  82.     SubnetMask.GetBySockAddr VarPtr(m_Interface.iiNetmask.AddressIn)
  83. End Property
  84.  
  85.  
  86. ' *************************************************************************************************
  87. ' Whether or not the interface is up (enabled).
  88. ' *************************************************************************************************
  89. Public Property Get InterfaceUp() As Boolean
  90.     InterfaceUp = m_Interface.iiFlags And IFF_UP
  91. End Property
  92.  
  93.  
  94. ' *************************************************************************************************
  95. ' Whether broadcasting is supported.
  96. ' *************************************************************************************************
  97. Public Property Get BroadcastSupported() As Boolean
  98.     BroadcastSupported = m_Interface.iiFlags And IFF_BROADCAST
  99. End Property
  100.  
  101.  
  102. ' *************************************************************************************************
  103. ' Whether or not multicasting is supported
  104. ' *************************************************************************************************
  105. Public Property Get MulticastSupported() As Boolean
  106.     MulticastSupported = m_Interface.iiFlags And IFF_MULTICAST
  107. End Property
  108.  
  109.  
  110. ' *************************************************************************************************
  111. ' Is this the loopback interface.
  112. ' *************************************************************************************************
  113. Public Property Get IsLoopbackInterface() As Boolean
  114.     IsLoopbackInterface = m_Interface.iiFlags And IFF_LOOPBACK
  115. End Property
  116.  
  117.  
  118. ' *************************************************************************************************
  119. ' Is this a point to point link interface?
  120. ' *************************************************************************************************
  121. Public Property Get IsPointToPointLink() As Boolean
  122.     IsPointToPointLink = m_Interface.iiFlags And IFF_POINTTOPOINT
  123. End Property
  124.