Nikolay Sivov : combase: Use public symbol for special PS context flag.

Alexandre Julliard julliard at winehq.org
Tue Sep 15 15:40:11 CDT 2020


Module: wine
Branch: master
Commit: 5466a3dccfea79f21879468e2a0d3cd86762c7e5
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=5466a3dccfea79f21879468e2a0d3cd86762c7e5

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Mon Sep 14 17:30:24 2020 +0300

combase: Use public symbol for special PS context flag.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 5fbec944eb..1181e393ad 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 66c99b5352..c66f0bbf8e 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 ca8a994f4e..2c938e6ff4 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 bdfb44bffa..51b4ce2411 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 */




More information about the wine-cvs mailing list