Interesting. The "movable and nondiscardable" I could
believe. Does it really make a difference, has it been
noticed to cause problem otherwise.

However, regarding fDeleteOnRelease--it means that
the Global Handle will be deleted when IStream is
released, which makes pefect sense, so OleRelease is
fine. Unless, that is, GdipCreateBitmapFromStream will
call release on the passed interface. Is that the case?

--- bill lam <[EMAIL PROTECTED]> wrote:

> getimg1=: 3 : 0
>    GdiplusStartup (TOK=.,_1);GdiplusStartupInput;0
>    HDL=. GlobalAlloc 0;#y
>    y memw (GlobalLock {.HDL),0,#y
>    GlobalUnlock {.HDL
>    CreateStreamOnHGlobal HDL;1;STR=.,_2
>    GdipCreateBitmapFromStream ({.STR);BMP=.,_1
>    OleRelease {.STR
>    z=. bmpARGB {.BMP
>    GdiplusShutdown {.TOK
>    z
> )
> 
> from m$ link
> http://msdn2.microsoft.com/en-us/library/aa378980(VS.85).aspx
> says that The handle must be allocated as movable and nondiscardable. so that
>    HDL=. GlobalAlloc 2;#y
> and  fDeleteOnRelease in CreateStreamOnHGlobal already set to true so that
>    OleRelease {.STR
> is redundant and can cause memory fault.
> similarly for putimg1
> 
> regards,
> bill
> 
> 
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> 



      
____________________________________________________________________________________
Never miss a thing.  Make Yahoo your home page. 
http://www.yahoo.com/r/hs
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to