mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Added patch to implement marshalling for TKIND_COCLASS.
This commit is contained in:
parent
03fc84498f
commit
b0a0836e95
@ -34,13 +34,14 @@ Wine. All those differences are also documented on the
|
||||
Included bug fixes and improvements
|
||||
-----------------------------------
|
||||
|
||||
**Bug fixes and features included in the next upcoming release [9]:**
|
||||
**Bug fixes and features included in the next upcoming release [10]:**
|
||||
|
||||
* Add partial implementation of ITfThreadMgrEx_ActivateEx ([Wine Bug #39564](https://bugs.winehq.org/show_bug.cgi?id=39564))
|
||||
* Add stub kernel32.FreeUserPhysicalPages ([Wine Bug #39543](https://bugs.winehq.org/show_bug.cgi?id=39543))
|
||||
* Add stubs for advapi32.RegCreateKeyTransacted[A/W]
|
||||
* CompareString should abort on first non-matching character ([Wine Bug #37556](https://bugs.winehq.org/show_bug.cgi?id=37556))
|
||||
* Do not require SeBackupPrivilege in load_registry and unload_registry ([Wine Bug #28729](https://bugs.winehq.org/show_bug.cgi?id=28729))
|
||||
* Implement marshalling for TKIND_COCLASS ([Wine Bug #19016](https://bugs.winehq.org/show_bug.cgi?id=19016))
|
||||
* Implement stub for hid.HidP_TranslateUsagesToI8042ScanCodes ([Wine Bug #39447](https://bugs.winehq.org/show_bug.cgi?id=39447))
|
||||
* Implement support for "Purist Mode" (override for all dlls)
|
||||
* Properly handle multiple registry notifications per key
|
||||
|
1
debian/changelog
vendored
1
debian/changelog
vendored
@ -11,6 +11,7 @@ wine-staging (1.7.55) UNRELEASED; urgency=low
|
||||
wineserver call.
|
||||
* Added patch to make sure CompareString immediately aborts on first non-
|
||||
matching character.
|
||||
* Added patch to implement marshalling for TKIND_COCLASS.
|
||||
* Remove disabled shell32-Quoted_ShellExecute patchset (bug already fixed and
|
||||
all tests pass).
|
||||
* Remove disabled reg-Cleanup patchset (only cleanup and not actively
|
||||
|
@ -0,0 +1,103 @@
|
||||
From 9b845e845d3f3b9895571a9865747bf28501d47c Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 14 Nov 2015 23:14:18 +0100
|
||||
Subject: oleaut32/tests: Add test for calling method with coclass argument.
|
||||
|
||||
---
|
||||
dlls/oleaut32/tests/tmarshal.c | 30 +++++++++++++++++++++++++++---
|
||||
dlls/oleaut32/tests/tmarshal.idl | 3 +++
|
||||
dlls/oleaut32/tests/tmarshal_dispids.h | 1 +
|
||||
3 files changed, 31 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/oleaut32/tests/tmarshal.c b/dlls/oleaut32/tests/tmarshal.c
|
||||
index 4a990af..96399cc 100644
|
||||
--- a/dlls/oleaut32/tests/tmarshal.c
|
||||
+++ b/dlls/oleaut32/tests/tmarshal.c
|
||||
@@ -598,7 +598,7 @@ static HRESULT WINAPI Widget_CloneCoclass(
|
||||
ApplicationObject2 **ppVal)
|
||||
{
|
||||
trace("CloneCoclass()\n");
|
||||
- return S_OK;
|
||||
+ return Widget_QueryInterface(iface, &IID_IWidget, (void **)ppVal);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI Widget_Value(
|
||||
@@ -909,6 +909,15 @@ static HRESULT WINAPI Widget_VarArg_Ref_Run(
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
+static HRESULT WINAPI Widget_Coclass(
|
||||
+ IWidget *iface,
|
||||
+ ApplicationObject2 *p)
|
||||
+{
|
||||
+ trace("Coclass(%p)\n", p);
|
||||
+ ok(p == (ApplicationObject2 *)iface, "expected p == %p, got %p\n", iface, p);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
static const struct IWidgetVtbl Widget_VTable =
|
||||
{
|
||||
Widget_QueryInterface,
|
||||
@@ -948,7 +957,8 @@ static const struct IWidgetVtbl Widget_VTable =
|
||||
Widget_pos_restrict,
|
||||
Widget_neg_restrict,
|
||||
Widget_VarArg_Run,
|
||||
- Widget_VarArg_Ref_Run
|
||||
+ Widget_VarArg_Ref_Run,
|
||||
+ Widget_Coclass,
|
||||
};
|
||||
|
||||
static HRESULT WINAPI StaticWidget_QueryInterface(IStaticWidget *iface, REFIID riid, void **ppvObject)
|
||||
@@ -1494,8 +1504,22 @@ static void test_typelibmarshal(void)
|
||||
excepinfo.wCode, excepinfo.scode);
|
||||
|
||||
ok(V_VT(&varresult) == VT_DISPATCH, "V_VT(&varresult) was %d instead of VT_DISPATCH\n", V_VT(&varresult));
|
||||
- ok(!V_DISPATCH(&varresult), "V_DISPATCH(&varresult) should be NULL instead of %p\n", V_DISPATCH(&varresult));
|
||||
+ ok(V_DISPATCH(&varresult) != NULL, "expected V_DISPATCH(&varresult) != NULL\n");
|
||||
+
|
||||
+ /* call CoClass with VT_DISPATCH type */
|
||||
+ vararg[0] = varresult;
|
||||
+ dispparams.cNamedArgs = 0;
|
||||
+ dispparams.rgdispidNamedArgs = NULL;
|
||||
+ dispparams.cArgs = 1;
|
||||
+ dispparams.rgvarg = vararg;
|
||||
+ VariantInit(&varresult);
|
||||
+ hr = IDispatch_Invoke(pDispatch, DISPID_TM_COCLASS, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_METHOD, &dispparams, &varresult, &excepinfo, NULL);
|
||||
+ todo_wine ok_ole_success(hr, IDispatch_Invoke);
|
||||
+ ok(excepinfo.wCode == 0x0 && excepinfo.scode == S_OK,
|
||||
+ "EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
||||
+ excepinfo.wCode, excepinfo.scode);
|
||||
VariantClear(&varresult);
|
||||
+ VariantClear(&vararg[0]);
|
||||
|
||||
/* call Value with a VT_VARIANT|VT_BYREF type */
|
||||
V_VT(&vararg[0]) = VT_VARIANT|VT_BYREF;
|
||||
diff --git a/dlls/oleaut32/tests/tmarshal.idl b/dlls/oleaut32/tests/tmarshal.idl
|
||||
index 680f4b4..afc578f 100644
|
||||
--- a/dlls/oleaut32/tests/tmarshal.idl
|
||||
+++ b/dlls/oleaut32/tests/tmarshal.idl
|
||||
@@ -185,6 +185,9 @@ library TestTypelib
|
||||
|
||||
[id(DISPID_TM_VARARG_REF_RUN), vararg]
|
||||
HRESULT VarArg_Ref_Run([in] BSTR name, [in] SAFEARRAY(VARIANT) *params, [out, retval] VARIANT *result);
|
||||
+
|
||||
+ [id(DISPID_TM_COCLASS)]
|
||||
+ HRESULT Coclass([in] ApplicationObject2 *p);
|
||||
}
|
||||
|
||||
[
|
||||
diff --git a/dlls/oleaut32/tests/tmarshal_dispids.h b/dlls/oleaut32/tests/tmarshal_dispids.h
|
||||
index dfca216..26f4027 100644
|
||||
--- a/dlls/oleaut32/tests/tmarshal_dispids.h
|
||||
+++ b/dlls/oleaut32/tests/tmarshal_dispids.h
|
||||
@@ -46,6 +46,7 @@
|
||||
#define DISPID_TM_TESTSECONDIFACE 27
|
||||
#define DISPID_TM_VARARG_RUN 28
|
||||
#define DISPID_TM_VARARG_REF_RUN 29
|
||||
+#define DISPID_TM_COCLASS 30
|
||||
|
||||
#define DISPID_NOA_BSTRRET 1
|
||||
#define DISPID_NOA_ERROR 2
|
||||
--
|
||||
2.6.2
|
||||
|
@ -0,0 +1,53 @@
|
||||
From a384e6c403791a448378244dd10773f85fea0822 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 14 Nov 2015 23:36:25 +0100
|
||||
Subject: oleaut32: Pass a HREFTYPE to get_iface_guid.
|
||||
|
||||
---
|
||||
dlls/oleaut32/typelib.c | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
|
||||
index 0891098..deb898a 100644
|
||||
--- a/dlls/oleaut32/typelib.c
|
||||
+++ b/dlls/oleaut32/typelib.c
|
||||
@@ -6612,13 +6612,13 @@ static HRESULT typedescvt_to_variantvt(ITypeInfo *tinfo, const TYPEDESC *tdesc,
|
||||
return hr;
|
||||
}
|
||||
|
||||
-static HRESULT get_iface_guid(ITypeInfo *tinfo, const TYPEDESC *tdesc, GUID *guid)
|
||||
+static HRESULT get_iface_guid(ITypeInfo *tinfo, HREFTYPE href, GUID *guid)
|
||||
{
|
||||
ITypeInfo *tinfo2;
|
||||
TYPEATTR *tattr;
|
||||
HRESULT hres;
|
||||
|
||||
- hres = ITypeInfo_GetRefTypeInfo(tinfo, tdesc->u.hreftype, &tinfo2);
|
||||
+ hres = ITypeInfo_GetRefTypeInfo(tinfo, href, &tinfo2);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
|
||||
@@ -6630,7 +6630,7 @@ static HRESULT get_iface_guid(ITypeInfo *tinfo, const TYPEDESC *tdesc, GUID *gui
|
||||
|
||||
switch(tattr->typekind) {
|
||||
case TKIND_ALIAS:
|
||||
- hres = get_iface_guid(tinfo2, &tattr->tdescAlias, guid);
|
||||
+ hres = get_iface_guid(tinfo2, tattr->tdescAlias.u.hreftype, guid);
|
||||
break;
|
||||
|
||||
case TKIND_INTERFACE:
|
||||
@@ -7156,7 +7156,10 @@ static HRESULT WINAPI ITypeInfo_fnInvoke(
|
||||
IUnknown *userdefined_iface;
|
||||
GUID guid;
|
||||
|
||||
- hres = get_iface_guid((ITypeInfo*)iface, tdesc->vt == VT_PTR ? tdesc->u.lptdesc : tdesc, &guid);
|
||||
+ if (tdesc->vt == VT_PTR)
|
||||
+ tdesc = tdesc->u.lptdesc;
|
||||
+
|
||||
+ hres = get_iface_guid((ITypeInfo*)iface, tdesc->u.hreftype, &guid);
|
||||
if(FAILED(hres))
|
||||
break;
|
||||
|
||||
--
|
||||
2.6.2
|
||||
|
@ -0,0 +1,53 @@
|
||||
From 1bb32d84f5ac99211790aa596c995cb0b1a6c88f Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 14 Nov 2015 23:45:18 +0100
|
||||
Subject: oleaut32: Implement ITypeInfo_fnInvoke for TKIND_COCLASS in
|
||||
arguments.
|
||||
|
||||
---
|
||||
dlls/oleaut32/tests/tmarshal.c | 2 +-
|
||||
dlls/oleaut32/typelib.c | 15 +++++++++++++++
|
||||
2 files changed, 16 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/oleaut32/tests/tmarshal.c b/dlls/oleaut32/tests/tmarshal.c
|
||||
index 96399cc..758b85f 100644
|
||||
--- a/dlls/oleaut32/tests/tmarshal.c
|
||||
+++ b/dlls/oleaut32/tests/tmarshal.c
|
||||
@@ -1514,7 +1514,7 @@ static void test_typelibmarshal(void)
|
||||
dispparams.rgvarg = vararg;
|
||||
VariantInit(&varresult);
|
||||
hr = IDispatch_Invoke(pDispatch, DISPID_TM_COCLASS, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_METHOD, &dispparams, &varresult, &excepinfo, NULL);
|
||||
- todo_wine ok_ole_success(hr, IDispatch_Invoke);
|
||||
+ ok_ole_success(hr, IDispatch_Invoke);
|
||||
ok(excepinfo.wCode == 0x0 && excepinfo.scode == S_OK,
|
||||
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
||||
excepinfo.wCode, excepinfo.scode);
|
||||
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
|
||||
index deb898a..1cfdd7b 100644
|
||||
--- a/dlls/oleaut32/typelib.c
|
||||
+++ b/dlls/oleaut32/typelib.c
|
||||
@@ -6638,6 +6638,21 @@ static HRESULT get_iface_guid(ITypeInfo *tinfo, HREFTYPE href, GUID *guid)
|
||||
*guid = tattr->guid;
|
||||
break;
|
||||
|
||||
+ case TKIND_COCLASS: {
|
||||
+ unsigned int i;
|
||||
+ int type_flags;
|
||||
+
|
||||
+ for(i = 0; i < tattr->cImplTypes; i++)
|
||||
+ if(SUCCEEDED(ITypeInfo_GetImplTypeFlags(tinfo2, i, &type_flags)) &&
|
||||
+ type_flags == (IMPLTYPEFLAG_FSOURCE|IMPLTYPEFLAG_FDEFAULT)) break;
|
||||
+
|
||||
+ if(i < tattr->cImplTypes) {
|
||||
+ hres = ITypeInfo_GetRefTypeOfImplType(tinfo2, i, &href);
|
||||
+ if(SUCCEEDED(hres)) hres = get_iface_guid(tinfo2, href, guid);
|
||||
+ } else hres = E_UNEXPECTED;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
default:
|
||||
ERR("Unexpected typekind %d\n", tattr->typekind);
|
||||
hres = E_UNEXPECTED;
|
||||
--
|
||||
2.6.2
|
||||
|
@ -0,0 +1,127 @@
|
||||
From 3c6e50c54130738fadbb4b7e1a05a5a0c9c9b538 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 15 Nov 2015 00:39:08 +0100
|
||||
Subject: oleaut32: Handle TKIND_COCLASS in proxy/stub marshalling.
|
||||
|
||||
Based on a patch by Jan T. Ohlsen.
|
||||
---
|
||||
dlls/oleaut32/tmarshal.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 66 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/oleaut32/tmarshal.c b/dlls/oleaut32/tmarshal.c
|
||||
index f4ce311..0211387 100644
|
||||
--- a/dlls/oleaut32/tmarshal.c
|
||||
+++ b/dlls/oleaut32/tmarshal.c
|
||||
@@ -851,7 +851,9 @@ serialize_param(
|
||||
return hres;
|
||||
}
|
||||
ITypeInfo_GetTypeAttr(tinfo2,&tattr);
|
||||
- derefhere = (tattr->typekind != TKIND_DISPATCH && tattr->typekind != TKIND_INTERFACE);
|
||||
+ derefhere = (tattr->typekind != TKIND_DISPATCH &&
|
||||
+ tattr->typekind != TKIND_INTERFACE &&
|
||||
+ tattr->typekind != TKIND_COCLASS);
|
||||
}
|
||||
break;
|
||||
case TKIND_ENUM: /* confirmed */
|
||||
@@ -859,6 +861,7 @@ serialize_param(
|
||||
break;
|
||||
case TKIND_DISPATCH: /* will be done in VT_USERDEFINED case */
|
||||
case TKIND_INTERFACE: /* will be done in VT_USERDEFINED case */
|
||||
+ case TKIND_COCLASS: /* will be done in VT_USERDEFINED case */
|
||||
derefhere=FALSE;
|
||||
break;
|
||||
default:
|
||||
@@ -920,6 +923,36 @@ serialize_param(
|
||||
if (dealloc)
|
||||
IUnknown_Release((LPUNKNOWN)arg);
|
||||
break;
|
||||
+ case TKIND_COCLASS: {
|
||||
+ GUID iid = tattr->guid;
|
||||
+ unsigned int i;
|
||||
+ int type_flags;
|
||||
+
|
||||
+ for(i = 0; i < tattr->cImplTypes; i++) {
|
||||
+ if(SUCCEEDED(ITypeInfo_GetImplTypeFlags(tinfo2, i, &type_flags)) &&
|
||||
+ type_flags == (IMPLTYPEFLAG_FSOURCE|IMPLTYPEFLAG_FDEFAULT)) {
|
||||
+ ITypeInfo *tinfo3;
|
||||
+ TYPEATTR *tattr2;
|
||||
+ HREFTYPE href;
|
||||
+ if(FAILED(ITypeInfo_GetRefTypeOfImplType(tinfo2, i, &href)))
|
||||
+ break;
|
||||
+ if(FAILED(ITypeInfo_GetRefTypeInfo(tinfo2, href, &tinfo3)))
|
||||
+ break;
|
||||
+ if(SUCCEEDED(ITypeInfo_GetTypeAttr(tinfo3, &tattr2))) {
|
||||
+ iid = tattr2->guid;
|
||||
+ ITypeInfo_ReleaseTypeAttr(tinfo3, tattr2);
|
||||
+ }
|
||||
+ ITypeInfo_Release(tinfo3);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if(writeit)
|
||||
+ hres=_marshal_interface(buf, &iid, (LPUNKNOWN)arg);
|
||||
+ if(dealloc)
|
||||
+ IUnknown_Release((LPUNKNOWN)arg);
|
||||
+ break;
|
||||
+ }
|
||||
case TKIND_RECORD: {
|
||||
int i;
|
||||
if (debugout) TRACE_(olerelay)("{");
|
||||
@@ -1129,7 +1162,9 @@ deserialize_param(
|
||||
return hres;
|
||||
}
|
||||
ITypeInfo_GetTypeAttr(tinfo2,&tattr);
|
||||
- derefhere = (tattr->typekind != TKIND_DISPATCH && tattr->typekind != TKIND_INTERFACE);
|
||||
+ derefhere = (tattr->typekind != TKIND_DISPATCH &&
|
||||
+ tattr->typekind != TKIND_INTERFACE &&
|
||||
+ tattr->typekind != TKIND_COCLASS);
|
||||
}
|
||||
break;
|
||||
case TKIND_ENUM: /* confirmed */
|
||||
@@ -1137,6 +1172,7 @@ deserialize_param(
|
||||
break;
|
||||
case TKIND_DISPATCH: /* will be done in VT_USERDEFINED case */
|
||||
case TKIND_INTERFACE: /* will be done in VT_USERDEFINED case */
|
||||
+ case TKIND_COCLASS: /* will be done in VT_USERDEFINED case */
|
||||
derefhere=FALSE;
|
||||
break;
|
||||
default:
|
||||
@@ -1211,6 +1247,34 @@ deserialize_param(
|
||||
if (readit)
|
||||
hres = _unmarshal_interface(buf,&(tattr->guid),(LPUNKNOWN*)arg);
|
||||
break;
|
||||
+ case TKIND_COCLASS: {
|
||||
+ GUID iid = tattr->guid;
|
||||
+ unsigned int i;
|
||||
+ int type_flags;
|
||||
+
|
||||
+ for(i = 0; i < tattr->cImplTypes; i++) {
|
||||
+ if(SUCCEEDED(ITypeInfo_GetImplTypeFlags(tinfo2, i, &type_flags)) &&
|
||||
+ type_flags == (IMPLTYPEFLAG_FSOURCE|IMPLTYPEFLAG_FDEFAULT)) {
|
||||
+ ITypeInfo *tinfo3;
|
||||
+ TYPEATTR *tattr2;
|
||||
+ HREFTYPE href;
|
||||
+ if(FAILED(ITypeInfo_GetRefTypeOfImplType(tinfo2, i, &href)))
|
||||
+ break;
|
||||
+ if(FAILED(ITypeInfo_GetRefTypeInfo(tinfo2, href, &tinfo3)))
|
||||
+ break;
|
||||
+ if(SUCCEEDED(ITypeInfo_GetTypeAttr(tinfo3, &tattr2))) {
|
||||
+ iid = tattr2->guid;
|
||||
+ ITypeInfo_ReleaseTypeAttr(tinfo3, tattr2);
|
||||
+ }
|
||||
+ ITypeInfo_Release(tinfo3);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if(readit)
|
||||
+ hres = _unmarshal_interface(buf, &iid, (LPUNKNOWN*)arg);
|
||||
+ break;
|
||||
+ }
|
||||
case TKIND_RECORD: {
|
||||
int i;
|
||||
|
||||
--
|
||||
2.6.2
|
||||
|
@ -0,0 +1,28 @@
|
||||
From 5f9c268b7e4022d3dd9cf92f6ab04f1c825d2bfa Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 15 Nov 2015 00:40:07 +0100
|
||||
Subject: oleaut32/tests: Add a test for TKIND_COCLASS in proxy/stub
|
||||
marshalling.
|
||||
|
||||
---
|
||||
dlls/oleaut32/tests/tmarshal.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/dlls/oleaut32/tests/tmarshal.c b/dlls/oleaut32/tests/tmarshal.c
|
||||
index 758b85f..c28ef8b 100644
|
||||
--- a/dlls/oleaut32/tests/tmarshal.c
|
||||
+++ b/dlls/oleaut32/tests/tmarshal.c
|
||||
@@ -1519,6 +1519,10 @@ static void test_typelibmarshal(void)
|
||||
"EXCEPINFO differs from expected: wCode = 0x%x, scode = 0x%08x\n",
|
||||
excepinfo.wCode, excepinfo.scode);
|
||||
VariantClear(&varresult);
|
||||
+
|
||||
+ /* call CoClass (direct) */
|
||||
+ hr = IWidget_Coclass(pWidget, (void *)V_DISPATCH(&vararg[0]));
|
||||
+ ok_ole_success(hr, IWidget_Coclass);
|
||||
VariantClear(&vararg[0]);
|
||||
|
||||
/* call Value with a VT_VARIANT|VT_BYREF type */
|
||||
--
|
||||
2.6.2
|
||||
|
1
patches/oleaut32-TKIND_COCLASS/definition
Normal file
1
patches/oleaut32-TKIND_COCLASS/definition
Normal file
@ -0,0 +1 @@
|
||||
Fixes: [19016] Implement marshalling for TKIND_COCLASS
|
@ -226,6 +226,7 @@ patch_enable_all ()
|
||||
enable_nvcuda_CUDA_Support="$1"
|
||||
enable_nvcuvid_CUDA_Video_Support="$1"
|
||||
enable_nvencodeapi_Video_Encoder="$1"
|
||||
enable_oleaut32_TKIND_COCLASS="$1"
|
||||
enable_openal32_EFX_Extension="$1"
|
||||
enable_opengl32_Revert_Disable_Ext="$1"
|
||||
enable_quartz_MediaSeeking_Positions="$1"
|
||||
@ -783,6 +784,9 @@ patch_enable ()
|
||||
nvencodeapi-Video_Encoder)
|
||||
enable_nvencodeapi_Video_Encoder="$2"
|
||||
;;
|
||||
oleaut32-TKIND_COCLASS)
|
||||
enable_oleaut32_TKIND_COCLASS="$2"
|
||||
;;
|
||||
openal32-EFX_Extension)
|
||||
enable_openal32_EFX_Extension="$2"
|
||||
;;
|
||||
@ -4663,6 +4667,30 @@ if test "$enable_nvencodeapi_Video_Encoder" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset oleaut32-TKIND_COCLASS
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#19016] Implement marshalling for TKIND_COCLASS
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/oleaut32/tests/tmarshal.c, dlls/oleaut32/tests/tmarshal.idl, dlls/oleaut32/tests/tmarshal_dispids.h,
|
||||
# | dlls/oleaut32/tmarshal.c, dlls/oleaut32/typelib.c
|
||||
# |
|
||||
if test "$enable_oleaut32_TKIND_COCLASS" -eq 1; then
|
||||
patch_apply oleaut32-TKIND_COCLASS/0001-oleaut32-tests-Add-test-for-calling-method-with-cocl.patch
|
||||
patch_apply oleaut32-TKIND_COCLASS/0002-oleaut32-Pass-a-HREFTYPE-to-get_iface_guid.patch
|
||||
patch_apply oleaut32-TKIND_COCLASS/0003-oleaut32-Implement-ITypeInfo_fnInvoke-for-TKIND_COCL.patch
|
||||
patch_apply oleaut32-TKIND_COCLASS/0004-oleaut32-Handle-TKIND_COCLASS-in-proxy-stub-marshall.patch
|
||||
patch_apply oleaut32-TKIND_COCLASS/0005-oleaut32-tests-Add-a-test-for-TKIND_COCLASS-in-proxy.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "oleaut32/tests: Add test for calling method with coclass argument.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "oleaut32: Pass a HREFTYPE to get_iface_guid.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "oleaut32: Implement ITypeInfo_fnInvoke for TKIND_COCLASS in arguments.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "oleaut32: Handle TKIND_COCLASS in proxy/stub marshalling.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "oleaut32/tests: Add a test for TKIND_COCLASS in proxy/stub marshalling.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset openal32-EFX_Extension
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
Loading…
x
Reference in New Issue
Block a user