If you try to do too much, you can find yourself in trouble.
For example, if your destructor hands a reference to itself
to other functions,
those functions might decide to call your
methods as part of their internal operations.
LONG cRef = InterlockedDecrement...