Huw Davies : oledb32: Add CanConvert support for DBTYPE_FILETIME.
Alexandre Julliard
julliard at winehq.org
Tue Oct 27 09:46:34 CDT 2009
Module: wine
Branch: master
Commit: ed53dafcab9935682d4c8184ce9f4c3dba7a07a5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ed53dafcab9935682d4c8184ce9f4c3dba7a07a5
Author: Huw Davies <huw at codeweavers.com>
Date: Tue Oct 27 12:17:27 2009 +0000
oledb32: Add CanConvert support for DBTYPE_FILETIME.
---
dlls/oledb32/convert.c | 18 +++++++++++++++---
dlls/oledb32/tests/convert.c | 27 ++++++++++++++-------------
2 files changed, 29 insertions(+), 16 deletions(-)
diff --git a/dlls/oledb32/convert.c b/dlls/oledb32/convert.c
index ad86398..e5443cb 100644
--- a/dlls/oledb32/convert.c
+++ b/dlls/oledb32/convert.c
@@ -452,6 +452,7 @@ static HRESULT WINAPI convert_CanConvert(IDataConvert* iface,
{
case DBTYPE_DATE:
case DBTYPE_GUID:
+ case DBTYPE_FILETIME:
return S_OK;
default:
if(dst_base_type == DBTYPE_DBTIMESTAMP) return S_OK;
@@ -462,7 +463,8 @@ static HRESULT WINAPI convert_CanConvert(IDataConvert* iface,
switch(dst_base_type)
{
case DBTYPE_NULL:
- case DBTYPE_VARIANT: return S_OK;
+ case DBTYPE_VARIANT:
+ case DBTYPE_FILETIME: return S_OK;
default: return S_FALSE;
}
@@ -486,8 +488,12 @@ static HRESULT WINAPI convert_CanConvert(IDataConvert* iface,
case DBTYPE_I8:
if(common_class(dst_class)) return S_OK;
- if(dst_base_type == DBTYPE_BYTES) return S_OK;
- return S_FALSE;
+ switch(dst_base_type)
+ {
+ case DBTYPE_BYTES:
+ case DBTYPE_FILETIME: return S_OK;
+ default: return S_FALSE;
+ }
case DBTYPE_DATE:
switch(dst_class)
@@ -502,6 +508,7 @@ static HRESULT WINAPI convert_CanConvert(IDataConvert* iface,
case DBTYPE_I8:
case DBTYPE_DATE:
case DBTYPE_DBDATE:
+ case DBTYPE_FILETIME:
return S_OK;
default: return S_FALSE;
}
@@ -524,6 +531,7 @@ static HRESULT WINAPI convert_CanConvert(IDataConvert* iface,
case DBTYPE_GUID:
case DBTYPE_BYTES:
case DBTYPE_DBDATE:
+ case DBTYPE_FILETIME:
return S_OK;
default: return S_FALSE;
}
@@ -567,6 +575,9 @@ static HRESULT WINAPI convert_CanConvert(IDataConvert* iface,
default: return S_FALSE;
}
+ case DBTYPE_FILETIME:
+ if(dst_class == DBTYPE_I8) return S_OK;
+ /* fall through */
case DBTYPE_DBDATE:
switch(dst_class)
{
@@ -576,6 +587,7 @@ static HRESULT WINAPI convert_CanConvert(IDataConvert* iface,
case DBTYPE_BSTR:
case DBTYPE_VARIANT:
case DBTYPE_DBDATE:
+ case DBTYPE_FILETIME:
return S_OK;
default: return S_FALSE;
}
diff --git a/dlls/oledb32/tests/convert.c b/dlls/oledb32/tests/convert.c
index a1378cf..6cd44f5 100644
--- a/dlls/oledb32/tests/convert.c
+++ b/dlls/oledb32/tests/convert.c
@@ -150,22 +150,22 @@ struct can_convert
DWORD can_convert_to;
} simple_convert[] =
{
- {DBTYPE_EMPTY, 0x23bfd9ff},
- {DBTYPE_NULL, 0x00001002},
+ {DBTYPE_EMPTY, 0x63bfd9ff},
+ {DBTYPE_NULL, 0x40001002},
{DBTYPE_I2, 0x3b9fd9ff},
{DBTYPE_I4, 0x3bdfd9ff},
{DBTYPE_R4, 0x3b9fd9ff},
{DBTYPE_R8, 0x3b9fd9ff},
{DBTYPE_CY, 0x039fd97f},
- {DBTYPE_DATE, 0x399f99bf},
+ {DBTYPE_DATE, 0x799f99bf},
- {DBTYPE_BSTR, 0x3bffd9ff},
- {DBTYPE_IDISPATCH, 0x3bffffff},
+ {DBTYPE_BSTR, 0x7bffd9ff},
+ {DBTYPE_IDISPATCH, 0x7bffffff},
{DBTYPE_ERROR, 0x01001500},
{DBTYPE_BOOL, 0x039fd9ff},
- {DBTYPE_VARIANT, 0x3bffffff},
+ {DBTYPE_VARIANT, 0x7bffffff},
{DBTYPE_IUNKNOWN, 0x00003203},
{DBTYPE_DECIMAL, 0x3b9fd97f},
{DBTYPE_I1, 0x3b9fd9ff},
@@ -173,20 +173,21 @@ struct can_convert
{DBTYPE_UI1, 0x3b9fd9ff},
{DBTYPE_UI2, 0x3b9fd9ff},
{DBTYPE_UI4, 0x3bdfd9ff},
- {DBTYPE_I8, 0x03dfd97f},
+ {DBTYPE_I8, 0x43dfd97f},
- {DBTYPE_UI8, 0x03dfd97f},
+ {DBTYPE_UI8, 0x43dfd97f},
{DBTYPE_GUID, 0x01e01103},
{DBTYPE_BYTES, 0x01fc110b},
- {DBTYPE_STR, 0x3bffd9ff},
+ {DBTYPE_STR, 0x7bffd9ff},
- {DBTYPE_WSTR, 0x3bffd9ff},
+ {DBTYPE_WSTR, 0x7bffd9ff},
{DBTYPE_NUMERIC, 0x039fd97f},
{DBTYPE_UDT, 0x00000000},
- {DBTYPE_DBDATE, 0x39801183},
+ {DBTYPE_DBDATE, 0x79801183},
- {DBTYPE_DBTIME, 0x39801183},
- {DBTYPE_DBTIMESTAMP, 0x39801183}
+ {DBTYPE_DBTIME, 0x79801183},
+ {DBTYPE_DBTIMESTAMP, 0x79801183},
+ {DBTYPE_FILETIME, 0x79981183}
};
More information about the wine-cvs
mailing list