Exception Code 0xc0000005
I am having a problem that I cannot completely understand. I have written a VB 6 program that will create an image from a bytearray without writing it to a file on the hard drive. It is very important that all of this is done in memory and the image is not written to a file.
The function I use to do this is from Edanmo's OLE Interfaces & Functions v1.81 (from http://www.mvps.org/emorcillo/en/index.shtml
) and here is the code:
Public Function LoadImage( _
ImageBytes() As Byte) As StdPicture
Dim oPersist As IPersistStream
Dim oStream As IStream
Dim lSize As Long
' Calculate the array size
lSize = UBound(ImageBytes) - LBound(ImageBytes) + 1
' Create a stream object
' in global memory
Set oStream = CreateStreamOnHGlobal(0, True)
' Write the header to the stream
oStream.Write &H746C&, 4&
' Write the array size
oStream.Write lSize, 4&
' Write the image data
' Move the stream position to
' the start of the stream
oStream.Seek 0, STREAM_SEEK_SET
' Create a new empty picture object
Set LoadImage = New StdPicture
' Get the IPersistStream interface
' of the picture object
Set oPersist = LoadImage
' Load the picture from the stream
' Release the streamobject
Set oStream = Nothing
In my program there are several different buttons that can be clicked. Each button will load a series of images to be shown on another form. When clicking the second of these buttons, I receive an error "Analyzer has encountered a problem and needs to close. We are sorry about the inconvenience." and it allows me to send an error report. Viewing the technical data it shows an exception code 0xc0000005. By adding message boxes to the program I have narrowed the error down to the line: oPersist.Load oStream while loading the 5th picture every time.
Here is what I do not fully understand about this issue. I get the error every time I open the program and only click the second button. If I open the program, click the first button, click a few others and then click the second button, it works fine. It works fine on any development machines where I could debug the code as well. The only machines where it errors are the ones I need it to not error on.
I have made sure I have all needed license files and ocx files in the system32 folder. Running Adaware has come up with no spyware that could have caused the error. Any suggestions?