From 3fdfea778638f85184f2b069db108c81be3c6cc5 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Tue, 15 Nov 2016 20:26:50 +0300 Subject: [PATCH] oledb32: Implement GetBasicErrorInfo(). Signed-off-by: Nikolay Sivov Signed-off-by: Alistair Leslie-Hughes Signed-off-by: Alexandre Julliard --- dlls/oledb32/errorinfo.c | 10 ++++++---- dlls/oledb32/tests/database.c | 7 ++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/dlls/oledb32/errorinfo.c b/dlls/oledb32/errorinfo.c index 48db723eca..dd39173c4a 100644 --- a/dlls/oledb32/errorinfo.c +++ b/dlls/oledb32/errorinfo.c @@ -267,19 +267,21 @@ static HRESULT WINAPI errorrec_AddErrorRecord(IErrorRecords *iface, ERRORINFO *p return S_OK; } -static HRESULT WINAPI errorrec_GetBasicErrorInfo(IErrorRecords *iface, ULONG index, ERRORINFO *pErrorInfo) +static HRESULT WINAPI errorrec_GetBasicErrorInfo(IErrorRecords *iface, ULONG index, ERRORINFO *info) { ErrorInfoImpl *This = impl_from_IErrorRecords(iface); - FIXME("(%p)->(%u %p)\n", This, index, pErrorInfo); + TRACE("(%p)->(%u %p)\n", This, index, info); - if(!pErrorInfo) + if (!info) return E_INVALIDARG; if (index >= This->count) return DB_E_BADRECORDNUM; - return E_NOTIMPL; + index = This->count - index - 1; + *info = This->records[index].info; + return S_OK; } static HRESULT WINAPI errorrec_GetCustomErrorObject(IErrorRecords *iface, ULONG index, diff --git a/dlls/oledb32/tests/database.c b/dlls/oledb32/tests/database.c index 980dacd418..b45ef4d581 100644 --- a/dlls/oledb32/tests/database.c +++ b/dlls/oledb32/tests/database.c @@ -434,11 +434,8 @@ static void test_errorinfo(void) ok(hr == DB_E_BADRECORDNUM, "got %08x\n", hr); hr = IErrorRecords_GetBasicErrorInfo(errrecs, 0, &info3); - todo_wine ok(hr == S_OK, "got %08x\n", hr); - if(hr == S_OK) - { - ok(info3.dwMinor == 2, "expected 2 got %d\n", info3.dwMinor); - } + ok(hr == S_OK, "got %08x\n", hr); + ok(info3.dwMinor == 2, "expected 2 got %d\n", info3.dwMinor); IErrorRecords_Release(errrecs); IUnknown_Release(unk);