From 5466a3dccfea79f21879468e2a0d3cd86762c7e5 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Mon, 14 Sep 2020 17:30:24 +0300 Subject: [PATCH] combase: Use public symbol for special PS context flag. Signed-off-by: Nikolay Sivov Signed-off-by: Huw Davies Signed-off-by: Alexandre Julliard --- dlls/combase/apartment.c | 4 ++-- dlls/combase/combase.c | 7 +++---- dlls/combase/combase_private.h | 3 +-- dlls/combase/marshal.c | 3 +-- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/dlls/combase/apartment.c b/dlls/combase/apartment.c index 5fbec944eb0..1181e393ada 100644 --- a/dlls/combase/apartment.c +++ b/dlls/combase/apartment.c @@ -1017,12 +1017,12 @@ static enum comclass_threadingmodel get_threading_model(const struct class_reg_d } HRESULT apartment_get_inproc_class_object(struct apartment *apt, const struct class_reg_data *regdata, - REFCLSID rclsid, REFIID riid, BOOL hostifnecessary, void **ppv) + REFCLSID rclsid, REFIID riid, DWORD class_context, void **ppv) { WCHAR dllpath[MAX_PATH+1]; BOOL apartment_threaded; - if (hostifnecessary) + if (!(class_context & CLSCTX_PS_DLL)) { enum comclass_threadingmodel model = get_threading_model(regdata); diff --git a/dlls/combase/combase.c b/dlls/combase/combase.c index 66c99b53523..c66f0bbf8e2 100644 --- a/dlls/combase/combase.c +++ b/dlls/combase/combase.c @@ -1589,8 +1589,7 @@ static HRESULT com_get_class_object(REFCLSID rclsid, DWORD clscontext, clsreg.u.actctx.threading_model = comclass->model; clsreg.origin = CLASS_REG_ACTCTX; - hr = apartment_get_inproc_class_object(apt, &clsreg, &comclass->clsid, riid, - !(clscontext & WINE_CLSCTX_DONT_HOST), obj); + hr = apartment_get_inproc_class_object(apt, &clsreg, &comclass->clsid, riid, clscontext, obj); ReleaseActCtx(data.hActCtx); apartment_release(apt); return hr; @@ -1631,7 +1630,7 @@ static HRESULT com_get_class_object(REFCLSID rclsid, DWORD clscontext, clsreg.u.hkey = hkey; clsreg.origin = CLASS_REG_REGISTRY; - hr = apartment_get_inproc_class_object(apt, &clsreg, rclsid, riid, !(clscontext & WINE_CLSCTX_DONT_HOST), obj); + hr = apartment_get_inproc_class_object(apt, &clsreg, rclsid, riid, clscontext, obj); RegCloseKey(hkey); } @@ -1666,7 +1665,7 @@ static HRESULT com_get_class_object(REFCLSID rclsid, DWORD clscontext, clsreg.u.hkey = hkey; clsreg.origin = CLASS_REG_REGISTRY; - hr = apartment_get_inproc_class_object(apt, &clsreg, rclsid, riid, !(clscontext & WINE_CLSCTX_DONT_HOST), obj); + hr = apartment_get_inproc_class_object(apt, &clsreg, rclsid, riid, clscontext, obj); RegCloseKey(hkey); } diff --git a/dlls/combase/combase_private.h b/dlls/combase/combase_private.h index ca8a994f4e2..2c938e6ff49 100644 --- a/dlls/combase/combase_private.h +++ b/dlls/combase/combase_private.h @@ -61,7 +61,6 @@ HRESULT open_appidkey_from_clsid(REFCLSID clsid, REGSAM access, HKEY *subkey) DE #define DM_EXECUTERPC (WM_USER + 0) /* WPARAM = 0, LPARAM = (struct dispatch_params *) */ #define DM_HOSTOBJECT (WM_USER + 1) /* WPARAM = 0, LPARAM = (struct host_object_params *) */ -#define WINE_CLSCTX_DONT_HOST 0x80000000 #define CHARS_IN_GUID 39 /* this is what is stored in TEB->ReservedForOle */ @@ -156,7 +155,7 @@ HRESULT apartment_increment_mta_usage(CO_MTA_USAGE_COOKIE *cookie) DECLSPEC_HIDD void apartment_decrement_mta_usage(CO_MTA_USAGE_COOKIE cookie) DECLSPEC_HIDDEN; struct apartment * apartment_get_mta(void) DECLSPEC_HIDDEN; HRESULT apartment_get_inproc_class_object(struct apartment *apt, const struct class_reg_data *regdata, - REFCLSID rclsid, REFIID riid, BOOL hostifnecessary, void **ppv) DECLSPEC_HIDDEN; + REFCLSID rclsid, REFIID riid, DWORD class_context, void **ppv) DECLSPEC_HIDDEN; HRESULT apartment_get_local_server_stream(struct apartment *apt, IStream **ret) DECLSPEC_HIDDEN; IUnknown *com_get_registered_class_object(const struct apartment *apartment, REFCLSID rclsid, DWORD clscontext) DECLSPEC_HIDDEN; diff --git a/dlls/combase/marshal.c b/dlls/combase/marshal.c index bdfb44bffac..51b4ce24115 100644 --- a/dlls/combase/marshal.c +++ b/dlls/combase/marshal.c @@ -881,8 +881,7 @@ static inline HRESULT get_facbuf_for_iid(REFIID riid, IPSFactoryBuffer **facbuf) hr = CoGetPSClsid(riid, &clsid); if (hr != S_OK) return hr; - return CoGetClassObject(&clsid, CLSCTX_INPROC_SERVER | WINE_CLSCTX_DONT_HOST, - NULL, &IID_IPSFactoryBuffer, (LPVOID*)facbuf); + return CoGetClassObject(&clsid, CLSCTX_INPROC_SERVER | CLSCTX_PS_DLL, NULL, &IID_IPSFactoryBuffer, (void **)facbuf); } /* marshals an object into a STDOBJREF structure */