#ifndef __WINE_UNDOCSHELL_H #define __WINE_UNDOCSHELL_H #include "windef.h" //#include "shell.h" #include "commctrl.h" #include "wine/obj_shellfolder.h" #include "wine/obj_shellview.h" #include "wine/obj_dragdrop.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, LPITEMIDLIST pidl); HRESULT WINAPI StrRetToStrNW ( LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl); HRESULT WINAPI StrRetToStrNAW ( LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl); HRESULT WINAPI StrRetToBufA ( LPSTRRET src, LPITEMIDLIST pidl, LPSTR dest, DWORD len); HRESULT WINAPI StrRetToBufW ( LPSTRRET src, LPITEMIDLIST pidl, LPWSTR dest, DWORD len); /**************************************************************************** * 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 */ LPSTR WINAPI PathAppend( LPSTR lpszPath1, LPCSTR lpszPath2); LPSTR WINAPI PathCombineA(LPSTR szDest, LPCSTR lpszDir, LPCSTR lpszFile); LPWSTR WINAPI PathCombineW(LPWSTR szDest, LPCWSTR lpszDir, LPCWSTR lpszFile); #define PathCombine WINELIB_NAME_AW(PathCombine) LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile); LPSTR WINAPI PathAddBackslashA(LPSTR path); LPWSTR WINAPI PathAddBackslashW(LPWSTR path); #define PathAddBackslash WINELIB_NAME_AW(PathAddBackslash) LPVOID WINAPI PathAddBackslashAW(LPVOID path); LPSTR WINAPI PathRemoveBackslashA(LPSTR lpszPath); LPWSTR WINAPI PathRemoveBackslashW(LPWSTR lpszPath); #define PathRemoveBackslash WINELIB_NAME_AW(PathRemoveBackslash) LPSTR WINAPI PathBuildRoot( LPSTR lpszPath, int drive); LPSTR WINAPI PathFindExtensionA(LPCSTR path); LPWSTR WINAPI PathFindExtensionW(LPCWSTR path); #define PathFindExtension WINELIB_NAME_AW(PathFindExtension) LPVOID WINAPI PathFindExtensionAW(LPCVOID path); LPSTR WINAPI PathGetExtensionA(LPCSTR lpszPath); LPWSTR WINAPI PathGetExtensionW(LPCWSTR lpszPath); #define PathGetExtension WINELIB_NAME_AW(PathGetExtension) LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath); LPSTR WINAPI PathGetArgs(LPCSTR lpszPath); BOOL WINAPI PathRemoveFileSpec(LPSTR lpszPath); LPSTR WINAPI PathGetShortPath(LPSTR lpszPath); LPSTR WINAPI PathQuoteSpacesA(LPSTR path); LPWSTR WINAPI PathQuoteSpacesW(LPWSTR path); #define PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces) LPVOID WINAPI PathQuoteSpacesAW(LPVOID path); void WINAPI PathUnquoteSpaces(LPSTR lpszPath); BOOL WINAPI PathIsUNCA(LPCSTR lpszPath); BOOL WINAPI PathIsUNCW(LPCWSTR lpszPath); #define PathIsUNC WINELIB_NAME_AW(PathIsUNC) BOOL WINAPI PathIsUNCAW(LPCVOID lpszPath); BOOL WINAPI PathIsRelativeA(LPCSTR lpszPath); BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath); #define PathIsRelative WINELIB_NAME_AW(PathIsRelative) BOOL WINAPI PathIsRelativeAW(LPCVOID lpszPath); BOOL WINAPI PathIsRootA(LPCSTR x); BOOL WINAPI PathIsRootW(LPCWSTR x); #define PathIsRoot WINELIB_NAME_AW(PathIsRoot) BOOL WINAPI PathIsRootAW(LPCVOID x); BOOL WINAPI PathIsExe(LPCSTR lpszPath); BOOL WINAPI PathIsDirectory(LPCSTR lpszPath); BOOL WINAPI PathFileExists(LPCSTR lpszPath); BOOL WINAPI PathMatchSpecA( LPCSTR lpszPath, LPCSTR lpszSpec); BOOL WINAPI PathMatchSpecW( LPCWSTR lpszPath, LPCWSTR lpszSpec); #define PathMatchSpec WINELIB_NAME_AW(PathMatchSpec) BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec); BOOL WINAPI PathMakeUniqueName( LPSTR lpszBuffer, DWORD dwBuffSize, LPCSTR lpszShortName, LPCSTR lpszLongName, LPCSTR lpszPathName); BOOL WINAPI PathYetAnotherMakeUniqueName( LPSTR lpszBuffer, LPCSTR lpszPathName, LPCSTR lpszShortName, LPCSTR lpszLongName); BOOL WINAPI PathFindOnPath( LPSTR lpszFile, LPCSTR *alpszPaths); /* PathCleanupSpec return values */ #define PCS_REPLACEDCHARS 0x00000001 #define PCS_REMOVEDCHARS 0x00000002 #define PCS_SHORTENED 0x00000004 #define PCS_PATHTOOLONG 0x80000008 DWORD WINAPI PathCleanupSpec( LPCSTR lpszPath, LPSTR 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 PathResolve( LPSTR lpszPath, LPCSTR *alpszPaths, DWORD dwFlags); BOOL WINAPI PathSetDlgItemPath( HWND hDlg, int nIDDlgItem, LPCSTR 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 int WINAPI PathProcessCommand( LPCWSTR lpszPath, LPWSTR lpszBuff, DWORD dwBuffSize, DWORD dwFlags); void WINAPI PathStripPath(LPWSTR lpszPath); BOOL WINAPI PathStripToRoot(LPWSTR lpszPath); void WINAPI PathRemoveArgs(LPWSTR lpszPath); void WINAPI PathRemoveExtension(LPWSTR lpszPath); int WINAPI PathParseIconLocation(LPWSTR lpszPath); BOOL WINAPI PathIsSameRoot( LPCWSTR lpszPath1, LPCWSTR lpszPath2); BOOL WINAPI PathFindOnPathA(LPSTR sFile, LPCSTR sOtherDirs); BOOL WINAPI PathFindOnPathW(LPWSTR sFile, LPCWSTR sOtherDirs); #define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath) BOOL WINAPI PathFindOnPathAW(LPVOID sFile, LPCVOID sOtherDirs); LPSTR WINAPI StrFormatByteSizeA ( DWORD dw, LPSTR pszBuf, UINT cchBuf ); LPWSTR WINAPI StrFormatByteSizeW ( DWORD dw, LPWSTR pszBuf, UINT cchBuf ); #define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize) DWORD WINAPI PathCleanupSpecA(LPSTR x, LPSTR y); DWORD WINAPI PathCleanupSpecW(LPWSTR x, LPWSTR y); #define PathCleanupSpec WINELIB_NAME_AW(PathCleanupSpec) /**************************************************************************** * 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_SHLOBJ_H */