From ece7ecf8bc9c4e6d9c44ffbf1f8a4a0b8c785a9b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 15 Aug 2015 17:31:08 +0200
Subject: shell32: Cleanup IDropTargetHelper and preparation for
 IDragSourceHelper.

---
 dlls/shell32/dragdrophelper.c | 135 +++++++++++++++++++++---------------------
 1 file changed, 68 insertions(+), 67 deletions(-)

diff --git a/dlls/shell32/dragdrophelper.c b/dlls/shell32/dragdrophelper.c
index cae8b8d..2705793 100644
--- a/dlls/shell32/dragdrophelper.c
+++ b/dlls/shell32/dragdrophelper.c
@@ -1,8 +1,9 @@
 /*
  *	file system folder
  *
- *	Copyright 1997			Marcus Meissner
- *	Copyright 1998, 1999, 2002	Juergen Schmied
+ *  Copyright 1997          Marcus Meissner
+ *  Copyright 1998, 1999, 2002 Juergen Schmied
+ *  Copyright 2015          Michael Müller
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -47,45 +48,15 @@ WINE_DEFAULT_DEBUG_CHANNEL (shell);
 *   IDropTargetHelper implementation
 */
 
-typedef struct {
+typedef struct
+{
     IDropTargetHelper IDropTargetHelper_iface;
     LONG ref;
-} IDropTargetHelperImpl;
-
-static const IDropTargetHelperVtbl vt_IDropTargetHelper;
-
-static inline IDropTargetHelperImpl *impl_from_IDropTargetHelper(IDropTargetHelper *iface)
-{
-    return CONTAINING_RECORD(iface, IDropTargetHelperImpl, IDropTargetHelper_iface);
-}
+} IDragHelperImpl;
 
