Hi Thomas, With your pointer and some serious thinking I finally managed to get it figured out. I've now got the IStream copied to a TOLEStream which enables me to work with it in Delphi. :)
For some reason copying that to a TMemoryStream and then loading it into a TJPEGImage produces an empty image even though I can see the streams contain the correct number of bytes in the debugger. But copying it to a TFileStream instead and then loading the file created into a TImage works. Which is ok since I want to save a cached copy anyway. Streams and COM are not my strong points but I've definitely learned a few things today. :D Thanks, Dave. Dave Murray Glasgow, UK --- In [email protected], Thomas Hruska <[EMAIL PROTECTED]> wrote: > > http://msdn2.microsoft.com/en-us/library/aa384023.aspx > > Says it returns a VARIANT. > > A VARIANT can contain a pointer to an IUnknown interface. Think of > IUnknown as the ultimate base class in COM. From an IUnknown, you > can "cast" (QueryInterface()) it to the type you want: IStream. > > -- > Thomas Hruska > CubicleSoft President > Ph: 517-803-4197 > > *NEW* MyTaskFocus 1.1 > Get on task. Stay on task. > > http://www.CubicleSoft.com/MyTaskFocus/ >

