A handle is nothing more than a pointer to an object in memory that you can store on a variable of type handle. When the object has been destroyed ( for example it could have gone out of scope ) the variable won't be cleared too. You need to do this in your code manually.
It is good practice when you destroy a handle-based object that you NULL the accompanying variable to avoid referencing it a time when the object does not exist anymore, or even worse, an object of a different type has been created in the meantime and by chance resides in the same address space in memory.
DELETE OBJECT hMyObject.
ASSIGN hMyObject = ?.
Regards, RealHeavyDude.