https://git.reactos.org/?p=reactos.git;a=commitdiff;h=eba16dc9e92886e74eb73ca9ebb90378a62e9d5a

commit eba16dc9e92886e74eb73ca9ebb90378a62e9d5a
Author:     Mark Jansen <[email protected]>
AuthorDate: Sun Jul 25 01:08:35 2021 +0200
Commit:     Mark Jansen <[email protected]>
CommitDate: Mon Nov 15 20:02:13 2021 +0100

    [MYDOCS] Simplify HIDA usage
---
 dll/shellext/mydocs/CMyDocsDropHandler.cpp | 19 +++----------------
 1 file changed, 3 insertions(+), 16 deletions(-)

diff --git a/dll/shellext/mydocs/CMyDocsDropHandler.cpp 
b/dll/shellext/mydocs/CMyDocsDropHandler.cpp
index 477ca4b1d7f..92653e4c6d4 100644
--- a/dll/shellext/mydocs/CMyDocsDropHandler.cpp
+++ b/dll/shellext/mydocs/CMyDocsDropHandler.cpp
@@ -9,8 +9,6 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(mydocs);
 
-static CLIPFORMAT g_cfHIDA = 0;
-
 CMyDocsDropHandler::CMyDocsDropHandler()
 {
     InterlockedIncrement(&g_ModuleRefCnt);
@@ -68,23 +66,15 @@ CMyDocsDropHandler::Drop(IDataObject *pDataObject, DWORD 
dwKeyState,
     if (FAILED_UNEXPECTEDLY(hr))
         return hr;
 
-    // get the clipboard format
-    if (g_cfHIDA == 0)
-        g_cfHIDA = ::RegisterClipboardFormatW(CFSTR_SHELLIDLIST);
-
     // Retrieve an HIDA (handle of IDA)
-    STGMEDIUM medium;
-    FORMATETC fmt = { g_cfHIDA, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
-    hr = pDataObject->GetData(&fmt, &medium);
-    if (FAILED_UNEXPECTEDLY(hr))
+    CDataObjectHIDA pida(pDataObject);
+    if (FAILED_UNEXPECTEDLY(pida.hr()))
     {
         *pdwEffect = 0;
         DragLeave();
-        return E_FAIL;
+        return pida.hr();
     }
 
-    // lock HIDA
-    LPIDA pida = reinterpret_cast<LPIDA>(GlobalLock(medium.hGlobal));
     UINT iItem, cItems = pida->cidl;
 
     // get the path of "My Documents"
@@ -123,9 +113,6 @@ CMyDocsDropHandler::Drop(IDataObject *pDataObject, DWORD 
dwKeyState,
         strSrcList += szSrc;
     }
 
-    // unlock HIDA
-    GlobalUnlock(medium.hGlobal);
-
     if (iItem != cItems)
     {
         // source not found

Reply via email to