From 9648b824a1fdfdc37e35e20cbcd6bb9535a3ec44 Mon Sep 17 00:00:00 2001 From: Robert Shearman Date: Fri, 28 Jul 2006 01:25:23 +0100 Subject: [PATCH] oleaut32: Implement setting of the hPal property in IPictureDisp::Invoke. Remove some validation code that is already handled by a more generic case at the end of the function. --- dlls/oleaut32/olepicture.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c index f937c2fb971..e1ab8ec6f0f 100644 --- a/dlls/oleaut32/olepicture.c +++ b/dlls/oleaut32/olepicture.c @@ -2084,11 +2084,6 @@ static HRESULT WINAPI OLEPictureImpl_Invoke( return DISP_E_BADPARAMCOUNT; } } - else - { - ERR("one of DISPATCH_PROPERTYGET or DISPATCH_PROPERTYPUT must be specified\n"); - return DISP_E_MEMBERNOTFOUND; - } switch (dispIdMember) { @@ -2107,6 +2102,22 @@ static HRESULT WINAPI OLEPictureImpl_Invoke( V_VT(pVarResult) = VT_I4; return IPicture_get_hPal((IPicture *)&This->lpVtbl, &V_UINT(pVarResult)); } + else if (wFlags & DISPATCH_PROPERTYPUT) + { + VARIANTARG vararg; + HRESULT hr; + TRACE("DISPID_PICT_HPAL\n"); + + VariantInit(&vararg); + hr = VariantChangeTypeEx(&vararg, &pDispParams->rgvarg[0], lcid, 0, VT_I4); + if (FAILED(hr)) + return hr; + + hr = IPicture_set_hPal((IPicture *)&This->lpVtbl, V_I4(&vararg)); + + VariantClear(&vararg); + return hr; + } break; case DISPID_PICT_TYPE: if (wFlags & DISPATCH_PROPERTYGET)