oleaut32: Fixes for the PICTYPE_UNINITIALIZED case.
This commit is contained in:
parent
f19f4de59e
commit
e848f6d539
|
@ -365,6 +365,7 @@ static void OLEPictureImpl_Destroy(OLEPictureImpl* Obj)
|
||||||
DeleteEnhMetaFile(Obj->desc.u.emf.hemf);
|
DeleteEnhMetaFile(Obj->desc.u.emf.hemf);
|
||||||
break;
|
break;
|
||||||
case PICTYPE_NONE:
|
case PICTYPE_NONE:
|
||||||
|
case PICTYPE_UNINITIALIZED:
|
||||||
/* Nothing to do */
|
/* Nothing to do */
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -505,6 +506,7 @@ static HRESULT WINAPI OLEPictureImpl_get_Handle(IPicture *iface,
|
||||||
TRACE("(%p)->(%p)\n", This, phandle);
|
TRACE("(%p)->(%p)\n", This, phandle);
|
||||||
switch(This->desc.picType) {
|
switch(This->desc.picType) {
|
||||||
case PICTYPE_NONE:
|
case PICTYPE_NONE:
|
||||||
|
case PICTYPE_UNINITIALIZED:
|
||||||
*phandle = 0;
|
*phandle = 0;
|
||||||
break;
|
break;
|
||||||
case PICTYPE_BITMAP:
|
case PICTYPE_BITMAP:
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
static HMODULE hOleaut32;
|
static HMODULE hOleaut32;
|
||||||
|
|
||||||
static HRESULT (WINAPI *pOleLoadPicture)(LPSTREAM,LONG,BOOL,REFIID,LPVOID*);
|
static HRESULT (WINAPI *pOleLoadPicture)(LPSTREAM,LONG,BOOL,REFIID,LPVOID*);
|
||||||
|
static HRESULT (WINAPI *pOleCreatePictureIndirect)(PICTDESC*,REFIID,BOOL,LPVOID*);
|
||||||
|
|
||||||
#define ok_ole_success(hr, func) ok(hr == S_OK, func " failed with error 0x%08x\n", hr)
|
#define ok_ole_success(hr, func) ok(hr == S_OK, func " failed with error 0x%08x\n", hr)
|
||||||
|
|
||||||
|
@ -396,10 +397,38 @@ static void test_Invoke(void)
|
||||||
IPictureDisp_Release(picdisp);
|
IPictureDisp_Release(picdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_OleCreatePictureIndirect(void)
|
||||||
|
{
|
||||||
|
IPicture *pict;
|
||||||
|
HRESULT hr;
|
||||||
|
short type;
|
||||||
|
OLE_HANDLE handle;
|
||||||
|
|
||||||
|
if(!pOleCreatePictureIndirect)
|
||||||
|
{
|
||||||
|
skip("Skipping OleCreatePictureIndirect tests\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr = pOleCreatePictureIndirect(NULL, &IID_IPicture, TRUE, (void**)&pict);
|
||||||
|
ok(hr == S_OK, "hr %08x\n", hr);
|
||||||
|
|
||||||
|
hr = IPicture_get_Type(pict, &type);
|
||||||
|
ok(hr == S_OK, "hr %08x\n", hr);
|
||||||
|
ok(type == PICTYPE_UNINITIALIZED, "type %d\n", type);
|
||||||
|
|
||||||
|
hr = IPicture_get_Handle(pict, &handle);
|
||||||
|
ok(hr == S_OK, "hr %08x\n", hr);
|
||||||
|
ok(handle == 0, "handle %08x\n", handle);
|
||||||
|
|
||||||
|
IPicture_Release(pict);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(olepicture)
|
START_TEST(olepicture)
|
||||||
{
|
{
|
||||||
hOleaut32 = LoadLibraryA("oleaut32.dll");
|
hOleaut32 = LoadLibraryA("oleaut32.dll");
|
||||||
pOleLoadPicture = (void*)GetProcAddress(hOleaut32, "OleLoadPicture");
|
pOleLoadPicture = (void*)GetProcAddress(hOleaut32, "OleLoadPicture");
|
||||||
|
pOleCreatePictureIndirect = (void*)GetProcAddress(hOleaut32, "OleCreatePictureIndirect");
|
||||||
if (!pOleLoadPicture)
|
if (!pOleLoadPicture)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -414,6 +443,7 @@ START_TEST(olepicture)
|
||||||
test_empty_image_2();
|
test_empty_image_2();
|
||||||
|
|
||||||
test_Invoke();
|
test_Invoke();
|
||||||
|
test_OleCreatePictureIndirect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue