reactos操作系统实现(192)
NtGdiCreateBitmap函数是创建一个位图句柄。 #001 HBITMAP APIENTRY #002 NtGdiCreateBitmap( #003 INT Width, #004 INT Height, #005 UINT Planes, #006 UINT BitsPixel, #007 IN OPTIONAL LPBYTE pUnsafeBits) Width是位图宽度。 Height是位图高度。 Planes是位图中颜色面的数目。 BitsPixel是标识单个像素的颜色所需的位数。 pUnsafeBits是指向由字节组成的数组的指针,该数组中包含像素数据。矩形中每条扫描线都必须字对齐。
#008 { #009 if (pUnsafeBits) #010 {
测试读取应用程序的数据是否正确。 #011 BOOL Hit = FALSE; #012 UINT cjBits = BITMAP_GetWidthBytes(Width,BitsPixel) * abs(Height); #013 #014 // FIXME: Use MmSecureVirtualMemory #015 _SEH2_TRY #016 { #017 ProbeForRead(pUnsafeBits,cjBits,1); #018 } #019 _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) #020 { #021 Hit = TRUE; #022 } #023 _SEH2_END #024 #025 if (Hit) return 0; #026 } #027
调用函数IntGdiCreateBitmap来创建位图。 #028 return IntGdiCreateBitmap(Width,Height,Planes,BitsPixel,pUnsafeBits); #029 } #030 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |