| /* |
| * Copyright 1999, 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 |
| * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| */ |
| |
| #ifndef __WINE_UNDOCSHELL_H |
| #define __WINE_UNDOCSHELL_H |
| |
| #include "windef.h" |
| #include "commctrl.h" |
| #include "shlobj.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif /* defined(__cplusplus) */ |
| |
| /**************************************************************************** |
| * IDList Functions |
| */ |
| LPITEMIDLIST WINAPI ILClone (LPCITEMIDLIST pidl); |
| LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl); |
| |
| LPITEMIDLIST WINAPI ILCombine( |
| LPCITEMIDLIST iil1, |
| LPCITEMIDLIST iil2); |
| |
| DWORD WINAPI ILGetSize(LPITEMIDLIST pidl); |
| |
| LPITEMIDLIST WINAPI ILGetNext(LPITEMIDLIST pidl); |
| LPITEMIDLIST WINAPI ILFindLastID(LPITEMIDLIST pidl); |
| BOOL WINAPI ILRemoveLastID(LPCITEMIDLIST pidl); |
| |
| LPITEMIDLIST WINAPI ILFindChild( |
| LPCITEMIDLIST pidl1, |
| LPCITEMIDLIST pidl2); |
| |
| LPITEMIDLIST WINAPI ILAppendID( |
| LPITEMIDLIST pidl, |
| LPCSHITEMID lpItemID, |
| BOOL bAddToEnd); |
| |
| BOOL WINAPI ILIsEqual( |
| LPCITEMIDLIST pidl1, |
| LPCITEMIDLIST pidl2); |
| |
| BOOL WINAPI ILIsParent( |
| LPCITEMIDLIST pidlParent, |
| LPCITEMIDLIST pidlChild, |
| BOOL bImmediate); |
| |
| BOOL WINAPI ILGetDisplayName( |
| LPCITEMIDLIST pidl, |
| LPSTR path); |
| |
| DWORD WINAPI ILFree(LPITEMIDLIST pidl); |
| |
| HRESULT WINAPI ILSaveToStream( |
| LPSTREAM pstrm, |
| LPCITEMIDLIST pidl); |
| |
| HRESULT WINAPI ILLoadFromStream( |
| LPSTREAM pstrm, |
| LPITEMIDLIST *ppidl); |
| |
| LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl); |
| void WINAPI ILGlobalFree(LPCITEMIDLIST pidl); |
| |
| LPITEMIDLIST WINAPI SHSimpleIDListFromPathA (LPCSTR lpszPath); |
| LPITEMIDLIST WINAPI SHSimpleIDListFromPathW (LPCWSTR lpszPath); |
| LPITEMIDLIST WINAPI SHSimpleIDListFromPathAW (LPCVOID lpszPath); |
| |
| HRESULT WINAPI SHILCreateFromPathA ( |
| LPCSTR path, |
| LPITEMIDLIST * ppidl, |
| DWORD *attributes); |
| |
| HRESULT WINAPI SHILCreateFromPathW ( |
| LPCWSTR path, |
| LPITEMIDLIST * ppidl, |
| DWORD *attributes); |
| |
| HRESULT WINAPI SHILCreateFromPathAW ( |
| LPCVOID path, |
| LPITEMIDLIST * ppidl, |
| DWORD *attributes); |
| |
| LPITEMIDLIST WINAPI ILCreateFromPathA(LPCSTR path); |
| LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path); |
| LPITEMIDLIST WINAPI ILCreateFromPathAW(LPCVOID path); |
| |
| HRESULT WINAPI SHBindToParent( |
| LPCITEMIDLIST pidl, |
| REFIID riid, |
| LPVOID *ppv, |
| LPCITEMIDLIST *ppidlLast); |
| |
| /* |
| string functions |
| */ |
| HRESULT WINAPI StrRetToStrNA ( |
| LPVOID dest, |
| DWORD len, |
| LPSTRRET src, |
| const ITEMIDLIST *pidl); |
| |
| HRESULT WINAPI StrRetToStrNW ( |
| LPVOID dest, |
| DWORD len, |
| LPSTRRET src, |
| const ITEMIDLIST *pidl); |
| |
| HRESULT WINAPI StrRetToStrNAW ( |
| LPVOID dest, |
| DWORD len, |
| LPSTRRET src, |
| const ITEMIDLIST *pidl); |
| |
| |
| /**************************************************************************** |
| * SHChangeNotifyRegister API |
| */ |
| #define SHCNF_ACCEPT_INTERRUPTS 0x0001 |
| #define SHCNF_ACCEPT_NON_INTERRUPTS 0x0002 |
| #define SHCNF_NO_PROXY 0x8001 |
| |
| typedef struct |
| { |
| LPCITEMIDLIST pidlPath; |
| BOOL bWatchSubtree; |
| } NOTIFYREGISTER, *LPNOTIFYREGISTER; |
| |
| typedef const LPNOTIFYREGISTER LPCNOTIFYREGISTER; |
| |
| typedef struct |
| { |
| USHORT cb; |
| DWORD dwItem1; |
| DWORD dwItem2; |
| } DWORDITEMID; |
| |
| HANDLE WINAPI SHChangeNotifyRegister( |
| HWND hwnd, |
| LONG dwFlags, |
| LONG wEventMask, |
| DWORD uMsg, |
| int cItems, |
| LPCNOTIFYREGISTER lpItems); |
| |
| BOOL WINAPI SHChangeNotifyDeregister(HANDLE hNotify); |
| |
| HANDLE WINAPI SHChangeNotification_Lock( |
| HANDLE hMemoryMap, |
| DWORD dwProcessId, |
| LPCITEMIDLIST **lppidls, |
| LPLONG lpwEventId); |
| |
| BOOL WINAPI SHChangeNotification_Unlock(HANDLE hLock); |
| |
| /**************************************************************************** |
| * Shell Common Dialogs |
| */ |
| |
| BOOL WINAPI PickIconDlg( |
| HWND hwndOwner, |
| LPSTR lpstrFile, |
| DWORD nMaxFile, |
| LPDWORD lpdwIconIndex); |
| |
| /* RunFileDlg flags */ |
| #define RFF_NOBROWSE 0x01 |
| #define RFF_NODEFAULT 0x02 |
| #define RFF_CALCDIRECTORY 0x04 |
| #define RFF_NOLABEL 0x08 |
| #define RFF_NOSEPARATEMEM 0x20 /* NT only */ |
| |
| /* RunFileFlg notification structure */ |
| typedef struct |
| { |
| NMHDR hdr; |
| LPCSTR lpFile; |
| LPCSTR lpDirectory; |
| int nShow; |
| } NM_RUNFILEDLG, * LPNM_RUNFILEDLG; |
| |
| /* RunFileDlg notification return values */ |
| #define RF_OK 0x00 |
| #define RF_CANCEL 0x01 |
| #define RF_RETRY 0x02 |
| |
| void WINAPI RunFileDlg( |
| HWND hwndOwner, |
| HICON hIcon, |
| LPCSTR lpstrDirectory, |
| LPCSTR lpstrTitle, |
| LPCSTR lpstrDescription, |
| UINT uFlags); |
| |
| void WINAPI ExitWindowsDialog(HWND hwndOwner); |
| |
| int WINAPI RestartDialog( |
| HWND hwndOwner, |
| LPCSTR lpstrReason, |
| UINT uFlags); |
| |
| BOOL WINAPI GetFileNameFromBrowse( |
| HWND hwndOwner, |
| LPSTR lpstrFile, |
| DWORD nMaxFile, |
| LPCSTR lpstrInitialDir, |
| LPCSTR lpstrDefExt, |
| LPCSTR lpstrFilter, |
| LPCSTR lpstrTitle); |
| |
| BOOL WINAPI SHFindFiles( |
| LPCITEMIDLIST pidlRoot, |
| LPCITEMIDLIST pidlSavedSearch); |
| |
| BOOL WINAPI SHFindComputer( |
| LPCITEMIDLIST pidlRoot, |
| LPCITEMIDLIST pidlSavedSearch); |
| |
| /* SHObjectProperties flags */ |
| #define OPF_PRINTERNAME 0x01 |
| #define OPF_PATHNAME 0x02 |
| |
| BOOL WINAPI SHObjectProperties( |
| HWND hwndOwner, |
| UINT uFlags, |
| LPCSTR lpstrName, |
| LPCSTR lpstrParameters); |
| |
| void WINAPI SHHandleDiskFull(HWND hwndOwner, |
| UINT uDrive); |
| |
| int WINAPI SHOutOfMemoryMessageBox( |
| HWND hwndOwner, |
| LPCSTR lpCaption, |
| UINT uType); |
| |
| DWORD WINAPI SHNetConnectionDialog( |
| HWND hwndOwner, |
| LPCSTR lpstrRemoteName, |
| DWORD dwType); |
| |
| int WINAPIV ShellMessageBoxA( |
| HINSTANCE hInstance, |
| HWND hWnd, |
| LPCSTR lpText, |
| LPCSTR lpCaption, |
| UINT uType, |
| ...); |
| |
| int WINAPIV ShellMessageBoxW( |
| HINSTANCE hInstance, |
| HWND hWnd, |
| LPCWSTR lpText, |
| LPCWSTR lpCaption, |
| UINT uType, |
| ...); |
| |
| #define ShellMessageBox WINELIB_NAME_AW(ShellMessageBox) |
| |
| /**************************************************************************** |
| * Memory Routines |
| */ |
| |
| LPVOID WINAPI SHAlloc(ULONG cb); |
| void WINAPI SHFree(LPVOID pv); |
| |
| HANDLE WINAPI SHAllocShared( |
| LPVOID pv, |
| ULONG cb, |
| DWORD pid); |
| |
| BOOL WINAPI SHFreeShared( |
| HANDLE hMem, |
| DWORD pid); |
| |
| LPVOID WINAPI SHLockShared( |
| HANDLE hMem, |
| DWORD pid); |
| |
| BOOL WINAPI SHUnlockShared(LPVOID pv); |
| |
| /**************************************************************************** |
| * Cabinet Window Messages |
| */ |
| |
| #define CWM_SETPATH (WM_USER + 2) |
| #define CWM_WANTIDLE (WM_USER + 3) |
| #define CWM_GETSETCURRENTINFO (WM_USER + 4) |
| #define CWM_SELECTITEM (WM_USER + 5) |
| #define CWM_SELECTITEMSTR (WM_USER + 6) |
| #define CWM_GETISHELLBROWSER (WM_USER + 7) |
| #define CWM_TESTPATH (WM_USER + 9) |
| #define CWM_STATECHANGE (WM_USER + 10) |
| #define CWM_GETPATH (WM_USER + 12) |
| |
| /* CWM_TESTPATH types */ |
| #define CWTP_ISEQUAL 0 |
| #define CWTP_ISCHILD 1 |
| |
| /* CWM_TESTPATH structure */ |
| typedef struct |
| { |
| DWORD dwType; |
| ITEMIDLIST idl; |
| } CWTESTPATHSTRUCT,* LPCWTESTPATHSTRUCT; |
| |
| /**************************************************************************** |
| * System Imagelist Routines |
| */ |
| |
| int WINAPI Shell_GetCachedImageIndex( |
| LPCSTR lpszFileName, |
| UINT nIconIndex, |
| BOOL bSimulateDoc); |
| |
| BOOL WINAPI Shell_GetImageLists( |
| HIMAGELIST *lphimlLarge, |
| HIMAGELIST *lphimlSmall); |
| |
| HICON WINAPI SHGetFileIcon( |
| DWORD dwReserved, |
| LPCSTR lpszPath, |
| DWORD dwFileAttributes, |
| UINT uFlags); |
| |
| int WINAPI SHMapPIDLToSystemImageListIndex( |
| LPSHELLFOLDER psf, |
| LPCITEMIDLIST pidl, |
| UINT * pOpenIndex); |
| |
| BOOL WINAPI FileIconInit(BOOL bFullInit); |
| |
| /**************************************************************************** |
| * File Menu Routines |
| */ |
| /* FileMenu_Create nSelHeight constants */ |
| #define FM_DEFAULT_SELHEIGHT -1 |
| #define FM_FULL_SELHEIGHT 0 |
| |
| /* FileMenu_Create flags */ |
| #define FMF_SMALL_ICONS 0x00 |
| #define FMF_LARGE_ICONS 0x08 |
| #define FMF_NO_COLUMN_BREAK 0x10 |
| |
| HMENU WINAPI FileMenu_Create( |
| COLORREF crBorderColor, |
| int nBorderWidth, |
| HBITMAP hBorderBmp, |
| int nSelHeight, |
| UINT uFlags); |
| |
| void WINAPI FileMenu_Destroy(HMENU hMenu); |
| |
| /* FileMenu_AppendItem constants */ |
| #define FM_SEPARATOR (LPCSTR)1 |
| #define FM_BLANK_ICON -1 |
| #define FM_DEFAULT_HEIGHT 0 |
| |
| BOOL WINAPI FileMenu_AppendItem( |
| HMENU hMenu, |
| LPCSTR lpszText, |
| UINT uID, |
| int iIcon, |
| HMENU hMenuPopup, |
| int nItemHeight); |
| |
| /* FileMenu_InsertUsingPidl flags */ |
| #define FMF_NO_EMPTY_ITEM 0x01 |
| #define FMF_NO_PROGRAM_GROUPS 0x04 |
| |
| /* FileMenu_InsertUsingPidl callback function */ |
| typedef void (CALLBACK *LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile); |
| |
| int WINAPI FileMenu_InsertUsingPidl( |
| HMENU hMenu, |
| UINT uID, |
| LPCITEMIDLIST pidl, |
| UINT uFlags, |
| UINT uEnumFlags, |
| LPFNFMCALLBACK lpfnCallback); |
| |
| int WINAPI FileMenu_ReplaceUsingPidl( |
| HMENU hMenu, |
| UINT uID, |
| LPCITEMIDLIST pidl, |
| UINT uEnumFlags, |
| LPFNFMCALLBACK lpfnCallback); |
| |
| void WINAPI FileMenu_Invalidate(HMENU hMenu); |
| |
| HMENU WINAPI FileMenu_FindSubMenuByPidl( |
| HMENU hMenu, |
| LPCITEMIDLIST pidl); |
| |
| BOOL WINAPI FileMenu_TrackPopupMenuEx( |
| HMENU hMenu, |
| UINT uFlags, |
| int x, |
| int y, |
| HWND hWnd, |
| LPTPMPARAMS lptpm); |
| |
| BOOL WINAPI FileMenu_GetLastSelectedItemPidls( |
| UINT uReserved, |
| LPITEMIDLIST *ppidlFolder, |
| LPITEMIDLIST *ppidlItem); |
| |
| LRESULT WINAPI FileMenu_MeasureItem( |
| HWND hWnd, |
| LPMEASUREITEMSTRUCT lpmis); |
| |
| LRESULT WINAPI FileMenu_DrawItem( |
| HWND hWnd, |
| LPDRAWITEMSTRUCT lpdis); |
| |
| BOOL WINAPI FileMenu_InitMenuPopup(HMENU hMenu); |
| |
| void WINAPI FileMenu_AbortInitMenu(void); |
| |
| LRESULT WINAPI FileMenu_HandleMenuChar( |
| HMENU hMenu, |
| WPARAM wParam); |
| |
| BOOL WINAPI FileMenu_DeleteAllItems(HMENU hMenu); |
| |
| BOOL WINAPI FileMenu_DeleteItemByCmd( |
| HMENU hMenu, |
| UINT uID); |
| |
| BOOL WINAPI FileMenu_DeleteItemByIndex( |
| HMENU hMenu, |
| UINT uPos); |
| |
| BOOL WINAPI FileMenu_DeleteMenuItemByFirstID( |
| HMENU hMenu, |
| UINT uID); |
| |
| BOOL WINAPI FileMenu_DeleteSeparator(HMENU hMenu); |
| |
| BOOL WINAPI FileMenu_EnableItemByCmd( |
| HMENU hMenu, |
| UINT uID, |
| BOOL bEnable); |
| |
| DWORD WINAPI FileMenu_GetItemExtent( |
| HMENU hMenu, |
| UINT uPos); |
| |
| int WINAPI FileMenu_AppendFilesForPidl( |
| HMENU hMenu, |
| LPCITEMIDLIST pidl, |
| BOOL bAddSeparator); |
| |
| int WINAPI FileMenu_AddFilesForPidl( |
| HMENU hMenu, |
| UINT uReserved, |
| UINT uID, |
| LPCITEMIDLIST pidl, |
| UINT uFlags, |
| UINT uEnumFlags, |
| LPFNFMCALLBACK lpfnCallback); |
| |
| /**************************************************************************** |
| * Drag And Drop Routines |
| */ |
| HRESULT WINAPI SHLoadOLE(DWORD dwFlags); |
| |
| HRESULT WINAPI SHRegisterDragDrop( |
| HWND hWnd, |
| LPDROPTARGET lpDropTarget); |
| |
| HRESULT WINAPI SHRevokeDragDrop(HWND hWnd); |
| |
| HRESULT WINAPI SHDoDragDrop( |
| HWND hWnd, |
| LPDATAOBJECT lpDataObject, |
| LPDROPSOURCE lpDropSource, |
| DWORD dwOKEffect, |
| LPDWORD pdwEffect); |
| |
| BOOL WINAPI DAD_DragEnter(HWND hWnd); |
| |
| BOOL WINAPI DAD_DragEnterEx( |
| HWND hWnd, |
| POINT pt); |
| |
| BOOL WINAPI DAD_DragMove(POINT pt); |
| |
| /* DAD_AutoScroll return values */ |
| #define DAD_SCROLL_UP 1 |
| #define DAD_SCROLL_DOWN 2 |
| #define DAD_SCROLL_LEFT 4 |
| #define DAD_SCROLL_RIGHT 8 |
| |
| /* DAD_AutoScroll sample structure */ |
| typedef struct |
| { |
| DWORD dwCount; |
| DWORD dwLastTime; |
| BOOL bWrapped; |
| POINT aptPositions[3]; |
| DWORD adwTimes[3]; |
| } SCROLLSAMPLES, *LPSCROLLSAMPLES; |
| |
| DWORD WINAPI DAD_AutoScroll(HWND hWnd, |
| LPSCROLLSAMPLES lpSamples, |
| LPPOINT lppt); |
| |
| BOOL WINAPI DAD_DragLeave(); |
| |
| BOOL WINAPI DAD_SetDragImageFromListView( |
| HWND hWnd, |
| POINT pt); |
| |
| BOOL WINAPI DAD_SetDragImage( |
| HIMAGELIST himlTrack, |
| LPPOINT lppt); |
| |
| BOOL WINAPI DAD_ShowDragImage(BOOL bShow); |
| |
| HRESULT WINAPI SHCreateStdEnumFmtEtc( |
| DWORD cFormats, |
| const FORMATETC *lpFormats, |
| LPENUMFORMATETC *ppenumFormatetc); |
| |
| HRESULT WINAPI CIDLData_CreateFromIDArray( |
| LPCITEMIDLIST pidlFolder, |
| DWORD cpidlFiles, |
| LPCITEMIDLIST *lppidlFiles, |
| LPDATAOBJECT *ppdataObject); |
| |
| /**************************************************************************** |
| * Path Manipulation Routines |
| */ |
| |
| BOOL WINAPI PathAppendAW(LPVOID lpszPath1, LPCVOID lpszPath2); |
| |
| LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile); |
| |
| LPVOID WINAPI PathAddBackslashAW(LPVOID path); |
| |
| LPVOID WINAPI PathBuildRootAW(LPVOID lpszPath, int drive); |
| |
| LPVOID WINAPI PathFindExtensionAW(LPCVOID path); |
| |
| LPVOID WINAPI PathFindFileNameAW(LPCVOID path); |
| |
| LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath, DWORD void1, DWORD void2); |
| |
| LPVOID WINAPI PathGetArgsAW(LPVOID lpszPath); |
| |
| BOOL WINAPI PathRemoveFileSpecAW(LPVOID lpszPath); |
| |
| LPVOID WINAPI PathGetShortPathAW(LPVOID lpszPath); |
| |
| void WINAPI PathRemoveBlanksAW(LPVOID lpszPath); |
| |
| LPVOID WINAPI PathQuoteSpacesAW(LPVOID path); |
| |
| void WINAPI PathUnquoteSpacesAW(LPVOID lpszPath); |
| |
| BOOL WINAPI PathIsUNCAW(LPCVOID lpszPath); |
| |
| BOOL WINAPI PathIsRelativeAW(LPCVOID lpszPath); |
| |
| BOOL WINAPI PathIsRootAW(LPCVOID x); |
| |
| BOOL WINAPI PathIsExeAW(LPCVOID lpszPath); |
| |
| BOOL WINAPI PathIsDirectoryAW(LPCVOID lpszPath); |
| |
| BOOL WINAPI PathFileExistsAW(LPCVOID lpszPath); |
| |
| BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec); |
| |
| BOOL WINAPI PathMakeUniqueNameAW( |
| LPVOID lpszBuffer, |
| DWORD dwBuffSize, |
| LPCVOID lpszShortName, |
| LPCVOID lpszLongName, |
| LPCVOID lpszPathName); |
| |
| BOOL WINAPI PathYetAnotherMakeUniqueNameA( |
| LPSTR lpszBuffer, |
| LPCSTR lpszPathName, |
| LPCSTR lpszShortName, |
| LPCSTR lpszLongName); |
| |
| /* PathCleanupSpec return values */ |
| #define PCS_REPLACEDCHARS 0x00000001 |
| #define PCS_REMOVEDCHARS 0x00000002 |
| #define PCS_SHORTENED 0x00000004 |
| #define PCS_PATHTOOLONG 0x80000008 |
| |
| DWORD WINAPI PathCleanupSpecAW(LPCVOID lpszPath, LPVOID lpszFile); |
| |
| BOOL WINAPI PathQualifyA(LPCSTR path); |
| BOOL WINAPI PathQualifyW(LPCWSTR path); |
| #define PathQualify WINELIB_NAME_AW(PathQualify) |
| BOOL WINAPI PathQualifyAW(LPCVOID path); |
| |
| |
| /* PathResolve flags */ |
| #define PRF_CHECKEXISTANCE 0x01 |
| #define PRF_EXECUTABLE 0x02 |
| #define PRF_QUALIFYONPATH 0x04 |
| #define PRF_WINDOWS31 0x08 |
| |
| BOOL WINAPI PathResolveAW(LPVOID lpszPath, LPCVOID *alpszPaths, DWORD dwFlags); |
| |
| BOOL WINAPI PathSetDlgItemPathAW(HWND hDlg, int nIDDlgItem, LPCVOID lpszPath); |
| |
| /* PathProcessCommand flags */ |
| #define PPCF_QUOTEPATH 0x01 /* implies PPCF_INCLUDEARGS */ |
| #define PPCF_INCLUDEARGS 0x02 |
| #define PPCF_NODIRECTORIES 0x10 |
| #define PPCF_DONTRESOLVE 0x20 |
| #define PPCF_PATHISRELATIVE 0x40 |
| |
| HRESULT WINAPI PathProcessCommandAW(LPCVOID lpszPath, LPVOID lpszBuff, |
| DWORD dwBuffSize, DWORD dwFlags); |
| |
| void WINAPI PathStripPathAW(LPVOID lpszPath); |
| |
| BOOL WINAPI PathStripToRootAW(LPVOID lpszPath); |
| |
| void WINAPI PathRemoveArgsAW(LPVOID lpszPath); |
| |
| void WINAPI PathRemoveExtensionAW(LPVOID lpszPath); |
| |
| int WINAPI PathParseIconLocationAW(LPVOID lpszPath); |
| |
| BOOL WINAPI PathIsSameRootAW(LPCVOID lpszPath1, LPCVOID lpszPath2); |
| |
| BOOL WINAPI PathFindOnPathAW(LPVOID sFile, LPCVOID sOtherDirs); |
| |
| /**************************************************************************** |
| * Shell Namespace Routines |
| */ |
| |
| /* SHCreateShellFolderViewEx callback function */ |
| typedef HRESULT (CALLBACK *LPFNSFVCALLBACK)( |
| DWORD dwUser, |
| LPSHELLFOLDER pshf, |
| HWND hWnd, |
| UINT uMsg, |
| WPARAM wParam, |
| LPARAM lParam); |
| |
| /* SHCreateShellFolderViewEx structure */ |
| typedef struct |
| { |
| DWORD dwSize; |
| LPSHELLFOLDER pshf; |
| DWORD dwUser; |
| LPCITEMIDLIST pidlFolder; |
| DWORD dwEventId; |
| LPFNSFVCALLBACK lpfnCallback; |
| UINT uViewMode; |
| } SHELLFOLDERVIEWINFO, * LPSHELLFOLDERVIEWINFO; |
| typedef const SHELLFOLDERVIEWINFO * LPCSHELLFOLDERVIEWINFO; |
| |
| HRESULT WINAPI SHCreateShellFolderViewEx( |
| LPCSHELLFOLDERVIEWINFO pshfvi, |
| LPSHELLVIEW *ppshv); |
| |
| /* SHCreateShellFolderViewEx callback messages */ |
| #define SFVCB_ADDTOMENU 0x0001 |
| #define SFVCB_INVOKECOMMAND 0x0002 |
| #define SFVCB_GETMENUHELP 0x0003 |
| #define SFVCB_GETTOOLBARTIP 0x0004 |
| #define SFVCB_GETTOOLBARINFO 0x0005 |
| #define SFVCB_ADDTOOLBARITEMS 0x0006 |
| #define SFVCB_INITMENUPOPUP 0x0007 |
| #define SFVCB_SELECTIONCHANGED 0x0008 |
| #define SFVCB_DRAWMENUITEM 0x0009 |
| #define SFVCB_MEASUREMENUITEM 0x000A |
| #define SFVCB_EXITMENULOOP 0x000B |
| #define SFVCB_VIEWRELEASE 0x000C |
| #define SFVCB_GETNAMELENGTH 0x000D |
| #define SFVCB_CHANGENOTIFY 0x000E |
| #define SFVCB_WINDOWCREATED 0x000F |
| #define SFVCB_WINDOWCLOSING 0x0010 |
| #define SFVCB_LISTREFRESHED 0x0011 |
| #define SFVCB_WINDOWFOCUSED 0x0012 |
| #define SFVCB_REGISTERCOPYHOOK 0x0014 |
| #define SFVCB_COPYHOOKCALLBACK 0x0015 |
| #define SFVCB_GETDETAILSOF 0x0017 |
| #define SFVCB_COLUMNCLICK 0x0018 |
| #define SFVCB_GETCHANGENOTIFYPIDL 0x0019 |
| #define SFVCB_GETESTIMATEDCOUNT 0x001A |
| #define SFVCB_ADJUSTVIEWMODE 0x001B |
| #define SFVCB_REMOVEFROMMENU 0x001C |
| #define SFVCB_ADDINGOBJECT 0x001D |
| #define SFVCB_REMOVINGOBJECT 0x001E |
| #define SFVCB_UPDATESTATUSBAR 0x001F |
| #define SFVCB_ISSLOWREFRESH 0x0020 |
| #define SFVCB_GETCOMMANDDIR 0x0021 |
| #define SFVCB_GETCOLUMNSTREAM 0x0022 |
| #define SFVCB_CANSELECTALL 0x0023 |
| #define SFVCB_DRAGSUCCEEDED 0x0024 |
| #define SFVCB_ISSTRICTREFRESH 0x0025 |
| #define SFVCB_ISCHILDOBJECT 0x0026 |
| |
| /* Generic structure used by several messages */ |
| typedef struct |
| { |
| DWORD dwReserved; |
| DWORD dwReserved2; |
| LPCITEMIDLIST pidl; |
| LPDWORD lpdwUser; |
| } SFVCBINFO, * LPSFVCBINFO; |
| typedef const SFVCBINFO * LPCSFVCBINFO; |
| |
| /* SFVCB_ADDTOMENU structure */ |
| typedef struct |
| { |
| HMENU hMenu; |
| UINT indexMenu; |
| UINT idCmdFirst; |
| UINT idCmdLast; |
| } SFVMENUINFO, * LPSFVMENUINFO; |
| |
| /* SFVCB_GETTOOLBARINFO structure */ |
| typedef struct |
| { |
| UINT nButtons; |
| UINT uFlags; |
| } SFVTOOLBARINFO, * LPSFVTOOLBARINFO; |
| |
| /* SFVTOOLBARINFO flags */ |
| typedef enum |
| { |
| SFVTI_ADDTOEND = 0, |
| SFVTI_ADDTOFRONT = 1, |
| SFVTI_OVERWRITE = 2 |
| } SFVTIF; |
| |
| /* SFVCB_SELECTIONCHANGED structure */ |
| typedef struct |
| { |
| UINT uOldState; |
| UINT uNewState; |
| LPCITEMIDLIST pidl; |
| LPDWORD lpdwUser; |
| } SFVSELECTSTATE, * LPSFVSELECTSTATE; |
| typedef const SFVSELECTSTATE * LPCSFVSELECTSTATE; |
| |
| /* SFVCB_COPYHOOKCALLBACK structure */ |
| typedef struct |
| { |
| HWND hwnd; |
| UINT wFunc; |
| UINT wFlags; |
| LPCSTR pszSrcFile; |
| DWORD dwSrcAttribs; |
| LPCSTR pszDestFile; |
| DWORD dwDestAttribs; |
| } SFVCOPYHOOKINFO, * LPSFVCOPYHOOKINFO; |
| typedef const SFVCOPYHOOKINFO * LPCSFVCOPYHOOKINFO; |
| |
| /* SFVCB_GETDETAILSOF structure */ |
| typedef struct |
| { |
| LPCITEMIDLIST pidl; |
| int fmt; |
| int cx; |
| STRRET lpText; |
| } SFVCOLUMNINFO, * LPSFVCOLUMNINFO; |
| |
| int WINAPI SHShellFolderView_Message( |
| HWND hwndCabinet, |
| DWORD dwMessage, |
| DWORD dwParam); |
| |
| /* SHShellFolderView_Message messages */ |
| #define SFVM_REARRANGE 0x0001 |
| #define SFVM_GETARRANGECOLUMN 0x0002 |
| #define SFVM_ADDOBJECT 0x0003 |
| #define SFVM_GETITEMCOUNT 0x0004 |
| #define SFVM_GETITEMPIDL 0x0005 |
| #define SFVM_REMOVEOBJECT 0x0006 |
| #define SFVM_UPDATEOBJECT 0x0007 |
| #define SFVM_SETREDRAW 0x0008 |
| #define SFVM_GETSELECTEDOBJECTS 0x0009 |
| #define SFVM_ISDROPONSOURCE 0x000A |
| #define SFVM_MOVEICONS 0x000B |
| #define SFVM_GETDRAGPOINT 0x000C |
| #define SFVM_GETDROPPOINT 0x000D |
| #define SFVM_SETOBJECTPOS 0x000E |
| #define SFVM_ISDROPONBACKGROUND 0x000F |
| #define SFVM_CUTOBJECTS 0x0010 |
| #define SFVM_TOGGLEAUTOARRANGE 0x0011 |
| #define SFVM_LINEUPICONS 0x0012 |
| #define SFVM_GETAUTOARRANGE 0x0013 |
| #define SFVM_GETSELECTEDCOUNT 0x0014 |
| #define SFVM_GETITEMSPACING 0x0015 |
| #define SFVM_REFRESHOBJECT 0x0016 |
| #define SFVM_SETCLIPBOARDPOINTS 0x0017 |
| |
| /**************************************************************************** |
| * Misc Stuff |
| */ |
| |
| /* SHWaitForFileToOpen flags */ |
| #define SHWFF_ADD 0x01 |
| #define SHWFF_REMOVE 0x02 |
| #define SHWFF_WAIT 0x04 |
| |
| BOOL WINAPI SHWaitForFileToOpen( |
| LPCITEMIDLIST pidl, |
| DWORD dwFlags, |
| DWORD dwTimeout); |
| |
| WORD WINAPI ArrangeWindows( |
| HWND hwndParent, |
| DWORD dwReserved, |
| LPCRECT lpRect, |
| WORD cKids, |
| CONST HWND * lpKids); |
| |
| /* RegisterShellHook types */ |
| #define RSH_DEREGISTER 0 |
| #define RSH_REGISTER 1 |
| #define RSH_REGISTER_PROGMAN 2 |
| #define RSH_REGISTER_TASKMAN 3 |
| |
| BOOL WINAPI RegisterShellHook( |
| HWND hWnd, |
| DWORD dwType); |
| |
| /* SHCreateDefClassObject callback function */ |
| typedef HRESULT (CALLBACK *LPFNCDCOCALLBACK)( |
| LPUNKNOWN pUnkOuter, |
| REFIID riidObject, |
| LPVOID *ppvObject); |
| |
| HRESULT WINAPI SHCreateDefClassObject( |
| REFIID riidFactory, |
| LPVOID *ppvFactory, |
| LPFNCDCOCALLBACK lpfnCallback, |
| LPDWORD lpdwUsage, |
| REFIID riidObject); |
| |
| HRESULT WINAPI SHCoCreateInstance( |
| LPCSTR lpszClsid, |
| REFCLSID rClsid, |
| LPUNKNOWN pUnkOuter, |
| REFIID riid, |
| LPVOID *ppv); |
| |
| void WINAPI SHFreeUnusedLibraries(); |
| |
| /* SHCreateLinks flags */ |
| #define SHCLF_PREFIXNAME 0x01 |
| #define SHCLF_CREATEONDESKTOP 0x02 |
| |
| HRESULT WINAPI SHCreateLinks( |
| HWND hWnd, |
| LPCSTR lpszDir, |
| LPDATAOBJECT lpDataObject, |
| UINT uFlags, |
| LPITEMIDLIST *lppidlLinks); |
| |
| /* SHGetNewLinkInfo flags */ |
| #define SHGNLI_PIDL 0x01 |
| #define SHGNLI_PREFIXNAME 0x02 |
| #define SHGNLI_NOUNIQUE 0x04 |
| |
| BOOL WINAPI SHGetNewLinkInfoA( |
| LPCSTR pszLinkTo, |
| LPCSTR pszDir, |
| LPSTR pszName, |
| BOOL *pfMustCopy, |
| UINT uFlags); |
| |
| BOOL WINAPI SHGetNewLinkInfoW( |
| LPCWSTR pszLinkTo, |
| LPCWSTR pszDir, |
| LPWSTR pszName, |
| BOOL *pfMustCopy, |
| UINT uFlags); |
| #define SHGetNewLinkInfo WINELIB_NAME_AW(SHGetNewLinkInfo) |
| |
| /* policy functions */ |
| BOOL WINAPI SHInitRestricted(LPSTR, LPSTR); |
| |
| #ifdef __cplusplus |
| } /* extern "C" */ |
| #endif /* defined(__cplusplus) */ |
| |
| #endif /* __WINE_UNDOCSHELL_H */ |