From: Alistair Leslie-Hughes Subject: [PATCH 1/3] oledb32: Supply a default dst len in GetConversionSize Message-Id: Date: Wed, 21 Jun 2017 00:32:39 +0000 Signed-off-by: Alistair Leslie-Hughes --- dlls/oledb32/convert.c | 2 + dlls/oledb32/tests/convert.c | 94 ++++++++++++++++++++++---------------------- 2 files changed, 49 insertions(+), 47 deletions(-) diff --git a/dlls/oledb32/convert.c b/dlls/oledb32/convert.c index 0d45ef064a..4247723a75 100644 --- a/dlls/oledb32/convert.c +++ b/dlls/oledb32/convert.c @@ -1371,6 +1371,8 @@ static HRESULT WINAPI convert_GetConversionSize(IDataConvert* iface, if ((*dst_len = get_length(dst_type))) return S_OK; + *dst_len = 110; + if(src_type == DBTYPE_VARIANT && V_VT((VARIANT*)src) == VT_NULL) return S_OK; diff --git a/dlls/oledb32/tests/convert.c b/dlls/oledb32/tests/convert.c index 8424442ea5..9fee0241e6 100644 --- a/dlls/oledb32/tests/convert.c +++ b/dlls/oledb32/tests/convert.c @@ -2853,18 +2853,18 @@ static void test_getconversionsize(void) V_VT(&var) = VT_NULL; hr = IDataConvert_GetConversionSize(convert, DBTYPE_VARIANT, DBTYPE_STR, NULL, &dst_len, &var); ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); V_VT(&var) = VT_NULL; hr = IDataConvert_GetConversionSize(convert, DBTYPE_VARIANT, DBTYPE_WSTR, NULL, &dst_len, &var); ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); src_len = 20; V_VT(&var) = VT_NULL; hr = IDataConvert_GetConversionSize(convert, DBTYPE_VARIANT, DBTYPE_BYTES, &src_len, &dst_len, &var); ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); VariantClear(&var); hr = IDataConvert_GetConversionSize(convert, DBTYPE_NUMERIC, DBTYPE_NUMERIC, NULL, &dst_len, NULL); @@ -2875,243 +2875,243 @@ static void test_getconversionsize(void) src_len = sizeof(i4); hr = IDataConvert_GetConversionSize(convert, DBTYPE_I4, DBTYPE_WSTR, &src_len, &dst_len, &i4); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_I4, DBTYPE_WSTR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i4); hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI4, DBTYPE_WSTR, &src_len, &dst_len, &i4); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI4, DBTYPE_WSTR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i2); hr = IDataConvert_GetConversionSize(convert, DBTYPE_I2, DBTYPE_WSTR, &src_len, &dst_len, &i2); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_I2, DBTYPE_WSTR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i2); hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI2, DBTYPE_WSTR, &src_len, &dst_len, &i2); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i1); hr = IDataConvert_GetConversionSize(convert, DBTYPE_I1, DBTYPE_WSTR, &src_len, &dst_len, &i1); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_I1, DBTYPE_WSTR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i2); hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI2, DBTYPE_WSTR, &src_len, &dst_len, &i2); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI2, DBTYPE_WSTR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(f4); hr = IDataConvert_GetConversionSize(convert, DBTYPE_R4, DBTYPE_WSTR, &src_len, &dst_len, &f4); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_R4, DBTYPE_WSTR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i8); hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI8, DBTYPE_WSTR, &src_len, &dst_len, &i8); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI8, DBTYPE_WSTR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i8); hr = IDataConvert_GetConversionSize(convert, DBTYPE_I8, DBTYPE_WSTR, &src_len, &dst_len, &i8); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_I8, DBTYPE_WSTR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(dbdate); hr = IDataConvert_GetConversionSize(convert, DBTYPE_DATE, DBTYPE_WSTR, &src_len, &dst_len, &dbdate); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_DATE, DBTYPE_WSTR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(dec); hr = IDataConvert_GetConversionSize(convert, DBTYPE_DECIMAL, DBTYPE_WSTR, &src_len, &dst_len, &dec); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_DECIMAL, DBTYPE_WSTR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_EMPTY, DBTYPE_WSTR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i4); hr = IDataConvert_GetConversionSize(convert, DBTYPE_I4, DBTYPE_STR, &src_len, &dst_len, &i4); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_I4, DBTYPE_STR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i4); hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI4, DBTYPE_STR, &src_len, &dst_len, &i4); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI4, DBTYPE_STR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i2); hr = IDataConvert_GetConversionSize(convert, DBTYPE_I2, DBTYPE_STR, &src_len, &dst_len, &i2); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_I2, DBTYPE_STR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i2); hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI2, DBTYPE_STR, &src_len, &dst_len, &i2); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i1); hr = IDataConvert_GetConversionSize(convert, DBTYPE_I1, DBTYPE_STR, &src_len, &dst_len, &i1); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_I1, DBTYPE_STR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i2); hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI2, DBTYPE_STR, &src_len, &dst_len, &i2); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI2, DBTYPE_STR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(f4); hr = IDataConvert_GetConversionSize(convert, DBTYPE_R4, DBTYPE_STR, &src_len, &dst_len, &f4); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_R4, DBTYPE_STR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i8); hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI8, DBTYPE_STR, &src_len, &dst_len, &i8); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_UI8, DBTYPE_STR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(i8); hr = IDataConvert_GetConversionSize(convert, DBTYPE_I8, DBTYPE_STR, &src_len, &dst_len, &i8); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_I8, DBTYPE_STR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(dbdate); hr = IDataConvert_GetConversionSize(convert, DBTYPE_DATE, DBTYPE_STR, &src_len, &dst_len, &dbdate); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_DATE, DBTYPE_STR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; src_len = sizeof(dec); hr = IDataConvert_GetConversionSize(convert, DBTYPE_DECIMAL, DBTYPE_STR, &src_len, &dst_len, &dec); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_DECIMAL, DBTYPE_STR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); dst_len = 0; hr = IDataConvert_GetConversionSize(convert, DBTYPE_EMPTY, DBTYPE_STR, NULL, &dst_len, NULL); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); - todo_wine ok(dst_len == 110, "%ld\n", dst_len); + ok(dst_len == 110, "%ld\n", dst_len); } static void test_converttobytes(void) -- 2.11.0