oledb32: Implement GetConversionSize DBTYPE_WSTR->DBTYPE_WSTR

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Sat Apr 20 04:43:05 CDT 2013


Hi,


Changelog:
     oledb32: Implement GetConversionSize DBTYPE_WSTR->DBTYPE_WSTR


Best Regards
  Alistair Leslie-Hughes
-------------- next part --------------
>From b1c6f560b5b4d01b111df1d22ba581974a5c3f84 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Fri, 19 Apr 2013 14:22:10 +1000
Subject: [PATCH] Implement GetConversionSize DBTYPE_WSTR->DBTYPE_WSTR
To: wine-patches <wine-patches at winehq.org>

---
 dlls/oledb32/convert.c       |   13 +++++++++++++
 dlls/oledb32/tests/convert.c |    6 ++++++
 2 files changed, 19 insertions(+)

diff --git a/dlls/oledb32/convert.c b/dlls/oledb32/convert.c
index 3b3f9df..5ff042a 100644
--- a/dlls/oledb32/convert.c
+++ b/dlls/oledb32/convert.c
@@ -1095,6 +1095,19 @@ static HRESULT WINAPI convert_GetConversionSize(IDataConvert* iface,
         }
     }
     break;
+    case DBTYPE_WSTR:
+    {
+        switch (src_type)
+        {
+        case DBTYPE_WSTR:
+            *dst_len = (lstrlenW(src) + 1) * sizeof(WCHAR);
+            break;
+        default:
+            FIXME("unimplemented for %04x -> DBTYPE_STR\n", src_type);
+            return E_NOTIMPL;
+        }
+    }
+    break;
     default:
         FIXME("unimplemented for conversion %d->%d\n", src_type, dst_type);
         return E_NOTIMPL;
diff --git a/dlls/oledb32/tests/convert.c b/dlls/oledb32/tests/convert.c
index 4f50a77..cb0a0b7 100644
--- a/dlls/oledb32/tests/convert.c
+++ b/dlls/oledb32/tests/convert.c
@@ -2482,6 +2482,7 @@ static void test_getconversionsize(void)
     DBLENGTH dst_len;
     HRESULT hr;
     BSTR str;
+    static WCHAR strW[] = {'t','e','s','t',0};
 
     hr = CoCreateInstance(&CLSID_OLEDB_CONVERSIONLIBRARY, NULL, CLSCTX_INPROC_SERVER, &IID_IDataConvert, (void**)&convert);
     if(FAILED(hr))
@@ -2511,6 +2512,11 @@ static void test_getconversionsize(void)
     ok(dst_len == sizeof(VARIANT), "%ld\n", dst_len);
     SysFreeString(str);
 
+    dst_len = 0;
+    hr = IDataConvert_GetConversionSize(convert, DBTYPE_WSTR, DBTYPE_WSTR, NULL, &dst_len, strW);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    ok(dst_len == 10, "%ld\n", dst_len);
+
     IDataConvert_Release(convert);
 }
 
-- 
1.7.10.4



More information about the wine-patches mailing list