oledb32: Support converting DBTYPE_VARIANT to DBTYPE_VARIANT.

This commit is contained in:
Zhiyi Zhang 2023-05-08 22:46:05 +08:00 committed by Alexandre Julliard
parent b6216a0650
commit 80060f2155
2 changed files with 6 additions and 5 deletions

View file

@ -1093,6 +1093,12 @@ static HRESULT WINAPI convert_DataConvert(IDataConvert* iface,
hr = S_OK;
break;
}
case DBTYPE_VARIANT:
{
VariantInit(v);
hr = VariantCopy(v, (VARIANT *)src);
break;
}
default: FIXME("Unimplemented conversion %04x -> VARIANT\n", src_type); return E_NOTIMPL;
}
break;

View file

@ -3947,15 +3947,10 @@ static void test_converttovar(void)
V_VT(&var) = VT_UINT;
V_UINT(&var) = 1234;
hr = IDataConvert_DataConvert(convert, DBTYPE_VARIANT, DBTYPE_VARIANT, 0, &dst_len, &var, &dst, sizeof(dst), 0, &dst_status, 0, 0, 0);
todo_wine
ok(hr == S_OK, "got %08lx\n", hr);
todo_wine
ok(dst_status == DBSTATUS_S_OK, "got %08lx\n", dst_status);
todo_wine
ok(dst_len == sizeof(VARIANT), "got %Id\n", dst_len);
todo_wine
ok(V_VT(&dst) == VT_UINT, "got %d\n", V_VT(&dst));
todo_wine
ok(V_UINT(&dst) == 1234, "got %u\n", V_UINT(&dst));
VariantClear(&dst);
}