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>
oldstable
Nikolay Sivov 2016-03-10 12:51:33 +03:00 committed by Alexandre Julliard
parent 94c1c8e504
commit 1105acd26a
4 changed files with 30 additions and 9 deletions

View File

@ -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.@]
*

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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);