View Single Post
 
Old 06-25-2014, 07:59 AM
whatsup whatsup is offline Windows 7 64bit Office 2010 32bit
Competent Performer
 
Join Date: May 2014
Posts: 137
whatsup will become famous soon enough
Default

I see your correction, but you still left out an important thing:
Quote:
If Mem_ReadHex_Words(lng_varPtr, 4) doesn't point anymore to
HexPtr(lng_objPtr, 4)
That's especially important for object-variables which are set to an object like "As Worksheet". That's because the lng_ObjPtr we obtain from objwks is the same as we get from ObjPtr(Sheet1). Since Sheet1 still exists when we check afterwards, it doesn't tell if the reference hold by VarPtr(objwks) has been released.

I have to come back on the example in my file for Run11_clsTest(). It actually doesn't show that the class got destroyed. I made an attempt to obtain the VarPtr and ObjPtr for Class1, but it didn't work therefore I left it. Now I figured it out:
Class1:
Code:
Public Sub Class_Initialize()
     Debug.Print "Class1 is initialized"
    
lng_objcls1 = ObjPtr(Me)
lng_varcls1 = VarPtr(Me)
    pointerToSomething "objClass1", lng_varcls1, lng_objcls1, coBytes
 End Sub
I still don't know why
Code:
lng_objcls1 = ObjPtr(Class1)
isn't accepted, but with "Me" it works.
Checking on these datas afterwards, it shows properly that the class gets terminated:
Mod11_Class:
Code:
Sub Run11_clsTest()
 Do_Header "Running Test_Class..."
Test_Class
    DoEvents
    Debug.Print "After Runtime"
    pointerToSomething "objcls1", lng_varPtr, lng_objPtr, coBytes
    pointerToSomething "objClass1", lng_varcls1, lng_objcls1, coBytes
    
End Sub
Quote:
Im building a class module now to encapsulate this stuff to make it more convenient to deploy....
I don't get what exactly you are after, but I guess you will surprise me again
Reply With Quote