青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

brent's hut

從資源中加載jpg, png到GDI+ Image

從資源中加載jpg和png文件, 貌似不應該是個大問題, 一google結果一大堆, 卻有兩個陷阱,trap啊

1, 是Bitmap(RT_BITMAP)類型的圖片無法加載, RT_BITMAP是預定義類型, 資源里面沒有bmp文件的頭, SizeofResource 的返回值要比圖片文件少幾個字節,因為少了這幾個字節, 所以GDI+會返回invalid parameter錯誤。

2, 從IStream里面創建出來的Image對象似乎會引用到堆里面的內存, 如果hBuffer被釋放了, 創建的Image的內容就會被破壞,有時只能畫出一小部分圖片, 有時整個圖片就是空白, 視當時的內存狀況而定。調用Image的Clone也沒用。


CYourClass::~CYourClass()
{
    
for(IMG_VECTOR::iterator it = m_arImage.begin(); it != m_arImage.end(); it++)
        delete 
*it;
    
for(HGLB_VECTOR::iterator it = m_arGlobal.begin(); it != m_arGlobal.end(); it++)
    {
        ::GlobalUnlock(
*it);
        ::GlobalFree(
*it);
    }
}

void CYourClass::AddImage(HMODULE hInst, UINT nResourceID, LPCTSTR lpType)
{
    
if(lpType == RT_BITMAP)
    {
        
//GDI+ can not load RT_BITMAP resouce, 
        
//because they are predefined resource, 
        
//they don't contains the image file header.
        assert(FALSE);
        
return;
    }

    HRSRC hResource 
= ::FindResource(hInst, MAKEINTRESOURCE(nResourceID), lpType);
    
if (!hResource)
        
return;

    DWORD imageSize 
= ::SizeofResource(hInst, hResource);
    
if (!imageSize)
        
return;

    
const void* pResourceData = ::LockResource(::LoadResource(hInst, hResource));
    
if (!pResourceData)
        
return;

    HGLOBAL hBuffer 
= ::GlobalAlloc(GMEM_FIXED, imageSize);
    
if (NULL == hBuffer)
        
return;

    
void* pBuffer = ::GlobalLock(hBuffer);
    
if (pBuffer)
    {
        CopyMemory(pBuffer, pResourceData, imageSize);
        IStream
* pStream = NULL;
        
if (::CreateStreamOnHGlobal(hBuffer, FALSE, &pStream) == S_OK)
        {
            Gdiplus::Image 
* pImage = Gdiplus::Image::FromStream(pStream);
            pStream
->Release();
            
if (pImage)
            { 
                
if (pImage->GetLastStatus() == Gdiplus::Ok &&
                    pImage
->GetWidth() > 0)
                {
                    m_arImage.push_back(pImage);
                    
//it seems the image will take usage of the global memory.
                    
//so the global memory should be kept until the image destroy.
                    m_arGlobal.push_back(hBuffer);
                    
return;
                }

                delete pImage;
            }
        }
        ::GlobalUnlock(hBuffer);
    }
    ::GlobalFree(hBuffer);
}