-/**************************************************************************
-*	IDropTargetHelper_Constructor
-*/
-HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv)
+static inline IDragHelperImpl *impl_from_IDropTargetHelper(IDropTargetHelper *iface)
 {
-    IDropTargetHelperImpl *dth;
-
-    TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid));
-
-    if (!ppv)
-	return E_POINTER;
-    if (pUnkOuter)
-	return CLASS_E_NOAGGREGATION;
-
-    dth = LocalAlloc (LMEM_ZEROINIT, sizeof (IDropTargetHelperImpl));
-    if (!dth) return E_OUTOFMEMORY;
-
-    dth->ref = 0;
-    dth->IDropTargetHelper_iface.lpVtbl = &vt_IDropTargetHelper;
-
-    if (FAILED (IDropTargetHelper_QueryInterface (&dth->IDropTargetHelper_iface, riid, ppv))) {
-        LocalFree(dth);
-	return E_NOINTERFACE;
-    }
-
-    TRACE ("--(%p)\n", dth);
-    return S_OK;
+    return CONTAINING_RECORD(iface, IDragHelperImpl, IDropTargetHelper_iface);
 }
 
 /**************************************************************************
@@ -93,28 +64,31 @@ HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid,
  */
 static HRESULT WINAPI IDropTargetHelper_fnQueryInterface (IDropTargetHelper * iface, REFIID riid, LPVOID * ppvObj)
 {
-    IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+    IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
 
     TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
 
     *ppvObj = NULL;
 
-    if (IsEqualIID (riid, &IID_IUnknown) || IsEqualIID (riid, &IID_IDropTargetHelper)) {
-	*ppvObj = &This->IDropTargetHelper_iface;
+    if (IsEqualIID (riid, &IID_IUnknown) || IsEqualIID (riid, &IID_IDropTargetHelper))
+    {
+       *ppvObj = &This->IDropTargetHelper_iface;
     }
 
-    if (*ppvObj) {
-	IUnknown_AddRef ((IUnknown *) (*ppvObj));
-	TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
-	return S_OK;
+    if (*ppvObj)
+    {
+        IUnknown_AddRef ((IUnknown *) (*ppvObj));
+        TRACE ("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
+        return S_OK;
     }
+
     FIXME ("-- Interface: E_NOINTERFACE\n");
     return E_NOINTERFACE;
 }
 
 static ULONG WINAPI IDropTargetHelper_fnAddRef (IDropTargetHelper * iface)
 {
-    IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+    IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
     ULONG refCount = InterlockedIncrement(&This->ref);
 
     TRACE ("(%p)->(count=%u)\n", This, refCount - 1);
@@ -124,67 +98,94 @@ static ULONG WINAPI IDropTargetHelper_fnAddRef (IDropTargetHelper * iface)
 
 static ULONG WINAPI IDropTargetHelper_fnRelease (IDropTargetHelper * iface)
 {
-    IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+    IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
     ULONG refCount = InterlockedDecrement(&This->ref);
 
     TRACE ("(%p)->(count=%u)\n", This, refCount + 1);
 
-    if (!refCount) {
+    if (!refCount)
+    {
         TRACE ("-- destroying (%p)\n", This);
-        LocalFree (This);
+        HeapFree(GetProcessHeap(), 0, This);
         return 0;
     }
     return refCount;
 }
 
-static HRESULT WINAPI IDropTargetHelper_fnDragEnter (
-        IDropTargetHelper * iface,
-	HWND hwndTarget,
-	IDataObject* pDataObject,
-	POINT* ppt,
-	DWORD dwEffect)
+static HRESULT WINAPI IDropTargetHelper_fnDragEnter (IDropTargetHelper * iface, HWND hwndTarget,
+                                                     IDataObject* pDataObject,POINT* ppt, DWORD dwEffect)
 {
-    IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+    IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
     FIXME ("(%p)->(%p %p %p 0x%08x)\n", This,hwndTarget, pDataObject, ppt, dwEffect);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI IDropTargetHelper_fnDragLeave (IDropTargetHelper * iface)
 {
-    IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+    IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
     FIXME ("(%p)->()\n", This);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI IDropTargetHelper_fnDragOver (IDropTargetHelper * iface, POINT* ppt, DWORD dwEffect)
 {
-    IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+    IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
     FIXME ("(%p)->(%p 0x%08x)\n", This, ppt, dwEffect);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI IDropTargetHelper_fnDrop (IDropTargetHelper * iface, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect)
 {
-    IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+    IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
     FIXME ("(%p)->(%p %p 0x%08x)\n", This, pDataObject, ppt, dwEffect);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI IDropTargetHelper_fnShow (IDropTargetHelper * iface, BOOL fShow)
 {
-    IDropTargetHelperImpl *This = impl_from_IDropTargetHelper(iface);
+    IDragHelperImpl *This = impl_from_IDropTargetHelper(iface);
     FIXME ("(%p)->(%u)\n", This, fShow);
     return E_NOTIMPL;
 }
 
 static const IDropTargetHelperVtbl vt_IDropTargetHelper =
 {
-	IDropTargetHelper_fnQueryInterface,
-	IDropTargetHelper_fnAddRef,
-	IDropTargetHelper_fnRelease,
-	IDropTargetHelper_fnDragEnter,
-	IDropTargetHelper_fnDragLeave,
-        IDropTargetHelper_fnDragOver,
-	IDropTargetHelper_fnDrop,
-	IDropTargetHelper_fnShow
+    IDropTargetHelper_fnQueryInterface,
+    IDropTargetHelper_fnAddRef,
+    IDropTargetHelper_fnRelease,
+    IDropTargetHelper_fnDragEnter,
+    IDropTargetHelper_fnDragLeave,
+    IDropTargetHelper_fnDragOver,
+    IDropTargetHelper_fnDrop,
+    IDropTargetHelper_fnShow
 };
+
+/**************************************************************************
+*   IDropTargetHelper_Constructor
+*/
+HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv)
+{
+    IDragHelperImpl *dth;
+
+    TRACE ("unkOut=%p %s\n", pUnkOuter, shdebugstr_guid (riid));
+
+    if (!ppv)
+        return E_POINTER;
+    if (pUnkOuter)
+        return CLASS_E_NOAGGREGATION;
+
+    dth = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof (IDragHelperImpl));
+    if (!dth) return E_OUTOFMEMORY;
+
+    dth->ref = 0;
+    dth->IDropTargetHelper_iface.lpVtbl = &vt_IDropTargetHelper;
+
+    if (FAILED(IDropTargetHelper_QueryInterface (&dth->IDropTargetHelper_iface, riid, ppv)))
+    {
+        HeapFree(GetProcessHeap(), 0, dth);
+        return E_NOINTERFACE;
+    }
+
+    TRACE ("--(%p)\n", dth);
+    return S_OK;
+}
-- 
2.5.0