{ This file is part of the Free Pascal run time library. Copyright (c) 2006-2008 Free Pascal development team. See the file COPYING.FPC, included in this distribution, for details about the copyright. This program 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. **********************************************************************} { Declarations for ceshell WinCE API } {exported functions list = to do, * please remove functions done * Exports ordinal name 49 ?DLL_SHGetSpecialFolderPath@@YAHPAUHWND__@@PAGHH@Z 4E ?PathIsRestrictedEx@@YAHPBGH@Z 16 ?SHRemoveFontResource@@YAHPAG@Z 17 ?_SHRemoveFontResource@@YAHPAG@Z C DLL_SHGetFileInfo 5 DoDragDrop 38 Host_CheckStack 3A Host_Exec 35 Host_FindBigDaddy 36 Host_MaxWindow 39 Host_MessageBox 37 Host_OpenPositionDB 3B Host_ShortcutGetArgs 3C Host_ShortcutRemoveArgs 34 Host_ShowFileError 42 ILConcatenate 43 ILCopy 41 ILFree 46 ILGetFileSystemPidlData 3D ILIsFileSystemPidl 3F ILIsGUIDPidl 3E ILIsNameSpacePidl 40 ILIsPidl 44 ILIsRemovableDevice 45 ILRealPathFromPidl 21 PathCompactPath 20 PathCompactSlashes 28 PathFileExists 1D PathFindExtension 1E PathFindFileName 2C PathGetArgs 23 PathGetAssociation 22 PathIsDirectory 24 PathIsExe 26 PathIsExtension 31 PathIsGUID 25 PathIsLink 32 PathIsRemovableDevice 33 PathIsRestricted 19 PathIsValidFileName 1A PathIsValidPath 27 PathMakePretty 30 PathMakeUniqueName 2F PathMatchSpec 2B PathRemoveArgs 1B PathRemoveBlanks 29 PathRemoveExtension 2A PathRemoveFileSpec 2E PathRemoveQuotes 2D PathRemoveQuotesAndArgs 1C PathRemoveTrailingSlashes 1F PathStripPath 6 RegisterDragDrop 7 RevokeDragDrop 12 SHAddToRecentDocs 4D SHCanonicalizePath 10 SHCreateShortcut 15 SHFlushCache 4A SHGetCEString 8 SHGetDesktopFolder 48 SHGetDocumentsFolder B SHGetMalloc 11 SHGetShortcutTarget 18 SHIsFileOperationRestricted 4C SHIsFileOperationRestrictedEx 47 SHIsRestrictedProcess F SHLoadDIBitmap E SHLoadDIBitmapBrush 13 SHRegQuerySZ 14 SHRegQuerySZEx 4 SHSetSystemEUDCFont 4B SHUnpackDirID 1 __IMPORT_DESCRIPTOR_CEShell 2 __NULL_IMPORT_DESCRIPTOR 49 __imp_?DLL_SHGetSpecialFolderPath@@YAHPAUHWND__@@PAGHH@Z 4E __imp_?PathIsRestrictedEx@@YAHPBGH@Z 16 __imp_?SHRemoveFontResource@@YAHPAG@Z 17 __imp_?_SHRemoveFontResource@@YAHPAG@Z C __imp_DLL_SHGetFileInfo 5 __imp_DoDragDrop 38 __imp_Host_CheckStack 3A __imp_Host_Exec 35 __imp_Host_FindBigDaddy 36 __imp_Host_MaxWindow 39 __imp_Host_MessageBox 37 __imp_Host_OpenPositionDB 3B __imp_Host_ShortcutGetArgs 3C __imp_Host_ShortcutRemoveArgs 34 __imp_Host_ShowFileError 42 __imp_ILConcatenate 43 __imp_ILCopy 41 __imp_ILFree 46 __imp_ILGetFileSystemPidlData 3D __imp_ILIsFileSystemPidl 3F __imp_ILIsGUIDPidl 3E __imp_ILIsNameSpacePidl 40 __imp_ILIsPidl 44 __imp_ILIsRemovableDevice 45 __imp_ILRealPathFromPidl 21 __imp_PathCompactPath 20 __imp_PathCompactSlashes 28 __imp_PathFileExists 1D __imp_PathFindExtension 1E __imp_PathFindFileName 2C __imp_PathGetArgs 23 __imp_PathGetAssociation 22 __imp_PathIsDirectory 24 __imp_PathIsExe 26 __imp_PathIsExtension 31 __imp_PathIsGUID 25 __imp_PathIsLink 32 __imp_PathIsRemovableDevice 33 __imp_PathIsRestricted 19 __imp_PathIsValidFileName 1A __imp_PathIsValidPath 27 __imp_PathMakePretty 30 __imp_PathMakeUniqueName 2F __imp_PathMatchSpec 2B __imp_PathRemoveArgs 1B __imp_PathRemoveBlanks 29 __imp_PathRemoveExtension 2A __imp_PathRemoveFileSpec 2E __imp_PathRemoveQuotes 2D __imp_PathRemoveQuotesAndArgs 1C __imp_PathRemoveTrailingSlashes 1F __imp_PathStripPath 6 __imp_RegisterDragDrop 7 __imp_RevokeDragDrop 12 __imp_SHAddToRecentDocs 4D __imp_SHCanonicalizePath 10 __imp_SHCreateShortcut 15 __imp_SHFlushCache 4A __imp_SHGetCEString 8 __imp_SHGetDesktopFolder 48 __imp_SHGetDocumentsFolder B __imp_SHGetMalloc 11 __imp_SHGetShortcutTarget 18 __imp_SHIsFileOperationRestricted 4C __imp_SHIsFileOperationRestrictedEx 47 __imp_SHIsRestrictedProcess F __imp_SHLoadDIBitmap E __imp_SHLoadDIBitmapBrush 13 __imp_SHRegQuerySZ 14 __imp_SHRegQuerySZEx 4 __imp_SHSetSystemEUDCFont 4B __imp_SHUnpackDirID 3 CEShell_NULL_THUNK_DATA } {$mode objfpc} unit shellapi; interface uses windows; {$calling cdecl} //***************************************************************************** // consts //***************************************************************************** const ShellDLL = 'CEShell'; FO_MOVE = $0001; FO_COPY = $0002; FO_DELETE = $0003; FO_RENAME = $0004; FOF_MULTIDESTFILES = $0001; FOF_CONFIRMMOUSE = $0002; FOF_SILENT = $0004; // don't create progress/report FOF_RENAMEONCOLLISION = $0008; FOF_NOCONFIRMATION = $0010; // Don't prompt the user. FOF_WANTMAPPINGHANDLE = $0020; // Fill in SHFILEOPSTRUCT.hNameMappings // Must be freed using SHFreeNameMappings FOF_ALLOWUNDO = $0040; FOF_FILESONLY = $0080; // on *.*, do only files FOF_SIMPLEPROGRESS = $0100; // means don't show names of files FOF_NOCONFIRMMKDIR = $0200; // don't confirm making any needed dirs //***************************************************************************** // types //***************************************************************************** type { IMalloc interface } IMalloc = interface(IUnknown) ['{00000002-0000-0000-C000-000000000046}'] function Alloc(cb: Longint): Pointer; function Realloc(pv: Pointer; cb: Longint): Pointer; procedure Free(pv: Pointer); function GetSize(pv: Pointer): Longint; function DidAlloc(pv: Pointer): longint; procedure HeapMinimize; end; LPMALLOC = ^IMalloc; PMALLOC = ^IMalloc; //***************************************************************************** // functions //***************************************************************************** function SHFileOperation(lpFileOp:LPSHFILEOPSTRUCTW): longint; external ShellDLL name 'SHFileOperationW'; function SHFileOperation(const lpFileOp:SHFILEOPSTRUCTW): longint; external ShellDLL name 'SHFileOperationW'; function SHFileOperationW(lpFileOp:LPSHFILEOPSTRUCTW): longint; external ShellDLL name 'SHFileOperationW'; function SHFileOperationW(const lpFileOp:SHFILEOPSTRUCTW): longint; external ShellDLL name 'SHFileOperationW'; function SHGetPathFromIDList(_para1:LPCITEMIDLIST; _para2:LPTSTR):WINBOOL; external ShellDLL name 'SHGetPathFromIDList'; function SHGetPathFromIDListW(_para1:LPCITEMIDLIST; _para2:LPTSTR):WINBOOL; external ShellDLL name 'SHGetPathFromIDList'; function SHGetMalloc(var ppMalloc: LPMALLOC): HRESULT; external ShellDLL name 'SHGetMalloc'; function SHGetSpecialFolderLocation(_para1:HWND; _para2:longint; var _para3:LPITEMIDLIST):HRESULT; external ShellDLL name 'SHGetSpecialFolderLocation'; implementation end.