From 04099cf80d5ba03dc0fb14d53baba3acc2ed4200 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Wed, 19 Aug 2009 09:50:52 -0500 Subject: [PATCH] oleaut32: add test for INT and UINT property return values --- dlls/oleaut32/tests/tmarshal.c | 42 +++++++++++++++++++++++++++++++- dlls/oleaut32/tests/tmarshal.idl | 6 ++++ dlls/oleaut32/tests/tmarshal_dispids.h | 2 + 3 files changed, 49 insertions(+), 1 deletions(-) diff --git a/dlls/oleaut32/tests/tmarshal.c b/dlls/oleaut32/tests/tmarshal.c index ec23204..5b90d4d 100644 --- a/dlls/oleaut32/tests/tmarshal.c +++ b/dlls/oleaut32/tests/tmarshal.c @@ -642,6 +642,22 @@ static HRESULT WINAPI Widget_get_prop_with_lcid( return S_OK; } +static HRESULT WINAPI Widget_get_prop_int( + IWidget* iface, INT *i) +{ + trace("get_prop_int(%p)\n", i); + *i = -13; + return S_OK; +} + +static HRESULT WINAPI Widget_get_prop_uint( + IWidget* iface, UINT *i) +{ + trace("get_prop_uint(%p)\n", i); + *i = 42; + return S_OK; +} + static const struct IWidgetVtbl Widget_VTable = { Widget_QueryInterface, @@ -671,7 +687,9 @@ static const struct IWidgetVtbl Widget_VTable = Widget_Error, Widget_CloneInterface, Widget_put_prop_with_lcid, - Widget_get_prop_with_lcid + Widget_get_prop_with_lcid, + Widget_get_prop_int, + Widget_get_prop_uint }; static HRESULT WINAPI StaticWidget_QueryInterface(IStaticWidget *iface, REFIID riid, void **ppvObject) @@ -1379,6 +1397,28 @@ todo_wine } VariantClear(&varresult); + /* test propget of INT value */ + dispparams.cNamedArgs = 0; + dispparams.cArgs = 0; + dispparams.rgvarg = NULL; + dispparams.rgdispidNamedArgs = NULL; + hr = IDispatch_Invoke(pDispatch, DISPID_TM_PROP_INT, &IID_NULL, 0x40c, DISPATCH_PROPERTYGET, &dispparams, &varresult, &excepinfo, NULL); + ok_ole_success(hr, ITypeInfo_Invoke); + todo_wine ok(V_VT(&varresult) == VT_I4, "got %x\n", V_VT(&varresult)); + ok(V_I4(&varresult) == -13, "got %x\n", V_I4(&varresult)); + VariantClear(&varresult); + + /* test propget of INT value */ + dispparams.cNamedArgs = 0; + dispparams.cArgs = 0; + dispparams.rgvarg = NULL; + dispparams.rgdispidNamedArgs = NULL; + hr = IDispatch_Invoke(pDispatch, DISPID_TM_PROP_UINT, &IID_NULL, 0x40c, DISPATCH_PROPERTYGET, &dispparams, &varresult, &excepinfo, NULL); + ok_ole_success(hr, ITypeInfo_Invoke); + todo_wine ok(V_VT(&varresult) == VT_UI4, "got %x\n", V_VT(&varresult)); + ok(V_UI4(&varresult) == 42, "got %x\n", V_UI4(&varresult)); + VariantClear(&varresult); + IDispatch_Release(pDispatch); IWidget_Release(pWidget); diff --git a/dlls/oleaut32/tests/tmarshal.idl b/dlls/oleaut32/tests/tmarshal.idl index ddf02b2..f9b18b8 100644 --- a/dlls/oleaut32/tests/tmarshal.idl +++ b/dlls/oleaut32/tests/tmarshal.idl @@ -131,6 +131,12 @@ library TestTypelib [id(DISPID_TM_PROP_WITH_LCID), propget] HRESULT prop_with_lcid([in,lcid] long lcid, [out,retval] INT *i); + + [id(DISPID_TM_PROP_INT), propget] + HRESULT prop_int([out,retval] INT *i); + + [id(DISPID_TM_PROP_UINT), propget] + HRESULT prop_uint([out,retval] UINT *i); } [ diff --git a/dlls/oleaut32/tests/tmarshal_dispids.h b/dlls/oleaut32/tests/tmarshal_dispids.h index 10c2828..08d7736 100644 --- a/dlls/oleaut32/tests/tmarshal_dispids.h +++ b/dlls/oleaut32/tests/tmarshal_dispids.h @@ -35,5 +35,7 @@ #define DISPID_TM_TESTDUAL 16 #define DISPID_TM_STRUCTARGS 17 #define DISPID_TM_PROP_WITH_LCID 18 +#define DISPID_TM_PROP_INT 19 +#define DISPID_TM_PROP_UINT 20 #define DISPID_NOA_BSTRRET 1 -- 1.5.4.3