reactos操作系统实现(192)

前端之家收集整理的这篇文章主要介绍了reactos操作系统实现(192)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

NtGdiCreateBitmap@H_404_5@函数是创建一个位图句柄。

#001@H_404_5@ HBITMAP APIENTRY

#002@H_404_5@ NtGdiCreateBitmap(

#003@H_404_5@ INT Width,

#004@H_404_5@ INT Height,

#005@H_404_5@ UINT Planes,

#006@H_404_5@ UINT BitsPixel,

#007@H_404_5@ IN OPTIONAL LPBYTE pUnsafeBits)

Width@H_404_5@是位图宽度。

Height@H_404_5@是位图高度。

Planes@H_404_5@是位图中颜色面的数目。

BitsPixel@H_404_5@是标识单个像素的颜色所需的位数。

pUnsafeBits@H_404_5@是指向由字节组成的数组的指针,该数组中包含像素数据。矩形中每条扫描线都必须字对齐。

#008@H_404_5@ {

#009@H_404_5@ if (pUnsafeBits)

#010@H_404_5@ {

@H_404_5@测试读取应用程序的数据是否正确。

#011@H_404_5@ BOOL Hit = FALSE;

#012@H_404_5@ UINT cjBits = BITMAP_GetWidthBytes(Width,BitsPixel) * abs(Height);

#013@H_404_5@

#014@H_404_5@ // FIXME: Use MmSecureVirtualMemory

#015@H_404_5@ _SEH2_TRY

#016@H_404_5@ {

#017@H_404_5@ ProbeForRead(pUnsafeBits,cjBits,1);

#018@H_404_5@ }

#019@H_404_5@ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)

#020@H_404_5@ {

#021@H_404_5@ Hit = TRUE;

#022@H_404_5@ }

#023@H_404_5@ _SEH2_END

#024@H_404_5@

#025@H_404_5@ if (Hit) return 0;

#026@H_404_5@ }

#027@H_404_5@

@H_404_5@调用函数IntGdiCreateBitmap@H_404_5@来创建位图。

#028@H_404_5@ return IntGdiCreateBitmap(Width,Height,Planes,BitsPixel,pUnsafeBits);

#029@H_404_5@ }

#030

猜你在找的React相关文章