Module: wine Branch: master Commit: 83d33b6f94b67f311b1f4fb34c49ba5ece16210e URL: http://source.winehq.org/git/wine.git/?a=commit;h=83d33b6f94b67f311b1f4fb34c...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Thu Feb 2 02:03:19 2017 +0300
oledb32: Added GetDataSource() for DataLinks object.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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);