Added patch with IEnumString stub interface for ACLShellSource.

This commit is contained in:
Sebastian Lackner 2015-05-13 04:58:51 +02:00
parent 1b0d071e41
commit 2a8300034c
5 changed files with 173 additions and 28 deletions

View File

@ -39,8 +39,9 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [11]:**
**Bug fixes and features included in the next upcoming release [12]:**
* Add IEnumString stub interface for ACLShellSource ([Wine Bug #18019](https://bugs.winehq.org/show_bug.cgi?id=18019))
* Add implementation for shlwapi.AssocGetPerceivedType
* Add stub for atl80.AtlIPersistPropertyBag_Save ([Wine Bug #33888](https://bugs.winehq.org/show_bug.cgi?id=33888))
* Add stub for fltlib.FilterLoad ([Wine Bug #38435](https://bugs.winehq.org/show_bug.cgi?id=38435))

1
debian/changelog vendored
View File

@ -26,6 +26,7 @@ wine-staging (1.7.43) UNRELEASED; urgency=low
* Added patch to implement shlwapi.AssocGetPerceivedType.
* Added patch to avoid creating foreign thread queues for attach_thread_input
requests.
* Added patch with IEnumString stub interface for ACLShellSource.
* Removed patch to use lockfree implementation for FD cache (accepted
upstream).
* Removed patch to properly handle closing sockets during a select call

View File

@ -0,0 +1,123 @@
From 49050987e49d61420d2d46dc167551ff439a537a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 13 May 2015 01:31:35 +0200
Subject: browseui: Add IEnumString stub interface for ACLShellSource.
---
dlls/browseui/aclsource.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
diff --git a/dlls/browseui/aclsource.c b/dlls/browseui/aclsource.c
index 07033cc..bb98b33 100644
--- a/dlls/browseui/aclsource.c
+++ b/dlls/browseui/aclsource.c
@@ -44,6 +44,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(browseui);
typedef struct tagACLMulti {
IACList2 IACList2_iface;
+ IEnumString IEnumString_iface;
LONG refCount;
DWORD dwOptions;
} ACLShellSource;
@@ -53,6 +54,11 @@ static inline ACLShellSource *impl_from_IACList2(IACList2 *iface)
return CONTAINING_RECORD(iface, ACLShellSource, IACList2_iface);
}
+static inline ACLShellSource *impl_from_IEnumString(IEnumString *iface)
+{
+ return CONTAINING_RECORD(iface, ACLShellSource, IEnumString_iface);
+}
+
static void ACLShellSource_Destructor(ACLShellSource *This)
{
TRACE("destroying %p\n", This);
@@ -69,6 +75,10 @@ static HRESULT WINAPI ACLShellSource_QueryInterface(IACList2 *iface, REFIID iid,
{
*ppvOut = &This->IACList2_iface;
}
+ else if(IsEqualIID(iid, &IID_IEnumString))
+ {
+ *ppvOut = &This->IEnumString_iface;
+ }
if (*ppvOut)
{
@@ -133,6 +143,67 @@ static const IACList2Vtbl ACLMulti_ACList2Vtbl =
ACLShellSource_GetOptions
};
+static HRESULT WINAPI ACLShellSource_IEnumString_QueryInterface(IEnumString *iface, REFIID iid, LPVOID *ppvOut)
+{
+ ACLShellSource *This = impl_from_IEnumString(iface);
+ return ACLShellSource_QueryInterface(&This->IACList2_iface, iid, ppvOut);
+}
+
+static ULONG WINAPI ACLShellSource_IEnumString_AddRef(IEnumString *iface)
+{
+ ACLShellSource *This = impl_from_IEnumString(iface);
+ return ACLShellSource_AddRef(&This->IACList2_iface);
+}
+
+static ULONG WINAPI ACLShellSource_IEnumString_Release(IEnumString *iface)
+{
+ ACLShellSource *This = impl_from_IEnumString(iface);
+ return ACLShellSource_Release(&This->IACList2_iface);
+}
+
+static HRESULT WINAPI ACLShellSource_IEnumString_Next(IEnumString *iface, ULONG celt, LPOLESTR *rgelt, ULONG *pceltFetched)
+{
+ FIXME("(%p, %d, %p, %p): stub\n", iface, celt, rgelt, pceltFetched);
+
+ if (celt)
+ *rgelt = NULL;
+ if (pceltFetched)
+ *pceltFetched = 0;
+
+ return S_FALSE;
+}
+
+static HRESULT WINAPI ACLShellSource_IEnumString_Reset(IEnumString *iface)
+{
+ FIXME("(%p): stub\n", iface);
+ return S_OK;
+}
+
+static HRESULT WINAPI ACLShellSource_IEnumString_Skip(IEnumString *iface, ULONG celt)
+{
+ FIXME("(%p, %u): stub\n", iface, celt);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ACLShellSource_IEnumString_Clone(IEnumString *iface, IEnumString **ppOut)
+{
+ FIXME("(%p, %p): stub\n", iface, ppOut);
+ *ppOut = NULL;
+ return E_OUTOFMEMORY;
+}
+
+static const IEnumStringVtbl ACLShellSource_EnumStringVtbl =
+{
+ ACLShellSource_IEnumString_QueryInterface,
+ ACLShellSource_IEnumString_AddRef,
+ ACLShellSource_IEnumString_Release,
+
+ ACLShellSource_IEnumString_Next,
+ ACLShellSource_IEnumString_Skip,
+ ACLShellSource_IEnumString_Reset,
+ ACLShellSource_IEnumString_Clone
+};
+
HRESULT ACLShellSource_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)
{
ACLShellSource *This;
@@ -144,6 +215,7 @@ HRESULT ACLShellSource_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)
return E_OUTOFMEMORY;
This->IACList2_iface.lpVtbl = &ACLMulti_ACList2Vtbl;
+ This->IEnumString_iface.lpVtbl = &ACLShellSource_EnumStringVtbl;
This->refCount = 1;
TRACE("returning %p\n", This);
--
2.4.0

View File

@ -0,0 +1 @@
Fixes: [18019] Add IEnumString stub interface for ACLShellSource

View File

@ -55,7 +55,7 @@ version()
echo "Copyright (C) 2014-2015 the Wine Staging project authors."
echo ""
echo "Patchset to be applied on upstream Wine:"
echo " commit 6d323d81b2a604b89c612928a573b290c945df75"
echo " commit 5f35f1a8dbbc9dc3fa629a7f123e045e3320f562"
echo ""
}
@ -83,6 +83,7 @@ patch_enable_all ()
enable_advapi32_LsaLookupSids="$1"
enable_advapi32_OpenSCManagerW="$1"
enable_atl_AtlIPersistPropertyBag_Save="$1"
enable_browseui_ACLShell_IEnumString="$1"
enable_browseui_Progress_Dialog="$1"
enable_category_stable="$1"
enable_combase_String="$1"
@ -311,6 +312,9 @@ patch_enable ()
atl-AtlIPersistPropertyBag_Save)
enable_atl_AtlIPersistPropertyBag_Save="$2"
;;
browseui-ACLShell_IEnumString)
enable_browseui_ACLShell_IEnumString="$2"
;;
browseui-Progress_Dialog)
enable_browseui_Progress_Dialog="$2"
;;
@ -1882,6 +1886,21 @@ if test "$enable_atl_AtlIPersistPropertyBag_Save" -eq 1; then
) >> "$patchlist"
fi
# Patchset browseui-ACLShell_IEnumString
# |
# | This patchset fixes the following Wine bugs:
# | * [#18019] Add IEnumString stub interface for ACLShellSource
# |
# | Modified files:
# | * dlls/browseui/aclsource.c
# |
if test "$enable_browseui_ACLShell_IEnumString" -eq 1; then
patch_apply browseui-ACLShell_IEnumString/0001-browseui-Add-IEnumString-stub-interface-for-ACLShell.patch
(
echo '+ { "Michael Müller", "browseui: Add IEnumString stub interface for ACLShellSource.", 1 },';
) >> "$patchlist"
fi
# Patchset browseui-Progress_Dialog
# |
# | Modified files:
@ -2432,6 +2451,18 @@ if test "$enable_dxgi_GetDesc" -eq 1; then
) >> "$patchlist"
fi
# Patchset makedep-PARENTSPEC
# |
# | Modified files:
# | * tools/makedep.c
# |
if test "$enable_makedep_PARENTSPEC" -eq 1; then
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
(
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-DllRedirects
# |
# | Modified files:
@ -2452,18 +2483,6 @@ if test "$enable_ntdll_DllRedirects" -eq 1; then
) >> "$patchlist"
fi
# Patchset makedep-PARENTSPEC
# |
# | Modified files:
# | * tools/makedep.c
# |
if test "$enable_makedep_PARENTSPEC" -eq 1; then
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
(
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-CSMT_Helper
# |
# | Modified files:
@ -3172,20 +3191,6 @@ if test "$enable_kernel32_CompareStringEx" -eq 1; then
) >> "$patchlist"
fi
# Patchset kernel32-SetFileInformationByHandle
# |
# | Modified files:
# | * dlls/kernel32/file.c, include/winbase.h
# |
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
patch_apply kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch
patch_apply kernel32-SetFileInformationByHandle/0002-kernel32-Implement-SetFileInformationByHandle.patch
(
echo '+ { "Michael Müller", "include: Declare a couple more file information class structures.", 1 },';
echo '+ { "Michael Müller", "kernel32: Implement SetFileInformationByHandle.", 1 },';
) >> "$patchlist"
fi
# Patchset server-File_Permissions
# |
# | Modified files:
@ -3227,6 +3232,20 @@ if test "$enable_ntdll_FileDispositionInformation" -eq 1; then
) >> "$patchlist"
fi
# Patchset kernel32-SetFileInformationByHandle
# |
# | Modified files:
# | * dlls/kernel32/file.c, include/winbase.h
# |
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
patch_apply kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch
patch_apply kernel32-SetFileInformationByHandle/0002-kernel32-Implement-SetFileInformationByHandle.patch
(
echo '+ { "Michael Müller", "include: Declare a couple more file information class structures.", 1 },';
echo '+ { "Michael Müller", "kernel32: Implement SetFileInformationByHandle.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-CopyFileEx
# |
# | This patchset fixes the following Wine bugs: