One of the simplest and most effective uses of the ObjPtr function is to provide a key for quickly locating an object in a Collection. Let’s suppose you have a collection of objects that don’t have a property that can be used as a key to retrieve them in a collection. You can work around this by using the value returned by the ObjPtr function as the key in the collection:
Dim col As New CollectionDim obj As CPerson' create a new CPerson object and add it to the collectionSet obj = New CPersonobj.Name = "John Smith"col.Add obj, CStr(ObjPtr(obj)) 'the key must be a string
Because any object has a distinct ObjPtr value, and this value is guaranteed immutable, it is very easily to quickly retrieve it in the collection:
' remove the object from the collectioncol.Remove CStr(ObjPtr(obj))
The same trick can be applied to any type of objects, including VB forms and controls, and external objects.