Module: wine Branch: master Commit: 5b88f0d9161e1b262aec46dc53a5d9a4d5d6ee01 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5b88f0d9161e1b262aec46dc53...
Author: Nikolay Sivov bunglehead@gmail.com Date: Tue Jan 6 00:25:43 2009 +0300
oleaut32: Add PICTYPE_NONE and PICTYPE_UNINITIALIZED to IPicture_get_Attributes.
---
dlls/oleaut32/olepicture.c | 2 ++ dlls/oleaut32/tests/olepicture.c | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c index bdce729..e57effe 100644 --- a/dlls/oleaut32/olepicture.c +++ b/dlls/oleaut32/olepicture.c @@ -844,6 +844,8 @@ static HRESULT WINAPI OLEPictureImpl_get_Attributes(IPicture *iface, TRACE("(%p)->(%p).\n", This, pdwAttr); *pdwAttr = 0; switch (This->desc.picType) { + case PICTYPE_UNINITIALIZED: + case PICTYPE_NONE: break; case PICTYPE_BITMAP: if (This->hbmMask) *pdwAttr = PICTURE_TRANSPARENT; break; /* not 'truly' scalable, see MSDN. */ case PICTYPE_ICON: *pdwAttr = PICTURE_TRANSPARENT;break; case PICTYPE_ENHMETAFILE: /* fall through */ diff --git a/dlls/oleaut32/tests/olepicture.c b/dlls/oleaut32/tests/olepicture.c index 2b5b8bb..ba59b50 100644 --- a/dlls/oleaut32/tests/olepicture.c +++ b/dlls/oleaut32/tests/olepicture.c @@ -324,6 +324,7 @@ static void test_empty_image(void) { ULARGE_INTEGER newpos1; LARGE_INTEGER seekto; short type; + DWORD attr;
/* Empty image. Happens occasionally in VB programs. */ hglob = GlobalAlloc (0, 8); @@ -347,6 +348,11 @@ static void test_empty_image(void) { ok (hres == S_OK,"empty picture get type failed with hres 0x%08x\n", hres); ok (type == PICTYPE_NONE,"type is %d, but should be PICTYPE_NONE(0)\n", type);
+ attr = 0xdeadbeef; + hres = IPicture_get_Attributes (pic, &attr); + ok (hres == S_OK,"empty picture get attributes failed with hres 0x%08x\n", hres); + ok (attr == 0,"attr is %d, but should be 0\n", attr); + hres = IPicture_get_Handle (pic, &handle); ok (hres == S_OK,"empty picture get handle failed with hres 0x%08x\n", hres); ok (handle == 0, "empty picture get handle did not return 0, but 0x%08x\n", handle); @@ -645,6 +651,26 @@ static void test_Render(void) ReleaseDC(NULL, hdc); }
+static void test_get_Attributes(void) +{ + IPicture *pic; + HRESULT hres; + short type; + DWORD attr; + + OleCreatePictureIndirect(NULL, &IID_IPicture, TRUE, (VOID**)&pic); + hres = IPicture_get_Type(pic, &type); + ok(hres == S_OK, "IPicture_get_Type does not return S_OK, but 0x%08x\n", hres); + ok(type == PICTYPE_UNINITIALIZED, "Expected type = PICTYPE_UNINITIALIZED, got = %d\n", type); + + attr = 0xdeadbeef; + hres = IPicture_get_Attributes(pic, &attr); + ole_expect(hres, S_OK); + ok(attr == 0, "IPicture_get_Attributes does not reset attr to zero, got %d\n", attr); + + IPicture_Release(pic); +} + START_TEST(olepicture) { hOleaut32 = GetModuleHandleA("oleaut32.dll"); @@ -672,6 +698,7 @@ START_TEST(olepicture) test_Invoke(); test_OleCreatePictureIndirect(); test_Render(); + test_get_Attributes(); }