GDI+ вывод картинки в окно - утечка памяти

Обнаружил, что данный код - выводящий буфер изображения в окно - пожирает память за несколько секунд:

void my_paint_in_window_GDIplus(HDC hdc, const RECT& rc, std::string& mystring_buff_image)
{
    
    Gdiplus::Graphics my_Graphics(hdc);             
    my_Graphics.SetPageUnit(Gdiplus::UnitPixel);     


    int righto = rc.right;
    int bottomo = rc.bottom;


    Gdiplus::RectF region_for_paint(0, 0, righto, bottomo);  


    //-----------------------------------------------------------------
    IStream* my_stream;
    my_stream = SHCreateMemStream((BYTE*)&mystring_buff_image[0], mystring_buff_image.size());      
    Gdiplus::Image* my_image = Gdiplus::Image::FromStream(my_stream); 
    //-----------------------------------------------------------------


    my_Graphics.DrawImage(my_image, region_for_paint);    

    (*my_stream).Release();    //Указатель на IStream нужно обязательно освободить, чтобы не было утечек.
    
}

Путем закомментирования строк, выяснилось, что утечка идет от этой функции:

Gdiplus::Image* my_image = Gdiplus::Image::FromStream(my_stream); 

Но, я не могу почему. Метода .release() у Image* - нет. Как прекратить тогда утечку ?


Ответы (0 шт):