+
+ /* test behaviour when a bitmap is selected */
+ hbmp1 = CreateBitmap(2, 2, 1, 1, NULL);
+ TEST(hbmp1);
+ hbmp2 = CreateBitmap(2, 2, 1, 1, NULL);
+ TEST(hbmp2);
+ hdc = CreateCompatibleDC(0);
+ TEST(hdc);
+ hdc2 = CreateCompatibleDC(0);
+ TEST(hdc2);
+ hOldBmp = SelectObject(hdc, hbmp1);
+ TEST(hOldBmp);
+ TEST(NtGdiSaveDC(hdc) == 1);
+ TEST(SelectObject(hdc, hbmp2) == hbmp1);
+ TEST(SelectObject(hdc2, hbmp1) == NULL);
+ SelectObject(hdc, hOldBmp);
+ NtGdiRestoreDC(hdc, 1);
+ TEST(GetCurrentObject(hdc, OBJ_BITMAP) == hbmp1);
+ /* Again, just to be sure */
+ TEST(NtGdiSaveDC(hdc) == 1);
+ TEST(NtGdiSaveDC(hdc) == 2);
+ TEST(SelectObject(hdc, hbmp2) == hbmp1);
+ TEST(SelectObject(hdc2, hbmp1) == NULL);
+ SelectObject(hdc, hOldBmp);
+ NtGdiRestoreDC(hdc, 2);
+ TEST(GetCurrentObject(hdc, OBJ_BITMAP) == hbmp1);
+ /*Cleanup */
+ SelectObject(hdc, hOldBmp);
+ DeleteDC(hdc);
+ DeleteDC(hdc2);
+ DeleteObject(hbmp1);
+ DeleteObject(hbmp2);