Module: wine Branch: master Commit: 1105acd26a822b3b82f5c4ff550438cbe1da84ef URL: http://source.winehq.org/git/wine.git/?a=commit;h=1105acd26a822b3b82f5c4ff55...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Thu Mar 10 12:51:33 2016 +0300
ole32: Implement CoGetCurrentLogicalThreadId().
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ole32/compobj.c | 14 ++++++++++++++ dlls/ole32/ole2stubs.c | 9 --------- dlls/ole32/tests/compobj.c | 15 +++++++++++++++ include/objbase.h | 1 + 4 files changed, 30 insertions(+), 9 deletions(-)
diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c index de7438c..91f11f6 100644 --- a/dlls/ole32/compobj.c +++ b/dlls/ole32/compobj.c @@ -3850,6 +3850,20 @@ DWORD WINAPI CoGetCurrentProcess(void) return GetCurrentProcessId(); }
+/*********************************************************************** + * CoGetCurrentLogicalThreadId [OLE32.@] + */ +HRESULT WINAPI CoGetCurrentLogicalThreadId(GUID *id) +{ + TRACE("(%p)\n", id); + + if (!id) + return E_INVALIDARG; + + *id = COM_CurrentCausalityId(); + return S_OK; +} + /****************************************************************************** * CoRegisterMessageFilter [OLE32.@] * diff --git a/dlls/ole32/ole2stubs.c b/dlls/ole32/ole2stubs.c index 1f8b9f8..90862d0 100644 --- a/dlls/ole32/ole2stubs.c +++ b/dlls/ole32/ole2stubs.c @@ -83,12 +83,3 @@ HRESULT WINAPI CoGetCallerTID(LPDWORD lpdwTID) FIXME("stub!\n"); return E_NOTIMPL; } - -/*********************************************************************** - * CoGetCurrentLogicalThreadId [OLE32.@] - */ -HRESULT WINAPI CoGetCurrentLogicalThreadId(GUID *pguid) -{ - FIXME(": stub\n"); - return E_NOTIMPL; -} diff --git a/dlls/ole32/tests/compobj.c b/dlls/ole32/tests/compobj.c index 183d8a0..0f562a2 100644 --- a/dlls/ole32/tests/compobj.c +++ b/dlls/ole32/tests/compobj.c @@ -3093,6 +3093,20 @@ static void test_IMallocSpy(void) ok(hr == CO_E_OBJNOTREG, "got 0x%08x\n", hr); }
+static void test_CoGetCurrentLogicalThreadId(void) +{ + HRESULT hr; + GUID id; + + hr = CoGetCurrentLogicalThreadId(NULL); + ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); + + id = GUID_NULL; + hr = CoGetCurrentLogicalThreadId(&id); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(!IsEqualGUID(&id, &GUID_NULL), "got null id\n"); +} + static void init_funcs(void) { HMODULE hOle32 = GetModuleHandleA("ole32"); @@ -3161,4 +3175,5 @@ START_TEST(compobj) test_OleRegGetUserType(); test_CoGetApartmentType(); test_IMallocSpy(); + test_CoGetCurrentLogicalThreadId(); } diff --git a/include/objbase.h b/include/objbase.h index 02656d1..43f3357 100644 --- a/include/objbase.h +++ b/include/objbase.h @@ -285,6 +285,7 @@ HRESULT WINAPI CoInitialize(LPVOID lpReserved); HRESULT WINAPI CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit); void WINAPI CoUninitialize(void); DWORD WINAPI CoGetCurrentProcess(void); +HRESULT WINAPI CoGetCurrentLogicalThreadId(GUID *id); HRESULT WINAPI CoGetApartmentType(APTTYPE *type, APTTYPEQUALIFIER *qualifier);
HINSTANCE WINAPI CoLoadLibrary(LPOLESTR lpszLibName, BOOL bAutoFree);