Author: akhaldi Date: Thu Nov 6 18:07:58 2014 New Revision: 65292
URL: http://svn.reactos.org/svn/reactos?rev=65292&view=rev Log: [SHELL32] * Move clipboard.cpp to the wine folder. * Convert clipboard.cpp into clipboard.c.
Added: branches/shell-experiments/dll/win32/shell32/wine/clipboard.c - copied, changed from r65270, branches/shell-experiments/dll/win32/shell32/clipboard.cpp Removed: branches/shell-experiments/dll/win32/shell32/clipboard.cpp Modified: branches/shell-experiments/dll/win32/shell32/CMakeLists.txt
Modified: branches/shell-experiments/dll/win32/shell32/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/branches/shell-experiments/dll/win32/shel... ============================================================================== --- branches/shell-experiments/dll/win32/shell32/CMakeLists.txt [iso-8859-1] (original) +++ branches/shell-experiments/dll/win32/shell32/CMakeLists.txt [iso-8859-1] Thu Nov 6 18:07:58 2014 @@ -17,7 +17,6 @@
list(APPEND SOURCE CAutoComplete.cpp - clipboard.cpp CMenuBand.cpp CMenuDeskBar.cpp CIDLDataObj.cpp @@ -67,6 +66,7 @@ wine/brsfolder.c wine/changenotify.c wine/classes.c + wine/clipboard.c wine/control.c wine/pidl.c wine/shell32_main.c
Removed: branches/shell-experiments/dll/win32/shell32/clipboard.cpp URL: http://svn.reactos.org/svn/reactos/branches/shell-experiments/dll/win32/shel... ============================================================================== --- branches/shell-experiments/dll/win32/shell32/clipboard.cpp [iso-8859-1] (original) +++ branches/shell-experiments/dll/win32/shell32/clipboard.cpp (removed) @@ -1,240 +0,0 @@ -/* - * clipboard helper functions - * - * Copyright 2000 Juergen Schmied juergen.schmied@debitel.de - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * NOTES: - * - * For copy & paste functions within contextmenus does the shell use - * the OLE clipboard functions in combination with dataobjects. - * The OLE32.DLL gets loaded with LoadLibrary - * - * - a right mousebutton-copy sets the following formats: - * classic: - * Shell IDList Array - * Preferred Drop Effect - * Shell Object Offsets - * HDROP - * FileName - * ole: - * OlePrivateData (ClipboardDataObjectInterface) - * - */ - -#include "precomp.h" - -WINE_DEFAULT_DEBUG_CHANNEL(shell); - -/************************************************************************** - * RenderHDROP - * - * creates a CF_HDROP structure - */ -HGLOBAL RenderHDROP(LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - UINT i; - int size = 0; - WCHAR wszFileName[MAX_PATH]; - HGLOBAL hGlobal = NULL; - DROPFILES *pDropFiles; - int offset; - LPITEMIDLIST *pidls; - - 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); - - for (i=0; i<cidl;i++) - { - pidls[i] = ILCombine(pidlRoot, apidl[i]); - SHGetPathFromIDListW(pidls[i], wszFileName); - size += (wcslen(wszFileName) + 1) * sizeof(WCHAR); - } - - size += sizeof(WCHAR); - - /* Fill the structure */ - hGlobal = GlobalAlloc(GHND|GMEM_SHARE, size); - if(!hGlobal) - goto cleanup; - - pDropFiles = (DROPFILES *)GlobalLock(hGlobal); - offset = (sizeof(DROPFILES) + sizeof(WCHAR) - 1) / sizeof(WCHAR); - pDropFiles->pFiles = offset * sizeof(WCHAR); - pDropFiles->fWide = TRUE; - - for (i=0; i<cidl;i++) - { - SHGetPathFromIDListW(pidls[i], wszFileName); - wcscpy(((WCHAR*)pDropFiles)+offset, wszFileName); - offset += wcslen(wszFileName) + 1; - ILFree(pidls[i]); - } - - ((WCHAR*)pDropFiles)[offset] = 0; - GlobalUnlock(hGlobal); - -cleanup: - if(pidls) - HeapFree(GetProcessHeap(), 0, pidls); - - return hGlobal; -} - -HGLOBAL RenderSHELLIDLIST (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - UINT i; - int offset = 0, sizePidl, size; - HGLOBAL hGlobal; - LPIDA pcida; - - TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); - - /* get the size needed */ - size = sizeof(CIDA) + sizeof (UINT)*(cidl); /* header */ - size += ILGetSize (pidlRoot); /* root pidl */ - for(i=0; i<cidl; i++) - { - size += ILGetSize(apidl[i]); /* child pidls */ - } - - /* fill the structure */ - hGlobal = GlobalAlloc(GHND|GMEM_SHARE, size); - if(!hGlobal) return hGlobal; - pcida = (LPIDA)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; - - for(i=0; i<cidl; i++) /* child pidls */ - { - pcida->aoffset[i+1] = offset; - sizePidl = ILGetSize(apidl[i]); - memcpy(((LPBYTE)pcida)+offset, apidl[i], sizePidl); - offset += sizePidl; - } - - GlobalUnlock(hGlobal); - return hGlobal; -} - -HGLOBAL RenderSHELLIDLISTOFFSET (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - FIXME("\n"); - return 0; -} - -HGLOBAL RenderFILECONTENTS (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - FIXME("\n"); - return 0; -} - -HGLOBAL RenderFILEDESCRIPTOR (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - FIXME("\n"); - return 0; -} - -HGLOBAL RenderFILENAMEA (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - int size = 0; - char szTemp[MAX_PATH], *szFileName; - LPITEMIDLIST pidl; - HGLOBAL hGlobal; - BOOL bSuccess; - - TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); - - /* get path of combined pidl */ - pidl = ILCombine(pidlRoot, apidl[0]); - if (!pidl) - return 0; - - bSuccess = SHGetPathFromIDListA(pidl, szTemp); - SHFree(pidl); - if (!bSuccess) - return 0; - - 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); - - return hGlobal; -} - -HGLOBAL RenderFILENAMEW (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl) -{ - int size = 0; - WCHAR szTemp[MAX_PATH], *szFileName; - LPITEMIDLIST pidl; - HGLOBAL hGlobal; - BOOL bSuccess; - - TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl); - - /* get path of combined pidl */ - pidl = ILCombine(pidlRoot, apidl[0]); - if (!pidl) - return 0; - - bSuccess = SHGetPathFromIDListW(pidl, szTemp); - SHFree(pidl); - if (!bSuccess) - return 0; - - size = (wcslen(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); - - return hGlobal; -} - -HGLOBAL RenderPREFEREDDROPEFFECT (DWORD dwFlags) -{ - DWORD * pdwFlag; - HGLOBAL hGlobal; - - TRACE("(0x%08x)\n", dwFlags); - - hGlobal = GlobalAlloc(GHND|GMEM_SHARE, sizeof(DWORD)); - if(!hGlobal) return hGlobal; - pdwFlag = (DWORD*)GlobalLock(hGlobal); - *pdwFlag = dwFlags; - GlobalUnlock(hGlobal); - return hGlobal; -}
Copied: branches/shell-experiments/dll/win32/shell32/wine/clipboard.c (from r65270, branches/shell-experiments/dll/win32/shell32/clipboard.cpp) URL: http://svn.reactos.org/svn/reactos/branches/shell-experiments/dll/win32/shel... ============================================================================== --- branches/shell-experiments/dll/win32/shell32/clipboard.cpp [iso-8859-1] (original) +++ branches/shell-experiments/dll/win32/shell32/wine/clipboard.c [iso-8859-1] Thu Nov 6 18:07:58 2014 @@ -35,7 +35,13 @@ * */
-#include "precomp.h" +#define WIN32_NO_STATUS +#define _INC_WINDOWS + +#include <windef.h> +#include <winbase.h> +#include <shlobj.h> +#include <wine/debug.h>
WINE_DEFAULT_DEBUG_CHANNEL(shell);