Nikolay Sivov : oledb32: Added GetDataSource() for DataLinks object.
Alexandre Julliard
julliard at winehq.org
Thu Feb 2 15:49:26 CST 2017
Module: wine
Branch: master
Commit: 83d33b6f94b67f311b1f4fb34c49ba5ece16210e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=83d33b6f94b67f311b1f4fb34c49ba5ece16210e
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Thu Feb 2 02:03:19 2017 +0300
oledb32: Added GetDataSource() for DataLinks object.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/oledb32/datainit.c | 15 +++++++++++----
dlls/oledb32/dslocator.c | 5 +++--
dlls/oledb32/oledb_private.h | 3 +++
3 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/dlls/oledb32/datainit.c b/dlls/oledb32/datainit.c
index 8d6b8ef..7401c88 100644
--- a/dlls/oledb32/datainit.c
+++ b/dlls/oledb32/datainit.c
@@ -587,12 +587,10 @@ static WCHAR *strstriW(const WCHAR *str, const WCHAR *sub)
return r;
}
-static HRESULT WINAPI datainit_GetDataSource(IDataInitialize *iface, IUnknown *outer, DWORD clsctx,
- LPWSTR initstring, REFIID riid, IUnknown **datasource)
+HRESULT get_data_source(IUnknown *outer, DWORD clsctx, LPWSTR initstring, REFIID riid, IUnknown **datasource)
{
static const WCHAR providerW[] = {'P','r','o','v','i','d','e','r','=',0};
static const WCHAR msdasqlW[] = {'M','S','D','A','S','Q','L',0};
- datainit *This = impl_from_IDataInitialize(iface);
BOOL datasource_created = FALSE;
IDBProperties *dbprops;
DBPROPSET *propset;
@@ -600,7 +598,6 @@ static HRESULT WINAPI datainit_GetDataSource(IDataInitialize *iface, IUnknown *o
CLSID provclsid;
HRESULT hr;
- TRACE("(%p)->(%p 0x%x %s %s %p)\n", This, outer, clsctx, debugstr_w(initstring), debugstr_guid(riid), datasource);
/* first get provider name */
provclsid = IID_NULL;
@@ -727,6 +724,16 @@ static HRESULT WINAPI datainit_GetDataSource(IDataInitialize *iface, IUnknown *o
return hr;
}
+static HRESULT WINAPI datainit_GetDataSource(IDataInitialize *iface, IUnknown *outer, DWORD clsctx,
+ LPWSTR initstring, REFIID riid, IUnknown **datasource)
+{
+ datainit *This = impl_from_IDataInitialize(iface);
+
+ TRACE("(%p)->(%p 0x%x %s %s %p)\n", This, outer, clsctx, debugstr_w(initstring), debugstr_guid(riid), datasource);
+
+ return get_data_source(outer, clsctx, initstring, riid, datasource);
+}
+
/* returns character length of string representation */
static int get_propvalue_length(DBPROP *prop)
{
diff --git a/dlls/oledb32/dslocator.c b/dlls/oledb32/dslocator.c
index 0d1a4a3..11ed3e9 100644
--- a/dlls/oledb32/dslocator.c
+++ b/dlls/oledb32/dslocator.c
@@ -221,9 +221,10 @@ static ULONG WINAPI datainitialize_Release(IDataInitialize *iface)
static HRESULT WINAPI datainitialize_GetDataSource(IDataInitialize *iface,
IUnknown *outer, DWORD context, LPWSTR initstring, REFIID riid, IUnknown **datasource)
{
- FIXME("(%p)->(%p %#x %s %s %p): stub\n", iface, outer, context, debugstr_w(initstring), debugstr_guid(riid),
+ TRACE("(%p)->(%p %#x %s %s %p)\n", iface, outer, context, debugstr_w(initstring), debugstr_guid(riid),
datasource);
- return E_NOTIMPL;
+
+ return get_data_source(outer, context, initstring, riid, datasource);
}
static HRESULT WINAPI datainitialize_GetInitializationString(IDataInitialize *iface, IUnknown *datasource,
diff --git a/dlls/oledb32/oledb_private.h b/dlls/oledb32/oledb_private.h
index 8b1a40f..0b71a81 100644
--- a/dlls/oledb32/oledb_private.h
+++ b/dlls/oledb32/oledb_private.h
@@ -23,6 +23,9 @@ HRESULT create_error_info(IUnknown *outer, void **obj) DECLSPEC_HIDDEN;
HRESULT create_oledb_rowpos(IUnknown *outer, void **obj) DECLSPEC_HIDDEN;
HRESULT create_dslocator(IUnknown *outer, void **obj) DECLSPEC_HIDDEN;
+HRESULT get_data_source(IUnknown *outer, DWORD clsctx, LPWSTR initstring, REFIID riid,
+ IUnknown **datasource) DECLSPEC_HIDDEN;
+
static inline void *heap_alloc(size_t len)
{
return HeapAlloc(GetProcessHeap(), 0, len);
More information about the wine-cvs
mailing list