home *** CD-ROM | disk | FTP | other *** search
- #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_GHOSTED 0x00008000L
- #define SFGAO_LINK 0x00010000L
- #define SFGAO_SHARE 0x00020000L
- #define SFGAO_READONLY 0x00040000L
- #define SFGAO_HIDDEN 0x00080000L
- #define SFGAO_DISPLAYATTRMASK 0x000F0000L
- #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_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
-
- #undef INTERFACE
- #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;
- };
- 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
-
- #undef INTERFACE
- #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;
- };
- typedef IContextMenu2 *LPCONTEXTMENU2;
-
- #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
-
- #undef INTERFACE
- #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;
- };
- #endif /* _WIN32_IE >= 0x0500 */
-
- #undef INTERFACE
- #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;
- };
- typedef IShellExtInit *LPSHELLEXTINIT;
-
- #undef INTERFACE
- #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;
- };
- typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
-
- #undef INTERFACE
- #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;
- };
- 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
-
- #undef INTERFACE
- #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;
- };
- 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
-
- #undef INTERFACE
- #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;
- };
-
- #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
-
- #undef INTERFACE
- #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;
- };
-
- #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
-
- #undef INTERFACE
- #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;
- };
- 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;
-
- #undef INTERFACE
- #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;
- };
- 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 */
- #undef INTERFACE
- #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;
- };
- typedef ICopyHook *LPCOPYHOOK;
-
- #undef INTERFACE
- #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;
- };
- typedef IFileViewerSite *LPFILEVIEWERSITE;
-
- #undef INTERFACE
- #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;
- };
- typedef IFileViewer *LPFILEVIEWER;
-
- #undef INTERFACE
- #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;
- };
- 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)
-
- #undef INTERFACE
- #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;
- };
- 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)
-
- #undef INTERFACE
- #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;
- };
- 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 interface IShellBrowser *LPSHELLBROWSER;
- typedef interface IShellView *LPSHELLVIEW;
-
- #undef INTERFACE
- #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;
- };
-
- #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
-
- #undef INTERFACE
- #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;
- };
-
- #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
-
- #undef INTERFACE
- #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;
- };
- 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;
- #undef INTERFACE
- #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;
- };
- 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
-
- #undef INTERFACE
- #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;
- };
-
- #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)
-
- #undef INTERFACE
- #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;
- };
- #endif /* _WIN32_IE >= 0x0500 */
-
- 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 */
-
- #pragma pack(pop)
- #ifdef __cplusplus
- }
- #endif
-
-
- #endif /* _SHLOBJ_H */
-