Commit 38f01fe2 authored by Alistair Leslie-Hughes's avatar Alistair Leslie-Hughes Committed by Alexandre Julliard

msado15: Support VT_I4/I2 for Fields Item property.

parent 06fb0337
......@@ -740,6 +740,22 @@ static HRESULT map_index( struct fields *fields, VARIANT *index, ULONG *ret )
{
ULONG i;
if (V_VT( index ) == VT_I4 || V_VT( index ) == VT_I2)
{
if (V_VT( index ) == VT_I4)
i = V_I4 ( index );
else
i = V_I2 ( index );
if (i < fields->count)
{
*ret = i;
return S_OK;
}
return MAKE_ADO_HRESULT(adErrItemNotFound);
}
if (V_VT( index ) != VT_BSTR)
{
FIXME( "variant type %u not supported\n", V_VT( index ) );
......
......@@ -133,6 +133,23 @@ static void test_Recordset(void)
hr = Fields__Append( fields, name, adInteger, 4, adFldUnspecified );
ok( hr == S_OK, "got %08x\n", hr );
V_VT( &index ) = VT_I4;
V_I4( &index ) = 1000;
hr = Fields_get_Item( fields, index, &field );
ok( hr == MAKE_ADO_HRESULT(adErrItemNotFound), "got %08x\n", hr );
V_VT( &index ) = VT_I4;
V_I4( &index ) = 0;
hr = Fields_get_Item( fields, index, &field );
ok( hr == S_OK, "got %08x\n", hr );
Field_Release(field);
V_VT( &index ) = VT_I2;
V_I4( &index ) = 0;
hr = Fields_get_Item( fields, index, &field );
ok( hr == S_OK, "got %08x\n", hr );
Field_Release(field);
V_VT( &index ) = VT_BSTR;
V_BSTR( &index ) = name;
hr = Fields_get_Item( fields, index, &field );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment