You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Added oleaut32_typelib_dispatch patchset
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
From b85edfd29c3ae8a67ddf079554cbf3ca11775a21 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 14 Jul 2025 10:15:14 +1000
|
||||
Subject: [PATCH] msado15: ADOConnectionConstruction15::WrapDSOandSession semi
|
||||
stub
|
||||
|
||||
---
|
||||
dlls/msado15/connection.c | 18 +++++++++++++++++-
|
||||
1 file changed, 17 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/msado15/connection.c b/dlls/msado15/connection.c
|
||||
index 568eb8b12c9..ded4a401b27 100644
|
||||
--- a/dlls/msado15/connection.c
|
||||
+++ b/dlls/msado15/connection.c
|
||||
@@ -954,7 +954,23 @@ static HRESULT WINAPI adoconstruct_WrapDSOandSession(ADOConnectionConstruction15
|
||||
{
|
||||
struct connection *connection = impl_from_ADOConnectionConstruction15( iface );
|
||||
FIXME("%p, %p, %p\n", connection, dso, session);
|
||||
- return E_NOTIMPL;
|
||||
+
|
||||
+ if (connection->session)
|
||||
+ IUnknown_Release( connection->session );
|
||||
+ connection->session = session;
|
||||
+ if (connection->session)
|
||||
+ IUnknown_AddRef(connection->session);
|
||||
+
|
||||
+ if (connection->dso)
|
||||
+ IDBInitialize_Release( connection->dso );
|
||||
+ connection->dso = NULL;
|
||||
+ if (dso)
|
||||
+ IUnknown_QueryInterface( dso, &IID_IDBInitialize, (void**)&connection->dso );
|
||||
+
|
||||
+ if (dso && session)
|
||||
+ connection->state = adStateOpen;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
struct ADOConnectionConstruction15Vtbl ado_construct_vtbl =
|
||||
--
|
||||
2.47.2
|
||||
|
@@ -0,0 +1,27 @@
|
||||
From 95c5e58d9f78cefe837f4ce1c9d56fa0e70e3ed6 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 22 Jul 2025 12:06:15 +1000
|
||||
Subject: [PATCH] oleaut32: Treat Interfaces with TYPEFLAG_FDISPATCHABLE flags
|
||||
as an IDispatch.
|
||||
|
||||
---
|
||||
dlls/oleaut32/typelib.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
|
||||
index 856e07c2811..cc0dc4f3c18 100644
|
||||
--- a/dlls/oleaut32/typelib.c
|
||||
+++ b/dlls/oleaut32/typelib.c
|
||||
@@ -7917,7 +7917,8 @@ static HRESULT WINAPI ITypeInfo_fnGetRefTypeInfo(
|
||||
pTypeInfoImpl->ref = 0;
|
||||
list_init(&pTypeInfoImpl->custdata_list);
|
||||
|
||||
- if (This->typeattr.typekind == TKIND_INTERFACE)
|
||||
+ if (This->typeattr.typekind == TKIND_INTERFACE &&
|
||||
+ This->typeattr.wTypeFlags & TYPEFLAG_FDISPATCHABLE)
|
||||
pTypeInfoImpl->typeattr.typekind = TKIND_DISPATCH;
|
||||
else
|
||||
pTypeInfoImpl->typeattr.typekind = TKIND_INTERFACE;
|
||||
--
|
||||
2.47.2
|
||||
|
2
patches/oleaut32_typelib_dispatch/definition
Normal file
2
patches/oleaut32_typelib_dispatch/definition
Normal file
@@ -0,0 +1,2 @@
|
||||
Fixes: [31675] oleaut32: Use correct flags to detect IDispatch interfaces.
|
||||
Fixes: msado15: Implement ADOConnectionConstruction15::WrapDSOandSession.
|
Reference in New Issue
Block a user