There is a critical distinction you need to make: 1) Do you want to know if the two objects are really the same? In other words, are you passing in a second reference to a single instance of the object? 2) Do you want to know if the state of two different object instances are identical. In other words, you have two separate object instances, but their property values, i.e their state, is identical. In the first case there is a comparison operator - "Is". Example boolTest = m_Object1 Is m_Object2 If this returns true, you have a single object instance that is being referenced by two pointers - m_Object1 and m_Object2. In the second case, the simplest approach is to write your own validator function in the class that performs a memberwise comparison of two objects, such as Private Function IsObjectStateIdentical(ByRef MyPoint1 As POINT, ByRef MyPoint2 As POINT) As Boolean Dim fIsIdentical As Boolean With MyPoint1 fIsIdentical = (.X = MyOvbject2.X) fIsIdentical = fIsIdentical And (.Y = MyObject2.Y) End With Return fIsIdentical End Function