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 Collection
Dim obj As CPerson
' create a new CPerson object and add it to the collection
Set obj = New CPerson
obj.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 collection
The same trick can be applied to any
type of objects, including VB forms and controls, and external objects.