Hi all and happy XMass.
I have been searching all over for a way to know if a Long variable has a valid Object Pointer in it.... I need to knwo the contents of the variable before passing it to the CopyMemory API in order to prevent the application from crashing.
* - Here is an example that works because the lPtr variable correctly points to the Application Object. ( Test done in Excel )
* - Here is an example that shows how passing a invalid Pointer in the lPtr variable ( in this case I have randomly chosen the number 1111 ) to the CoyMemory API causes a GPF :
In order to avoid this problem , I have tried using the following APIs : IsBadReadPtr ;IsBadWritePtr and IsBadCodePtr but without any luck so far.
Any help much appreciated.
I have been searching all over for a way to know if a Long variable has a valid Object Pointer in it.... I need to knwo the contents of the variable before passing it to the CopyMemory API in order to prevent the application from crashing.
* - Here is an example that works because the lPtr variable correctly points to the Application Object. ( Test done in Excel )
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _ pDest As Any, pSrc As Any, ByVal ByteLen As Long) Sub Test() Dim lPtr As Long Dim oTempObject As Object lPtr = objPtr(Application) CopyMemory oTempObject, lPtr, 4 MsgBox oTempObject.Name CopyMemory oTempObject, 0&, 4 End Sub
* - Here is an example that shows how passing a invalid Pointer in the lPtr variable ( in this case I have randomly chosen the number 1111 ) to the CoyMemory API causes a GPF :
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _ pDest As Any, pSrc As Any, ByVal ByteLen As Long) Sub Test() Dim lPtr As Long Dim oTempObject As Object lPtr = 1111 '<------ invalid Pointer. CopyMemory oTempObject, lPtr, 4 ' <--------- CRASH HERE !!!!! MsgBox oTempObject.Name CopyMemory oTempObject, 0&, 4 End Sub
In order to avoid this problem , I have tried using the following APIs : IsBadReadPtr ;IsBadWritePtr and IsBadCodePtr but without any luck so far.
Any help much appreciated.