diff --git a/dlls/oledb32/errorinfo.c b/dlls/oledb32/errorinfo.c index 48db723eca6..dd39173c4a6 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 980dacd4181..b45ef4d581c 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);