Module: wine Branch: refs/heads/master Commit: fcba783fc794e5e822edc107570c77b4c073e956 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=fcba783fc794e5e822edc107...
Author: Robert Shearman rob@codeweavers.com Date: Tue Jan 10 20:08:41 2006 +0100
ole: Add an accessor function for an apartment's window.
---
dlls/ole32/compobj.c | 6 ++++++ dlls/ole32/compobj_private.h | 1 + dlls/ole32/rpc.c | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c index 6f33091..8283312 100644 --- a/dlls/ole32/compobj.c +++ b/dlls/ole32/compobj.c @@ -422,6 +422,12 @@ static LRESULT CALLBACK apartment_wndpro } }
+HWND apartment_getwindow(struct apartment *apt) +{ + assert(apt->model & COINIT_APARTMENTTHREADED); + return apt->win; +} + void apartment_joinmta(void) { apartment_addref(MTA); diff --git a/dlls/ole32/compobj_private.h b/dlls/ole32/compobj_private.h index 6dd7d4e..bb54e3b 100644 --- a/dlls/ole32/compobj_private.h +++ b/dlls/ole32/compobj_private.h @@ -230,6 +230,7 @@ static inline HRESULT apartment_getoxid( *oxid = apt->oxid; return S_OK; } +HWND apartment_getwindow(struct apartment *apt); void apartment_joinmta(void);
diff --git a/dlls/ole32/rpc.c b/dlls/ole32/rpc.c index 1fa88f6..31ef77c 100644 --- a/dlls/ole32/rpc.c +++ b/dlls/ole32/rpc.c @@ -254,7 +254,7 @@ static HRESULT WINAPI RpcChannelBuffer_S
TRACE("Calling apartment thread 0x%08lx...\n", apt->tid);
- if (!PostMessageW(apt->win, DM_EXECUTERPC, 0, (LPARAM)params)) + if (!PostMessageW(apartment_getwindow(apt), DM_EXECUTERPC, 0, (LPARAM)params)) { ERR("PostMessage failed with error %ld\n", GetLastError()); hr = HRESULT_FROM_WIN32(GetLastError()); @@ -509,7 +509,7 @@ static void __RPC_STUB dispatch_rpc(RPC_
TRACE("Calling apartment thread 0x%08lx...\n", apt->tid);
- if (PostMessageW(apt->win, DM_EXECUTERPC, 0, (LPARAM)params)) + if (PostMessageW(apartment_getwindow(apt), DM_EXECUTERPC, 0, (LPARAM)params)) WaitForSingleObject(params->handle, INFINITE); else {