Namespace Params Public Class ProfileData Public Guid As Integer Public Regex As String Public Name As String Public Comment As String Public ProfileType As Integer Public Processes As List(Of ProcessData) Public Windows As List(Of WindowData) Public Controls As List(Of ControlData) Public CountDocs As Integer = 0 Public CountData As Integer = 0 Public IsMatched As Boolean = False Public IsCatchAll As Boolean = False Public MatchedProcessID As Integer = 0 Public MatchedWindowID As Integer = 0 Public MatchedControlID As Integer = 0 Public SelectCommand As String Public ErrorMessage As String = "" Public Overrides Function Equals(obj As Object) As Boolean Return Guid = DirectCast(obj, ProfileData).Guid End Function Public Overrides Function GetHashCode() As Integer Return Guid.ToString.GetHashCode() End Function End Class Public Class ProcessData Public Guid As Integer Public PROFILE_ID As Integer Public ProcessName As String Public IsMatched As Boolean = False Public Overrides Function Equals(obj As Object) As Boolean Return Guid = DirectCast(obj, ProcessData).Guid End Function Public Overrides Function GetHashCode() As Integer Return Guid.ToString.GetHashCode() End Function End Class Public Class WindowData Public Guid As Integer Public WindowProcessID As Integer Public Title As String Public Regex As String Public Sequence As Integer Public IsMatched As Boolean = False End Class Public Class ControlData Public Guid As Integer Public WindowId As Integer Public Description As String Public Regex As String Public AutomationId As String Public ControlName As String Public ProcessName As String Public IsMatched As Boolean = False Public TopLeft As ControlBounds Public TopRight As ControlBounds Public BottomLeft As ControlBounds Public BottomRight As ControlBounds End Class Public Class ControlBounds Public Top As Integer Public Bottom As Integer Public Left As Integer Public Right As Integer End Class End Namespace