为什么用 GdipCreateBitmapFromStream 取数据库里的图片VB会挂掉?解决方案

为什么用 GdipCreateBitmapFromStream 取数据库里的图片VB会挂掉?
WinXP
VB6+SP6
access 数据库
-------------------------------------------------
我希望将数据库中的图片直接显示处理

Dim ADO_Stream As new ADODB.stream
ADO_Stream.type = adTypeBinary
ADO_Stream.Open

Call ADO_Stream.Write(rst.Fields("Photo").value)
'## Call Stream.LoadFromFile(strFileName)

Dim GH As Long
Dim BH As Long
Dim bmW As Long
Dim bmH As Long
   
GdipCreateFromHDC Me.hDC, GH
GdipCreateBitmapFromStream ADO_Stream, BH 到这里VB直接挂掉 Why ???
   
GdipGetImageWidth BH, bmW
GdipGetImageHeight BH, bmH
GdipDrawImageRectI GH, BH, 0, 0, bmW, bmH

------------------------------------------

Public Declare Function GdipLoadImageFromStream Lib "GdiPlus" (ByVal stream As Any, Image As Long) As GpStatus


------解决方案--------------------
应该跟GdipLoadImageFromStream无关,将流保存到磁盘试试能不能打开由流生成的图片文件。
------解决方案--------------------
所谓的流其实就是字节数组,你使用二进制方式打开文件,然后把图片数据放到字节数组,再调用GdipCreateBitmapFromStream试试。
------解决方案--------------------
这两个流是两码事,楼主不分东西啊。
要这样用的:
dim StreamObject As IUnknown '或 Istream

Call CreateStreamOnHGlobal(b(0), False, StreamObject)
Call GdipLoadImageFromStream(StreamObject, img)

其中b() 中包括的就是你的整个图片文件内容。
------解决方案--------------------
楼上解答应该是正确的,楼主不妨试一下。
------解决方案--------------------
http://download.csdn.net/source/1483930