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);负责显示图片