13a01ce06a
(REGSTR_PATH_SPECIAL_FOLDERS): Ditto. * include/regstr.h (REGSTR_PATH_EXPLORER): Add #ifndef guard.
732 lines
23 KiB
C
732 lines
23 KiB
C
#ifndef _SHLOBJ_H
|
||
#define _SHLOBJ_H
|
||
|
||
#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_BROWSEFORCOMPUTER 0x1000
|
||
#define BIF_BROWSEFORPRINTER 0x2000
|
||
#define BFFM_INITIALIZED 1
|
||
#define BFFM_SELCHANGED 2
|
||
#define BFFM_SETSTATUSTEXT (WM_USER + 100)
|
||
#define BFFM_ENABLEOK (WM_USER + 101)
|
||
#define BFFM_SETSELECTION (WM_USER + 102)
|
||
#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 CMDSTR_NEWFOLDER "NewFolder"
|
||
#define CMDSTR_VIEWLIST "ViewList"
|
||
#define CMDSTR_VIEWDETAILS "ViewDetails"
|
||
#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_PATH 1
|
||
#define SHCNF_PRINTER 2
|
||
#define SHCNF_DWORD 3
|
||
#define SHCNF_TYPE 0xFF
|
||
#define SHCNF_FLUSH 0x1000
|
||
#define SHCNF_FLUSHNOWAIT 0x2000
|
||
#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_LINK 0x00010000L
|
||
#define SFGAO_SHARE 0x00020000L
|
||
#define SFGAO_READONLY 0x00040000L
|
||
#define SFGAO_GHOSTED 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 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_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_COMMON_ALTSTARTUP 30
|
||
#define CSIDL_COMMON_FAVORITES 31
|
||
#define CFSTR_SHELLIDLIST "Shell IDList Array"
|
||
#define CFSTR_SHELLIDLISTOFFSET "Shell Object Offsets"
|
||
#define CFSTR_NETRESOURCES "Net Resource"
|
||
#define CFSTR_FILEDESCRIPTOR "FileGroupDescriptor"
|
||
#define CFSTR_FILECONTENTS "FileContents"
|
||
#define CFSTR_FILENAME "FileName"
|
||
#define CFSTR_PRINTERGROUP "PrinterFriendlyName"
|
||
#define CFSTR_FILENAMEMAP "FileNameMap"
|
||
#define CMF_NORMAL 0
|
||
#define CMF_DEFAULTONLY 1
|
||
#define CMF_VERBSONLY 2
|
||
#define CMF_EXPLORE 4
|
||
#define CMF_RESERVED 0xffff0000
|
||
#define GCS_VERB 0
|
||
#define GCS_HELPTEXT 1
|
||
#define GCS_VALIDATE 2
|
||
#define CMDSTR_NEWFOLDER "NewFolder"
|
||
#define CMDSTR_VIEWLIST "ViewList"
|
||
#define CMDSTR_VIEWDETAILS "ViewDetails"
|
||
#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)<29>
|
||
#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 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_FORPARSING=0x8000
|
||
} SHGNO;
|
||
typedef enum tagSHCONTF {
|
||
SHCONTF_FOLDERS=32,
|
||
SHCONTF_NONFOLDERS=64,
|
||
SHCONTF_INCLUDEHIDDEN=128
|
||
} 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 _FILEDESCRIPTOR {
|
||
DWORD dwFlags;
|
||
CLSID clsid;
|
||
SIZEL sizel;
|
||
POINTL pointl;
|
||
DWORD dwFileAttributes;
|
||
FILETIME ftCreationTime;
|
||
FILETIME ftLastAccessTime;
|
||
FILETIME ftLastWriteTime;
|
||
DWORD nFileSizeHigh;
|
||
DWORD nFileSizeLow;
|
||
CHAR cFileName[MAX_PATH];
|
||
} FILEDESCRIPTOR,*LPFILEDESCRIPTOR;
|
||
typedef struct _FILEGROUPDESCRIPTOR {
|
||
UINT cItems;
|
||
FILEDESCRIPTOR fgd[1];
|
||
} FILEGROUPDESCRIPTOR,*LPFILEGROUPDESCRIPTOR;
|
||
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
|
||
} 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;
|
||
|
||
DECLARE_ENUMERATOR_(IEnumIDList,LPITEMIDLIST);
|
||
typedef IEnumIDList *LPENUMIDLIST;
|
||
|
||
#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;
|
||
|
||
#undef INTERFACE
|
||
#define INTERFACE IContextMenu2
|
||
DECLARE_INTERFACE_(IContextMenu2,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(HandleMenuMsg)(THIS_ UINT,WPARAM,LPARAM) PURE;
|
||
STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE;
|
||
STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE;
|
||
};
|
||
typedef IContextMenu2 *LPCONTEXTMENU2;
|
||
|
||
#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 IExtractIcon
|
||
DECLARE_INTERFACE_(IExtractIcon, IUnknown) // exic
|
||
{
|
||
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 IExtractIcon *LPEXTRACTICON;
|
||
|
||
#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;
|
||
};
|
||
#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_ LPSTR,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
|
||
#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;
|
||
|
||
#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 ICommDlgBrowser
|
||
DECLARE_INTERFACE_(ICommDlgBrowser,IUnknown)
|
||
{
|
||
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
|
||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||
STDMETHOD(OnDefaultCommand)(THIS) PURE;
|
||
STDMETHOD(OnStateChange)(THIS_ ULONG) PURE;
|
||
STDMETHOD(IncludeObject)(THIS_ LPCITEMIDLIST) PURE;
|
||
};
|
||
typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
|
||
|
||
#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;
|
||
|
||
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;
|
||
};
|
||
|
||
#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;
|
||
};
|
||
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;
|
||
|
||
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(LPUNKNOWN);
|
||
HRESULT WINAPI SHGetMalloc(LPMALLOC*);
|
||
BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST,LPSTR);
|
||
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST,LPWSTR);
|
||
HRESULT WINAPI SHGetSpecialFolderLocation(HWND,int,LPITEMIDLIST*);
|
||
HRESULT WINAPI SHLoadInProc(REFCLSID);
|
||
/* FIXME/TODO: Only valid for _WIN32_IE >= 400? */
|
||
BOOL WINAPI SHGetSpecialFolderPathA(HWND,LPSTR,int,BOOL);
|
||
BOOL WINAPI SHGetSpecialFolderPathW(HWND,LPSTR,int,BOOL);
|
||
|
||
#ifdef UNICODE
|
||
typedef IShellExecuteHookW IShellExecuteHook;
|
||
typedef IShellLinkW IShellLink;
|
||
typedef BROWSEINFOW BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO;
|
||
#define SHBrowseForFolder SHBrowseForFolderW
|
||
#define SHGetDataFromIDList SHGetDataFromIDListW
|
||
#define SHGetPathFromIDList SHGetPathFromIDListW
|
||
/* FIXME/TODO: Only valid for _WIN32_IE >= 400? */
|
||
#define SHGetSpecialFolderPath SHGetSpecialFolderPathW
|
||
#else
|
||
typedef IShellExecuteHookA IShellExecuteHook;
|
||
typedef IShellLinkA IShellLink;
|
||
typedef BROWSEINFOA BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO;
|
||
#define SHBrowseForFolder SHBrowseForFolderA
|
||
#define SHGetDataFromIDList SHGetDataFromIDListA
|
||
#define SHGetPathFromIDList SHGetPathFromIDListA
|
||
/* FIXME/TODO: Only valid for _WIN32_IE >= 400? */
|
||
#define SHGetSpecialFolderPath SHGetSpecialFolderPathA
|
||
#endif
|
||
|
||
#pragma pack(pop)
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
|
||
#endif /* _SHLOBJ_H */
|