From: Akihiro Sagawa <sagawa.aki@gmail.com> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=59084 --- dlls/ole32/compobj_private.h | 5 ----- dlls/ole32/ole2.c | 6 ++++-- dlls/ole32/tests/dragdrop.c | 4 ++-- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/dlls/ole32/compobj_private.h b/dlls/ole32/compobj_private.h index 0708a3d7782..f21c0ea099d 100644 --- a/dlls/ole32/compobj_private.h +++ b/dlls/ole32/compobj_private.h @@ -89,11 +89,6 @@ static inline struct oletls *COM_CurrentInfo(void) return NtCurrentTeb()->ReservedForOle; } -static inline struct apartment * COM_CurrentApt(void) -{ - return COM_CurrentInfo()->apt; -} - #define CHARS_IN_GUID 39 /* including NULL */ /* from dlldata.c */ diff --git a/dlls/ole32/ole2.c b/dlls/ole32/ole2.c index b37b5b0e387..6d6aaea7ed4 100644 --- a/dlls/ole32/ole2.c +++ b/dlls/ole32/ole2.c @@ -536,6 +536,7 @@ static IDropTarget* get_droptarget_pointer(HWND hwnd) */ HRESULT WINAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget) { + WNDCLASSW wndClass; DWORD pid = 0; HRESULT hr; IStream *stream; @@ -544,9 +545,10 @@ HRESULT WINAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget) TRACE("(%p,%p)\n", hwnd, pDropTarget); - if (!COM_CurrentApt()) + /* for bug-for-bug compatibility, just verify class existence */ + if (!GetClassInfoW(NULL, OLEDD_DRAGTRACKERCLASS, &wndClass)) { - ERR("COM not initialized\n"); + ERR("OleInitialize not called\n"); return E_OUTOFMEMORY; } diff --git a/dlls/ole32/tests/dragdrop.c b/dlls/ole32/tests/dragdrop.c index a71884b771b..441b11a9595 100644 --- a/dlls/ole32/tests/dragdrop.c +++ b/dlls/ole32/tests/dragdrop.c @@ -788,7 +788,7 @@ static void test_mismatched_cleanup(void) ok(IsWindow(hwnd), "failed to create window\n"); hr = RegisterDragDrop(hwnd, &DropTarget); - todo_wine ok(hr == CO_E_NOTINITIALIZED, "expected CO_E_NOTINITIALIZED, got %#lx\n", hr); + ok(hr == CO_E_NOTINITIALIZED, "expected CO_E_NOTINITIALIZED, got %#lx\n", hr); DestroyWindow(hwnd); @@ -802,7 +802,7 @@ static void test_mismatched_cleanup(void) ok(IsWindow(hwnd), "failed to create window\n"); hr = RegisterDragDrop(hwnd, &DropTarget); - todo_wine ok(hr == S_OK, "expected S_OK, got %#lx\n", hr); + ok(hr == S_OK, "expected S_OK, got %#lx\n", hr); DestroyWindow(hwnd); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10245