hBitmap = CreateCompatibleBitmap(hDCScreen, 16, 16);\r
RTEST(hBitmap != NULL);\r
\r
+ /* misc */\r
SetLastError(ERROR_SUCCESS);\r
RTEST(GetDIBits(0, 0, 0, 0, NULL, NULL, 0) == 0);\r
RTEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
RTEST(GetDIBits((HDC)2345, hBitmap, 0, 15, NULL, &bi, 0) == 0);\r
RTEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
\r
+\r
+\r
+ /* null hdc */\r
SetLastError(ERROR_SUCCESS);\r
- ZeroMemory(&bi, sizeof(BITMAPINFO));\r
- bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);\r
- RTEST(GetDIBits(hDCScreen, hBitmap, 0, 15, NULL, &bi, DIB_RGB_COLORS) > 0);\r
+ ZeroMemory(&bi, sizeof(BITMAPINFO));\r
+ bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);\r
+ RTEST(GetDIBits(NULL, hBitmap, 0, 15, NULL, &bi, DIB_RGB_COLORS) == 0);\r
+ RTEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
+\r
+ /* null bitmap */\r
+ SetLastError(ERROR_SUCCESS);\r
+ ZeroMemory(&bi, sizeof(BITMAPINFO));\r
+ bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);\r
+ RTEST(GetDIBits(hDCScreen, NULL, 0, 15, NULL, &bi, DIB_RGB_COLORS) == 0);\r
+ RTEST(GetLastError() == ERROR_SUCCESS);\r
+\r
+ /* 0 scan lines */\r
+ SetLastError(ERROR_SUCCESS);\r
+ ZeroMemory(&bi, sizeof(BITMAPINFO));\r
+ bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);\r
+ RTEST(GetDIBits(hDCScreen, hBitmap, 0, 0, NULL, &bi, DIB_RGB_COLORS) > 0);\r
+ RTEST(GetLastError() == ERROR_SUCCESS);\r
+\r
+ /* null bitmap info - crashes XP*/\r
+ //SetLastError(ERROR_SUCCESS);\r
+ //RTEST(GetDIBits(hDCScreen, NULL, 0, 15, NULL, NULL, DIB_RGB_COLORS) == 0);\r
+ //RTEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
+\r
+ /* bad bmi colours (uUsage) */\r
+ SetLastError(ERROR_SUCCESS);\r
+ ZeroMemory(&bi, sizeof(BITMAPINFO));\r
+ bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);\r
+ RTEST(GetDIBits(hDCScreen, hBitmap, 0, 15, NULL, &bi, 100) == 0);\r
RTEST(GetLastError() == ERROR_SUCCESS);\r
+ RTEST(bi.bmiHeader.biWidth == 0);\r
+ RTEST(bi.bmiHeader.biHeight == 0);\r
+ RTEST(bi.bmiHeader.biBitCount == 0);\r
+ RTEST(bi.bmiHeader.biSizeImage == 0);\r
\r
+ /* basic call */\r
+ SetLastError(ERROR_SUCCESS);\r
+ ZeroMemory(&bi, sizeof(BITMAPINFO));\r
+ bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);\r
+ RTEST(GetDIBits(hDCScreen, hBitmap, 0, 15, NULL, &bi, DIB_RGB_COLORS) > 0);\r
+ RTEST(GetLastError() == ERROR_SUCCESS);\r
ScreenBpp = GetDeviceCaps(hDCScreen, BITSPIXEL);\r
RTEST(bi.bmiHeader.biWidth == 16);\r
RTEST(bi.bmiHeader.biHeight == 16);\r