From 64f5451ac7bc32180183c07fa0556ed756206ffd Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Wed, 6 Mar 2024 17:53:08 -0600 Subject: [PATCH] Rebase against 83476e3d4ab0a0c7b1eca392e363591ba550440c. --- ...ort-for-setting-getting-PREFERREDDRO.patch | 150 ------------------ patches/vkd3d-latest/definition | 1 + staging/upstream-commit | 2 +- 3 files changed, 2 insertions(+), 151 deletions(-) delete mode 100644 patches/shell32-Context_Menu/0005-shell32-Add-support-for-setting-getting-PREFERREDDRO.patch diff --git a/patches/shell32-Context_Menu/0005-shell32-Add-support-for-setting-getting-PREFERREDDRO.patch b/patches/shell32-Context_Menu/0005-shell32-Add-support-for-setting-getting-PREFERREDDRO.patch deleted file mode 100644 index 21980675..00000000 --- a/patches/shell32-Context_Menu/0005-shell32-Add-support-for-setting-getting-PREFERREDDRO.patch +++ /dev/null @@ -1,150 +0,0 @@ -From 81651a2975b37adfbdc393753804fd9d84f43442 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Sat, 2 Apr 2016 04:15:02 +0200 -Subject: [PATCH] shell32: Add support for setting/getting PREFERREDDROPEFFECT - in IDataObject. - ---- - dlls/shell32/clipboard.c | 38 +++++++++++++++++++++++++++++++++++++ - dlls/shell32/dataobject.c | 24 ++++++++++++++++++++--- - dlls/shell32/shell32_main.h | 2 ++ - 3 files changed, 61 insertions(+), 3 deletions(-) - -diff --git a/dlls/shell32/clipboard.c b/dlls/shell32/clipboard.c -index 487fd0dcf8c..68b671414a6 100644 ---- a/dlls/shell32/clipboard.c -+++ b/dlls/shell32/clipboard.c -@@ -212,3 +212,41 @@ HGLOBAL RenderFILENAMEW (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) - - return hGlobal; - } -+ -+HGLOBAL RenderPREFERREDDROPEFFECT (DWORD value) -+{ -+ DWORD *pEffect; -+ HGLOBAL hGlobal; -+ -+ TRACE("(%ld)\n", value); -+ -+ hGlobal = GlobalAlloc(GHND|GMEM_SHARE, sizeof(DWORD)); -+ if(!hGlobal) return hGlobal; -+ -+ pEffect = GlobalLock(hGlobal); -+ if (pEffect) -+ { -+ *pEffect = value; -+ GlobalUnlock(hGlobal); -+ } -+ -+ return hGlobal; -+} -+ -+HRESULT GetPREFERREDDROPEFFECT (STGMEDIUM *pmedium, DWORD *value) -+{ -+ DWORD *pEffect; -+ BOOL result = E_OUTOFMEMORY; -+ -+ TRACE("(%p, %p)\n", pmedium, value); -+ -+ pEffect = GlobalLock(pmedium->hGlobal); -+ if (pEffect) -+ { -+ *value = *pEffect; -+ result = S_OK; -+ GlobalUnlock(pmedium->hGlobal); -+ } -+ -+ return result; -+} -diff --git a/dlls/shell32/dataobject.c b/dlls/shell32/dataobject.c -index 3cd86845c42..202cd2dc0d1 100644 ---- a/dlls/shell32/dataobject.c -+++ b/dlls/shell32/dataobject.c -@@ -193,7 +193,7 @@ LPENUMFORMATETC IEnumFORMATETC_Constructor(UINT cfmt, const FORMATETC afmt[]) - */ - - /* number of supported formats */ --#define MAX_FORMATS 4 -+#define MAX_FORMATS 5 - - typedef struct - { -@@ -205,12 +205,13 @@ typedef struct - LPITEMIDLIST pidl; - LPITEMIDLIST * apidl; - UINT cidl; -+ DWORD dropEffect; - - FORMATETC pFormatEtc[MAX_FORMATS]; - UINT cfShellIDList; - UINT cfFileNameA; - UINT cfFileNameW; -- -+ UINT cfDropEffect; - } IDataObjectImpl; - - static inline IDataObjectImpl *impl_from_IDataObject(IDataObject *iface) -@@ -310,6 +311,10 @@ static HRESULT WINAPI IDataObject_fnGetData(IDataObject *iface, LPFORMATETC pfor - if (This->cidl < 1) return(E_UNEXPECTED); - pmedium->hGlobal = RenderFILENAMEW(This->pidl, This->apidl, This->cidl); - } -+ else if (pformatetcIn->cfFormat == This->cfDropEffect) -+ { -+ pmedium->hGlobal = RenderPREFERREDDROPEFFECT(This->dropEffect); -+ } - else - { - FIXME("-- expected clipformat not implemented\n"); -@@ -364,7 +369,17 @@ static HRESULT WINAPI IDataObject_fnGetCanonicalFormatEtc(IDataObject *iface, LP - static HRESULT WINAPI IDataObject_fnSetData(IDataObject *iface, LPFORMATETC pformatetc, STGMEDIUM *pmedium, BOOL fRelease) - { - IDataObjectImpl *This = impl_from_IDataObject(iface); -- FIXME("(%p)->()\n", This); -+ -+ FIXME("(%p)->(%p, %p, %u): semi-stub\n", This, pformatetc, pmedium, fRelease); -+ -+ if (pformatetc->cfFormat == This->cfDropEffect) -+ { -+ if (pmedium->tymed == TYMED_HGLOBAL) -+ return GetPREFERREDDROPEFFECT(pmedium, &This->dropEffect); -+ else -+ return DV_E_TYMED; -+ } -+ - return E_NOTIMPL; - } - -@@ -437,14 +452,17 @@ IDataObject* IDataObject_Constructor(HWND hwndOwner, - dto->pidl = ILClone(pMyPidl); - dto->apidl = _ILCopyaPidl(apidl, cidl); - dto->cidl = cidl; -+ dto->dropEffect = 0; - - dto->cfShellIDList = RegisterClipboardFormatW(CFSTR_SHELLIDLISTW); - dto->cfFileNameA = RegisterClipboardFormatA(CFSTR_FILENAMEA); - dto->cfFileNameW = RegisterClipboardFormatW(CFSTR_FILENAMEW); -+ dto->cfDropEffect = RegisterClipboardFormatW(CFSTR_PREFERREDDROPEFFECTW); - InitFormatEtc(dto->pFormatEtc[0], dto->cfShellIDList, TYMED_HGLOBAL); - InitFormatEtc(dto->pFormatEtc[1], CF_HDROP, TYMED_HGLOBAL); - InitFormatEtc(dto->pFormatEtc[2], dto->cfFileNameA, TYMED_HGLOBAL); - InitFormatEtc(dto->pFormatEtc[3], dto->cfFileNameW, TYMED_HGLOBAL); -+ InitFormatEtc(dto->pFormatEtc[4], dto->cfDropEffect, TYMED_HGLOBAL); - } - - TRACE("(%p)->(apidl=%p cidl=%u)\n",dto, apidl, cidl); -diff --git a/dlls/shell32/shell32_main.h b/dlls/shell32/shell32_main.h -index 5571da9f632..de6e8dfa9e6 100644 ---- a/dlls/shell32/shell32_main.h -+++ b/dlls/shell32/shell32_main.h -@@ -141,6 +141,8 @@ HGLOBAL RenderHDROP(LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl); - HGLOBAL RenderSHELLIDLIST (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl); - HGLOBAL RenderFILENAMEA (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl); - HGLOBAL RenderFILENAMEW (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl); -+HGLOBAL RenderPREFERREDDROPEFFECT (DWORD value); -+HRESULT GetPREFERREDDROPEFFECT (STGMEDIUM *pmedium, DWORD *value); - - /* Change Notification */ - void InitChangeNotifications(void); --- -2.40.1 - diff --git a/patches/vkd3d-latest/definition b/patches/vkd3d-latest/definition index ece8a5de..9c8fbee5 100644 --- a/patches/vkd3d-latest/definition +++ b/patches/vkd3d-latest/definition @@ -5,3 +5,4 @@ # Games used for testing # Stranded Alien Dawn - Requires dxvk # DOOM Eternal +Disabled: true diff --git a/staging/upstream-commit b/staging/upstream-commit index 3e79b52e..98fdf438 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -c1b8db0c28ac5b7a14567bfb6df2c0af364de6a2 +83476e3d4ab0a0c7b1eca392e363591ba550440c