diff options
Diffstat (limited to 'winsup/w32api/include/shlobj.h')
-rw-r--r-- | winsup/w32api/include/shlobj.h | 1535 |
1 files changed, 0 insertions, 1535 deletions
diff --git a/winsup/w32api/include/shlobj.h b/winsup/w32api/include/shlobj.h deleted file mode 100644 index 348fe7f6e..000000000 --- a/winsup/w32api/include/shlobj.h +++ /dev/null @@ -1,1535 +0,0 @@ -#ifndef _SHLOBJ_H -#define _SHLOBJ_H -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include <ole2.h> -#include <shlguid.h> -#include <shellapi.h> -#pragma pack(push,1) -#include <commctrl.h> - -#define BIF_RETURNONLYFSDIRS 1 -#define BIF_DONTGOBELOWDOMAIN 2 -#define BIF_STATUSTEXT 4 -#define BIF_RETURNFSANCESTORS 8 -#define BIF_EDITBOX 16 -#define BIF_VALIDATE 32 -#define BIF_NEWDIALOGSTYLE 64 -#define BIF_BROWSEINCLUDEURLS 128 -#define BIF_USENEWUI ( BIF_EDITBOX | BIF_NEWDIALOGSTYLE ) -#define BIF_BROWSEFORCOMPUTER 0x1000 -#define BIF_BROWSEFORPRINTER 0x2000 -#define BIF_BROWSEINCLUDEFILES 0x4000 -#define BIF_SHAREABLE 0x8000 -#define BFFM_INITIALIZED 1 -#define BFFM_SELCHANGED 2 -#define BFFM_VALIDATEFAILEDA 3 -#define BFFM_VALIDATEFAILEDW 4 -#define BFFM_SETSTATUSTEXTA (WM_USER + 100) -#define BFFM_SETSTATUSTEXTW (WM_USER + 104) -#define BFFM_ENABLEOK (WM_USER + 101) -#define BFFM_SETSELECTIONA (WM_USER + 102) -#define BFFM_SETSELECTIONW (WM_USER + 103) -#define BFFM_SETOKTEXT (WM_USER + 105) -#define BFFM_SETEXPANDED (WM_USER + 106) -#ifdef UNICODE -#define BFFM_SETSTATUSTEXT BFFM_SETSTATUSTEXTW -#define BFFM_SETSELECTION BFFM_SETSELECTIONW -#define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDW -#else -#define BFFM_SETSTATUSTEXT BFFM_SETSTATUSTEXTA -#define BFFM_SETSELECTION BFFM_SETSELECTIONA -#define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDA -#endif -#define DVASPECT_SHORTNAME 2 -#define SHARD_PIDL 1 -#define SHARD_PATH 2 -#define SHCNE_RENAMEITEM 1 -#define SHCNE_CREATE 2 -#define SHCNE_DELETE 4 -#define SHCNE_MKDIR 8 -#define SHCNE_RMDIR 16 -#define SHCNE_MEDIAINSERTED 32 -#define SHCNE_MEDIAREMOVED 64 -#define SHCNE_DRIVEREMOVED 128 -#define SHCNE_DRIVEADD 256 -#define SHCNE_NETSHARE 512 -#define SHCNE_NETUNSHARE 1024 -#define SHCNE_ATTRIBUTES 2048 -#define SHCNE_UPDATEDIR 4096 -#define SHCNE_UPDATEITEM 8192 -#define SHCNE_SERVERDISCONNECT 16384 -#define SHCNE_UPDATEIMAGE 32768 -#define SHCNE_DRIVEADDGUI 65536 -#define SHCNE_RENAMEFOLDER 0x20000 -#define SHCNE_FREESPACE 0x40000 -#define SHCNE_ASSOCCHANGED 0x8000000 -#define SHCNE_DISKEVENTS 0x2381F -#define SHCNE_GLOBALEVENTS 0xC0581E0 -#define SHCNE_ALLEVENTS 0x7FFFFFFF -#define SHCNE_INTERRUPT 0x80000000 -#define SHCNF_IDLIST 0 -#define SHCNF_PATHA 1 -#define SHCNF_PRINTERA 2 -#define SHCNF_DWORD 3 -#define SHCNF_PATHW 5 -#define SHCNF_PRINTERW 6 -#define SHCNF_TYPE 0xFF -#define SHCNF_FLUSH 0x1000 -#define SHCNF_FLUSHNOWAIT 0x2000 -#ifdef UNICODE -#define SHCNF_PATH SHCNF_PATHW -#define SHCNF_PRINTER SHCNF_PRINTERW -#else -#define SHCNF_PATH SHCNF_PATHA -#define SHCNF_PRINTER SHCNF_PRINTERA -#endif -#define SFGAO_CANCOPY DROPEFFECT_COPY -#define SFGAO_CANMOVE DROPEFFECT_MOVE -#define SFGAO_CANLINK DROPEFFECT_LINK -#define SFGAO_CANRENAME 0x00000010L -#define SFGAO_CANDELETE 0x00000020L -#define SFGAO_HASPROPSHEET 0x00000040L -#define SFGAO_DROPTARGET 0x00000100L -#define SFGAO_CAPABILITYMASK 0x00000177L -#define SFGAO_ISSLOW 0x00004000L -#define SFGAO_GHOSTED 0x00008000L -#define SFGAO_LINK 0x00010000L -#define SFGAO_SHARE 0x00020000L -#define SFGAO_READONLY 0x00040000L -#define SFGAO_HIDDEN 0x00080000L -#define SFGAO_DISPLAYATTRMASK (SFGAO_ISSLOW \ - | SFGAO_GHOSTED \ - | SFGAO_LINK \ - | SFGAO_SHARE \ - | SFGAO_READONLY \ - | SFGAO_HIDDEN) -#define SFGAO_FILESYSANCESTOR 0x10000000L -#define SFGAO_FOLDER 0x20000000L -#define SFGAO_FILESYSTEM 0x40000000L -#define SFGAO_HASSUBFOLDER 0x80000000L -#define SFGAO_CONTENTSMASK 0x80000000L -#define SFGAO_VALIDATE 0x01000000L -#define SFGAO_REMOVABLE 0x02000000L -#define SFGAO_COMPRESSED 0x04000000L -#define STRRET_WSTR 0 -#define STRRET_OFFSET 1 -#define STRRET_CSTR 2 -#define SHGDFIL_FINDDATA 1 -#define SHGDFIL_NETRESOURCE 2 -#define SHGDFIL_DESCRIPTIONID 3 -#define SHDID_ROOT_REGITEM 1 -#define SHDID_FS_FILE 2 -#define SHDID_FS_DIRECTORY 3 -#define SHDID_FS_OTHER 4 -#define SHDID_COMPUTER_DRIVE35 5 -#define SHDID_COMPUTER_DRIVE525 6 -#define SHDID_COMPUTER_REMOVABLE 7 -#define SHDID_COMPUTER_FIXED 8 -#define SHDID_COMPUTER_NETDRIVE 9 -#define SHDID_COMPUTER_CDROM 10 -#define SHDID_COMPUTER_RAMDISK 11 -#define SHDID_COMPUTER_OTHER 12 -#define SHDID_NET_DOMAIN 13 -#define SHDID_NET_SERVER 14 -#define SHDID_NET_SHARE 15 -#define SHDID_NET_RESTOFNET 16 -#define SHDID_NET_OTHER 17 -#ifndef REGSTR_PATH_EXPLORER -#define REGSTR_PATH_EXPLORER TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer") -#endif -#define REGSTR_PATH_SPECIAL_FOLDERS REGSTR_PATH_EXPLORER TEXT("\\Shell Folders") -#define CSIDL_DESKTOP 0 -#define CSIDL_INTERNET 1 -#define CSIDL_PROGRAMS 2 -#define CSIDL_CONTROLS 3 -#define CSIDL_PRINTERS 4 -#define CSIDL_PERSONAL 5 -#define CSIDL_FAVORITES 6 -#define CSIDL_STARTUP 7 -#define CSIDL_RECENT 8 -#define CSIDL_SENDTO 9 -#define CSIDL_BITBUCKET 10 -#define CSIDL_STARTMENU 11 -#define CSIDL_MYMUSIC 13 -#define CSIDL_MYVIDEO 14 -#define CSIDL_DESKTOPDIRECTORY 16 -#define CSIDL_DRIVES 17 -#define CSIDL_NETWORK 18 -#define CSIDL_NETHOOD 19 -#define CSIDL_FONTS 20 -#define CSIDL_TEMPLATES 21 -#define CSIDL_COMMON_STARTMENU 22 -#define CSIDL_COMMON_PROGRAMS 23 -#define CSIDL_COMMON_STARTUP 24 -#define CSIDL_COMMON_DESKTOPDIRECTORY 25 -#define CSIDL_APPDATA 26 -#define CSIDL_PRINTHOOD 27 -#define CSIDL_LOCAL_APPDATA 28 -#define CSIDL_ALTSTARTUP 29 -#define CSIDL_COMMON_ALTSTARTUP 30 -#define CSIDL_COMMON_FAVORITES 31 -#define CSIDL_INTERNET_CACHE 32 -#define CSIDL_COOKIES 33 -#define CSIDL_HISTORY 34 -#define CSIDL_COMMON_APPDATA 35 -#define CSIDL_WINDOWS 36 -#define CSIDL_SYSTEM 37 -#define CSIDL_PROGRAM_FILES 38 -#define CSIDL_MYPICTURES 39 -#define CSIDL_PROFILE 40 -#define CSIDL_SYSTEMX86 41 -#define CSIDL_PROGRAM_FILESX86 42 -#define CSIDL_PROGRAM_FILES_COMMON 43 -#define CSIDL_PROGRAM_FILES_COMMONX86 44 -#define CSIDL_COMMON_TEMPLATES 45 -#define CSIDL_COMMON_DOCUMENTS 46 -#define CSIDL_COMMON_ADMINTOOLS 47 -#define CSIDL_ADMINTOOLS 48 -#define CSIDL_CONNECTIONS 49 -#define CSIDL_COMMON_MUSIC 53 -#define CSIDL_COMMON_PICTURES 54 -#define CSIDL_COMMON_VIDEO 55 -#define CSIDL_RESOURCES 56 -#define CSIDL_RESOURCES_LOCALIZED 57 -#define CSIDL_COMMON_OEM_LINKS 58 -#define CSIDL_CDBURN_AREA 59 -#define CSIDL_COMPUTERSNEARME 61 -#define CSIDL_FLAG_DONT_VERIFY 0x4000 -#define CSIDL_FLAG_CREATE 0x8000 -#define CSIDL_FLAG_MASK 0xFF00 -#define CFSTR_SHELLIDLIST TEXT("Shell IDList Array") -#define CFSTR_SHELLIDLISTOFFSET TEXT("Shell Object Offsets") -#define CFSTR_NETRESOURCES TEXT("Net Resource") -#define CFSTR_FILECONTENTS TEXT("FileContents") -#define CFSTR_FILENAMEA TEXT("FileName") -#define CFSTR_FILENAMEMAPA TEXT("FileNameMap") -#define CFSTR_FILEDESCRIPTORA TEXT("FileGroupDescriptor") -#define CFSTR_INETURLA TEXT("UniformResourceLocator") -#define CFSTR_SHELLURL CFSTR_INETURLA -#define CFSTR_FILENAMEW TEXT("FileNameW") -#define CFSTR_FILENAMEMAPW TEXT("FileNameMapW") -#define CFSTR_FILEDESCRIPTORW TEXT("FileGroupDescriptorW") -#define CFSTR_INETURLW TEXT("UniformResourceLocatorW") -#ifdef UNICODE -#define CFSTR_FILENAME CFSTR_FILENAMEW -#define CFSTR_FILENAMEMAP CFSTR_FILENAMEMAPW -#define CFSTR_FILEDESCRIPTOR CFSTR_FILEDESCRIPTORW -#define CFSTR_INETURL CFSTR_INETURLW -#else -#define CFSTR_FILENAME CFSTR_FILENAMEA -#define CFSTR_FILENAMEMAP CFSTR_FILENAMEMAPA -#define CFSTR_FILEDESCRIPTOR CFSTR_FILEDESCRIPTORA -#define CFSTR_INETURL CFSTR_INETURLA -#endif -#define CFSTR_PRINTERGROUP TEXT("PrinterFriendlyName") -#define CFSTR_INDRAGLOOP TEXT("InShellDragLoop") -#define CFSTR_PASTESUCCEEDED TEXT("Paste Succeeded") -#define CFSTR_PERFORMEDDROPEFFECT TEXT("Performed DropEffect") -#define CFSTR_PREFERREDDROPEFFECT TEXT("Preferred DropEffect") -#define CMF_NORMAL 0 -#define CMF_DEFAULTONLY 1 -#define CMF_VERBSONLY 2 -#define CMF_EXPLORE 4 -#define CMF_NOVERBS 8 -#define CMF_CANRENAME 16 -#define CMF_NODEFAULT 32 -#define CMF_INCLUDESTATIC 64 -#define CMF_RESERVED 0xffff0000 -#define GCS_VERBA 0 -#define GCS_HELPTEXTA 1 -#define GCS_VALIDATEA 2 -#define GCS_VERBW 4 -#define GCS_HELPTEXTW 5 -#define GCS_VALIDATEW 6 -#define GCS_UNICODE 4 -#ifdef UNICODE -#define GCS_VERB GCS_VERBW -#define GCS_HELPTEXT GCS_HELPTEXTW -#define GCS_VALIDATE GCS_VALIDATEW -#else -#define GCS_VERB GCS_VERBA -#define GCS_HELPTEXT GCS_HELPTEXTA -#define GCS_VALIDATE GCS_VALIDATEA -#endif -#define CMDSTR_NEWFOLDERA "NewFolder" -#define CMDSTR_VIEWLISTA "ViewList" -#define CMDSTR_VIEWDETAILSA "ViewDetails" -#define CMDSTR_NEWFOLDERW L"NewFolder" -#define CMDSTR_VIEWLISTW L"ViewList" -#define CMDSTR_VIEWDETAILSW L"ViewDetails" -#ifdef UNICODE -#define CMDSTR_NEWFOLDER CMDSTR_NEWFOLDERW -#define CMDSTR_VIEWLIST CMDSTR_VIEWLISTW -#define CMDSTR_VIEWDETAILS CMDSTR_VIEWDETAILSW -#else -#define CMDSTR_NEWFOLDER CMDSTR_NEWFOLDER -#define CMDSTR_VIEWLIST CMDSTR_VIEWLIST -#define CMDSTR_VIEWDETAILS CMDSTR_VIEWDETAILS -#endif -#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY -#define CMIC_MASK_ICON SEE_MASK_ICON -#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI -#define CMIC_MASK_MODAL 0x80000000 -#define CMIC_VALID_SEE_FLAGS SEE_VALID_CMIC_FLAGS -#define GIL_OPENICON 1 -#define GIL_FORSHELL 2 -#define GIL_SIMULATEDOC 1 -#define GIL_PERINSTANCE 2 -#define GIL_PERCLASS 4 -#define GIL_NOTFILENAME 8 -#define GIL_DONTCACHE 16 -#define FVSIF_RECT 1 -#define FVSIF_PINNED 2 -#define FVSIF_NEWFAILED 0x8000000 -#define FVSIF_NEWFILE 0x80000000 -#define FVSIF_CANVIEWIT 0x40000000 -#define CDBOSC_SETFOCUS 0 -#define CDBOSC_KILLFOCUS 1 -#define CDBOSC_SELCHANGE 2 -#define CDBOSC_RENAME 3 -#define FCIDM_SHVIEWFIRST 0 -#define FCIDM_SHVIEWLAST 0x7fff -#define FCIDM_BROWSERFIRST 0xa000 -#define FCIDM_BROWSERLAST 0xbf00 -#define FCIDM_GLOBALFIRST 0x8000 -#define FCIDM_GLOBALLAST 0x9fff -#define FCIDM_MENU_FILE FCIDM_GLOBALFIRST -#define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST+0x0040) -#define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST+0x0080) -#define FCIDM_MENU_VIEW_SEP_OPTIONS (FCIDM_GLOBALFIRST+0x0081) -#define FCIDM_MENU_TOOLS (FCIDM_GLOBALFIRST+0x00c0) -#define FCIDM_MENU_TOOLS_SEP_GOTO (FCIDM_GLOBALFIRST+0x00c1) -#define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST+0x0100) -#define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST+0x0140) -#define FCIDM_MENU_EXPLORE (FCIDM_GLOBALFIRST+0x0150) -#define FCIDM_MENU_FAVORITES (FCIDM_GLOBALFIRST+0x0170) -#define FCIDM_TOOLBAR FCIDM_BROWSERFIRST -#define FCIDM_STATUS (FCIDM_BROWSERFIRST+1) -#define SBSP_DEFBROWSER 0 -#define SBSP_SAMEBROWSER 1 -#define SBSP_NEWBROWSER 2 -#define SBSP_DEFMODE 0 -#define SBSP_OPENMODE 16 -#define SBSP_EXPLOREMODE 32 -#define SBSP_ABSOLUTE 0 -#define SBSP_RELATIVE 0x1000 -#define SBSP_PARENT 0x2000 -#define SBSP_INITIATEDBYHLINKFRAME 0x80000000 -#define SBSP_REDIRECT 0x40000000 -#define FCW_STATUS 1 -#define FCW_TOOLBAR 2 -#define FCW_TREE 3 -#define FCT_MERGE 1 -#define FCT_CONFIGABLE 2 -#define FCT_ADDTOEND 4 -#define SVSI_DESELECT 0 -#define SVSI_SELECT 1 -#define SVSI_EDIT 3 -#define SVSI_DESELECTOTHERS 4 -#define SVSI_ENSUREVISIBLE 8 -#define SVSI_FOCUSED 16 -#define SVGIO_BACKGROUND 0 -#define SVGIO_SELECTION 1 -#define SVGIO_ALLVIEW 2 -#define SV2GV_CURRENTVIEW ((UINT)-1) -#define SV2GV_DEFAULTVIEW ((UINT)-2) - -typedef ULONG SFGAOF; -typedef DWORD SHGDNF; - -typedef struct _IDA { - UINT cidl; - UINT aoffset[1]; -} CIDA,*LPIDA; -typedef struct _SHITEMID { - USHORT cb; - BYTE abID[1]; -} SHITEMID, * LPSHITEMID; -typedef const SHITEMID *LPCSHITEMID; -typedef struct _ITEMIDLIST { - SHITEMID mkid; -} ITEMIDLIST,*LPITEMIDLIST; -typedef const ITEMIDLIST *LPCITEMIDLIST; -typedef int (CALLBACK* BFFCALLBACK)(HWND,UINT,LPARAM,LPARAM); -typedef struct _browseinfoA { - HWND hwndOwner; - LPCITEMIDLIST pidlRoot; - LPSTR pszDisplayName; - LPCSTR lpszTitle; - UINT ulFlags; - BFFCALLBACK lpfn; - LPARAM lParam; - int iImage; -} BROWSEINFOA,*PBROWSEINFOA,*LPBROWSEINFOA; -typedef struct _browseinfoW { - HWND hwndOwner; - LPCITEMIDLIST pidlRoot; - LPWSTR pszDisplayName; - LPCWSTR lpszTitle; - UINT ulFlags; - BFFCALLBACK lpfn; - LPARAM lParam; - int iImage; -} BROWSEINFOW,*PBROWSEINFOW,*LPBROWSEINFOW; -typedef struct _CMInvokeCommandInfo { - DWORD cbSize; - DWORD fMask; - HWND hwnd; - LPCSTR lpVerb; - LPCSTR lpParameters; - LPCSTR lpDirectory; - int nShow; - DWORD dwHotKey; - HANDLE hIcon; -} CMINVOKECOMMANDINFO,*LPCMINVOKECOMMANDINFO; -typedef struct _DROPFILES { - DWORD pFiles; - POINT pt; - BOOL fNC; - BOOL fWide; -} DROPFILES,*LPDROPFILES; -typedef enum tagSHGDN { - SHGDN_NORMAL=0, - SHGDN_INFOLDER, - SHGDN_FOREDITING=0x1000, - SHGDN_INCLUDE_NONFILESYS=0x2000, - SHGDN_FORADDRESSBAR=0x4000, - SHGDN_FORPARSING=0x8000 -} SHGNO; -typedef enum tagSHCONTF { - SHCONTF_FOLDERS = 32, - SHCONTF_NONFOLDERS = 64, - SHCONTF_INCLUDEHIDDEN = 128, - SHCONTF_INIT_ON_FIRST_NEXT = 256, - SHCONTF_NETPRINTERSRCH = 512, - SHCONTF_SHAREABLE = 1024, - SHCONTF_STORAGE = 2048 -} SHCONTF; -typedef struct _STRRET { - UINT uType; - _ANONYMOUS_UNION union { - LPWSTR pOleStr; - UINT uOffset; - char cStr[MAX_PATH]; - } DUMMYUNIONNAME; -} STRRET,*LPSTRRET; -typedef enum { - FD_CLSID=1,FD_SIZEPOINT=2,FD_ATTRIBUTES=4,FD_CREATETIME=8,FD_ACCESSTIME=16, - FD_WRITESTIME=32,FD_FILESIZE=64,FD_LINKUI=0x8000 -} FD_FLAGS; -typedef struct _FILEDESCRIPTORA { - DWORD dwFlags; - CLSID clsid; - SIZEL sizel; - POINTL pointl; - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - CHAR cFileName[MAX_PATH]; -} FILEDESCRIPTORA,*LPFILEDESCRIPTORA; -typedef struct _FILEDESCRIPTORW { - DWORD dwFlags; - CLSID clsid; - SIZEL sizel; - POINTL pointl; - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - WCHAR cFileName[MAX_PATH]; -} FILEDESCRIPTORW,*LPFILEDESCRIPTORW; -typedef struct _FILEGROUPDESCRIPTORA { - UINT cItems; - FILEDESCRIPTORA fgd[1]; -} FILEGROUPDESCRIPTORA,*LPFILEGROUPDESCRIPTORA; -typedef struct _FILEGROUPDESCRIPTORW { - UINT cItems; - FILEDESCRIPTORW fgd[1]; -} FILEGROUPDESCRIPTORW,*LPFILEGROUPDESCRIPTORW; -typedef enum { - SLR_NO_UI=1, - SLR_ANY_MATCH=2, - SLR_UPDATE=4, - SLR_NOUPDATE=8, - SLR_NOSEARCH=16, - SLR_NOTRACK=32, - SLR_NOLINKINFO=64, - SLR_INVOKE_MSI=128 -} SLR_FLAGS; -typedef enum { - SLGP_SHORTPATH=1, - SLGP_UNCPRIORITY=2, - SLGP_RAWPATH=4 -} SLGP_FLAGS; -typedef PBYTE LPVIEWSETTINGS; -typedef enum { - FWF_AUTOARRANGE=1,FWF_ABBREVIATEDNAMES=2,FWF_SNAPTOGRID=4,FWF_OWNERDATA=8, - FWF_BESTFITWINDOW=16,FWF_DESKTOP=32,FWF_SINGLESEL=64,FWF_NOSUBFOLDERS=128, - FWF_TRANSPARENT=256,FWF_NOCLIENTEDGE=512,FWF_NOSCROLL=0x400,FWF_ALIGNLEFT=0x800, - FWF_SINGLECLICKACTIVATE=0x8000 -} FOLDERFLAGS; -typedef enum { - FVM_ICON=1, - FVM_SMALLICON, - FVM_LIST, - FVM_DETAILS -} FOLDERVIEWMODE; -typedef struct { - UINT ViewMode; - UINT fFlags; -} FOLDERSETTINGS,*LPFOLDERSETTINGS; -typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS; -typedef struct { - DWORD cbSize; - HWND hwndOwner; - int iShow; - DWORD dwFlags; - RECT rect; - LPUNKNOWN punkRel; - OLECHAR strNewFile[MAX_PATH]; -} FVSHOWINFO,*LPFVSHOWINFO; -typedef struct _NRESARRAY { - UINT cItems; - NETRESOURCE nr[1]; -} NRESARRAY, *LPNRESARRAY; -enum { SBSC_HIDE,SBSC_SHOW,SBSC_TOGGLE,SBSC_QUERY }; -enum { - SBCMDID_ENABLESHOWTREE,SBCMDID_SHOWCONTROL,SBCMDID_CANCELNAVIGATION, - SBCMDID_MAYSAVECHANGES,SBCMDID_SETHLINKFRAME,SBCMDID_ENABLESTOP,SBCMDID_OPTIONS -}; -typedef enum { - SVUIA_DEACTIVATE,SVUIA_ACTIVATE_NOFOCUS,SVUIA_ACTIVATE_FOCUS, - SVUIA_INPLACEACTIVATE -} SVUIA_STATUS; -#if (_WIN32_IE >= 0x0500) -typedef struct tagEXTRASEARCH -{ - GUID guidSearch; - WCHAR wszFriendlyName[80]; - WCHAR wszUrl[2084]; -} EXTRASEARCH, *LPEXTRASEARCH; -typedef DWORD SHCOLSTATEF; -typedef struct -{ - GUID fmtid; - DWORD pid; -} SHCOLUMNID, *LPSHCOLUMNID; -typedef const SHCOLUMNID *LPCSHCOLUMNID; -typedef struct _SHELLDETAILS -{ - int fmt; - int cxChar; - STRRET str; -} SHELLDETAILS, *LPSHELLDETAILS; -typedef struct -{ - LPITEMIDLIST pidlTargetFolder; - WCHAR szTargetParsingName[MAX_PATH]; - WCHAR szNetworkProvider[MAX_PATH]; - DWORD dwAttributes; - int csidl; -} PERSIST_FOLDER_TARGET_INFO; - -typedef enum { - SHGFP_TYPE_CURRENT = 0, - SHGFP_TYPE_DEFAULT = 1, -} SHGFP_TYPE; -#endif - - -DECLARE_ENUMERATOR_(IEnumIDList,LPITEMIDLIST); -typedef IEnumIDList *LPENUMIDLIST; - -#ifdef COBJMACROS -#define IEnumIDList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IEnumIDList_Release(T) (T)->lpVtbl->AddRef(T) -#define IEnumIDList_AddRef(T) (T)->lpVtbl->Release(T) -#define IEnumIDList_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c) -#define IEnumIDList_Skip(T,a) (T)->lpVtbl->Skip(T,a) -#define IEnumIDList_Reset(T) (T)->lpVtbl->Reset(T) -#define IEnumIDList_Clone(T,a) (T)->lpVtbl->Clone(T,a) -#endif - -#define INTERFACE IObjMgr -DECLARE_INTERFACE_(IObjMgr, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Append)(THIS_ IUnknown*) PURE; - STDMETHOD(Remove)(THIS_ IUnknown*) PURE; -}; -#undef INTERFACE - -#define INTERFACE IContextMenu -DECLARE_INTERFACE_(IContextMenu,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE; - STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE; - STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE; -}; -#undef INTERFACE -typedef IContextMenu *LPCONTEXTMENU; - -#ifdef COBJMACROS -#define IContextMenu_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IContextMenu_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IContextMenu_Release(T) (T)->lpVtbl->Release(T) -#define IContextMenu_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e) -#define IContextMenu_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a) -#define IContextMenu_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e) -#endif - -#define INTERFACE IContextMenu2 -DECLARE_INTERFACE_(IContextMenu2,IContextMenu) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE; - STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE; - STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE; - STDMETHOD(HandleMenuMsg)(THIS_ UINT,WPARAM,LPARAM) PURE; -}; -#undef INTERFACE -typedef IContextMenu2 *LPCONTEXTMENU2; - -#define INTERFACE IContextMenu3 -DECLARE_INTERFACE_(IContextMenu3,IContextMenu2) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE; - STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE; - STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE; - STDMETHOD(HandleMenuMsg)(THIS_ UINT,WPARAM,LPARAM) PURE; - STDMETHOD(HandleMenuMsg2)(THIS_ UINT,WPARAM,LPARAM,LRESULT*) PURE; -}; -#undef INTERFACE -typedef IContextMenu3 *LPCONTEXTMENU3; - -#if (_WIN32_IE >= 0x0500) -#pragma pack(push,8) -typedef struct { - ULONG dwFlags; - ULONG dwReserved; - WCHAR wszFolder[MAX_PATH]; -} SHCOLUMNINIT,*LPSHCOLUMNINIT; -typedef const SHCOLUMNINIT* LPCSHCOLUMNINIT; -typedef struct { - ULONG dwFlags; - DWORD dwFileAttributes; - ULONG dwReserved; - WCHAR *pwszExt; - WCHAR wszFile[MAX_PATH]; -} SHCOLUMNDATA,*LPSHCOLUMNDATA; -typedef const SHCOLUMNDATA* LPCSHCOLUMNDATA; -#pragma pack(pop) - -#define MAX_COLUMN_NAME_LEN 80 -#define MAX_COLUMN_DESC_LEN 128 - -#pragma pack(push,1) -typedef struct { - SHCOLUMNID scid; - VARTYPE vt; - DWORD fmt; - UINT cChars; - DWORD csFlags; - WCHAR wszTitle[MAX_COLUMN_NAME_LEN]; - WCHAR wszDescription[MAX_COLUMN_DESC_LEN]; -} SHCOLUMNINFO,*LPSHCOLUMNINFO; -typedef const SHCOLUMNINFO* LPCSHCOLUMNINFO; -#pragma pack(pop) - -typedef enum { - SHCOLSTATE_TYPE_STR = 0x00000001, - SHCOLSTATE_TYPE_INT = 0x00000002, - SHCOLSTATE_TYPE_DATE = 0x00000003, - SHCOLSTATE_TYPEMASK = 0x0000000f, - SHCOLSTATE_ONBYDEFAULT = 0x00000010, - SHCOLSTATE_SLOW = 0x00000020, - SHCOLSTATE_EXTENDED = 0x00000040, - SHCOLSTATE_SECONDARYUI = 0x00000080, - SHCOLSTATE_HIDDEN = 0x00000100, - SHCOLSTATE_PREFER_VARCMP = 0x00000200 -} SHCOLSTATE; - -#ifdef COBJMACROS -#define IContextMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IContextMenu2_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IContextMenu2_Release(T) (T)->lpVtbl->Release(T) -#define IContextMenu2_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e) -#define IContextMenu2_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a) -#define IContextMenu2_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e) -#define IContextMenu2_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c) -#endif - -#ifdef COBJMACROS -#define IContextMenu3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IContextMenu3_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IContextMenu3_Release(T) (T)->lpVtbl->Release(T) -#define IContextMenu3_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e) -#define IContextMenu3_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a) -#define IContextMenu3_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e) -#define IContextMenu3_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c) -#define IContextMenu3_HandleMenuMsg2(T,a,b,c,d) (T)->lpVtbl->HandleMenuMsg(T,a,b,c,d) -#endif - -#define INTERFACE IColumnProvider -DECLARE_INTERFACE_(IColumnProvider,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Initialize)(THIS_ LPCSHCOLUMNINIT) PURE; - STDMETHOD(GetColumnInfo)(THIS_ DWORD,SHCOLUMNINFO*) PURE; - STDMETHOD(GetItemData)(THIS_ LPCSHCOLUMNID,LPCSHCOLUMNDATA,VARIANT*) PURE; -}; -#undef INTERFACE -#endif /* _WIN32_IE >= 0x0500 */ - -#define INTERFACE IQueryInfo -DECLARE_INTERFACE_(IQueryInfo,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetInfoTip)(THIS_ DWORD,WCHAR**) PURE; - STDMETHOD(GetInfoFlags)(THIS_ DWORD*) PURE; -}; -#undef INTERFACE - -#define INTERFACE IShellExtInit -DECLARE_INTERFACE_(IShellExtInit, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST,LPDATAOBJECT,HKEY) PURE; -}; -#undef INTERFACE -typedef IShellExtInit *LPSHELLEXTINIT; - -#define INTERFACE IShellPropSheetExt -DECLARE_INTERFACE_(IShellPropSheetExt, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(AddPages)(THIS_ LPFNADDPROPSHEETPAGE,LPARAM) PURE; - STDMETHOD(ReplacePage)(THIS_ UINT,LPFNADDPROPSHEETPAGE,LPARAM) PURE; -}; -#undef INTERFACE -typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT; - -#define INTERFACE IExtractIconA -DECLARE_INTERFACE_(IExtractIconA, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetIconLocation)(THIS_ UINT,LPSTR,UINT,int*,PUINT) PURE; - STDMETHOD(Extract)(THIS_ LPCSTR,UINT,HICON*,HICON*,UINT) PURE; -}; -#undef INTERFACE -typedef IExtractIconA *LPEXTRACTICONA; - -#ifdef COBJMACROS -#define IExtractIconA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IExtractIconA_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IExtractIconA_Release(T) (T)->lpVtbl->Release(T) -#define IExtractIconA_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e) -#define IExtractIconA_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e) -#endif - -#define INTERFACE IExtractIconW -DECLARE_INTERFACE_(IExtractIconW, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetIconLocation)(THIS_ UINT,LPWSTR,UINT,int*,PUINT) PURE; - STDMETHOD(Extract)(THIS_ LPCWSTR,UINT,HICON*,HICON*,UINT) PURE; -}; -#undef INTERFACE -typedef IExtractIconW *LPEXTRACTICONW; - -#ifdef COBJMACROS -#define IExtractIconW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IExtractIconW_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IExtractIconW_Release(T) (T)->lpVtbl->Release(T) -#define IExtractIconW_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e) -#define IExtractIconW_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e) -#endif - -#ifdef UNICODE -#define IExtractIcon IExtractIconW -#define LPEXTRACTICON LPEXTRACTICONW -#else -#define IExtractIcon IExtractIconA -#define LPEXTRACTICON LPEXTRACTICONA -#endif - -#define INTERFACE IShellLinkA -DECLARE_INTERFACE_(IShellLinkA, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetPath)(THIS_ LPSTR,int,WIN32_FIND_DATAA*,DWORD) PURE; - STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST*) PURE; - STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST) PURE; - STDMETHOD(GetDescription)(THIS_ LPSTR,int) PURE; - STDMETHOD(SetDescription)(THIS_ LPCSTR) PURE; - STDMETHOD(GetWorkingDirectory)(THIS_ LPSTR,int) PURE; - STDMETHOD(SetWorkingDirectory)(THIS_ LPCSTR) PURE; - STDMETHOD(GetArguments)(THIS_ LPSTR,int) PURE; - STDMETHOD(SetArguments)(THIS_ LPCSTR) PURE; - STDMETHOD(GetHotkey)(THIS_ PWORD) PURE; - STDMETHOD(SetHotkey)(THIS_ WORD) PURE; - STDMETHOD(GetShowCmd)(THIS_ int*) PURE; - STDMETHOD(SetShowCmd)(THIS_ int) PURE; - STDMETHOD(GetIconLocation)(THIS_ LPSTR,int,int*) PURE; - STDMETHOD(SetIconLocation)(THIS_ LPCSTR,int) PURE; - STDMETHOD(SetRelativePath)(THIS_ LPCSTR ,DWORD) PURE; - STDMETHOD(Resolve)(THIS_ HWND,DWORD) PURE; - STDMETHOD(SetPath)(THIS_ LPCSTR) PURE; -}; -#undef INTERFACE - -#ifdef COBJMACROS -#define IShellLinkA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IShellLinkA_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IShellLinkA_Release(T) (T)->lpVtbl->Release(T) -#define IShellLinkA_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d) -#define IShellLinkA_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a) -#define IShellLinkA_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a) -#define IShellLinkA_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b) -#define IShellLinkA_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a) -#define IShellLinkA_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b) -#define IShellLinkA_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a) -#define IShellLinkA_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b) -#define IShellLinkA_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a) -#define IShellLinkA_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a) -#define IShellLinkA_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a) -#define IShellLinkA_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a) -#define IShellLinkA_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a) -#define IShellLinkA_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c) -#define IShellLinkA_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b) -#define IShellLinkA_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b) -#define IShellLinkA_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b) -#define IShellLinkA_SetPath(T,a) (T)->lpVtbl->SetPath(T,a) -#endif - -#define INTERFACE IShellLinkW -DECLARE_INTERFACE_(IShellLinkW, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetPath)(THIS_ LPWSTR,int,WIN32_FIND_DATAW*,DWORD) PURE; - STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST*) PURE; - STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST) PURE; - STDMETHOD(GetDescription)(THIS_ LPWSTR,int) PURE; - STDMETHOD(SetDescription)(THIS_ LPCWSTR) PURE; - STDMETHOD(GetWorkingDirectory)(THIS_ LPWSTR,int) PURE; - STDMETHOD(SetWorkingDirectory)(THIS_ LPCWSTR) PURE; - STDMETHOD(GetArguments)(THIS_ LPWSTR,int) PURE; - STDMETHOD(SetArguments)(THIS_ LPCWSTR) PURE; - STDMETHOD(GetHotkey)(THIS_ PWORD) PURE; - STDMETHOD(SetHotkey)(THIS_ WORD) PURE; - STDMETHOD(GetShowCmd)(THIS_ int*) PURE; - STDMETHOD(SetShowCmd)(THIS_ int) PURE; - STDMETHOD(GetIconLocation)(THIS_ LPWSTR,int,int*) PURE; - STDMETHOD(SetIconLocation)(THIS_ LPCWSTR,int) PURE; - STDMETHOD(SetRelativePath)(THIS_ LPCWSTR ,DWORD) PURE; - STDMETHOD(Resolve)(THIS_ HWND,DWORD) PURE; - STDMETHOD(SetPath)(THIS_ LPCWSTR) PURE; -}; -#undef INTERFACE - -#ifdef COBJMACROS -#define IShellLinkW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IShellLinkW_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IShellLinkW_Release(T) (T)->lpVtbl->Release(T) -#define IShellLinkW_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d) -#define IShellLinkW_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a) -#define IShellLinkW_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a) -#define IShellLinkW_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b) -#define IShellLinkW_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a) -#define IShellLinkW_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b) -#define IShellLinkW_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a) -#define IShellLinkW_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b) -#define IShellLinkW_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a) -#define IShellLinkW_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a) -#define IShellLinkW_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a) -#define IShellLinkW_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a) -#define IShellLinkW_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a) -#define IShellLinkW_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c) -#define IShellLinkW_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b) -#define IShellLinkW_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b) -#define IShellLinkW_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b) -#define IShellLinkW_SetPath(T,a) (T)->lpVtbl->SetPath(T,a) -#endif - -#define INTERFACE IShellFolder -DECLARE_INTERFACE_(IShellFolder, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(ParseDisplayName)(THIS_ HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG) PURE; - STDMETHOD(EnumObjects)(THIS_ HWND,DWORD,LPENUMIDLIST*) PURE; - STDMETHOD(BindToObject)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE; - STDMETHOD(BindToStorage)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE; - STDMETHOD(CompareIDs)(THIS_ LPARAM,LPCITEMIDLIST,LPCITEMIDLIST) PURE; - STDMETHOD(CreateViewObject)(THIS_ HWND,REFIID,PVOID*) PURE; - STDMETHOD(GetAttributesOf)(THIS_ UINT,LPCITEMIDLIST*,PULONG) PURE; - STDMETHOD(GetUIObjectOf)(THIS_ HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*) PURE; - STDMETHOD(GetDisplayNameOf)(THIS_ LPCITEMIDLIST,DWORD,LPSTRRET) PURE; - STDMETHOD(SetNameOf)(THIS_ HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*) PURE; -}; -#undef INTERFACE -typedef IShellFolder *LPSHELLFOLDER; - -#ifdef COBJMACROS -#define IShellFolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IShellFolder_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IShellFolder_Release(T) (T)->lpVtbl->Release(T) -#define IShellFolder_ParseDisplayName(T,a,b,c,d,e,f) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d,e,f) -#define IShellFolder_EnumObjects(T,a,b,c) (T)->lpVtbl->EnumObjects(T,a,b,c) -#define IShellFolder_BindToObject(T,a,b,c,d) (T)->lpVtbl->BindToObject(T,a,b,c,d) -#define IShellFolder_BindToStorage(T,a,b,c,d) (T)->lpVtbl->BindToStorage(T,a,b,c,d) -#define IShellFolder_CompareIDs(T,a,b,c) (T)->lpVtbl->CompareIDs(T,a,b,c) -#define IShellFolder_CreateViewObject(T,a,b) (T)->lpVtbl->CreateViewObject(T,a,b) -#define IShellFolder_GetAttributesOf(T,a,b,c) (T)->lpVtbl->GetAttributesOf(T,a,b,c) -#define IShellFolder_GetUIObjectOf(T,a,b,c,d,e,f) (T)->lpVtbl->GetUIObjectOf(T,a,b,c,d,e,f) -#define IShellFolder_GetDisplayNameOf(T,a,b,c) (T)->lpVtbl->GetDisplayNameOf(T,a,b,c) -#define IShellFolder_SetNameOf(T,a,b,c,d,e) (T)->lpVtbl->SetNameOf(T,a,b,c,d,e) -#endif - -#if (_WIN32_IE >= 0x0500) - -DECLARE_ENUMERATOR_(IEnumExtraSearch,LPEXTRASEARCH); -typedef IEnumExtraSearch *LPENUMEXTRASEARCH; - -#define INTERFACE IShellFolder2 -DECLARE_INTERFACE_(IShellFolder2, IShellFolder) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(ParseDisplayName)(THIS_ HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG) PURE; - STDMETHOD(EnumObjects)(THIS_ HWND,DWORD,LPENUMIDLIST*) PURE; - STDMETHOD(BindToObject)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE; - STDMETHOD(BindToStorage)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE; - STDMETHOD(CompareIDs)(THIS_ LPARAM,LPCITEMIDLIST,LPCITEMIDLIST) PURE; - STDMETHOD(CreateViewObject)(THIS_ HWND,REFIID,PVOID*) PURE; - STDMETHOD(GetAttributesOf)(THIS_ UINT,LPCITEMIDLIST*,PULONG) PURE; - STDMETHOD(GetUIObjectOf)(THIS_ HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*) PURE; - STDMETHOD(GetDisplayNameOf)(THIS_ LPCITEMIDLIST,DWORD,LPSTRRET) PURE; - STDMETHOD(SetNameOf)(THIS_ HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*) PURE; - STDMETHOD(GetDefaultSearchGUID)(THIS_ GUID*) PURE; - STDMETHOD(EnumSearches)(THIS_ IEnumExtraSearch**) PURE; - STDMETHOD(GetDefaultColumn)(THIS_ DWORD,ULONG*,ULONG*) PURE; - STDMETHOD(GetDefaultColumnState)(THIS_ UINT,SHCOLSTATEF*) PURE; - STDMETHOD(GetDetailsEx)(THIS_ LPCITEMIDLIST,const SHCOLUMNID*,VARIANT*) PURE; - STDMETHOD(GetDetailsOf)(THIS_ LPCITEMIDLIST,UINT,SHELLDETAILS*) PURE; - STDMETHOD(MapColumnToSCID)(THIS_ UINT,SHCOLUMNID*) PURE; -}; -#undef INTERFACE -typedef IShellFolder2 *LPSHELLFOLDER2; - -#ifdef COBJMACROS -#define IShellFolder2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IShellFolder2_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IShellFolder2_Release(T) (T)->lpVtbl->Release(T) -#define IShellFolder2_ParseDisplayName(T,a,b,c,d,e,f) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d,e,f) -#define IShellFolder2_EnumObjects(T,a,b,c) (T)->lpVtbl->EnumObjects(T,a,b,c) -#define IShellFolder2_BindToObject(T,a,b,c,d) (T)->lpVtbl->BindToObject(T,a,b,c,d) -#define IShellFolder2_BindToStorage(T,a,b,c,d) (T)->lpVtbl->BindToStorage(T,a,b,c,d) -#define IShellFolder2_CompareIDs(T,a,b,c) (T)->lpVtbl->CompareIDs(T,a,b,c) -#define IShellFolder2_CreateViewObject(T,a,b) (T)->lpVtbl->CreateViewObject(T,a,b) -#define IShellFolder2_GetAttributesOf(T,a,b,c) (T)->lpVtbl->GetAttributesOf(T,a,b,c) -#define IShellFolder2_GetUIObjectOf(T,a,b,c,d,e,f) (T)->lpVtbl->GetUIObjectOf(T,a,b,c,d,e,f) -#define IShellFolder2_GetDisplayNameOf(T,a,b,c) (T)->lpVtbl->GetDisplayNameOf(T,a,b,c) -#define IShellFolder2_SetNameOf(T,a,b,c,d,e) (T)->lpVtbl->SetNameOf(T,a,b,c,d,e) -#define IShellFolder2_GetDefaultSearchGUID(T,a) (T)->lpVtbl->GetDefaultSearchGUID(T,a) -#define IShellFolder2_EnumSearches(T,a) (T)->lpVtbl->EnumSearches(T,a) -#define IShellFolder2_GetDefaultColumn(T,a,b,c) (T)->lpVtbl->GetDefaultColumn(T,a,b,c) -#define IShellFolder2_GetDefaultColumnState(T,a,b) (T)->lpVtbl->GetDefaultColumnState(T,a,b) -#define IShellFolder2_GetDetailsEx(T,a,b,c) (T)->lpVtbl->GetDetailsEx(T,a,b,c) -#define IShellFolder2_GetDetailsOf(T,a,b,c) (T)->lpVtbl->GetDetailsOf(T,a,b,c) -#define IShellFolder2_MapColumnToSCID(T,a,b) (T)->lpVtbl->MapColumnToSCID(T,a,b) -#endif - -#endif /* _WIN32_IE >= 0x0500 */ -#define INTERFACE ICopyHook -DECLARE_INTERFACE_(ICopyHook, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(UINT,CopyCallback)(THIS_ HWND,UINT,UINT,LPCSTR,DWORD,LPCSTR,DWORD) PURE; -}; -#undef INTERFACE -typedef ICopyHook *LPCOPYHOOK; - -#define INTERFACE IFileViewerSite -DECLARE_INTERFACE(IFileViewerSite) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(SetPinnedWindow)(THIS_ HWND) PURE; - STDMETHOD(GetPinnedWindow)(THIS_ HWND*) PURE; -}; -#undef INTERFACE -typedef IFileViewerSite *LPFILEVIEWERSITE; - -#define INTERFACE IFileViewer -DECLARE_INTERFACE(IFileViewer) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(ShowInitialize)(THIS_ LPFILEVIEWERSITE) PURE; - STDMETHOD(Show)(THIS_ LPFVSHOWINFO) PURE; - STDMETHOD(PrintTo)(THIS_ LPSTR,BOOL) PURE; -}; -#undef INTERFACE -typedef IFileViewer *LPFILEVIEWER; - -#define INTERFACE IFileSystemBindData -DECLARE_INTERFACE_(IFileSystemBindData, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(SetFindData)(THIS_ const WIN32_FIND_DATAW*) PURE; - STDMETHOD(GetFindData)(THIS_ WIN32_FIND_DATAW*) PURE; -}; -#undef INTERFACE - -#define INTERFACE IPersistFolder -DECLARE_INTERFACE_(IPersistFolder,IPersist) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ CLSID*) PURE; - STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST) PURE; -}; -#undef INTERFACE -typedef IPersistFolder *LPPERSISTFOLDER; - -#ifdef COBJMACROS -#define IPersistFolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IPersistFolder_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IPersistFolder_Release(T) (T)->lpVtbl->Release(T) -#define IPersistFolder_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a) -#define IPersistFolder_Initialize(T,a) (T)->lpVtbl->Initialize(T,a) -#endif - -#if (_WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500) - -#define INTERFACE IPersistFolder2 -DECLARE_INTERFACE_(IPersistFolder2,IPersistFolder) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ CLSID*) PURE; - STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST) PURE; - STDMETHOD(GetCurFolder)(THIS_ LPITEMIDLIST*) PURE; -}; -#undef INTERFACE -typedef IPersistFolder2 *LPPERSISTFOLDER2; - -#ifdef COBJMACROS -#define IPersistFolder2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IPersistFolder2_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IPersistFolder2_Release(T) (T)->lpVtbl->Release(T) -#define IPersistFolder2_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a) -#define IPersistFolder2_Initialize(T,a) (T)->lpVtbl->Initialize(T,a) -#define IPersistFolder2_GetCurFolder(T,a) (T)->lpVtbl->GetCurFolder(T,a) -#endif - -#endif /* _WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500 */ - -#if (_WIN32_IE >= 0x0500) - -#define INTERFACE IPersistFolder3 -DECLARE_INTERFACE_(IPersistFolder3,IPersistFolder2) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ CLSID*) PURE; - STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST) PURE; - STDMETHOD(GetCurFolder)(THIS_ LPITEMIDLIST*) PURE; - STDMETHOD(InitializeEx)(THIS_ IBindCtx*,LPCITEMIDLIST,const PERSIST_FOLDER_TARGET_INFO*) PURE; - STDMETHOD(GetFolderTargetInfo)(THIS_ PERSIST_FOLDER_TARGET_INFO*) PURE; -}; -#undef INTERFACE -typedef IPersistFolder3 *LPPERSISTFOLDER3; - -#ifdef COBJMACROS -#define IPersistFolder3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IPersistFolder3_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IPersistFolder3_Release(T) (T)->lpVtbl->Release(T) -#define IPersistFolder3_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a) -#define IPersistFolder3_Initialize(T,a) (T)->lpVtbl->Initialize(T,a) -#define IPersistFolder3_GetCurFolder(T,a) (T)->lpVtbl->GetCurFolder(T,a) -#define IPersistFolder3_InitializeEx(T,a,b,c) (T)->lpVtbl->InitializeEx(T,a,b,c) -#define IPersistFolder3_GetFolderTargetInfo(T,a) (T)->lpVtbl->GetFolderTargetInfo(T,a) -#endif - -#endif /* _WIN32_IE >= 0x0500 */ - -typedef _COM_interface IShellBrowser *LPSHELLBROWSER; -typedef _COM_interface IShellView *LPSHELLVIEW; - -#define INTERFACE IShellBrowser -DECLARE_INTERFACE_(IShellBrowser,IOleWindow) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetWindow)(THIS_ HWND*) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; - STDMETHOD(InsertMenusSB)(THIS_ HMENU,LPOLEMENUGROUPWIDTHS) PURE; - STDMETHOD(SetMenuSB)(THIS_ HMENU,HOLEMENU,HWND) PURE; - STDMETHOD(RemoveMenusSB)(THIS_ HMENU) PURE; - STDMETHOD(SetStatusTextSB)(THIS_ LPCOLESTR) PURE; - STDMETHOD(EnableModelessSB)(THIS_ BOOL) PURE; - STDMETHOD(TranslateAcceleratorSB) (THIS_ LPMSG,WORD) PURE; - STDMETHOD(BrowseObject)(THIS_ LPCITEMIDLIST,UINT) PURE; - STDMETHOD(GetViewStateStream)(THIS_ DWORD,LPSTREAM*) PURE; - STDMETHOD(GetControlWindow)(THIS_ UINT,HWND*) PURE; - STDMETHOD(SendControlMsg)(THIS_ UINT,UINT,WPARAM,LPARAM,LRESULT*) PURE; - STDMETHOD(QueryActiveShellView)(THIS_ LPSHELLVIEW*) PURE; - STDMETHOD(OnViewWindowActive)(THIS_ LPSHELLVIEW) PURE; - STDMETHOD(SetToolbarItems)(THIS_ LPTBBUTTON,UINT,UINT) PURE; -}; -#undef INTERFACE - -#ifdef COBJMACROS -#define IShellBrowser_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IShellBrowser_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IShellBrowser_Release(T) (T)->lpVtbl->Release(T) -#define IShellBrowser_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a) -#define IShellBrowser_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a) -#define IShellBrowser_InsertMenusSB(T,a,b) (T)->lpVtbl->InsertMenusSB(T,a,b) -#define IShellBrowser_SetMenuSB(T,a,b,c) (T)->lpVtbl->SetMenuSB(T,a,b,c) -#define IShellBrowser_RemoveMenusSB(T,a) (T)->lpVtbl->RemoveMenusSB(T,a) -#define IShellBrowser_SetStatusTextSB(T,a) (T)->lpVtbl->SetStatusTextSB(T,a) -#define IShellBrowser_EnableModelessSB(T,a) (T)->lpVtbl->EnableModelessSB(T,a) -#define IShellBrowser_TranslateAcceleratorSB(T,a,b) (T)->lpVtbl->TranslateAcceleratorSB(T,a,b) -#define IShellBrowser_BrowseObject(T,a,b) (T)->lpVtbl->BrowseObject(T,a,b) -#define IShellBrowser_GetViewStateStream(T,a,b) (T)->lpVtbl->GetViewStateStream(T,a,b) -#define IShellBrowser_GetControlWindow(T,a,b) (T)->lpVtbl->GetControlWindow(T,a,b) -#define IShellBrowser_SendControlMsg(T,a,b,c,d,e) (T)->lpVtbl->SendControlMsg(T,a,b,c,d,e) -#define IShellBrowser_QueryActiveShellView(T,a) (T)->lpVtbl->QueryActiveShellView(T,a) -#define IShellBrowser_OnViewWindowActive(T,a) (T)->lpVtbl->OnViewWindowActive(T,a) -#define IShellBrowser_SetToolbarItems(T,a,b,c) (T)->lpVtbl->SetToolbarItems(T,a,b,c) -#endif - -#define INTERFACE IShellView -DECLARE_INTERFACE_(IShellView,IOleWindow) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetWindow)(THIS_ HWND*) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; - STDMETHOD(TranslateAccelerator) (THIS_ LPMSG) PURE; -#ifdef _FIX_ENABLEMODELESS_CONFLICT - STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; -#else - STDMETHOD(EnableModeless)(THIS_ BOOL) PURE; -#endif - STDMETHOD(UIActivate)(THIS_ UINT) PURE; - STDMETHOD(Refresh) (THIS) PURE; - STDMETHOD(CreateViewWindow)(THIS_ IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*) PURE; - STDMETHOD(DestroyViewWindow)(THIS) PURE; - STDMETHOD(GetCurrentInfo)(THIS_ LPFOLDERSETTINGS) PURE; - STDMETHOD(AddPropertySheetPages)(THIS_ DWORD,LPFNADDPROPSHEETPAGE,LPARAM) PURE; - STDMETHOD(SaveViewState)(THIS) PURE; - STDMETHOD(SelectItem)(THIS_ LPCITEMIDLIST,UINT) PURE; - STDMETHOD(GetItemObject)(THIS_ UINT,REFIID,PVOID*) PURE; -}; -#undef INTERFACE - -#ifdef COBJMACROS -#define IShellView_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IShellView_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IShellView_Release(T) (T)->lpVtbl->Release(T) -#define IShellView_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a) -#define IShellView_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a) -#define IShellView_TranslateAccelerator(T,a) (T)->lpVtbl->TranslateAccelerator(T,a) -#ifdef _FIX_ENABLEMODELESS_CONFLICT -#define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModelessSV(T,a) -#else -#define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModeless(T,a) -#endif -#define IShellView_UIActivate(T,a) (T)->lpVtbl->UIActivate(T,a) -#define IShellView_Refresh(T) (T)->lpVtbl->Refresh(T) -#define IShellView_CreateViewWindow(T,a,b,c,d,e) (T)->lpVtbl->CreateViewWindow(T,a,b,c,d,e) -#define IShellView_DestroyViewWindow(T) (T)->lpVtbl->DestroyViewWindow(T) -#define IShellView_GetCurrentInfo(T,a) (T)->lpVtbl->GetCurrentInfo(T,a) -#define IShellView_AddPropertySheetPages(T,a,b,c) (T)->lpVtbl->AddPropertySheetPages(T,a,b,c) -#define IShellView_SaveViewState(T) (T)->lpVtbl->SaveViewState(T) -#define IShellView_SelectItem(T,a,b) (T)->lpVtbl->SelectItem(T,a,b) -#define IShellView_GetItemObject(T,a,b,c) (T)->lpVtbl->GetItemObject(T,a,b,c) -#endif - -#define INTERFACE ICommDlgBrowser -DECLARE_INTERFACE_(ICommDlgBrowser,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(OnDefaultCommand)(THIS_ IShellView*) PURE; - STDMETHOD(OnStateChange)(THIS_ IShellView*,ULONG) PURE; - STDMETHOD(IncludeObject)(THIS_ IShellView*,LPCITEMIDLIST) PURE; -}; -#undef INTERFACE -typedef ICommDlgBrowser *LPCOMMDLGBROWSER; - -#ifdef COBJMACROS -#define ICommDlgBrowser_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define ICommDlgBrowser_AddRef(T) (T)->lpVtbl->AddRef(T) -#define ICommDlgBrowser_Release(T) (T)->lpVtbl->Release(T) -#define ICommDlgBrowser_OnDefaultCommand(T,a) (T)->lpVtbl->OnDefaultCommand(T,a) -#define ICommDlgBrowser_OnStateChange(T,a,b) (T)->lpVtbl->OnStateChange(T,a,b) -#define ICommDlgBrowser_IncludeObject(T,a,b) (T)->lpVtbl->IncludeObject(T,a,b) -#endif - -typedef GUID SHELLVIEWID; -typedef struct _SV2CVW2_PARAMS { - DWORD cbSize; - IShellView *psvPrev; - FOLDERSETTINGS const *pfs; - IShellBrowser *psbOwner; - RECT *prcView; - SHELLVIEWID const *pvid; - HWND hwndView; -} SV2CVW2_PARAMS,*LPSV2CVW2_PARAMS; -#define INTERFACE IShellView2 -DECLARE_INTERFACE_(IShellView2,IShellView) -{ - - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetWindow)(THIS_ HWND*) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; - STDMETHOD(TranslateAccelerator) (THIS_ LPMSG) PURE; -#ifdef _FIX_ENABLEMODELESS_CONFLICT - STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; -#else - STDMETHOD(EnableModeless)(THIS_ BOOL) PURE; -#endif - STDMETHOD(UIActivate)(THIS_ UINT) PURE; - STDMETHOD(Refresh) (THIS) PURE; - STDMETHOD(CreateViewWindow)(THIS_ IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*) PURE; - STDMETHOD(DestroyViewWindow)(THIS) PURE; - STDMETHOD(GetCurrentInfo)(THIS_ LPFOLDERSETTINGS) PURE; - STDMETHOD(AddPropertySheetPages)(THIS_ DWORD,LPFNADDPROPSHEETPAGE,LPARAM) PURE; - STDMETHOD(SaveViewState)(THIS) PURE; - STDMETHOD(SelectItem)(THIS_ LPCITEMIDLIST,UINT) PURE; - STDMETHOD(GetItemObject)(THIS_ UINT,REFIID,PVOID*) PURE; - STDMETHOD(GetView)(THIS_ SHELLVIEWID*,ULONG) PURE; - STDMETHOD(CreateViewWindow2)(THIS_ LPSV2CVW2_PARAMS) PURE; -}; -#undef INTERFACE - -#define INTERFACE IShellExecuteHookA -DECLARE_INTERFACE_(IShellExecuteHookA,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOA) PURE; -}; -#undef INTERFACE - -#define INTERFACE IShellExecuteHookW -DECLARE_INTERFACE_(IShellExecuteHookW,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOW) PURE; -}; -#undef INTERFACE - -#define INTERFACE IShellIcon -DECLARE_INTERFACE_(IShellIcon,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetIconOf)(THIS_ LPCITEMIDLIST,UINT,PINT) PURE; -}; -#undef INTERFACE -typedef IShellIcon *LPSHELLICON; - -typedef struct { - BOOL fShowAllObjects : 1; - BOOL fShowExtensions : 1; - BOOL fNoConfirmRecycle : 1; - BOOL fShowSysFiles : 1; - BOOL fShowCompColor : 1; - BOOL fDoubleClickInWebView : 1; - BOOL fDesktopHTML : 1; - BOOL fWin95Classic : 1; - BOOL fDontPrettyPath : 1; - BOOL fShowAttribCol : 1; - BOOL fMapNetDrvBtn : 1; - BOOL fShowInfoTip : 1; - BOOL fHideIcons : 1; - UINT fRestFlags : 3; -} SHELLFLAGSTATE, * LPSHELLFLAGSTATE; - -#define SSF_SHOWALLOBJECTS 0x1 -#define SSF_SHOWEXTENSIONS 0x2 -#define SSF_SHOWCOMPCOLOR 0x8 -#define SSF_SHOWSYSFILES 0x20 -#define SSF_DOUBLECLICKINWEBVIEW 0x80 -#define SSF_SHOWATTRIBCOL 0x100 -#define SSF_DESKTOPHTML 0x200 -#define SSF_WIN95CLASSIC 0x400 -#define SSF_DONTPRETTYPATH 0x800 -#define SSF_MAPNETDRVBUTTON 0x1000 -#define SSF_SHOWINFOTIP 0x2000 -#define SSF_HIDEICONS 0x4000 -#define SSF_NOCONFIRMRECYCLE 0x8000 - -#define INTERFACE IShellIconOverlayIdentifier -DECLARE_INTERFACE_(IShellIconOverlayIdentifier,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(IsMemberOf)(THIS_ LPCWSTR,DWORD) PURE; - STDMETHOD(GetOverlayInfo)(THIS_ LPWSTR,int,int*,DWORD*) PURE; - STDMETHOD(GetPriority)(THIS_ int*) PURE; -}; -#undef INTERFACE - -#define ISIOI_ICONFILE 0x00000001 -#define ISIOI_ICONINDEX 0x00000002 - -#if (_WIN32_WINNT >= 0x0500) /* W2K */ -typedef struct { - BOOL fShowAllObjects : 1; - BOOL fShowExtensions : 1; - BOOL fNoConfirmRecycle : 1; - BOOL fShowSysFiles : 1; - BOOL fShowCompColor : 1; - BOOL fDoubleClickInWebView : 1; - BOOL fDesktopHTML : 1; - BOOL fWin95Classic : 1; - BOOL fDontPrettyPath : 1; - BOOL fShowAttribCol : 1; - BOOL fMapNetDrvBtn : 1; - BOOL fShowInfoTip : 1; - BOOL fHideIcons : 1; - BOOL fWebView : 1; - BOOL fFilter : 1; - BOOL fShowSuperHidden : 1; - BOOL fNoNetCrawling : 1; - DWORD dwWin95Unused; - UINT uWin95Unused; - LONG lParamSort; - int iSortDirection; - UINT version; - UINT uNotUsed; - BOOL fSepProcess : 1; - BOOL fStartPanelOn : 1; - BOOL fShowStartPage : 1; - UINT fSpareFlags : 13; -} SHELLSTATE, *LPSHELLSTATE; -#endif /* _WIN32_WINNT >= 0x0500 */ - -#if (_WIN32_IE >= 0x0500) -#pragma pack(push,8) -typedef struct -{ - SIZE sizeDragImage; - POINT ptOffset; - HBITMAP hbmpDragImage; - COLORREF crColorKey; -} SHDRAGIMAGE, *LPSHDRAGIMAGE; -#pragma pack(pop) - -#define INTERFACE IDragSourceHelper -DECLARE_INTERFACE_(IDragSourceHelper, IUnknown) -{ - STDMETHOD (QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; - STDMETHOD_(ULONG, AddRef) (THIS) PURE; - STDMETHOD_(ULONG, Release) (THIS) PURE; - STDMETHOD (InitializeFromBitmap)(THIS_ LPSHDRAGIMAGE pshdi, IDataObject* pDataObject) PURE; - STDMETHOD (InitializeFromWindow)(THIS_ HWND hwnd, POINT* ppt, IDataObject* pDataObject) PURE; -}; -#undef INTERFACE - -#define INTERFACE IDropTargetHelper -DECLARE_INTERFACE_(IDropTargetHelper, IUnknown) -{ - STDMETHOD (QueryInterface)(THIS_ REFIID riid, void** ppv) PURE; - STDMETHOD_(ULONG, AddRef) (THIS) PURE; - STDMETHOD_(ULONG, Release) (THIS) PURE; - STDMETHOD (DragEnter)(THIS_ HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; - STDMETHOD (DragLeave)(THIS) PURE; - STDMETHOD (DragOver)(THIS_ POINT* ppt, DWORD dwEffect) PURE; - STDMETHOD (Drop)(THIS_ IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; - STDMETHOD (Show)(THIS_ BOOL fShow) PURE; -}; -#undef INTERFACE -#endif /* _WIN32_IE >= 0x0500 */ - -#if (_WIN32_WINNT >= 0x0500) -BOOL WINAPI PathResolve(LPWSTR, LPCWSTR*, UINT); -#define PRF_VERIFYEXISTS 0x0001 -#define PRF_TRYPROGRAMEXTENSIONS (0x0002 | PRF_VERIFYEXISTS) -#define PRF_FIRSTDIRDEF 0x0004 -#define PRF_DONTFINDLNK 0x0008 -#endif - -void WINAPI SHAddToRecentDocs(UINT,PCVOID); -LPITEMIDLIST WINAPI SHBrowseForFolderA(PBROWSEINFOA); -LPITEMIDLIST WINAPI SHBrowseForFolderW(PBROWSEINFOW); -void WINAPI SHChangeNotify(LONG,UINT,PCVOID,PCVOID); -HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int); -HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int); -HRESULT WINAPI SHGetDesktopFolder(LPSHELLFOLDER*); -HRESULT WINAPI SHGetInstanceExplorer(IUnknown **); -HRESULT WINAPI SHGetMalloc(LPMALLOC*); -BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST,LPSTR); -BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST,LPWSTR); -HRESULT WINAPI SHGetSpecialFolderLocation(HWND,int,LPITEMIDLIST*); -HRESULT WINAPI SHLoadInProc(REFCLSID); -#if (_WIN32_IE >= 0x0400) -BOOL WINAPI SHGetSpecialFolderPathA(HWND,LPSTR,int,BOOL); -BOOL WINAPI SHGetSpecialFolderPathW(HWND,LPWSTR,int,BOOL); -#endif -/* SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K */ -HRESULT WINAPI SHGetFolderPathA(HWND,int,HANDLE,DWORD,LPSTR); -HRESULT WINAPI SHGetFolderPathW(HWND,int,HANDLE,DWORD,LPWSTR); -#if (_WIN32_WINDOWS >= 0x0490) || (_WIN32_WINNT >= 0x0500) /* ME or W2K */ -HRESULT WINAPI SHGetFolderLocation(HWND,int,HANDLE,DWORD,LPITEMIDLIST*); -#endif -#if (_WIN32_WINNT >= 0x0500) -INT WINAPI SHCreateDirectoryExA(HWND,LPCSTR,LPSECURITY_ATTRIBUTES); -INT WINAPI SHCreateDirectoryExW(HWND,LPCWSTR,LPSECURITY_ATTRIBUTES); -HRESULT WINAPI SHBindToParent(LPCITEMIDLIST,REFIID,VOID**,LPCITEMIDLIST*); -#endif -#if (_WIN32_WINNT >= 0x0501) /* XP */ -HRESULT WINAPI SHGetFolderPathAndSubDirA(HWND,int,HANDLE,DWORD,LPCSTR,LPSTR); -HRESULT WINAPI SHGetFolderPathAndSubDirW(HWND,int,HANDLE,DWORD,LPCWSTR,LPWSTR); -#endif -void WINAPI SHGetSettings(LPSHELLFLAGSTATE,DWORD); -#if (_WIN32_WINNT >= 0x0500) /* W2K */ -void WINAPI SHGetSetSettings(LPSHELLSTATE,DWORD,BOOL); -#endif - -#if (_WIN32_WINNT >= 0x0500) /* W2K */ -BOOL WINAPI ILIsEqual(LPCITEMIDLIST, LPCITEMIDLIST); -BOOL WINAPI ILIsParent(LPCITEMIDLIST, LPCITEMIDLIST, BOOL); -BOOL WINAPI ILRemoveLastID(LPITEMIDLIST); -HRESULT WINAPI ILLoadFromStream(IStream*, LPITEMIDLIST*); -HRESULT WINAPI ILSaveToStream(IStream*, LPCITEMIDLIST); -LPITEMIDLIST WINAPI ILAppendID(LPITEMIDLIST, LPCSHITEMID, BOOL); -LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST); -LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST); -LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST, LPCITEMIDLIST); -LPITEMIDLIST WINAPI ILFindChild(LPCITEMIDLIST, LPCITEMIDLIST); -LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST); -LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST); -UINT WINAPI ILGetSize(LPCITEMIDLIST); -void WINAPI ILFree(LPITEMIDLIST); - -HRESULT WINAPI SHCoCreateInstance(LPCWSTR,REFCLSID,IUnknown*,REFIID,void**); -#endif - -#ifdef UNICODE -typedef IShellExecuteHookW IShellExecuteHook; -typedef IShellLinkW IShellLink; -typedef BROWSEINFOW BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO; -#define SHBrowseForFolder SHBrowseForFolderW -#define SHGetDataFromIDList SHGetDataFromIDListW -#define SHGetPathFromIDList SHGetPathFromIDListW -#if (_WIN32_IE >= 0x0400) -#define SHGetSpecialFolderPath SHGetSpecialFolderPathW -#endif -#define SHGetFolderPath SHGetFolderPathW -#if (_WIN32_WINNT >= 0x0500) -#define SHCreateDirectoryEx SHCreateDirectoryExW -#endif -#if (_WIN32_WINNT >= 0x0501) -#define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirW -#endif -#define FILEDESCRIPTOR FILEDESCRIPTORW -#define LPFILEDESCRIPTOR LPFILEDESCRIPTORW -#define FILEGROUPDESCRIPTOR FILEGROUPDESCRIPTORW -#define LPFILEGROUPDESCRIPTOR LPFILEGROUPDESCRIPTORW - -#else -typedef IShellExecuteHookA IShellExecuteHook; -typedef IShellLinkA IShellLink; -typedef BROWSEINFOA BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO; -#define SHBrowseForFolder SHBrowseForFolderA -#define SHGetDataFromIDList SHGetDataFromIDListA -#define SHGetPathFromIDList SHGetPathFromIDListA -#if (_WIN32_IE >= 0x0400) -#define SHGetSpecialFolderPath SHGetSpecialFolderPathA -#endif -#define SHGetFolderPath SHGetFolderPathA -#if (_WIN32_WINNT >= 0x0500) -#define SHCreateDirectoryEx SHCreateDirectoryExA -#endif -#if (_WIN32_WINNT >= 0x0501) -#define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirA -#endif -#define FILEDESCRIPTOR FILEDESCRIPTORA -#define LPFILEDESCRIPTOR LPFILEDESCRIPTORA -#define FILEGROUPDESCRIPTOR FILEGROUPDESCRIPTORA -#define LPFILEGROUPDESCRIPTOR LPFILEGROUPDESCRIPTORA -#endif /* UNICODE */ - -DWORD WINAPI SHFormatDrive(HWND,UINT,UINT,UINT); - -#define SHFMT_ID_DEFAULT 0xFFFF -#define SHFMT_OPT_FULL 1 -#define SHFMT_OPT_SYSONLY 2 -#define SHFMT_ERROR 0xFFFFFFFF -#define SHFMT_CANCEL 0xFFFFFFFE -#define SHFMT_NOFORMAT 0xFFFFFFFD - -#pragma pack(pop) -#ifdef __cplusplus -} -#endif - - -#endif /* _SHLOBJ_H */ |