Huw Davies : oledb32: Add a stub IDCInfo interface.

Alexandre Julliard julliard at winehq.org
Wed Sep 9 09:58:23 CDT 2009


Module: wine
Branch: master
Commit: e789b1e5c0d27010c1d7edd05420cd56abd5bb19
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e789b1e5c0d27010c1d7edd05420cd56abd5bb19

Author: Huw Davies <huw at codeweavers.com>
Date:   Wed Sep  9 10:49:35 2009 +0100

oledb32: Add a stub IDCInfo interface.

---

 dlls/oledb32/convert.c |   62 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 61 insertions(+), 1 deletions(-)

diff --git a/dlls/oledb32/convert.c b/dlls/oledb32/convert.c
index ca2040c..06d49b0 100644
--- a/dlls/oledb32/convert.c
+++ b/dlls/oledb32/convert.c
@@ -37,6 +37,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(oledb);
 typedef struct
 {
     const struct IDataConvertVtbl *lpVtbl;
+    const struct IDCInfoVtbl *lpDCInfoVtbl;
 
     LONG ref;
 } convert;
@@ -46,6 +47,11 @@ static inline convert *impl_from_IDataConvert(IDataConvert *iface)
     return (convert *)((char*)iface - FIELD_OFFSET(convert, lpVtbl));
 }
 
+static inline convert *impl_from_IDCInfo(IDCInfo *iface)
+{
+    return (convert *)((char*)iface - FIELD_OFFSET(convert, lpDCInfoVtbl));
+}
+
 static HRESULT WINAPI convert_QueryInterface(IDataConvert* iface,
                                              REFIID riid,
                                              void **obj)
@@ -60,6 +66,10 @@ static HRESULT WINAPI convert_QueryInterface(IDataConvert* iface,
     {
         *obj = iface;
     }
+    else if(IsEqualIID(riid, &IID_IDCInfo))
+    {
+        *obj = &This->lpDCInfoVtbl;
+    }
     else
     {
         FIXME("interface %s not implemented\n", debugstr_guid(riid));
@@ -131,7 +141,6 @@ static HRESULT WINAPI convert_GetConversionSize(IDataConvert* iface,
     FIXME("(%p)->(%d, %d, %p, %p, %p): stub\n", This, wSrcType, wDstType, pcbSrcLength, pcbDstLength, pSrc);
 
     return E_NOTIMPL;
-
 }
 
 static const struct IDataConvertVtbl convert_vtbl =
@@ -144,6 +153,56 @@ static const struct IDataConvertVtbl convert_vtbl =
     convert_GetConversionSize
 };
 
+static HRESULT WINAPI dcinfo_QueryInterface(IDCInfo* iface, REFIID riid, void **obj)
+{
+    convert *This = impl_from_IDCInfo(iface);
+
+    return IDataConvert_QueryInterface((IDataConvert *)This, riid, obj);
+}
+
+static ULONG WINAPI dcinfo_AddRef(IDCInfo* iface)
+{
+    convert *This = impl_from_IDCInfo(iface);
+
+    return IDataConvert_AddRef((IDataConvert *)This);
+}
+
+static ULONG WINAPI dcinfo_Release(IDCInfo* iface)
+{
+    convert *This = impl_from_IDCInfo(iface);
+
+    return IDataConvert_Release((IDataConvert *)This);
+}
+
+static HRESULT WINAPI dcinfo_GetInfo(IDCInfo *iface, ULONG num, DCINFOTYPE types[], DCINFO **info)
+{
+    convert *This = impl_from_IDCInfo(iface);
+
+    FIXME("(%p)->(%d, %p, %p): stub\n", This, num, types, info);
+
+    *info = NULL;
+
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI dcinfo_SetInfo(IDCInfo* iface, ULONG num, DCINFO info[])
+{
+    convert *This = impl_from_IDCInfo(iface);
+
+    FIXME("(%p)->(%d, %p): stub\n", This, num, info);
+
+    return E_NOTIMPL;
+}
+
+static const struct IDCInfoVtbl dcinfo_vtbl =
+{
+    dcinfo_QueryInterface,
+    dcinfo_AddRef,
+    dcinfo_Release,
+    dcinfo_GetInfo,
+    dcinfo_SetInfo
+};
+
 HRESULT create_oledb_convert(IUnknown *outer, void **obj)
 {
     convert *This;
@@ -158,6 +217,7 @@ HRESULT create_oledb_convert(IUnknown *outer, void **obj)
     if(!This) return E_OUTOFMEMORY;
 
     This->lpVtbl = &convert_vtbl;
+    This->lpDCInfoVtbl = &dcinfo_vtbl;
     This->ref = 1;
 
     *obj = &This->lpVtbl;




More information about the wine-cvs mailing list