From 98ab989c82b8f307fe078ba5432643a691dbad96 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Thu, 6 Nov 2014 18:10:37 +0000 Subject: [PATCH] [SHELL32] * Partial sync of clipboard.c with Wine 1.7.27. CORE-8540 svn path=/branches/shell-experiments/; revision=65293 --- dll/win32/shell32/wine/clipboard.c | 210 +++++++++++++++-------------- 1 file changed, 106 insertions(+), 104 deletions(-) diff --git a/dll/win32/shell32/wine/clipboard.c b/dll/win32/shell32/wine/clipboard.c index 2f65edd6c31..25cd9f543f1 100644 --- a/dll/win32/shell32/wine/clipboard.c +++ b/dll/win32/shell32/wine/clipboard.c @@ -1,7 +1,7 @@ /* - * clipboard helper functions + * clipboard helper functions * - * Copyright 2000 Juergen Schmied + * Copyright 2000 Juergen Schmied * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -25,13 +25,13 @@ * * - a right mousebutton-copy sets the following formats: * classic: - * Shell IDList Array - * Preferred Drop Effect - * Shell Object Offsets - * HDROP - * FileName + * Shell IDList Array + * Preferred Drop Effect + * Shell Object Offsets + * HDROP + * FileName * ole: - * OlePrivateData (ClipboardDataObjectInterface) + * OlePrivateData (ClipboardDataObjectInterface) * */ @@ -42,6 +42,7 @@ #include #include #include +#include WINE_DEFAULT_DEBUG_CHANNEL(shell); @@ -52,100 +53,101 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell); */ HGLOBAL RenderHDROP(LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) { - UINT i; + UINT i; int size = 0; - WCHAR wszFileName[MAX_PATH]; + WCHAR wszFileName[MAX_PATH]; HGLOBAL hGlobal = NULL; - DROPFILES *pDropFiles; - int offset; + DROPFILES *pDropFiles; + int offset; LPITEMIDLIST *pidls; - TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); + TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); pidls = (LPITEMIDLIST *)HeapAlloc(GetProcessHeap(), 0, cidl * sizeof(*pidls)); if (!pidls) goto cleanup; - /* get the size needed */ - size = sizeof(DROPFILES); + /* get the size needed */ + size = sizeof(DROPFILES); - for (i=0; ipFiles = offset * sizeof(WCHAR); pDropFiles->fWide = TRUE; - for (i=0; icidl = cidl; + /* fill the structure */ + hGlobal = GlobalAlloc(GHND|GMEM_SHARE, size); + if(!hGlobal) return hGlobal; + pcida = GlobalLock (hGlobal); + pcida->cidl = cidl; - /* root pidl */ - offset = sizeof(CIDA) + sizeof (UINT)*(cidl); - pcida->aoffset[0] = offset; /* first element */ - sizePidl = ILGetSize (pidlRoot); - memcpy(((LPBYTE)pcida)+offset, pidlRoot, sizePidl); - offset += sizePidl; + /* root pidl */ + offset = sizeof(CIDA) + sizeof (UINT)*(cidl); + pcida->aoffset[0] = offset; /* first element */ + sizePidl = ILGetSize (pidlRoot); + memcpy(((LPBYTE)pcida)+offset, pidlRoot, sizePidl); + offset += sizePidl; - for(i=0; iaoffset[i+1] = offset; - sizePidl = ILGetSize(apidl[i]); - memcpy(((LPBYTE)pcida)+offset, apidl[i], sizePidl); - offset += sizePidl; - } + for(i=0; iaoffset[i+1] = offset; + sizePidl = ILGetSize(apidl[i]); + memcpy(((LPBYTE)pcida)+offset, apidl[i], sizePidl); + offset += sizePidl; + } - GlobalUnlock(hGlobal); - return hGlobal; + GlobalUnlock(hGlobal); + return hGlobal; } HGLOBAL RenderSHELLIDLISTOFFSET (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) @@ -168,66 +170,66 @@ HGLOBAL RenderFILEDESCRIPTOR (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT HGLOBAL RenderFILENAMEA (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) { - int size = 0; - char szTemp[MAX_PATH], *szFileName; - LPITEMIDLIST pidl; - HGLOBAL hGlobal; - BOOL bSuccess; + int size = 0; + char szTemp[MAX_PATH], *szFileName; + LPITEMIDLIST pidl; + HGLOBAL hGlobal; + BOOL bSuccess; - TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); + TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); - /* get path of combined pidl */ - pidl = ILCombine(pidlRoot, apidl[0]); - if (!pidl) - return 0; + /* get path of combined pidl */ + pidl = ILCombine(pidlRoot, apidl[0]); + if (!pidl) + return 0; - bSuccess = SHGetPathFromIDListA(pidl, szTemp); - SHFree(pidl); - if (!bSuccess) - return 0; + bSuccess = SHGetPathFromIDListA(pidl, szTemp); + SHFree(pidl); + if (!bSuccess) + return 0; - size = strlen(szTemp) + 1; + size = strlen(szTemp) + 1; - /* fill the structure */ - hGlobal = GlobalAlloc(GHND|GMEM_SHARE, size); - if(!hGlobal) return hGlobal; - szFileName = (char *)GlobalLock(hGlobal); - memcpy(szFileName, szTemp, size); - GlobalUnlock(hGlobal); + /* fill the structure */ + hGlobal = GlobalAlloc(GHND|GMEM_SHARE, size); + if(!hGlobal) return hGlobal; + szFileName = GlobalLock(hGlobal); + memcpy(szFileName, szTemp, size); + GlobalUnlock(hGlobal); - return hGlobal; + return hGlobal; } HGLOBAL RenderFILENAMEW (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) { - int size = 0; - WCHAR szTemp[MAX_PATH], *szFileName; - LPITEMIDLIST pidl; - HGLOBAL hGlobal; - BOOL bSuccess; + int size = 0; + WCHAR szTemp[MAX_PATH], *szFileName; + LPITEMIDLIST pidl; + HGLOBAL hGlobal; + BOOL bSuccess; - TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); + TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); - /* get path of combined pidl */ - pidl = ILCombine(pidlRoot, apidl[0]); - if (!pidl) - return 0; + /* get path of combined pidl */ + pidl = ILCombine(pidlRoot, apidl[0]); + if (!pidl) + return 0; - bSuccess = SHGetPathFromIDListW(pidl, szTemp); - SHFree(pidl); - if (!bSuccess) - return 0; + bSuccess = SHGetPathFromIDListW(pidl, szTemp); + SHFree(pidl); + if (!bSuccess) + return 0; - size = (wcslen(szTemp)+1) * sizeof(WCHAR); + size = (strlenW(szTemp)+1) * sizeof(WCHAR); - /* fill the structure */ - hGlobal = GlobalAlloc(GHND|GMEM_SHARE, size); - if(!hGlobal) return hGlobal; - szFileName = (WCHAR *)GlobalLock(hGlobal); - memcpy(szFileName, szTemp, size); - GlobalUnlock(hGlobal); + /* fill the structure */ + hGlobal = GlobalAlloc(GHND|GMEM_SHARE, size); + if(!hGlobal) return hGlobal; + szFileName = GlobalLock(hGlobal); + memcpy(szFileName, szTemp, size); + GlobalUnlock(hGlobal); - return hGlobal; + return hGlobal; } HGLOBAL RenderPREFEREDDROPEFFECT (DWORD dwFlags)