posted on 2009-11-05 16:01 brent 閱讀(7633) 評論(0)  編輯 收藏 引用 所屬分類: C++

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久亚洲精品一区二区| 久久婷婷av| 亚洲人体1000| 黄网站免费久久| 国产日韩一区二区三区| 国产乱人伦精品一区二区| 欧美日韩国产小视频在线观看| 欧美a级一区| 欧美mv日韩mv国产网站| 欧美喷潮久久久xxxxx| 欧美福利电影在线观看| 欧美日韩高清在线一区| 亚洲欧美国产日韩天堂区| 欧美日韩一区在线观看视频| 欧美午夜免费| 激情偷拍久久| 亚洲国内欧美| 亚洲一级片在线看| 欧美一区二区视频在线观看2020| 久久久91精品国产| 欧美激情一区二区| 亚洲视频在线看| 久久亚洲一区二区| 欧美日韩国产综合视频在线观看中文 | 久久亚洲高清| 欧美刺激性大交免费视频| 亚洲国产欧美在线| 亚洲精品视频啊美女在线直播| 在线午夜精品自拍| 久久视频在线免费观看| 欧美午夜大胆人体| 免播放器亚洲一区| 久久国产精品高清| 日韩亚洲一区在线播放| 久久久久国产精品麻豆ai换脸| 欧美黄色免费| 亚洲激情社区| 亚洲欧美日韩在线| 91久久精品一区| 欧美一区二视频| 国产精品高潮呻吟久久| 在线看国产日韩| 午夜在线播放视频欧美| 亚洲国产小视频| 裸体丰满少妇做受久久99精品| 国产视频久久久久久久| 亚洲一区二区三区在线| 一区二区欧美亚洲| 欧美午夜精品理论片a级大开眼界| 亚洲精品欧美日韩专区| 亚洲精品日韩在线观看| 欧美精品一区二区三区在线播放 | 国内精品久久久久影院色| 亚洲福利视频二区| 久久成人精品| 久久精品观看| 亚洲精品视频在线观看网站| 欧美成人午夜视频| 欧美日韩精品一区二区| 亚洲香蕉成视频在线观看| 一区二区三区日韩精品| 激情视频亚洲| 99成人在线| 国产精品久久久久久五月尺| 久久精品人人做人人综合 | 久久久免费精品视频| 一区二区三区精品在线| 亚洲欧美经典视频| 亚洲国产婷婷综合在线精品| 99国产精品| 伊人久久男人天堂| 艳妇臀荡乳欲伦亚洲一区| 国产美女精品免费电影| 牛人盗摄一区二区三区视频| 欧美系列精品| 亚洲激情一区二区三区| 国产综合欧美| 西瓜成人精品人成网站| 日韩亚洲成人av在线| 久久久精品国产免费观看同学| 亚洲美女视频在线免费观看| 久久久免费av| 欧美一区三区二区在线观看| 欧美日韩一区二区三区免费| 另类专区欧美制服同性| 欧美日韩伦理在线| 免费观看成人网| 在线精品视频一区二区| 亚洲欧美一区二区三区在线| 亚洲欧美日韩国产综合精品二区 | 一本色道久久综合亚洲91| 久久久青草青青国产亚洲免观| 欧美在线视频在线播放完整版免费观看| 欧美激情视频一区二区三区在线播放 | 欧美日韩在线一区| 在线亚洲电影| 久久成年人视频| 好吊妞这里只有精品| 欧美一区日韩一区| 久久久久这里只有精品| 韩国一区电影| 欧美成人免费全部| 亚洲精品亚洲人成人网| 一本色道久久综合亚洲精品不| 欧美日韩天堂| 欧美一级网站| 亚洲国产成人av| 亚洲自拍啪啪| 精品av久久久久电影| 欧美日韩国产免费观看| 欧美一区亚洲| 亚洲人成在线播放网站岛国| 亚洲欧美综合另类中字| 影音先锋久久久| 久久视频一区| 欧美成人中文字幕在线| 亚洲综合另类| 伊人蜜桃色噜噜激情综合| 欧美成人在线免费视频| 性做久久久久久久久| 亚洲国产精品va在线看黑人动漫| 亚洲欧美一区二区三区在线| 亚洲国产精品国自产拍av秋霞 | 欧美日韩免费精品| 久久五月激情| 性xx色xx综合久久久xx| 亚洲精品网址在线观看| 国产精品免费小视频| 欧美日韩国产在线| 欧美精品国产| 欧美国产大片| 一区二区三区久久| 欧美色视频日本高清在线观看| 久久综合九色综合欧美狠狠| 久久国产精品久久w女人spa| 亚洲欧美日韩天堂| 亚洲欧美在线一区| 久久成年人视频| 久久免费视频网站| 国产日韩欧美综合| 国内激情久久| 在线观看视频一区| 亚洲日韩欧美视频| 9i看片成人免费高清| 亚洲欧美在线看| 久久久.com| 亚洲福利国产| 制服丝袜激情欧洲亚洲| 亚洲在线视频| 欧美18av| 狠狠色综合网站久久久久久久| 欧美亚洲第一页| 99精品久久久| 性欧美1819sex性高清| 久久久综合免费视频| 欧美日韩在线精品一区二区三区| 久久久久久国产精品mv| 在线视频你懂得一区| 久久精品123| 亚洲美女毛片| 久久精品国产99国产精品| 久久久欧美一区二区| 欧美a级大片| 亚洲欧美国产毛片在线| 欧美激情一区二区三区在线视频观看 | 国产精品99久久久久久白浆小说 | 亚洲精品国久久99热| 久久久久久久网站| 亚洲影院免费| 亚洲国产精品久久人人爱蜜臀 | 亚洲风情亚aⅴ在线发布| 久久国产免费看| 国产欧美日韩伦理| 久久不见久久见免费视频1| 午夜视频一区| 欧美一区激情| 欧美一区亚洲一区| 91久久精品一区二区别| 欧美伊人精品成人久久综合97| 欧美日韩精品系列| 亚洲国产婷婷香蕉久久久久久99| 久久国产精品久久w女人spa| 亚洲国产精品精华液网站| 99亚洲视频| 久久久成人网| 亚洲激情在线视频| 午夜精品久久久久久久99水蜜桃| 欧美日韩成人| 亚洲精品你懂的| 亚洲第一精品夜夜躁人人爽| 久久国产精品高清| 精品二区视频| 亚洲国产精品成人va在线观看| 美女在线一区二区| 亚洲国产人成综合网站| 亚洲国产婷婷香蕉久久久久久99| 女生裸体视频一区二区三区| 狠狠综合久久av一区二区老牛| 免费欧美日韩| 欧美美女操人视频|