Wince资源载入(流行图象格式为例)

时间:2020-12-26 18:02:41
wince5把对jpg,gif等图象的解码改了个位置。这个和wince4不同。其实我很恨微软的霸道,收了大家的钱还想怎么改就怎么改。言归正题,首先要包含必须的库文件INITGUID.h,imaging.h。然后就能用里面的解码库了。以嵌入到资源里的一个图片文件为例子(从文件导入太简单省略了)。

        首先是从资源里面载入:
HRSRC hr;//资源句柄
LPCWSTR lpName,LPCWSTR lpType;//资源名字和类型
LPSTR lp;
//载入资源
hr = FindResource(GetModuleHandle(NULL),lpName,lpType);
lp=(LPSTR)LockResource(hg);


然后记得释放DeleteObject(hr);


最后讲下怎么把文件文件显示出来,其实初始话完后调用下就OK了,实例代码如下:
    IImagingFactory *pImgFactory = NULL;
    IImage *pImage = NULL;

   CoInitializeEx(NULL, COINIT_MULTITHREADED);

   if (SUCCEEDED(CoCreateInstance(CLSID_ImagingFactory,
                                  NULL,
                                  CLSCTX_INPROC_SERVER,
                                  IID_IImagingFactory,
                                  (void **) &pImgFactory))) {
       if (SUCCEEDED(pImgFactory->
            CreateImageFromBuffer(buf, size, DISPOSAL_NONE, &pImage))) {
           pImage->Draw(hdc, outplace, NULL);
           pImage->Release();
       }
       pImgFactory->Release();
   }
   CoUninitialize();
函数CreateImageFromBuffer把图片载入到内存里面,这个只是功能的一部分,pImage->Draw(hdc, outplace, NULL);负责显示图片