| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the w64 mingw-runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef _SHLOBJ_H_ |
| #define _SHLOBJ_H_ |
| |
| #ifndef _WINRESRC_ |
| #ifndef _WIN32_IE |
| #define _WIN32_IE 0x0501 |
| #else |
| /* FIXME: This really must be 0x0501 !!! */ |
| #if (_WIN32_IE < 0x0500) |
| #error _WIN32_IE setting conflicts |
| #endif |
| #endif |
| #endif |
| |
| #ifndef SNDMSG |
| #ifdef __cplusplus |
| #define SNDMSG ::SendMessage |
| #else |
| #define SNDMSG SendMessage |
| #endif |
| #endif |
| |
| #ifndef WINSHELLAPI |
| #if defined(_SHELL32_) |
| #define WINSHELLAPI |
| #else |
| #define WINSHELLAPI DECLSPEC_IMPORT |
| #endif |
| #endif |
| |
| #ifndef SHSTDAPI |
| #if defined(_SHELL32_) |
| #define SHSTDAPI STDAPI |
| #define SHSTDAPI_(type) STDAPI_(type) |
| #else |
| #define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI |
| #define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type WINAPI |
| #endif |
| #endif |
| |
| #ifndef SHDOCAPI |
| #if defined(_SHDOCVW_) |
| #define SHDOCAPI STDAPI |
| #define SHDOCAPI_(type) STDAPI_(type) |
| #else |
| #define SHDOCAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI |
| #define SHDOCAPI_(type) EXTERN_C DECLSPEC_IMPORT type WINAPI |
| #endif |
| #endif |
| |
| #ifndef SHSTDDOCAPI |
| #if defined(_SHDOCVW_) || defined(_SHELL32_) |
| #define SHSTDDOCAPI STDAPI |
| #define SHSTDDOCAPI_(type) STDAPI_(type) |
| #else |
| #define SHSTDDOCAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI |
| #define SHSTDDOCAPI_(type) EXTERN_C DECLSPEC_IMPORT type WINAPI |
| #endif |
| #endif |
| |
| #ifndef BROWSEUIAPI |
| #if defined(_BROWSEUI_) |
| #define BROWSEUIAPI STDAPI |
| #define BROWSEUIAPI_(type) STDAPI_(type) |
| #else |
| #define BROWSEUIAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI |
| #define BROWSEUIAPI_(type) EXTERN_C DECLSPEC_IMPORT type WINAPI |
| #endif |
| #endif |
| |
| #ifndef SHFOLDERAPI |
| #if defined(_SHFOLDER_) || defined(_SHELL32_) |
| #define SHFOLDERAPI STDAPI |
| #else |
| #define SHFOLDERAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI |
| #endif |
| #endif |
| |
| #include <ole2.h> |
| #include <prsht.h> |
| #include <commctrl.h> |
| |
| #ifndef INITGUID |
| #include <shlguid.h> |
| #endif |
| |
| #include <pshpack1.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <shtypes.h> |
| #include <shobjidl.h> |
| |
| SHSTDAPI SHGetMalloc(LPMALLOC *ppMalloc); |
| SHSTDAPI_(void *) SHAlloc(SIZE_T cb); |
| SHSTDAPI_(void) SHFree(void *pv); |
| |
| #define CMF_NORMAL 0x00000000 |
| #define CMF_DEFAULTONLY 0x00000001 |
| #define CMF_VERBSONLY 0x00000002 |
| #define CMF_EXPLORE 0x00000004 |
| #define CMF_NOVERBS 0x00000008 |
| #define CMF_CANRENAME 0x00000010 |
| #define CMF_NODEFAULT 0x00000020 |
| #define CMF_INCLUDESTATIC 0x00000040 |
| #define CMF_EXTENDEDVERBS 0x00000100 |
| #define CMF_RESERVED 0xffff0000 |
| |
| #define GCS_VERBA 0x00000000 |
| #define GCS_HELPTEXTA 0x00000001 |
| #define GCS_VALIDATEA 0x00000002 |
| #define GCS_VERBW 0x00000004 |
| #define GCS_HELPTEXTW 0x00000005 |
| #define GCS_VALIDATEW 0x00000006 |
| #define GCS_UNICODE 0x00000004 |
| |
| #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_NEWFOLDERA |
| #define CMDSTR_VIEWLIST CMDSTR_VIEWLISTA |
| #define CMDSTR_VIEWDETAILS CMDSTR_VIEWDETAILSA |
| #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_UNICODE SEE_MASK_UNICODE |
| #define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE |
| #define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME |
| #define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM |
| #define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE |
| #define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK |
| #if (_WIN32_IE >= 0x0603) |
| #define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS |
| #endif |
| |
| #define CMIC_MASK_SHIFT_DOWN 0x10000000 |
| #define CMIC_MASK_CONTROL_DOWN 0x40000000 |
| #if (_WIN32_IE >= 0x0560) |
| #define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE |
| #define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS |
| #endif |
| #define CMIC_MASK_PTINVOKE 0x20000000 |
| |
| #include <pshpack8.h> |
| |
| 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 _CMInvokeCommandInfoEx { |
| DWORD cbSize; |
| DWORD fMask; |
| HWND hwnd; |
| LPCSTR lpVerb; |
| LPCSTR lpParameters; |
| LPCSTR lpDirectory; |
| int nShow; |
| DWORD dwHotKey; |
| HANDLE hIcon; |
| LPCSTR lpTitle; |
| LPCWSTR lpVerbW; |
| LPCWSTR lpParametersW; |
| LPCWSTR lpDirectoryW; |
| LPCWSTR lpTitleW; |
| POINT ptInvoke; |
| } CMINVOKECOMMANDINFOEX,*LPCMINVOKECOMMANDINFOEX; |
| |
| #include <poppack.h> |
| |
| #undef INTERFACE |
| #define INTERFACE IContextMenu |
| |
| DECLARE_INTERFACE_(IContextMenu,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(QueryContextMenu)(THIS_ HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) PURE; |
| STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; |
| STDMETHOD(GetCommandString)(THIS_ UINT_PTR idCmd,UINT uType,UINT *pwReserved,LPSTR pszName,UINT cchMax) PURE; |
| }; |
| |
| typedef IContextMenu *LPCONTEXTMENU; |
| |
| #undef INTERFACE |
| #define INTERFACE IContextMenu2 |
| DECLARE_INTERFACE_(IContextMenu2,IContextMenu) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(QueryContextMenu)(THIS_ HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) PURE; |
| STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; |
| STDMETHOD(GetCommandString)(THIS_ UINT_PTR idCmd,UINT uType,UINT *pwReserved,LPSTR pszName,UINT cchMax) PURE; |
| STDMETHOD(HandleMenuMsg)(THIS_ UINT uMsg,WPARAM wParam,LPARAM lParam) PURE; |
| }; |
| |
| typedef IContextMenu2 *LPCONTEXTMENU2; |
| |
| #undef INTERFACE |
| #define INTERFACE IContextMenu3 |
| DECLARE_INTERFACE_(IContextMenu3,IContextMenu2) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(QueryContextMenu)(THIS_ HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) PURE; |
| STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; |
| STDMETHOD(GetCommandString)(THIS_ UINT_PTR idCmd,UINT uType,UINT *pwReserved,LPSTR pszName,UINT cchMax) PURE; |
| STDMETHOD(HandleMenuMsg)(THIS_ UINT uMsg,WPARAM wParam,LPARAM lParam) PURE; |
| STDMETHOD(HandleMenuMsg2)(THIS_ UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *plResult) PURE; |
| }; |
| |
| typedef IContextMenu3 *LPCONTEXTMENU3; |
| |
| #undef INTERFACE |
| #define INTERFACE IPersistFolder3 |
| #define CSIDL_FLAG_PFTI_TRACKTARGET CSIDL_FLAG_DONT_VERIFY |
| |
| #include <pshpack8.h> |
| |
| typedef struct { |
| LPITEMIDLIST pidlTargetFolder; |
| WCHAR szTargetParsingName[MAX_PATH]; |
| WCHAR szNetworkProvider[MAX_PATH]; |
| DWORD dwAttributes; |
| int csidl; |
| } PERSIST_FOLDER_TARGET_INFO; |
| |
| #include <poppack.h> |
| |
| DECLARE_INTERFACE_(IPersistFolder3,IPersistFolder2) { |
| STDMETHOD(QueryInterface)(THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| STDMETHOD_(ULONG,Release)(THIS) PURE; |
| STDMETHOD(GetClassID)(THIS_ LPCLSID lpClassID) PURE; |
| STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; |
| STDMETHOD(GetCurFolder)(THIS_ LPITEMIDLIST *ppidl) PURE; |
| STDMETHOD(InitializeEx)(THIS_ IBindCtx *pbc,LPCITEMIDLIST pidlRoot,const PERSIST_FOLDER_TARGET_INFO *ppfti) PURE; |
| STDMETHOD(GetFolderTargetInfo)(THIS_ PERSIST_FOLDER_TARGET_INFO *ppfti) PURE; |
| }; |
| |
| #define GIL_OPENICON 0x0001 |
| #define GIL_FORSHELL 0x0002 |
| #define GIL_ASYNC 0x0020 |
| #define GIL_DEFAULTICON 0x0040 |
| #define GIL_FORSHORTCUT 0x0080 |
| |
| #define GIL_SIMULATEDOC 0x0001 |
| #define GIL_PERINSTANCE 0x0002 |
| #define GIL_PERCLASS 0x0004 |
| #define GIL_NOTFILENAME 0x0008 |
| #define GIL_DONTCACHE 0x0010 |
| |
| #undef INTERFACE |
| #define INTERFACE IExtractIconA |
| DECLARE_INTERFACE_(IExtractIconA,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetIconLocation)(THIS_ UINT uFlags,LPSTR szIconFile,UINT cchMax,int *piIndex,UINT *pwFlags) PURE; |
| STDMETHOD(Extract)(THIS_ LPCSTR pszFile,UINT nIconIndex,HICON *phiconLarge,HICON *phiconSmall,UINT nIconSize) PURE; |
| }; |
| |
| typedef IExtractIconA *LPEXTRACTICONA; |
| |
| #undef INTERFACE |
| #define INTERFACE IExtractIconW |
| DECLARE_INTERFACE_(IExtractIconW,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetIconLocation)(THIS_ UINT uFlags,LPWSTR szIconFile,UINT cchMax,int *piIndex,UINT *pwFlags) PURE; |
| STDMETHOD(Extract)(THIS_ LPCWSTR pszFile,UINT nIconIndex,HICON *phiconLarge,HICON *phiconSmall,UINT nIconSize) PURE; |
| }; |
| |
| typedef IExtractIconW *LPEXTRACTICONW; |
| |
| #ifdef UNICODE |
| #define IExtractIcon IExtractIconW |
| #define IExtractIconVtbl IExtractIconWVtbl |
| #define LPEXTRACTICON LPEXTRACTICONW |
| #else |
| #define IExtractIcon IExtractIconA |
| #define IExtractIconVtbl IExtractIconAVtbl |
| #define LPEXTRACTICON LPEXTRACTICONA |
| #endif |
| |
| #undef INTERFACE |
| #define INTERFACE IShellIcon |
| DECLARE_INTERFACE_(IShellIcon,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetIconOf)(THIS_ LPCITEMIDLIST pidl,UINT flags,LPINT lpIconIndex) PURE; |
| }; |
| |
| typedef IShellIcon *LPSHELLICON; |
| |
| #undef INTERFACE |
| #define INTERFACE IShellIconOverlayIdentifier |
| DECLARE_INTERFACE_(IShellIconOverlayIdentifier,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD (IsMemberOf)(THIS_ LPCWSTR pwszPath,DWORD dwAttrib) PURE; |
| STDMETHOD (GetOverlayInfo)(THIS_ LPWSTR pwszIconFile,int cchMax,int *pIndex,DWORD *pdwFlags) PURE; |
| STDMETHOD (GetPriority)(THIS_ int *pIPriority) PURE; |
| }; |
| |
| #define ISIOI_ICONFILE 0x00000001 |
| #define ISIOI_ICONINDEX 0x00000002 |
| #if (_WIN32_IE >= 0x0601) |
| #undef INTERFACE |
| #define INTERFACE IShellIconOverlayManager |
| DECLARE_INTERFACE_(IShellIconOverlayManager,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetFileOverlayInfo)(THIS_ LPCWSTR pwszPath,DWORD dwAttrib,int *pIndex,DWORD dwflags) PURE; |
| STDMETHOD(GetReservedOverlayInfo)(THIS_ LPCWSTR pwszPath,DWORD dwAttrib,int *pIndex,DWORD dwflags,int iReservedID) PURE; |
| STDMETHOD(RefreshOverlayImages)(THIS_ DWORD dwFlags) PURE; |
| STDMETHOD(LoadNonloadedOverlayIdentifiers)(THIS) PURE; |
| STDMETHOD(OverlayIndexFromImageIndex)(THIS_ int iImage,int *piIndex,WINBOOL fAdd) PURE; |
| }; |
| #define SIOM_OVERLAYINDEX 1 |
| #define SIOM_ICONINDEX 2 |
| |
| #define SIOM_RESERVED_SHARED 0 |
| #define SIOM_RESERVED_LINK 1 |
| #define SIOM_RESERVED_SLOWFILE 2 |
| #endif |
| |
| #undef INTERFACE |
| #define INTERFACE IShellIconOverlay |
| DECLARE_INTERFACE_(IShellIconOverlay,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetOverlayIndex)(THIS_ LPCITEMIDLIST pidl,int *pIndex) PURE; |
| STDMETHOD(GetOverlayIconIndex)(THIS_ LPCITEMIDLIST pidl,int *pIconIndex) PURE; |
| }; |
| |
| #define OI_ASYNC 0xFFFFEEEE |
| |
| #define IDO_SHGIOI_SHARE 0x0FFFFFFF |
| #define IDO_SHGIOI_LINK 0x0FFFFFFE |
| #define IDO_SHGIOI_SLOWFILE 0x0FFFFFFFD |
| #define IDO_SHGIOI_DEFAULT 0x0FFFFFFC |
| SHSTDAPI_(int) SHGetIconOverlayIndexA(LPCSTR pszIconPath,int iIconIndex); |
| SHSTDAPI_(int) SHGetIconOverlayIndexW(LPCWSTR pszIconPath,int iIconIndex); |
| #ifdef UNICODE |
| #define SHGetIconOverlayIndex SHGetIconOverlayIndexW |
| #else |
| #define SHGetIconOverlayIndex SHGetIconOverlayIndexA |
| #endif |
| |
| typedef enum { |
| SLDF_HAS_ID_LIST = 0x00000001,SLDF_HAS_LINK_INFO = 0x00000002,SLDF_HAS_NAME = 0x00000004,SLDF_HAS_RELPATH = 0x00000008, |
| SLDF_HAS_WORKINGDIR = 0x00000010,SLDF_HAS_ARGS = 0x00000020,SLDF_HAS_ICONLOCATION = 0x00000040,SLDF_UNICODE = 0x00000080, |
| SLDF_FORCE_NO_LINKINFO = 0x00000100,SLDF_HAS_EXP_SZ = 0x00000200,SLDF_RUN_IN_SEPARATE = 0x00000400,SLDF_HAS_LOGO3ID = 0x00000800, |
| SLDF_HAS_DARWINID = 0x00001000,SLDF_RUNAS_USER = 0x00002000,SLDF_HAS_EXP_ICON_SZ = 0x00004000,SLDF_NO_PIDL_ALIAS = 0x00008000, |
| SLDF_FORCE_UNCNAME = 0x00010000,SLDF_RUN_WITH_SHIMLAYER = 0x00020000,SLDF_RESERVED = 0x80000000 |
| } SHELL_LINK_DATA_FLAGS; |
| |
| typedef struct tagDATABLOCKHEADER { |
| DWORD cbSize; |
| DWORD dwSignature; |
| } DATABLOCK_HEADER,*LPDATABLOCK_HEADER,*LPDBLIST; |
| |
| typedef struct { |
| #ifdef __cplusplus |
| DATABLOCK_HEADER dbh; |
| #else |
| /* DATABLOCK_HEADER; */ |
| __MINGW_EXTENSION struct { |
| DWORD cbSize; |
| DWORD dwSignature; |
| }; |
| #endif |
| WORD wFillAttribute; |
| WORD wPopupFillAttribute; |
| COORD dwScreenBufferSize; |
| COORD dwWindowSize; |
| COORD dwWindowOrigin; |
| DWORD nFont; |
| DWORD nInputBufferSize; |
| COORD dwFontSize; |
| UINT uFontFamily; |
| UINT uFontWeight; |
| WCHAR FaceName[LF_FACESIZE]; |
| UINT uCursorSize; |
| WINBOOL bFullScreen; |
| WINBOOL bQuickEdit; |
| WINBOOL bInsertMode; |
| WINBOOL bAutoPosition; |
| UINT uHistoryBufferSize; |
| UINT uNumberOfHistoryBuffers; |
| WINBOOL bHistoryNoDup; |
| COLORREF ColorTable[16 ]; |
| } NT_CONSOLE_PROPS,*LPNT_CONSOLE_PROPS; |
| #define NT_CONSOLE_PROPS_SIG 0xA0000002 |
| |
| typedef struct { |
| #ifdef __cplusplus |
| DATABLOCK_HEADER dbh; |
| #else |
| /* DATABLOCK_HEADER; */ |
| __MINGW_EXTENSION struct { |
| DWORD cbSize; |
| DWORD dwSignature; |
| }; |
| #endif |
| UINT uCodePage; |
| } NT_FE_CONSOLE_PROPS,*LPNT_FE_CONSOLE_PROPS; |
| #define NT_FE_CONSOLE_PROPS_SIG 0xA0000004 |
| |
| typedef struct { |
| #ifdef __cplusplus |
| DATABLOCK_HEADER dbh; |
| #else |
| /* DATABLOCK_HEADER; */ |
| __MINGW_EXTENSION struct { |
| DWORD cbSize; |
| DWORD dwSignature; |
| }; |
| #endif |
| CHAR szDarwinID[MAX_PATH]; |
| WCHAR szwDarwinID[MAX_PATH]; |
| } EXP_DARWIN_LINK,*LPEXP_DARWIN_LINK; |
| #define EXP_DARWIN_ID_SIG 0xA0000006 |
| #define EXP_LOGO3_ID_SIG 0xA0000007 |
| |
| #define EXP_SPECIAL_FOLDER_SIG 0xA0000005 |
| |
| typedef struct { |
| DWORD cbSize; |
| DWORD dwSignature; |
| DWORD idSpecialFolder; |
| DWORD cbOffset; |
| } EXP_SPECIAL_FOLDER,*LPEXP_SPECIAL_FOLDER; |
| |
| typedef struct { |
| DWORD cbSize; |
| DWORD dwSignature; |
| CHAR szTarget[MAX_PATH ]; |
| WCHAR swzTarget[MAX_PATH ]; |
| } EXP_SZ_LINK,*LPEXP_SZ_LINK; |
| #define EXP_SZ_LINK_SIG 0xA0000001 |
| #define EXP_SZ_ICON_SIG 0xA0000007 |
| |
| #undef INTERFACE |
| #define INTERFACE IShellLinkDataList |
| DECLARE_INTERFACE_(IShellLinkDataList,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(AddDataBlock)(THIS_ void *pDataBlock) PURE; |
| STDMETHOD(CopyDataBlock)(THIS_ DWORD dwSig,void **ppDataBlock) PURE; |
| STDMETHOD(RemoveDataBlock)(THIS_ DWORD dwSig) PURE; |
| STDMETHOD(GetFlags)(THIS_ DWORD *pdwFlags) PURE; |
| STDMETHOD(SetFlags)(THIS_ DWORD dwFlags) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IResolveShellLink |
| DECLARE_INTERFACE_(IResolveShellLink,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(ResolveShellLink)(THIS_ IUnknown *punk,HWND hwnd,DWORD fFlags) PURE; |
| }; |
| |
| #ifdef _INC_SHELLAPI |
| |
| #undef INTERFACE |
| #define INTERFACE IShellExecuteHookA |
| DECLARE_INTERFACE_(IShellExecuteHookA,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOA pei) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IShellExecuteHookW |
| DECLARE_INTERFACE_(IShellExecuteHookW,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOW pei) PURE; |
| }; |
| |
| #ifdef UNICODE |
| #define IShellExecuteHook IShellExecuteHookW |
| #define IShellExecuteHookVtbl IShellExecuteHookWVtbl |
| #else |
| #define IShellExecuteHook IShellExecuteHookA |
| #define IShellExecuteHookVtbl IShellExecuteHookAVtbl |
| #endif |
| #endif |
| |
| #undef INTERFACE |
| #define INTERFACE IURLSearchHook |
| DECLARE_INTERFACE_(IURLSearchHook,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(Translate)(THIS_ LPWSTR lpwszSearchURL,DWORD cchBufferSize) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE ISearchContext |
| DECLARE_INTERFACE_(ISearchContext,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetSearchUrl)(THIS_ BSTR *pbstrSearchUrl) PURE; |
| STDMETHOD(GetSearchText)(THIS_ BSTR *pbstrSearchText) PURE; |
| STDMETHOD(GetSearchStyle)(THIS_ DWORD *pdwSearchStyle) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IURLSearchHook2 |
| DECLARE_INTERFACE_(IURLSearchHook2,IURLSearchHook) { |
| STDMETHOD(TranslateWithSearchContext)(THIS_ LPWSTR lpwszSearchURL,DWORD cchBufferSize,ISearchContext *pSearchContext) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE INewShortcutHookA |
| |
| DECLARE_INTERFACE_(INewShortcutHookA,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(SetReferent)(THIS_ LPCSTR pcszReferent,HWND hwnd) PURE; |
| STDMETHOD(GetReferent)(THIS_ LPSTR pszReferent,int cchReferent) PURE; |
| STDMETHOD(SetFolder)(THIS_ LPCSTR pcszFolder) PURE; |
| STDMETHOD(GetFolder)(THIS_ LPSTR pszFolder,int cchFolder) PURE; |
| STDMETHOD(GetName)(THIS_ LPSTR pszName,int cchName) PURE; |
| STDMETHOD(GetExtension)(THIS_ LPSTR pszExtension,int cchExtension) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE INewShortcutHookW |
| DECLARE_INTERFACE_(INewShortcutHookW,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(SetReferent)(THIS_ LPCWSTR pcszReferent,HWND hwnd) PURE; |
| STDMETHOD(GetReferent)(THIS_ LPWSTR pszReferent,int cchReferent) PURE; |
| STDMETHOD(SetFolder)(THIS_ LPCWSTR pcszFolder) PURE; |
| STDMETHOD(GetFolder)(THIS_ LPWSTR pszFolder,int cchFolder) PURE; |
| STDMETHOD(GetName)(THIS_ LPWSTR pszName,int cchName) PURE; |
| STDMETHOD(GetExtension)(THIS_ LPWSTR pszExtension,int cchExtension) PURE; |
| }; |
| |
| #ifdef UNICODE |
| #define INewShortcutHook INewShortcutHookW |
| #define INewShortcutHookVtbl INewShortcutHookWVtbl |
| #else |
| #define INewShortcutHook INewShortcutHookA |
| #define INewShortcutHookVtbl INewShortcutHookAVtbl |
| #endif |
| |
| #ifndef FO_MOVE |
| |
| #define FO_MOVE 0x0001 |
| #define FO_COPY 0x0002 |
| #define FO_DELETE 0x0003 |
| #define FO_RENAME 0x0004 |
| |
| #define FOF_MULTIDESTFILES 0x0001 |
| #define FOF_CONFIRMMOUSE 0x0002 |
| #define FOF_SILENT 0x0004 |
| #define FOF_RENAMEONCOLLISION 0x0008 |
| #define FOF_NOCONFIRMATION 0x0010 |
| #define FOF_WANTMAPPINGHANDLE 0x0020 |
| |
| #define FOF_ALLOWUNDO 0x0040 |
| #define FOF_FILESONLY 0x0080 |
| #define FOF_SIMPLEPROGRESS 0x0100 |
| #define FOF_NOCONFIRMMKDIR 0x0200 |
| #define FOF_NOERRORUI 0x0400 |
| #define FOF_NOCOPYSECURITYATTRIBS 0x0800 |
| #define FOF_NORECURSION 0x1000 |
| #define FOF_NO_CONNECTED_ELEMENTS 0x2000 |
| #define FOF_WANTNUKEWARNING 0x4000 |
| #define FOF_NORECURSEREPARSE 0x8000 |
| |
| typedef WORD FILEOP_FLAGS; |
| |
| #define PO_DELETE 0x0013 |
| #define PO_RENAME 0x0014 |
| #define PO_PORTCHANGE 0x0020 |
| |
| #define PO_REN_PORT 0x0034 |
| |
| typedef UINT PRINTEROP_FLAGS; |
| #endif |
| |
| #undef INTERFACE |
| #define INTERFACE ICopyHookA |
| DECLARE_INTERFACE_(ICopyHookA,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD_(UINT,CopyCallback) (THIS_ HWND hwnd,UINT wFunc,UINT wFlags,LPCSTR pszSrcFile,DWORD dwSrcAttribs,LPCSTR pszDestFile,DWORD dwDestAttribs) PURE; |
| }; |
| |
| typedef ICopyHookA *LPCOPYHOOKA; |
| |
| #undef INTERFACE |
| #define INTERFACE ICopyHookW |
| DECLARE_INTERFACE_(ICopyHookW,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD_(UINT,CopyCallback) (THIS_ HWND hwnd,UINT wFunc,UINT wFlags,LPCWSTR pszSrcFile,DWORD dwSrcAttribs,LPCWSTR pszDestFile,DWORD dwDestAttribs) PURE; |
| }; |
| |
| typedef ICopyHookW *LPCOPYHOOKW; |
| |
| #ifdef UNICODE |
| #define ICopyHook ICopyHookW |
| #define ICopyHookVtbl ICopyHookWVtbl |
| #define LPCOPYHOOK LPCOPYHOOKW |
| #else |
| #define ICopyHook ICopyHookA |
| #define ICopyHookVtbl ICopyHookAVtbl |
| #define LPCOPYHOOK LPCOPYHOOKA |
| #endif |
| |
| #undef INTERFACE |
| #define INTERFACE IFileViewerSite |
| DECLARE_INTERFACE_(IFileViewerSite,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(SetPinnedWindow) (THIS_ HWND hwnd) PURE; |
| STDMETHOD(GetPinnedWindow) (THIS_ HWND *phwnd) PURE; |
| }; |
| |
| typedef IFileViewerSite *LPFILEVIEWERSITE; |
| |
| #include <pshpack8.h> |
| |
| typedef struct { |
| DWORD cbSize; |
| HWND hwndOwner; |
| int iShow; |
| DWORD dwFlags; |
| RECT rect; |
| IUnknown *punkRel; |
| OLECHAR strNewFile[MAX_PATH]; |
| } FVSHOWINFO,*LPFVSHOWINFO; |
| |
| #include <poppack.h> |
| |
| #define FVSIF_RECT 0x00000001 |
| #define FVSIF_PINNED 0x00000002 |
| |
| #define FVSIF_NEWFAILED 0x08000000 |
| |
| #define FVSIF_NEWFILE 0x80000000 |
| #define FVSIF_CANVIEWIT 0x40000000 |
| |
| #undef INTERFACE |
| #define INTERFACE IFileViewerA |
| DECLARE_INTERFACE(IFileViewerA) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(ShowInitialize) (THIS_ LPFILEVIEWERSITE lpfsi) PURE; |
| STDMETHOD(Show) (THIS_ LPFVSHOWINFO pvsi) PURE; |
| STDMETHOD(PrintTo) (THIS_ LPSTR pszDriver,WINBOOL fSuppressUI) PURE; |
| }; |
| |
| typedef IFileViewerA *LPFILEVIEWERA; |
| |
| #undef INTERFACE |
| #define INTERFACE IFileViewerW |
| DECLARE_INTERFACE(IFileViewerW) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(ShowInitialize) (THIS_ LPFILEVIEWERSITE lpfsi) PURE; |
| STDMETHOD(Show) (THIS_ LPFVSHOWINFO pvsi) PURE; |
| STDMETHOD(PrintTo) (THIS_ LPWSTR pszDriver,WINBOOL fSuppressUI) PURE; |
| }; |
| |
| typedef IFileViewerW *LPFILEVIEWERW; |
| |
| #ifdef UNICODE |
| #define IFileViewer IFileViewerW |
| #define LPFILEVIEWER LPFILEVIEWERW |
| #else |
| #define IFileViewer IFileViewerA |
| #define LPFILEVIEWER LPFILEVIEWERA |
| #endif |
| |
| #define FCIDM_SHVIEWFIRST 0x0000 |
| #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+0x0000) |
| #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 + 0) |
| #define FCIDM_STATUS (FCIDM_BROWSERFIRST + 1) |
| |
| #define IDC_OFFLINE_HAND 103 |
| |
| #define PANE_NONE -1 |
| #define PANE_ZONE 1 |
| #define PANE_OFFLINE 2 |
| #define PANE_PRINTER 3 |
| #define PANE_SSL 4 |
| #define PANE_NAVIGATION 5 |
| #define PANE_PROGRESS 6 |
| #define PANE_PRIVACY 7 |
| |
| #define CDBOSC_SETFOCUS 0x00000000 |
| #define CDBOSC_KILLFOCUS 0x00000001 |
| #define CDBOSC_SELCHANGE 0x00000002 |
| #define CDBOSC_RENAME 0x00000003 |
| #define CDBOSC_STATECHANGE 0x00000004 |
| |
| #undef INTERFACE |
| #define INTERFACE ICommDlgBrowser |
| DECLARE_INTERFACE_(ICommDlgBrowser,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(OnDefaultCommand) (THIS_ struct IShellView *ppshv) PURE; |
| STDMETHOD(OnStateChange) (THIS_ struct IShellView *ppshv,ULONG uChange) PURE; |
| STDMETHOD(IncludeObject) (THIS_ struct IShellView *ppshv,LPCITEMIDLIST pidl) PURE; |
| }; |
| |
| typedef ICommDlgBrowser *LPCOMMDLGBROWSER; |
| |
| #define CDB2N_CONTEXTMENU_DONE 0x00000001 |
| #define CDB2N_CONTEXTMENU_START 0x00000002 |
| |
| #define CDB2GVF_SHOWALLFILES 0x00000001 |
| |
| #undef INTERFACE |
| #define INTERFACE ICommDlgBrowser2 |
| DECLARE_INTERFACE_(ICommDlgBrowser2,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(OnDefaultCommand) (THIS_ struct IShellView *ppshv) PURE; |
| STDMETHOD(OnStateChange) (THIS_ struct IShellView *ppshv,ULONG uChange) PURE; |
| STDMETHOD(IncludeObject) (THIS_ struct IShellView *ppshv,LPCITEMIDLIST pidl) PURE; |
| STDMETHOD(Notify) (THIS_ struct IShellView *ppshv,DWORD dwNotifyType) PURE; |
| STDMETHOD(GetDefaultMenuText) (THIS_ struct IShellView *ppshv,WCHAR *pszText,INT cchMax) PURE; |
| STDMETHOD(GetViewFlags)(THIS_ DWORD *pdwFlags) PURE; |
| }; |
| |
| typedef ICommDlgBrowser2 *LPCOMMDLGBROWSER2; |
| |
| #ifdef UNICODE |
| #define SHGetPathFromIDList SHGetPathFromIDListW |
| #define SHCreateDirectoryEx SHCreateDirectoryExW |
| #else |
| #define SHGetPathFromIDList SHGetPathFromIDListA |
| #define SHCreateDirectoryEx SHCreateDirectoryExA |
| #endif |
| |
| SHSTDAPI_(WINBOOL) SHGetPathFromIDListA(LPCITEMIDLIST pidl,LPSTR pszPath); |
| SHSTDAPI_(WINBOOL) SHGetPathFromIDListW(LPCITEMIDLIST pidl,LPWSTR pszPath); |
| SHSTDAPI_(int) SHCreateDirectory(HWND hwnd,LPCWSTR pszPath); |
| SHSTDAPI_(int) SHCreateDirectoryExA(HWND hwnd,LPCSTR pszPath,SECURITY_ATTRIBUTES *psa); |
| SHSTDAPI_(int) SHCreateDirectoryExW(HWND hwnd,LPCWSTR pszPath,SECURITY_ATTRIBUTES *psa); |
| SHSTDAPI SHOpenFolderAndSelectItems(LPCITEMIDLIST pidlFolder,UINT cidl,LPCITEMIDLIST *apidl,DWORD dwFlags); |
| SHSTDAPI SHCreateShellItem(LPCITEMIDLIST pidlParent,IShellFolder *psfParent,LPCITEMIDLIST pidl,IShellItem **ppsi); |
| |
| #define REGSTR_PATH_SPECIAL_FOLDERS REGSTR_PATH_EXPLORER TEXT("\\Shell Folders") |
| |
| #define CSIDL_DESKTOP 0x0000 |
| #define CSIDL_INTERNET 0x0001 |
| #define CSIDL_PROGRAMS 0x0002 |
| #define CSIDL_CONTROLS 0x0003 |
| #define CSIDL_PRINTERS 0x0004 |
| #define CSIDL_PERSONAL 0x0005 |
| #define CSIDL_FAVORITES 0x0006 |
| #define CSIDL_STARTUP 0x0007 |
| #define CSIDL_RECENT 0x0008 |
| #define CSIDL_SENDTO 0x0009 |
| #define CSIDL_BITBUCKET 0x000a |
| #define CSIDL_STARTMENU 0x000b |
| #define CSIDL_MYDOCUMENTS 0x000c |
| #define CSIDL_MYMUSIC 0x000d |
| #define CSIDL_MYVIDEO 0x000e |
| #define CSIDL_DESKTOPDIRECTORY 0x0010 |
| #define CSIDL_DRIVES 0x0011 |
| #define CSIDL_NETWORK 0x0012 |
| #define CSIDL_NETHOOD 0x0013 |
| #define CSIDL_FONTS 0x0014 |
| #define CSIDL_TEMPLATES 0x0015 |
| #define CSIDL_COMMON_STARTMENU 0x0016 |
| #define CSIDL_COMMON_PROGRAMS 0X0017 |
| #define CSIDL_COMMON_STARTUP 0x0018 |
| #define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019 |
| #define CSIDL_APPDATA 0x001a |
| #define CSIDL_PRINTHOOD 0x001b |
| |
| #ifndef CSIDL_LOCAL_APPDATA |
| #define CSIDL_LOCAL_APPDATA 0x001c |
| #endif |
| |
| #define CSIDL_ALTSTARTUP 0x001d |
| #define CSIDL_COMMON_ALTSTARTUP 0x001e |
| #define CSIDL_COMMON_FAVORITES 0x001f |
| |
| #ifndef _SHFOLDER_H_ |
| #define CSIDL_INTERNET_CACHE 0x0020 |
| #define CSIDL_COOKIES 0x0021 |
| #define CSIDL_HISTORY 0x0022 |
| #define CSIDL_COMMON_APPDATA 0x0023 |
| #define CSIDL_WINDOWS 0x0024 |
| #define CSIDL_SYSTEM 0x0025 |
| #define CSIDL_PROGRAM_FILES 0x0026 |
| #define CSIDL_MYPICTURES 0x0027 |
| #endif |
| |
| #define CSIDL_PROFILE 0x0028 |
| #define CSIDL_SYSTEMX86 0x0029 |
| #define CSIDL_PROGRAM_FILESX86 0x002a |
| |
| #ifndef _SHFOLDER_H_ |
| #define CSIDL_PROGRAM_FILES_COMMON 0x002b |
| #endif |
| |
| #define CSIDL_PROGRAM_FILES_COMMONX86 0x002c |
| #define CSIDL_COMMON_TEMPLATES 0x002d |
| |
| #ifndef _SHFOLDER_H_ |
| #define CSIDL_COMMON_DOCUMENTS 0x002e |
| #define CSIDL_COMMON_ADMINTOOLS 0x002f |
| #define CSIDL_ADMINTOOLS 0x0030 |
| #endif |
| |
| #define CSIDL_CONNECTIONS 0x0031 |
| #define CSIDL_COMMON_MUSIC 0x0035 |
| #define CSIDL_COMMON_PICTURES 0x0036 |
| #define CSIDL_COMMON_VIDEO 0x0037 |
| #define CSIDL_RESOURCES 0x0038 |
| |
| #ifndef _SHFOLDER_H_ |
| #define CSIDL_RESOURCES_LOCALIZED 0x0039 |
| #endif |
| |
| #define CSIDL_COMMON_OEM_LINKS 0x003a |
| #define CSIDL_CDBURN_AREA 0x003b |
| |
| #define CSIDL_COMPUTERSNEARME 0x003d |
| |
| #ifndef _SHFOLDER_H_ |
| #define CSIDL_FLAG_CREATE 0x8000 |
| #endif |
| |
| #define CSIDL_FLAG_DONT_VERIFY 0x4000 |
| #define CSIDL_FLAG_NO_ALIAS 0x1000 |
| #define CSIDL_FLAG_PER_USER_INIT 0x0800 |
| #define CSIDL_FLAG_MASK 0xFF00 |
| |
| #ifdef UNICODE |
| #define SHGetSpecialFolderPath SHGetSpecialFolderPathW |
| #define SHGetFolderPath SHGetFolderPathW |
| #define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirW |
| #else |
| #define SHGetSpecialFolderPath SHGetSpecialFolderPathA |
| #define SHGetFolderPath SHGetFolderPathA |
| #define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirA |
| #endif |
| |
| SHSTDAPI SHGetSpecialFolderLocation(HWND hwnd,int csidl,LPITEMIDLIST *ppidl); |
| SHSTDAPI_(void) SHFlushSFCache(void); |
| SHSTDAPI_(LPITEMIDLIST) SHCloneSpecialIDList(HWND hwnd,int csidl,WINBOOL fCreate); |
| SHSTDAPI_(WINBOOL) SHGetSpecialFolderPathA(HWND hwnd,LPSTR pszPath,int csidl,WINBOOL fCreate); |
| SHSTDAPI_(WINBOOL) SHGetSpecialFolderPathW(HWND hwnd,LPWSTR pszPath,int csidl,WINBOOL fCreate); |
| |
| typedef enum { |
| SHGFP_TYPE_CURRENT = 0,SHGFP_TYPE_DEFAULT = 1 |
| } SHGFP_TYPE; |
| |
| SHFOLDERAPI SHGetFolderPathA(HWND hwnd,int csidl,HANDLE hToken,DWORD dwFlags,LPSTR pszPath); |
| SHFOLDERAPI SHGetFolderPathW(HWND hwnd,int csidl,HANDLE hToken,DWORD dwFlags,LPWSTR pszPath); |
| SHSTDAPI SHGetFolderLocation(HWND hwnd,int csidl,HANDLE hToken,DWORD dwFlags,LPITEMIDLIST *ppidl); |
| SHFOLDERAPI SHGetFolderPathAndSubDirA(HWND hwnd,int csidl,HANDLE hToken,DWORD dwFlags,LPCSTR pszSubDir,LPSTR pszPath); |
| SHFOLDERAPI SHGetFolderPathAndSubDirW(HWND hwnd,int csidl,HANDLE hToken,DWORD dwFlags,LPCWSTR pszSubDir,LPWSTR pszPath); |
| |
| #define FCS_READ 0x00000001 |
| #define FCS_FORCEWRITE 0x00000002 |
| #define FCS_WRITE (FCS_READ | FCS_FORCEWRITE) |
| #define FCS_FLAG_DRAGDROP 2 |
| |
| #define FCSM_VIEWID 0x00000001 |
| #define FCSM_WEBVIEWTEMPLATE 0x00000002 |
| #define FCSM_INFOTIP 0x00000004 |
| #define FCSM_CLSID 0x00000008 |
| #define FCSM_ICONFILE 0x00000010 |
| #define FCSM_LOGO 0x00000020 |
| #define FCSM_FLAGS 0x00000040 |
| |
| #include <pshpack8.h> |
| |
| typedef struct { |
| DWORD dwSize; |
| DWORD dwMask; |
| SHELLVIEWID *pvid; |
| LPSTR pszWebViewTemplate; |
| DWORD cchWebViewTemplate; |
| LPSTR pszWebViewTemplateVersion; |
| LPSTR pszInfoTip; |
| DWORD cchInfoTip; |
| CLSID *pclsid; |
| DWORD dwFlags; |
| LPSTR pszIconFile; |
| DWORD cchIconFile; |
| int iIconIndex; |
| LPSTR pszLogo; |
| DWORD cchLogo; |
| } SHFOLDERCUSTOMSETTINGSA,*LPSHFOLDERCUSTOMSETTINGSA; |
| |
| typedef struct { |
| DWORD dwSize; |
| DWORD dwMask; |
| SHELLVIEWID *pvid; |
| LPWSTR pszWebViewTemplate; |
| DWORD cchWebViewTemplate; |
| LPWSTR pszWebViewTemplateVersion; |
| LPWSTR pszInfoTip; |
| DWORD cchInfoTip; |
| CLSID *pclsid; |
| DWORD dwFlags; |
| LPWSTR pszIconFile; |
| DWORD cchIconFile; |
| int iIconIndex; |
| LPWSTR pszLogo; |
| DWORD cchLogo; |
| } SHFOLDERCUSTOMSETTINGSW,*LPSHFOLDERCUSTOMSETTINGSW; |
| |
| #include <poppack.h> |
| |
| #ifdef UNICODE |
| #define SHFOLDERCUSTOMSETTINGS SHFOLDERCUSTOMSETTINGSW |
| #define SHGetSetFolderCustomSettings SHGetSetFolderCustomSettingsW |
| #define LPSHFOLDERCUSTOMSETTINGS LPSHFOLDERCUSTOMSETTINGSW |
| #else |
| #define SHFOLDERCUSTOMSETTINGS SHFOLDERCUSTOMSETTINGSA |
| #define SHGetSetFolderCustomSettings SHGetSetFolderCustomSettingsA |
| #define LPSHFOLDERCUSTOMSETTINGS LPSHFOLDERCUSTOMSETTINGSA |
| #endif |
| |
| SHSTDAPI SHGetSetFolderCustomSettingsA(LPSHFOLDERCUSTOMSETTINGSA pfcs,LPCSTR pszPath,DWORD dwReadWrite); |
| SHSTDAPI SHGetSetFolderCustomSettingsW(LPSHFOLDERCUSTOMSETTINGSW pfcs,LPCWSTR pszPath,DWORD dwReadWrite); |
| |
| typedef int (CALLBACK *BFFCALLBACK)(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData); |
| |
| #include <pshpack8.h> |
| |
| 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; |
| |
| #include <poppack.h> |
| |
| #ifdef UNICODE |
| #define BROWSEINFO BROWSEINFOW |
| #define PBROWSEINFO PBROWSEINFOW |
| #define LPBROWSEINFO LPBROWSEINFOW |
| #else |
| #define BROWSEINFO BROWSEINFOA |
| #define PBROWSEINFO PBROWSEINFOA |
| #define LPBROWSEINFO LPBROWSEINFOA |
| #endif |
| |
| #define BIF_RETURNONLYFSDIRS 0x0001 |
| #define BIF_DONTGOBELOWDOMAIN 0x0002 |
| #define BIF_STATUSTEXT 0x0004 |
| |
| #define BIF_RETURNFSANCESTORS 0x0008 |
| #define BIF_EDITBOX 0x0010 |
| #define BIF_VALIDATE 0x0020 |
| |
| #define BIF_NEWDIALOGSTYLE 0x0040 |
| |
| #define BIF_USENEWUI (BIF_NEWDIALOGSTYLE | BIF_EDITBOX) |
| |
| #define BIF_BROWSEINCLUDEURLS 0x0080 |
| #define BIF_UAHINT 0x0100 |
| #define BIF_NONEWFOLDERBUTTON 0x0200 |
| #define BIF_NOTRANSLATETARGETS 0x0400 |
| |
| #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_IUNKNOWN 5 |
| |
| #define BFFM_SETSTATUSTEXTA (WM_USER + 100) |
| #define BFFM_ENABLEOK (WM_USER + 101) |
| #define BFFM_SETSELECTIONA (WM_USER + 102) |
| #define BFFM_SETSELECTIONW (WM_USER + 103) |
| #define BFFM_SETSTATUSTEXTW (WM_USER + 104) |
| #define BFFM_SETOKTEXT (WM_USER + 105) |
| #define BFFM_SETEXPANDED (WM_USER + 106) |
| |
| SHSTDAPI_(LPITEMIDLIST) SHBrowseForFolderA(LPBROWSEINFOA lpbi); |
| SHSTDAPI_(LPITEMIDLIST) SHBrowseForFolderW(LPBROWSEINFOW lpbi); |
| |
| #ifdef UNICODE |
| #define SHBrowseForFolder SHBrowseForFolderW |
| #define BFFM_SETSTATUSTEXT BFFM_SETSTATUSTEXTW |
| #define BFFM_SETSELECTION BFFM_SETSELECTIONW |
| |
| #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDW |
| #else |
| #define SHBrowseForFolder SHBrowseForFolderA |
| #define BFFM_SETSTATUSTEXT BFFM_SETSTATUSTEXTA |
| #define BFFM_SETSELECTION BFFM_SETSELECTIONA |
| |
| #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDA |
| #endif |
| |
| SHSTDAPI SHLoadInProc(REFCLSID rclsid); |
| |
| SHSTDAPI SHEnableServiceObject(REFCLSID rclsid,WINBOOL fEnable); |
| |
| enum { |
| ISHCUTCMDID_DOWNLOADICON = 0,ISHCUTCMDID_INTSHORTCUTCREATE = 1 |
| }; |
| #define CMDID_INTSHORTCUTCREATE ISHCUTCMDID_INTSHORTCUTCREATE |
| |
| SHSTDAPI SHGetDesktopFolder(IShellFolder **ppshf); |
| |
| #define STR_FILE_SYS_BIND_DATA L"File System Bind Data" |
| |
| #undef INTERFACE |
| #define INTERFACE IFileSystemBindData |
| DECLARE_INTERFACE_(IFileSystemBindData,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(SetFindData)(THIS_ const WIN32_FIND_DATAW *pfd) PURE; |
| STDMETHOD(GetFindData)(THIS_ WIN32_FIND_DATAW *pfd) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IShellDetails |
| DECLARE_INTERFACE_(IShellDetails,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetDetailsOf)(THIS_ LPCITEMIDLIST pidl,UINT iColumn,SHELLDETAILS *pDetails) PURE; |
| STDMETHOD(ColumnClick)(THIS_ UINT iColumn) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IObjMgr |
| |
| DECLARE_INTERFACE_(IObjMgr,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(Append) (THIS_ IUnknown *punk) PURE; |
| STDMETHOD(Remove) (THIS_ IUnknown *punk) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE ICurrentWorkingDirectory |
| DECLARE_INTERFACE_(ICurrentWorkingDirectory,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetDirectory) (THIS_ LPWSTR pwzPath,DWORD cchSize) PURE; |
| STDMETHOD(SetDirectory) (THIS_ LPCWSTR pwzPath) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IACList |
| DECLARE_INTERFACE_(IACList,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(Expand) (THIS_ LPCOLESTR pszExpand) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IACList2 |
| typedef enum _tagAUTOCOMPLETELISTOPTIONS { |
| ACLO_NONE = 0,ACLO_CURRENTDIR = 1,ACLO_MYCOMPUTER = 2,ACLO_DESKTOP = 4,ACLO_FAVORITES = 8,ACLO_FILESYSONLY = 16,ACLO_FILESYSDIRS = 32 |
| } AUTOCOMPLETELISTOPTIONS; |
| |
| DECLARE_INTERFACE_(IACList2,IACList) { |
| STDMETHOD(SetOptions)(THIS_ DWORD dwFlag) PURE; |
| STDMETHOD(GetOptions)(THIS_ DWORD *pdwFlag) PURE; |
| }; |
| |
| #define PROGDLG_NORMAL 0x00000000 |
| #define PROGDLG_MODAL 0x00000001 |
| #define PROGDLG_AUTOTIME 0x00000002 |
| #define PROGDLG_NOTIME 0x00000004 |
| #define PROGDLG_NOMINIMIZE 0x00000008 |
| #define PROGDLG_NOPROGRESSBAR 0x00000010 |
| |
| #define PDTIMER_RESET 0x00000001 |
| |
| #undef INTERFACE |
| #define INTERFACE IProgressDialog |
| DECLARE_INTERFACE_(IProgressDialog,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(StartProgressDialog)(THIS_ HWND hwndParent,IUnknown *punkEnableModless,DWORD dwFlags,LPCVOID pvResevered) PURE; |
| STDMETHOD(StopProgressDialog)(THIS) PURE; |
| STDMETHOD(SetTitle)(THIS_ LPCWSTR pwzTitle) PURE; |
| STDMETHOD(SetAnimation)(THIS_ HINSTANCE hInstAnimation,UINT idAnimation) PURE; |
| STDMETHOD_(WINBOOL,HasUserCancelled) (THIS) PURE; |
| STDMETHOD(SetProgress)(THIS_ DWORD dwCompleted,DWORD dwTotal) PURE; |
| STDMETHOD(SetProgress64)(THIS_ ULONGLONG ullCompleted,ULONGLONG ullTotal) PURE; |
| STDMETHOD(SetLine)(THIS_ DWORD dwLineNum,LPCWSTR pwzString,WINBOOL fCompactPath,LPCVOID pvResevered) PURE; |
| STDMETHOD(SetCancelMsg)(THIS_ LPCWSTR pwzCancelMsg,LPCVOID pvResevered) PURE; |
| STDMETHOD(Timer)(THIS_ DWORD dwTimerAction,LPCVOID pvResevered) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IInputObjectSite |
| DECLARE_INTERFACE_(IInputObjectSite,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(OnFocusChangeIS)(THIS_ IUnknown *punkObj,WINBOOL fSetFocus) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IInputObject |
| DECLARE_INTERFACE_(IInputObject,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(UIActivateIO)(THIS_ WINBOOL fActivate,LPMSG lpMsg) PURE; |
| STDMETHOD(HasFocusIO)(THIS) PURE; |
| STDMETHOD(TranslateAcceleratorIO)(THIS_ LPMSG lpMsg) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IDockingWindowSite |
| DECLARE_INTERFACE_(IDockingWindowSite,IOleWindow) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetWindow) (THIS_ HWND *lphwnd) PURE; |
| STDMETHOD(ContextSensitiveHelp) (THIS_ WINBOOL fEnterMode) PURE; |
| STDMETHOD(GetBorderDW) (THIS_ IUnknown *punkObj,LPRECT prcBorder) PURE; |
| STDMETHOD(RequestBorderSpaceDW) (THIS_ IUnknown *punkObj,LPCBORDERWIDTHS pbw) PURE; |
| STDMETHOD(SetBorderSpaceDW) (THIS_ IUnknown *punkObj,LPCBORDERWIDTHS pbw) PURE; |
| }; |
| |
| #define DWFRF_NORMAL 0x0000 |
| #define DWFRF_DELETECONFIGDATA 0x0001 |
| |
| #define DWFAF_HIDDEN 0x0001 |
| |
| #undef INTERFACE |
| #define INTERFACE IDockingWindowFrame |
| DECLARE_INTERFACE_(IDockingWindowFrame,IOleWindow) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetWindow) (THIS_ HWND *lphwnd) PURE; |
| STDMETHOD(ContextSensitiveHelp) (THIS_ WINBOOL fEnterMode) PURE; |
| STDMETHOD(AddToolbar) (THIS_ IUnknown *punkSrc,LPCWSTR pwszItem,DWORD dwAddFlags) PURE; |
| STDMETHOD(RemoveToolbar) (THIS_ IUnknown *punkSrc,DWORD dwRemoveFlags) PURE; |
| STDMETHOD(FindToolbar) (THIS_ LPCWSTR pwszItem,REFIID riid,void **ppv) PURE; |
| }; |
| |
| #define IRTIR_TASK_NOT_RUNNING 0 |
| #define IRTIR_TASK_RUNNING 1 |
| #define IRTIR_TASK_SUSPENDED 2 |
| #define IRTIR_TASK_PENDING 3 |
| #define IRTIR_TASK_FINISHED 4 |
| |
| #undef INTERFACE |
| #define INTERFACE IRunnableTask |
| |
| DECLARE_INTERFACE_(IRunnableTask,IUnknown) { |
| STDMETHOD (QueryInterface)(THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| STDMETHOD_(ULONG,Release)(THIS) PURE; |
| STDMETHOD (Run)(THIS) PURE; |
| STDMETHOD (Kill)(THIS_ WINBOOL fWait) PURE; |
| STDMETHOD (Suspend)(THIS) PURE; |
| STDMETHOD (Resume)(THIS) PURE; |
| STDMETHOD_(ULONG,IsRunning)(THIS) PURE; |
| }; |
| |
| typedef IRunnableTask *LPRUNNABLETASK; |
| |
| #define TASKOWNERID GUID |
| #define REFTASKOWNERID REFGUID |
| |
| #define ITSSFLAG_COMPLETE_ON_DESTROY 0x0000 |
| #define ITSSFLAG_KILL_ON_DESTROY 0x0001 |
| #define ITSSFLAG_SUPPORTS_TERMINATE 0x0002 |
| #define ITSSFLAG_FLAGS_MASK 0x0003 |
| #define ITSSFLAG_THREAD_TERMINATE_TIMEOUT 0x0010 |
| #define ITSSFLAG_THREAD_POOL_TIMEOUT 0x0020 |
| #define ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT (60*1000) |
| #define ITSS_THREAD_TERMINATE_TIMEOUT (INFINITE) |
| #define ITSS_THREAD_TIMEOUT_NO_CHANGE (INFINITE - 1) |
| |
| #define ITSAT_DEFAULT_LPARAM 0xffffffff |
| #define ITSAT_DEFAULT_PRIORITY 0x10000000 |
| #define ITSAT_MAX_PRIORITY 0x7fffffff |
| #define ITSAT_MIN_PRIORITY 0x00000000 |
| |
| #define TOID_NULL CLSID_NULL |
| |
| #undef INTERFACE |
| #define INTERFACE IShellTaskScheduler |
| DECLARE_INTERFACE_(IShellTaskScheduler,IUnknown) { |
| STDMETHOD (QueryInterface)(THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| STDMETHOD_(ULONG,Release)(THIS) PURE; |
| STDMETHOD (AddTask)(THIS_ IRunnableTask *pTask,REFTASKOWNERID rtoid,DWORD_PTR lParam,DWORD dwPriority) PURE; |
| STDMETHOD (RemoveTasks)(THIS_ REFTASKOWNERID rtoid,DWORD_PTR lParam,WINBOOL fWaitIfRunning) PURE; |
| STDMETHOD_(UINT,CountTasks)(THIS_ REFTASKOWNERID rtoid) PURE; |
| STDMETHOD (Status)(THIS_ DWORD dwReleaseStatus,DWORD dwThreadTimeout) PURE; |
| }; |
| |
| typedef IShellTaskScheduler *LPSHELLTASKSCHEDULER; |
| |
| #define ITSSFLAG_TASK_PLACEINFRONT 0x00000001 |
| #define ITSSFLAG_TASK_PLACEINBACK 0x00000002 |
| |
| #undef INTERFACE |
| #define INTERFACE IShellTaskScheduler2 |
| DECLARE_INTERFACE_(IShellTaskScheduler2,IShellTaskScheduler) { |
| STDMETHOD (QueryInterface)(THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| STDMETHOD_(ULONG,Release)(THIS) PURE; |
| STDMETHOD (AddTask)(THIS_ IRunnableTask *pTask,REFTASKOWNERID rtoid,DWORD_PTR lParam,DWORD dwPriority) PURE; |
| STDMETHOD (RemoveTasks)(THIS_ REFTASKOWNERID rtoid,DWORD_PTR lParam,WINBOOL fWaitIfRunning) PURE; |
| STDMETHOD_(UINT,CountTasks)(THIS_ REFTASKOWNERID rtoid) PURE; |
| STDMETHOD (Status)(THIS_ DWORD dwReleaseStatus,DWORD dwThreadTimeout) PURE; |
| STDMETHOD (AddTask2)(THIS_ IRunnableTask *pTask,REFTASKOWNERID rtoid,DWORD_PTR lParam,DWORD dwPriority,DWORD grfFlags) PURE; |
| STDMETHOD (MoveTask)(THIS_ REFTASKOWNERID rtoid,DWORD_PTR lParam,DWORD dwPriority,DWORD grfFlags) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IThumbnailCapture |
| DECLARE_INTERFACE_ (IThumbnailCapture,IUnknown) { |
| STDMETHOD (CaptureThumbnail) (THIS_ const SIZE *pMaxSize,IUnknown *pHTMLDoc2,HBITMAP *phbmThumbnail) PURE; |
| }; |
| typedef IThumbnailCapture *LPTHUMBNAILCAPTURE; |
| |
| #include <pshpack8.h> |
| typedef struct _EnumImageStoreDATAtag { |
| WCHAR szPath[MAX_PATH]; |
| FILETIME ftTimeStamp; |
| } ENUMSHELLIMAGESTOREDATA,*PENUMSHELLIMAGESTOREDATA; |
| |
| #include <poppack.h> |
| |
| #undef INTERFACE |
| #define INTERFACE IEnumShellImageStore |
| DECLARE_INTERFACE_(IEnumShellImageStore,IUnknown) { |
| STDMETHOD (QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD (Reset) (THIS) PURE; |
| STDMETHOD (Next) (THIS_ ULONG celt,PENUMSHELLIMAGESTOREDATA *prgElt,ULONG *pceltFetched) PURE; |
| STDMETHOD (Skip) (THIS_ ULONG celt) PURE; |
| STDMETHOD (Clone) (THIS_ IEnumShellImageStore **ppEnum) PURE; |
| }; |
| |
| typedef IEnumShellImageStore *LPENUMSHELLIMAGESTORE; |
| |
| #define SHIMSTCAPFLAG_LOCKABLE 0x0001 |
| #define SHIMSTCAPFLAG_PURGEABLE 0x0002 |
| |
| #undef INTERFACE |
| #define INTERFACE IShellImageStore |
| DECLARE_INTERFACE_(IShellImageStore,IUnknown) { |
| STDMETHOD (QueryInterface)(THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD (Open) (THIS_ DWORD dwMode,DWORD *pdwLock) PURE; |
| STDMETHOD (Create) (THIS_ DWORD dwMode,DWORD *pdwLock) PURE; |
| STDMETHOD (ReleaseLock) (THIS_ DWORD const *pdwLock) PURE; |
| STDMETHOD (Close) (THIS_ DWORD const *pdwLock) PURE; |
| STDMETHOD (Commit) (THIS_ DWORD const *pdwLock) PURE; |
| STDMETHOD (IsLocked) (THIS) PURE; |
| STDMETHOD (GetMode) (THIS_ DWORD *pdwMode) PURE; |
| STDMETHOD (GetCapabilities) (THIS_ DWORD *pdwCapMask) PURE; |
| STDMETHOD (AddEntry) (THIS_ LPCWSTR pszName,const FILETIME *pftTimeStamp,DWORD dwMode,HBITMAP hImage) PURE; |
| STDMETHOD (GetEntry) (THIS_ LPCWSTR pszName,DWORD dwMode,HBITMAP *phImage) PURE; |
| STDMETHOD (DeleteEntry) (THIS_ LPCWSTR pszName) PURE; |
| STDMETHOD (IsEntryInStore) (THIS_ LPCWSTR pszName,FILETIME *pftTimeStamp) PURE; |
| STDMETHOD (Enum) (THIS_ LPENUMSHELLIMAGESTORE *ppEnum) PURE; |
| }; |
| |
| typedef IShellImageStore *LPSHELLIMAGESTORE; |
| |
| #define ISFB_MASK_STATE 0x00000001 |
| #define ISFB_MASK_BKCOLOR 0x00000002 |
| #define ISFB_MASK_VIEWMODE 0x00000004 |
| #define ISFB_MASK_SHELLFOLDER 0x00000008 |
| #define ISFB_MASK_IDLIST 0x00000010 |
| #define ISFB_MASK_COLORS 0x00000020 |
| |
| #define ISFB_STATE_DEFAULT 0x00000000 |
| #define ISFB_STATE_DEBOSSED 0x00000001 |
| #define ISFB_STATE_ALLOWRENAME 0x00000002 |
| #define ISFB_STATE_NOSHOWTEXT 0x00000004 |
| #define ISFB_STATE_CHANNELBAR 0x00000010 |
| #define ISFB_STATE_QLINKSMODE 0x00000020 |
| #define ISFB_STATE_FULLOPEN 0x00000040 |
| #define ISFB_STATE_NONAMESORT 0x00000080 |
| #define ISFB_STATE_BTNMINSIZE 0x00000100 |
| |
| #define ISFBVIEWMODE_SMALLICONS 0x0001 |
| #define ISFBVIEWMODE_LARGEICONS 0x0002 |
| #define ISFBVIEWMODE_LOGOS 0x0003 |
| |
| #include <pshpack8.h> |
| |
| typedef struct { |
| DWORD dwMask; |
| DWORD dwStateMask; |
| DWORD dwState; |
| COLORREF crBkgnd; |
| COLORREF crBtnLt; |
| COLORREF crBtnDk; |
| WORD wViewMode; |
| WORD wAlign; |
| IShellFolder *psf; |
| LPITEMIDLIST pidl; |
| } BANDINFOSFB,*PBANDINFOSFB; |
| |
| #include <poppack.h> |
| |
| #undef INTERFACE |
| #define INTERFACE IShellFolderBand |
| DECLARE_INTERFACE_(IShellFolderBand,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(InitializeSFB)(THIS_ IShellFolder *psf,LPCITEMIDLIST pidl) PURE; |
| STDMETHOD(SetBandInfoSFB)(THIS_ PBANDINFOSFB pbi) PURE; |
| STDMETHOD(GetBandInfoSFB)(THIS_ PBANDINFOSFB pbi) PURE; |
| }; |
| |
| enum { |
| SFBID_PIDLCHANGED, |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IDeskBarClient |
| DECLARE_INTERFACE_(IDeskBarClient,IOleWindow) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetWindow) (THIS_ HWND *lphwnd) PURE; |
| STDMETHOD(ContextSensitiveHelp) (THIS_ WINBOOL fEnterMode) PURE; |
| STDMETHOD(SetDeskBarSite) (THIS_ IUnknown *punkSite) PURE; |
| STDMETHOD(SetModeDBC) (THIS_ DWORD dwMode) PURE; |
| STDMETHOD(UIActivateDBC) (THIS_ DWORD dwState) PURE; |
| STDMETHOD(GetSize) (THIS_ DWORD dwWhich,LPRECT prc) PURE; |
| }; |
| |
| #define DBC_GS_IDEAL 0 |
| #define DBC_GS_SIZEDOWN 1 |
| |
| #define DBC_HIDE 0 |
| #define DBC_SHOW 1 |
| #define DBC_SHOWOBSCURE 2 |
| |
| enum { |
| DBCID_EMPTY = 0,DBCID_ONDRAG = 1,DBCID_CLSIDOFBAR = 2,DBCID_RESIZE = 3,DBCID_GETBAR = 4 |
| }; |
| |
| #ifdef _WININET_ |
| typedef struct _tagWALLPAPEROPT { |
| DWORD dwSize; |
| DWORD dwStyle; |
| } WALLPAPEROPT; |
| |
| typedef WALLPAPEROPT *LPWALLPAPEROPT; |
| typedef const WALLPAPEROPT *LPCWALLPAPEROPT; |
| |
| typedef struct _tagCOMPONENTSOPT { |
| DWORD dwSize; |
| WINBOOL fEnableComponents; |
| WINBOOL fActiveDesktop; |
| } COMPONENTSOPT; |
| |
| typedef COMPONENTSOPT *LPCOMPONENTSOPT; |
| typedef const COMPONENTSOPT *LPCCOMPONENTSOPT; |
| |
| typedef struct _tagCOMPPOS { |
| DWORD dwSize; |
| int iLeft; |
| int iTop; |
| DWORD dwWidth; |
| DWORD dwHeight; |
| int izIndex; |
| WINBOOL fCanResize; |
| WINBOOL fCanResizeX; |
| WINBOOL fCanResizeY; |
| int iPreferredLeftPercent; |
| int iPreferredTopPercent; |
| } COMPPOS; |
| |
| typedef COMPPOS *LPCOMPPOS; |
| typedef const COMPPOS *LPCCOMPPOS; |
| |
| typedef struct _tagCOMPSTATEINFO { |
| DWORD dwSize; |
| int iLeft; |
| int iTop; |
| DWORD dwWidth; |
| DWORD dwHeight; |
| DWORD dwItemState; |
| } COMPSTATEINFO; |
| |
| typedef COMPSTATEINFO *LPCOMPSTATEINFO; |
| typedef const COMPSTATEINFO *LPCCOMPSTATEINFO; |
| |
| #define COMPONENT_TOP (0x3fffffff) |
| |
| #define COMP_TYPE_HTMLDOC 0 |
| #define COMP_TYPE_PICTURE 1 |
| #define COMP_TYPE_WEBSITE 2 |
| #define COMP_TYPE_CONTROL 3 |
| #define COMP_TYPE_CFHTML 4 |
| #define COMP_TYPE_MAX 4 |
| |
| typedef struct _tagIE4COMPONENT { |
| DWORD dwSize; |
| DWORD dwID; |
| int iComponentType; |
| WINBOOL fChecked; |
| WINBOOL fDirty; |
| WINBOOL fNoScroll; |
| COMPPOS cpPos; |
| WCHAR wszFriendlyName[MAX_PATH]; |
| WCHAR wszSource[INTERNET_MAX_URL_LENGTH]; |
| WCHAR wszSubscribedURL[INTERNET_MAX_URL_LENGTH]; |
| } IE4COMPONENT; |
| |
| typedef IE4COMPONENT *LPIE4COMPONENT; |
| typedef const IE4COMPONENT *LPCIE4COMPONENT; |
| |
| typedef struct _tagCOMPONENT { |
| DWORD dwSize; |
| DWORD dwID; |
| int iComponentType; |
| WINBOOL fChecked; |
| WINBOOL fDirty; |
| WINBOOL fNoScroll; |
| COMPPOS cpPos; |
| WCHAR wszFriendlyName[MAX_PATH]; |
| WCHAR wszSource[INTERNET_MAX_URL_LENGTH]; |
| WCHAR wszSubscribedURL[INTERNET_MAX_URL_LENGTH]; |
| DWORD dwCurItemState; |
| COMPSTATEINFO csiOriginal; |
| COMPSTATEINFO csiRestored; |
| } COMPONENT; |
| |
| typedef COMPONENT *LPCOMPONENT; |
| typedef const COMPONENT *LPCCOMPONENT; |
| |
| #define IS_NORMAL 0x00000001 |
| #define IS_FULLSCREEN 0x00000002 |
| #define IS_SPLIT 0x00000004 |
| #define IS_VALIDSIZESTATEBITS (IS_NORMAL | IS_SPLIT | IS_FULLSCREEN) |
| #define IS_VALIDSTATEBITS (IS_NORMAL | IS_SPLIT | IS_FULLSCREEN | 0x80000000 | 0x40000000) |
| |
| #define AD_APPLY_SAVE 0x00000001 |
| #define AD_APPLY_HTMLGEN 0x00000002 |
| #define AD_APPLY_REFRESH 0x00000004 |
| #define AD_APPLY_ALL (AD_APPLY_SAVE | AD_APPLY_HTMLGEN | AD_APPLY_REFRESH) |
| #define AD_APPLY_FORCE 0x00000008 |
| #define AD_APPLY_BUFFERED_REFRESH 0x00000010 |
| #define AD_APPLY_DYNAMICREFRESH 0x00000020 |
| |
| #define WPSTYLE_CENTER 0 |
| #define WPSTYLE_TILE 1 |
| #define WPSTYLE_STRETCH 2 |
| #define WPSTYLE_MAX 3 |
| |
| #define COMP_ELEM_TYPE 0x00000001 |
| #define COMP_ELEM_CHECKED 0x00000002 |
| #define COMP_ELEM_DIRTY 0x00000004 |
| #define COMP_ELEM_NOSCROLL 0x00000008 |
| #define COMP_ELEM_POS_LEFT 0x00000010 |
| #define COMP_ELEM_POS_TOP 0x00000020 |
| #define COMP_ELEM_SIZE_WIDTH 0x00000040 |
| #define COMP_ELEM_SIZE_HEIGHT 0x00000080 |
| #define COMP_ELEM_POS_ZINDEX 0x00000100 |
| #define COMP_ELEM_SOURCE 0x00000200 |
| #define COMP_ELEM_FRIENDLYNAME 0x00000400 |
| #define COMP_ELEM_SUBSCRIBEDURL 0x00000800 |
| #define COMP_ELEM_ORIGINAL_CSI 0x00001000 |
| #define COMP_ELEM_RESTORED_CSI 0x00002000 |
| #define COMP_ELEM_CURITEMSTATE 0x00004000 |
| |
| #define COMP_ELEM_ALL (COMP_ELEM_TYPE | COMP_ELEM_CHECKED | COMP_ELEM_DIRTY | COMP_ELEM_NOSCROLL | COMP_ELEM_POS_LEFT | COMP_ELEM_SIZE_WIDTH | COMP_ELEM_SIZE_HEIGHT | COMP_ELEM_POS_ZINDEX | COMP_ELEM_SOURCE | COMP_ELEM_FRIENDLYNAME | COMP_ELEM_POS_TOP | COMP_ELEM_SUBSCRIBEDURL | COMP_ELEM_ORIGINAL_CSI | COMP_ELEM_RESTORED_CSI | COMP_ELEM_CURITEMSTATE) |
| |
| typedef enum tagDTI_ADTIWUI { |
| DTI_ADDUI_DEFAULT = 0x00000000,DTI_ADDUI_DISPSUBWIZARD = 0x00000001,DTI_ADDUI_POSITIONITEM = 0x00000002 |
| }; |
| |
| #define ADDURL_SILENT 0X0001 |
| |
| #define COMPONENT_DEFAULT_LEFT (0xFFFF) |
| #define COMPONENT_DEFAULT_TOP (0xFFFF) |
| |
| #undef INTERFACE |
| #define INTERFACE IActiveDesktop |
| DECLARE_INTERFACE_(IActiveDesktop,IUnknown) { |
| STDMETHOD (QueryInterface)(THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD (ApplyChanges)(THIS_ DWORD dwFlags) PURE; |
| STDMETHOD (GetWallpaper)(THIS_ LPWSTR pwszWallpaper,UINT cchWallpaper,DWORD dwReserved) PURE; |
| STDMETHOD (SetWallpaper)(THIS_ LPCWSTR pwszWallpaper,DWORD dwReserved) PURE; |
| STDMETHOD (GetWallpaperOptions)(THIS_ LPWALLPAPEROPT pwpo,DWORD dwReserved) PURE; |
| STDMETHOD (SetWallpaperOptions)(THIS_ LPCWALLPAPEROPT pwpo,DWORD dwReserved) PURE; |
| STDMETHOD (GetPattern)(THIS_ LPWSTR pwszPattern,UINT cchPattern,DWORD dwReserved) PURE; |
| STDMETHOD (SetPattern)(THIS_ LPCWSTR pwszPattern,DWORD dwReserved) PURE; |
| STDMETHOD (GetDesktopItemOptions)(THIS_ LPCOMPONENTSOPT pco,DWORD dwReserved) PURE; |
| STDMETHOD (SetDesktopItemOptions)(THIS_ LPCCOMPONENTSOPT pco,DWORD dwReserved) PURE; |
| STDMETHOD (AddDesktopItem)(THIS_ LPCCOMPONENT pcomp,DWORD dwReserved) PURE; |
| STDMETHOD (AddDesktopItemWithUI)(THIS_ HWND hwnd,LPCOMPONENT pcomp,DWORD dwReserved) PURE; |
| STDMETHOD (ModifyDesktopItem)(THIS_ LPCCOMPONENT pcomp,DWORD dwFlags) PURE; |
| STDMETHOD (RemoveDesktopItem)(THIS_ LPCCOMPONENT pcomp,DWORD dwReserved) PURE; |
| STDMETHOD (GetDesktopItemCount)(THIS_ LPINT lpiCount,DWORD dwReserved) PURE; |
| STDMETHOD (GetDesktopItem)(THIS_ int nComponent,LPCOMPONENT pcomp,DWORD dwReserved) PURE; |
| STDMETHOD (GetDesktopItemByID)(THIS_ ULONG_PTR dwID,LPCOMPONENT pcomp,DWORD dwReserved) PURE; |
| STDMETHOD (GenerateDesktopItemHtml)(THIS_ LPCWSTR pwszFileName,LPCOMPONENT pcomp,DWORD dwReserved) PURE; |
| STDMETHOD (AddUrl)(THIS_ HWND hwnd,LPCWSTR pszSource,LPCOMPONENT pcomp,DWORD dwFlags) PURE; |
| STDMETHOD (GetDesktopItemBySource)(THIS_ LPCWSTR pwszSource,LPCOMPONENT pcomp,DWORD dwReserved) PURE; |
| }; |
| |
| typedef IActiveDesktop *LPACTIVEDESKTOP; |
| |
| #define SSM_CLEAR 0x0000 |
| #define SSM_SET 0x0001 |
| #define SSM_REFRESH 0x0002 |
| #define SSM_UPDATE 0x0004 |
| |
| #define SCHEME_DISPLAY 0x0001 |
| #define SCHEME_EDIT 0x0002 |
| #define SCHEME_LOCAL 0x0004 |
| #define SCHEME_GLOBAL 0x0008 |
| #define SCHEME_REFRESH 0x0010 |
| #define SCHEME_UPDATE 0x0020 |
| #define SCHEME_DONOTUSE 0x0040 |
| #define SCHEME_CREATE 0x0080 |
| |
| #undef INTERFACE |
| #define INTERFACE IActiveDesktopP |
| |
| DECLARE_INTERFACE_(IActiveDesktopP,IUnknown) { |
| STDMETHOD (QueryInterface)(THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD (SetSafeMode)(THIS_ DWORD dwFlags) PURE; |
| STDMETHOD (EnsureUpdateHTML)(THIS) PURE; |
| STDMETHOD (SetScheme)(THIS_ LPCWSTR pwszSchemeName,DWORD dwFlags) PURE; |
| STDMETHOD (GetScheme)(THIS_ LPWSTR pwszSchemeName,DWORD *lpdwcchBuffer,DWORD dwFlags) PURE; |
| }; |
| |
| typedef IActiveDesktopP *LPACTIVEDESKTOPP; |
| |
| #define GADOF_DIRTY 0x00000001 |
| |
| #undef INTERFACE |
| #define INTERFACE IADesktopP2 |
| |
| DECLARE_INTERFACE_(IADesktopP2,IUnknown) { |
| STDMETHOD (QueryInterface)(THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD (ReReadWallpaper)(THIS) PURE; |
| STDMETHOD (GetADObjectFlags)(THIS_ DWORD *lpdwFlags,DWORD dwMask) PURE; |
| STDMETHOD (UpdateAllDesktopSubscriptions)(THIS) PURE; |
| STDMETHOD (MakeDynamicChanges)(THIS_ IOleObject *pOleObj) PURE; |
| }; |
| |
| typedef IADesktopP2 *LPADESKTOPP2; |
| #endif |
| |
| #define MAX_COLUMN_NAME_LEN 80 |
| #define MAX_COLUMN_DESC_LEN 128 |
| |
| #include <pshpack1.h> |
| |
| 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; |
| |
| #include <poppack.h> |
| |
| #include <pshpack8.h> |
| |
| typedef struct { |
| ULONG dwFlags; |
| ULONG dwReserved; |
| WCHAR wszFolder[MAX_PATH]; |
| } SHCOLUMNINIT,*LPSHCOLUMNINIT; |
| typedef const SHCOLUMNINIT *LPCSHCOLUMNINIT; |
| |
| #define SHCDF_UPDATEITEM 0x00000001 |
| |
| typedef struct { |
| ULONG dwFlags; |
| DWORD dwFileAttributes; |
| ULONG dwReserved; |
| WCHAR *pwszExt; |
| WCHAR wszFile[MAX_PATH]; |
| } SHCOLUMNDATA,*LPSHCOLUMNDATA; |
| typedef const SHCOLUMNDATA *LPCSHCOLUMNDATA; |
| |
| #include <poppack.h> |
| |
| #undef INTERFACE |
| #define INTERFACE IColumnProvider |
| |
| DECLARE_INTERFACE_(IColumnProvider,IUnknown) { |
| STDMETHOD (QueryInterface)(THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| STDMETHOD_(ULONG,Release)(THIS) PURE; |
| STDMETHOD (Initialize)(THIS_ LPCSHCOLUMNINIT psci) PURE; |
| STDMETHOD (GetColumnInfo)(THIS_ DWORD dwIndex,SHCOLUMNINFO *psci) PURE; |
| STDMETHOD (GetItemData)(THIS_ LPCSHCOLUMNID pscid,LPCSHCOLUMNDATA pscd,VARIANT *pvarData) PURE; |
| }; |
| |
| #include <pshpack8.h> |
| |
| typedef struct { |
| SIZE sizeDragImage; |
| POINT ptOffset; |
| HBITMAP hbmpDragImage; |
| COLORREF crColorKey; |
| } SHDRAGIMAGE,*LPSHDRAGIMAGE; |
| |
| #include <poppack.h> |
| |
| #define DI_GETDRAGIMAGE TEXT("ShellGetDragImage") |
| |
| #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_ WINBOOL fShow) PURE; |
| }; |
| |
| #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; |
| }; |
| |
| #define CFSTR_SHELLIDLIST TEXT("Shell IDList Array") |
| #define CFSTR_SHELLIDLISTOFFSET TEXT("Shell Object Offsets") |
| #define CFSTR_NETRESOURCES TEXT("Net Resource") |
| #define CFSTR_FILEDESCRIPTORA TEXT("FileGroupDescriptor") |
| #define CFSTR_FILEDESCRIPTORW TEXT("FileGroupDescriptorW") |
| #define CFSTR_FILECONTENTS TEXT("FileContents") |
| #define CFSTR_FILENAMEA TEXT("FileName") |
| #define CFSTR_FILENAMEW TEXT("FileNameW") |
| #define CFSTR_PRINTERGROUP TEXT("PrinterFriendlyName") |
| #define CFSTR_FILENAMEMAPA TEXT("FileNameMap") |
| #define CFSTR_FILENAMEMAPW TEXT("FileNameMapW") |
| #define CFSTR_SHELLURL TEXT("UniformResourceLocator") |
| #define CFSTR_INETURLA CFSTR_SHELLURL |
| #define CFSTR_INETURLW TEXT("UniformResourceLocatorW") |
| #define CFSTR_PREFERREDDROPEFFECT TEXT("Preferred DropEffect") |
| #define CFSTR_PERFORMEDDROPEFFECT TEXT("Performed DropEffect") |
| #define CFSTR_PASTESUCCEEDED TEXT("Paste Succeeded") |
| #define CFSTR_INDRAGLOOP TEXT("InShellDragLoop") |
| #define CFSTR_DRAGCONTEXT TEXT("DragContext") |
| #define CFSTR_MOUNTEDVOLUME TEXT("MountedVolume") |
| #define CFSTR_PERSISTEDDATAOBJECT TEXT("PersistedDataObject") |
| #define CFSTR_TARGETCLSID TEXT("TargetCLSID") |
| #define CFSTR_LOGICALPERFORMEDDROPEFFECT TEXT("Logical Performed DropEffect") |
| #define CFSTR_AUTOPLAY_SHELLIDLISTS TEXT("Autoplay Enumerated IDList Array") |
| #define CFSTR_UNTRUSTEDDRAGDROP TEXT("UntrustedDragDrop") |
| |
| #ifdef UNICODE |
| #define CFSTR_FILEDESCRIPTOR CFSTR_FILEDESCRIPTORW |
| #define CFSTR_FILENAME CFSTR_FILENAMEW |
| #define CFSTR_FILENAMEMAP CFSTR_FILENAMEMAPW |
| #define CFSTR_INETURL CFSTR_INETURLW |
| #else |
| #define CFSTR_FILEDESCRIPTOR CFSTR_FILEDESCRIPTORA |
| #define CFSTR_FILENAME CFSTR_FILENAMEA |
| #define CFSTR_FILENAMEMAP CFSTR_FILENAMEMAPA |
| #define CFSTR_INETURL CFSTR_INETURLA |
| #endif |
| |
| #define DVASPECT_SHORTNAME 2 |
| #define DVASPECT_COPY 3 |
| #define DVASPECT_LINK 4 |
| |
| #include <pshpack8.h> |
| |
| typedef struct _NRESARRAY { |
| UINT cItems; |
| NETRESOURCE nr[1]; |
| } NRESARRAY,*LPNRESARRAY; |
| #include <poppack.h> |
| |
| typedef struct _IDA { |
| UINT cidl; |
| UINT aoffset[1]; |
| } CIDA,*LPIDA; |
| |
| typedef enum { |
| FD_CLSID = 0x0001,FD_SIZEPOINT = 0x0002,FD_ATTRIBUTES = 0x0004,FD_CREATETIME = 0x0008,FD_ACCESSTIME = 0x0010,FD_WRITESTIME = 0x0020, |
| FD_FILESIZE = 0x0040,FD_PROGRESSUI = 0x4000,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; |
| |
| #ifdef UNICODE |
| #define FILEDESCRIPTOR FILEDESCRIPTORW |
| #define LPFILEDESCRIPTOR LPFILEDESCRIPTORW |
| #else |
| #define FILEDESCRIPTOR FILEDESCRIPTORA |
| #define LPFILEDESCRIPTOR LPFILEDESCRIPTORA |
| #endif |
| |
| typedef struct _FILEGROUPDESCRIPTORA { |
| UINT cItems; |
| FILEDESCRIPTORA fgd[1]; |
| } FILEGROUPDESCRIPTORA,*LPFILEGROUPDESCRIPTORA; |
| |
| typedef struct _FILEGROUPDESCRIPTORW { |
| UINT cItems; |
| FILEDESCRIPTORW fgd[1]; |
| } FILEGROUPDESCRIPTORW,*LPFILEGROUPDESCRIPTORW; |
| |
| #ifdef UNICODE |
| #define FILEGROUPDESCRIPTOR FILEGROUPDESCRIPTORW |
| #define LPFILEGROUPDESCRIPTOR LPFILEGROUPDESCRIPTORW |
| #else |
| #define FILEGROUPDESCRIPTOR FILEGROUPDESCRIPTORA |
| #define LPFILEGROUPDESCRIPTOR LPFILEGROUPDESCRIPTORA |
| #endif |
| |
| typedef struct _DROPFILES { |
| DWORD pFiles; |
| POINT pt; |
| WINBOOL fNC; |
| WINBOOL fWide; |
| } DROPFILES,*LPDROPFILES; |
| |
| typedef struct _SHChangeNotifyEntry { |
| LPCITEMIDLIST pidl; |
| WINBOOL fRecursive; |
| } SHChangeNotifyEntry; |
| |
| #define SHCNE_RENAMEITEM 0x00000001L |
| #define SHCNE_CREATE 0x00000002L |
| #define SHCNE_DELETE 0x00000004L |
| #define SHCNE_MKDIR 0x00000008L |
| #define SHCNE_RMDIR 0x00000010L |
| #define SHCNE_MEDIAINSERTED 0x00000020L |
| #define SHCNE_MEDIAREMOVED 0x00000040L |
| #define SHCNE_DRIVEREMOVED 0x00000080L |
| #define SHCNE_DRIVEADD 0x00000100L |
| #define SHCNE_NETSHARE 0x00000200L |
| #define SHCNE_NETUNSHARE 0x00000400L |
| #define SHCNE_ATTRIBUTES 0x00000800L |
| #define SHCNE_UPDATEDIR 0x00001000L |
| #define SHCNE_UPDATEITEM 0x00002000L |
| #define SHCNE_SERVERDISCONNECT 0x00004000L |
| #define SHCNE_UPDATEIMAGE 0x00008000L |
| #define SHCNE_DRIVEADDGUI 0x00010000L |
| #define SHCNE_RENAMEFOLDER 0x00020000L |
| #define SHCNE_FREESPACE 0x00040000L |
| #define SHCNE_EXTENDED_EVENT 0x04000000L |
| |
| #define SHCNE_ASSOCCHANGED 0x08000000L |
| |
| #define SHCNE_DISKEVENTS 0x0002381FL |
| #define SHCNE_GLOBALEVENTS 0x0C0581E0L |
| #define SHCNE_ALLEVENTS 0x7FFFFFFFL |
| #define SHCNE_INTERRUPT 0x80000000L |
| |
| #define SHCNEE_ORDERCHANGED 2L |
| #define SHCNEE_MSI_CHANGE 4L |
| #define SHCNEE_MSI_UNINSTALL 5L |
| |
| #define SHCNF_IDLIST 0x0000 |
| #define SHCNF_PATHA 0x0001 |
| #define SHCNF_PRINTERA 0x0002 |
| #define SHCNF_DWORD 0x0003 |
| #define SHCNF_PATHW 0x0005 |
| #define SHCNF_PRINTERW 0x0006 |
| #define SHCNF_TYPE 0x00FF |
| #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 |
| |
| SHSTDAPI_(void) SHChangeNotify(LONG wEventId,UINT uFlags,LPCVOID dwItem1,LPCVOID dwItem2); |
| |
| #undef INTERFACE |
| #define INTERFACE IShellChangeNotify |
| DECLARE_INTERFACE_(IShellChangeNotify,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(OnChange) (THIS_ LONG lEvent,LPCITEMIDLIST pidl1,LPCITEMIDLIST pidl2) PURE; |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IQueryInfo |
| DECLARE_INTERFACE_(IQueryInfo,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetInfoTip)(THIS_ DWORD dwFlags,WCHAR **ppwszTip) PURE; |
| STDMETHOD(GetInfoFlags)(THIS_ DWORD *pdwFlags) PURE; |
| }; |
| |
| #define QITIPF_DEFAULT 0x00000000 |
| #define QITIPF_USENAME 0x00000001 |
| #define QITIPF_LINKNOTARGET 0x00000002 |
| #define QITIPF_LINKUSETARGET 0x00000004 |
| #define QITIPF_USESLOWTIP 0x00000008 |
| |
| #define QIF_CACHED 0x00000001 |
| #define QIF_DONTEXPANDFOLDER 0x00000002 |
| |
| typedef enum enum_SHARD{ |
| SHARD_PIDL = 0x00000001, |
| SHARD_PATHA = 0x00000002, |
| SHARD_PATHW = 0x00000003, |
| SHARD_APPIDINFO = 0x00000004, |
| SHARD_APPIDINFOIDLIST = 0x00000005, |
| SHARD_LINK = 0x00000006, |
| SHARD_APPIDINFOLINK = 0x00000007, |
| SHARD_SHELLITEM = 0x00000008 |
| } SHARD; |
| |
| #ifdef UNICODE |
| #define SHARD_PATH SHARD_PATHW |
| #else |
| #define SHARD_PATH SHARD_PATHA |
| #endif |
| |
| SHSTDAPI_(void) SHAddToRecentDocs(UINT uFlags,LPCVOID pv); |
| |
| typedef struct _SHChangeDWORDAsIDList { |
| USHORT cb; |
| DWORD dwItem1; |
| DWORD dwItem2; |
| USHORT cbZero; |
| } SHChangeDWORDAsIDList,*LPSHChangeDWORDAsIDList; |
| |
| typedef struct _SHChangeUpdateImageIDList { |
| USHORT cb; |
| int iIconIndex; |
| int iCurIndex; |
| UINT uFlags; |
| DWORD dwProcessID; |
| WCHAR szName[MAX_PATH]; |
| USHORT cbZero; |
| } SHChangeUpdateImageIDList,*LPSHChangeUpdateImageIDList; |
| |
| SHSTDAPI_(int) SHHandleUpdateImage(LPCITEMIDLIST pidlExtra); |
| |
| typedef struct _SHChangeProductKeyAsIDList { |
| USHORT cb; |
| WCHAR wszProductKey[39]; |
| USHORT cbZero; |
| } SHChangeProductKeyAsIDList,*LPSHChangeProductKeyAsIDList; |
| |
| #ifdef UNICODE |
| #define SHUpdateImage SHUpdateImageW |
| #else |
| #define SHUpdateImage SHUpdateImageA |
| #endif |
| |
| SHSTDAPI_(void) SHUpdateImageA(LPCSTR pszHashItem,int iIndex,UINT uFlags,int iImageIndex); |
| SHSTDAPI_(void) SHUpdateImageW(LPCWSTR pszHashItem,int iIndex,UINT uFlags,int iImageIndex); |
| SHSTDAPI_(ULONG) SHChangeNotifyRegister(HWND hwnd,int fSources,LONG fEvents,UINT wMsg,int cEntries,SHChangeNotifyEntry *pshcne); |
| SHSTDAPI_(WINBOOL) SHChangeNotifyDeregister(unsigned long ulID); |
| SHSTDAPI_(HANDLE) SHChangeNotification_Lock(HANDLE hChangeNotification,DWORD dwProcessId,LPITEMIDLIST **pppidl,LONG *plEvent); |
| SHSTDAPI_(WINBOOL) SHChangeNotification_Unlock(HANDLE hLock); |
| SHSTDAPI SHGetRealIDL(IShellFolder *psf,LPCITEMIDLIST pidlSimple,LPITEMIDLIST *ppidlReal); |
| SHSTDAPI SHGetInstanceExplorer(IUnknown **ppunk); |
| |
| #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 |
| #define SHDID_COMPUTER_IMAGING 18 |
| #define SHDID_COMPUTER_AUDIO 19 |
| #define SHDID_COMPUTER_SHAREDDOCS 20 |
| |
| #include <pshpack8.h> |
| |
| typedef struct _SHDESCRIPTIONID { |
| DWORD dwDescriptionId; |
| CLSID clsid; |
| } SHDESCRIPTIONID,*LPSHDESCRIPTIONID; |
| |
| #include <poppack.h> |
| |
| #ifdef UNICODE |
| #define SHGetDataFromIDList SHGetDataFromIDListW |
| #else |
| #define SHGetDataFromIDList SHGetDataFromIDListA |
| #endif |
| |
| SHSTDAPI SHGetDataFromIDListA(IShellFolder *psf,LPCITEMIDLIST pidl,int nFormat,void *pv,int cb); |
| SHSTDAPI SHGetDataFromIDListW(IShellFolder *psf,LPCITEMIDLIST pidl,int nFormat,void *pv,int cb); |
| |
| #define PRF_VERIFYEXISTS 0x0001 |
| #define PRF_TRYPROGRAMEXTENSIONS (0x0002 | PRF_VERIFYEXISTS) |
| #define PRF_FIRSTDIRDEF 0x0004 |
| #define PRF_DONTFINDLNK 0x0008 |
| SHSTDAPI_(int) RestartDialog(HWND hwnd,LPCWSTR lpPrompt,DWORD dwReturn); |
| SHSTDAPI_(int) RestartDialogEx(HWND hwnd,LPCWSTR lpPrompt,DWORD dwReturn,DWORD dwReasonCode); |
| SHSTDAPI SHCoCreateInstance(LPCWSTR pszCLSID,const CLSID *pclsid,IUnknown *pUnkOuter,REFIID riid,void **ppv); |
| DECLARE_HANDLE(FARPROC16); |
| SHSTDAPI_(LRESULT) CallCPLEntry16(HINSTANCE hinst,FARPROC16 lpfnEntry,HWND hwndCPL,UINT msg,LPARAM lParam1,LPARAM lParam2); |
| SHSTDAPI SHCreateStdEnumFmtEtc(UINT cfmt,const FORMATETC afmt[],IEnumFORMATETC **ppenumFormatEtc); |
| SHSTDAPI SHDoDragDrop(HWND hwnd,IDataObject *pdata,IDropSource *pdsrc,DWORD dwEffect,DWORD *pdwEffect); |
| |
| #define NUM_POINTS 3 |
| typedef struct { |
| int iNextSample; |
| DWORD dwLastScroll; |
| WINBOOL bFull; |
| POINT pts[NUM_POINTS]; |
| DWORD dwTimes[NUM_POINTS]; |
| } AUTO_SCROLL_DATA; |
| |
| SHSTDAPI_(WINBOOL) DAD_SetDragImage(HIMAGELIST him,POINT *pptOffset); |
| SHSTDAPI_(WINBOOL) DAD_DragEnterEx(HWND hwndTarget,const POINT ptStart); |
| SHSTDAPI_(WINBOOL) DAD_DragEnterEx2(HWND hwndTarget,const POINT ptStart,IDataObject *pdtObject); |
| SHSTDAPI_(WINBOOL) DAD_ShowDragImage(WINBOOL fShow); |
| SHSTDAPI_(WINBOOL) DAD_DragMove(POINT pt); |
| SHSTDAPI_(WINBOOL) DAD_DragLeave(void); |
| SHSTDAPI_(WINBOOL) DAD_AutoScroll(HWND hwnd,AUTO_SCROLL_DATA *pad,const POINT *pptNow); |
| |
| typedef struct { |
| WORD cLength; |
| WORD nVersion; |
| WINBOOL fFullPathTitle : 1; |
| WINBOOL fSaveLocalView : 1; |
| WINBOOL fNotShell : 1; |
| WINBOOL fSimpleDefault : 1; |
| WINBOOL fDontShowDescBar : 1; |
| WINBOOL fNewWindowMode : 1; |
| WINBOOL fShowCompColor : 1; |
| WINBOOL fDontPrettyNames : 1; |
| WINBOOL fAdminsCreateCommonGroups : 1; |
| UINT fUnusedFlags : 7; |
| UINT fMenuEnumFilter; |
| } CABINETSTATE,*LPCABINETSTATE; |
| |
| #define CABINETSTATE_VERSION 2 |
| |
| #ifdef UNICODE |
| #define PathIsSlow PathIsSlowW |
| #else |
| #define PathIsSlow PathIsSlowA |
| #endif |
| |
| SHSTDAPI_(WINBOOL) ReadCabinetState(LPCABINETSTATE lpState,int iSize); |
| SHSTDAPI_(WINBOOL) WriteCabinetState(LPCABINETSTATE lpState); |
| SHSTDAPI_(WINBOOL) PathMakeUniqueName(LPWSTR pszUniqueName,UINT cchMax,LPCWSTR pszTemplate,LPCWSTR pszLongPlate,LPCWSTR pszDir); |
| SHSTDAPI_(void) PathQualify(LPWSTR psz); |
| SHSTDAPI_(WINBOOL) PathIsExe(LPCWSTR pszPath); |
| SHSTDAPI_(WINBOOL) PathIsSlowA(LPCSTR pszFile,DWORD dwAttr); |
| SHSTDAPI_(WINBOOL) PathIsSlowW(LPCWSTR pszFile,DWORD dwAttr); |
| |
| #define PCS_FATAL 0x80000000 |
| #define PCS_REPLACEDCHAR 0x00000001 |
| #define PCS_REMOVEDCHAR 0x00000002 |
| #define PCS_TRUNCATED 0x00000004 |
| #define PCS_PATHTOOLONG 0x00000008 |
| |
| SHSTDAPI_(int) PathCleanupSpec(LPCWSTR pszDir,LPWSTR pszSpec); |
| SHSTDAPI_(int) PathResolve(LPWSTR pszPath,LPCWSTR dirs[],UINT fFlags); |
| SHSTDAPI_(WINBOOL) GetFileNameFromBrowse(HWND hwnd,LPWSTR pszFilePath,UINT cbFilePath,LPCWSTR pszWorkingDir,LPCWSTR pszDefExt,LPCWSTR pszFilters,LPCWSTR pszTitle); |
| SHSTDAPI_(int) DriveType(int iDrive); |
| SHSTDAPI_(int) RealDriveType(int iDrive,WINBOOL fOKToHitNet); |
| SHSTDAPI_(int) IsNetDrive(int iDrive); |
| |
| #define MM_ADDSEPARATOR 0x00000001L |
| #define MM_SUBMENUSHAVEIDS 0x00000002L |
| #define MM_DONTREMOVESEPS 0x00000004L |
| |
| SHSTDAPI_(UINT) Shell_MergeMenus(HMENU hmDst,HMENU hmSrc,UINT uInsert,UINT uIDAdjust,UINT uIDAdjustMax,ULONG uFlags); |
| SHSTDAPI_(WINBOOL) SHObjectProperties(HWND hwnd,DWORD dwType,LPCWSTR lpObject,LPCWSTR lpPage); |
| |
| #define SHOP_PRINTERNAME 0x00000001 |
| #define SHOP_FILEPATH 0x00000002 |
| #define SHOP_VOLUMEGUID 0x00000004 |
| |
| SHSTDAPI_(DWORD) SHFormatDrive(HWND hwnd,UINT drive,UINT fmtID,UINT options); |
| |
| #define SHFMT_ID_DEFAULT 0xFFFF |
| |
| #define SHFMT_OPT_FULL 0x0001 |
| #define SHFMT_OPT_SYSONLY 0x0002 |
| |
| #define SHFMT_ERROR 0xFFFFFFFFL |
| #define SHFMT_CANCEL 0xFFFFFFFEL |
| #define SHFMT_NOFORMAT 0xFFFFFFFDL |
| |
| #ifndef HPSXA_DEFINED |
| #define HPSXA_DEFINED |
| DECLARE_HANDLE(HPSXA); |
| #endif |
| WINSHELLAPI HPSXA WINAPI SHCreatePropSheetExtArray(HKEY hKey,LPCWSTR pszSubKey,UINT max_iface); |
| WINSHELLAPI void WINAPI SHDestroyPropSheetExtArray(HPSXA hpsxa); |
| WINSHELLAPI UINT WINAPI SHAddFromPropSheetExtArray(HPSXA hpsxa,LPFNADDPROPSHEETPAGE lpfnAddPage,LPARAM lParam); |
| WINSHELLAPI UINT WINAPI SHReplaceFromPropSheetExtArray(HPSXA hpsxa,UINT uPageID,LPFNADDPROPSHEETPAGE lpfnReplaceWith,LPARAM lParam); |
| SHSTDAPI_(LPITEMIDLIST) ILClone(LPCITEMIDLIST pidl); |
| SHSTDAPI_(LPITEMIDLIST) ILGetNext(LPCITEMIDLIST pidl); |
| SHSTDAPI_(UINT) ILGetSize(LPCITEMIDLIST pidl); |
| SHSTDAPI_(LPITEMIDLIST) ILFindLastID(LPCITEMIDLIST pidl); |
| SHSTDAPI_(WINBOOL) ILRemoveLastID(LPITEMIDLIST pidl); |
| SHSTDAPI_(LPITEMIDLIST) ILAppendID(LPITEMIDLIST pidl,LPCSHITEMID pmkid,WINBOOL fAppend); |
| SHSTDAPI_(void) ILFree(LPITEMIDLIST pidl); |
| SHSTDAPI_(LPITEMIDLIST) ILCloneFirst(LPCITEMIDLIST pidl); |
| SHSTDAPI_(WINBOOL) ILIsEqual(LPCITEMIDLIST pidl1,LPCITEMIDLIST pidl2); |
| SHSTDAPI_(WINBOOL) ILIsParent(LPCITEMIDLIST pidl1,LPCITEMIDLIST pidl2,WINBOOL fImmediate); |
| SHSTDAPI_(LPITEMIDLIST) ILFindChild(LPCITEMIDLIST pidlParent,LPCITEMIDLIST pidlChild); |
| SHSTDAPI_(LPITEMIDLIST) ILCombine(LPCITEMIDLIST pidl1,LPCITEMIDLIST pidl2); |
| SHSTDAPI ILLoadFromStream(IStream *pstm,LPITEMIDLIST *pidl); |
| SHSTDAPI ILSaveToStream(IStream *pstm,LPCITEMIDLIST pidl); |
| SHSTDAPI_(LPITEMIDLIST) ILCreateFromPathA(LPCSTR pszPath); |
| SHSTDAPI_(LPITEMIDLIST) ILCreateFromPathW(LPCWSTR pszPath); |
| |
| #ifdef NO_WRAPPERS_FOR_ILCREATEFROMPATH |
| SHSTDAPI_(LPITEMIDLIST) ILCreateFromPath(LPCTSTR pszPath); |
| #else |
| #ifdef UNICODE |
| #define ILCreateFromPath ILCreateFromPathW |
| #else |
| #define ILCreateFromPath ILCreateFromPathA |
| #endif |
| #endif |
| SHSTDAPI SHILCreateFromPath(LPCWSTR szPath,LPITEMIDLIST *ppidl,DWORD *rgfInOut); |
| |
| #undef INTERFACE |
| #define INTERFACE IDefViewFrame |
| DECLARE_INTERFACE_(IDefViewFrame,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(GetWindowLV) (THIS_ HWND *phwnd) PURE; |
| STDMETHOD(ReleaseWindowLV) (THIS) PURE; |
| STDMETHOD(GetShellFolder)(THIS_ IShellFolder **ppsf) PURE; |
| }; |
| |
| typedef enum RESTRICTIONS { |
| REST_NONE = 0x00000000,REST_NORUN = 0x00000001,REST_NOCLOSE = 0x00000002,REST_NOSAVESET = 0x00000004,REST_NOFILEMENU = 0x00000008, |
| REST_NOSETFOLDERS = 0x00000010,REST_NOSETTASKBAR = 0x00000020,REST_NODESKTOP = 0x00000040,REST_NOFIND = 0x00000080, |
| REST_NODRIVES = 0x00000100,REST_NODRIVEAUTORUN = 0x00000200,REST_NODRIVETYPEAUTORUN = 0x00000400,REST_NONETHOOD = 0x00000800, |
| REST_STARTBANNER = 0x00001000,REST_RESTRICTRUN = 0x00002000,REST_NOPRINTERTABS = 0x00004000,REST_NOPRINTERDELETE = 0x00008000, |
| REST_NOPRINTERADD = 0x00010000,REST_NOSTARTMENUSUBFOLDERS = 0x00020000,REST_MYDOCSONNET = 0x00040000,REST_NOEXITTODOS = 0x00080000, |
| REST_ENFORCESHELLEXTSECURITY = 0x00100000,REST_LINKRESOLVEIGNORELINKINFO = 0x00200000,REST_NOCOMMONGROUPS = 0x00400000, |
| REST_SEPARATEDESKTOPPROCESS = 0x00800000,REST_NOWEB = 0x01000000,REST_NOTRAYCONTEXTMENU = 0x02000000,REST_NOVIEWCONTEXTMENU = 0x04000000, |
| REST_NONETCONNECTDISCONNECT = 0x08000000,REST_STARTMENULOGOFF = 0x10000000,REST_NOSETTINGSASSIST = 0x20000000,REST_NOINTERNETICON = 0x40000001, |
| REST_NORECENTDOCSHISTORY = 0x40000002,REST_NORECENTDOCSMENU = 0x40000003,REST_NOACTIVEDESKTOP = 0x40000004,REST_NOACTIVEDESKTOPCHANGES = 0x40000005, |
| REST_NOFAVORITESMENU = 0x40000006,REST_CLEARRECENTDOCSONEXIT = 0x40000007,REST_CLASSICSHELL = 0x40000008,REST_NOCUSTOMIZEWEBVIEW = 0x40000009, |
| REST_NOHTMLWALLPAPER = 0x40000010,REST_NOCHANGINGWALLPAPER = 0x40000011,REST_NODESKCOMP = 0x40000012,REST_NOADDDESKCOMP = 0x40000013, |
| REST_NODELDESKCOMP = 0x40000014,REST_NOCLOSEDESKCOMP = 0x40000015,REST_NOCLOSE_DRAGDROPBAND = 0x40000016,REST_NOMOVINGBAND = 0x40000017, |
| REST_NOEDITDESKCOMP = 0x40000018,REST_NORESOLVESEARCH = 0x40000019,REST_NORESOLVETRACK = 0x4000001A,REST_FORCECOPYACLWITHFILE = 0X4000001B, |
| REST_NOLOGO3CHANNELNOTIFY = 0x4000001C,REST_NOFORGETSOFTWAREUPDATE = 0x4000001D,REST_NOSETACTIVEDESKTOP = 0x4000001E, |
| REST_NOUPDATEWINDOWS = 0x4000001F,REST_NOCHANGESTARMENU = 0x40000020,REST_NOFOLDEROPTIONS = 0x40000021,REST_HASFINDCOMPUTERS = 0x40000022, |
| REST_INTELLIMENUS = 0x40000023,REST_RUNDLGMEMCHECKBOX = 0x40000024,REST_ARP_ShowPostSetup = 0x40000025,REST_NOCSC = 0x40000026, |
| REST_NOCONTROLPANEL = 0x40000027,REST_ENUMWORKGROUP = 0x40000028,REST_ARP_NOARP = 0x40000029,REST_ARP_NOREMOVEPAGE = 0x4000002A, |
| REST_ARP_NOADDPAGE = 0x4000002B,REST_ARP_NOWINSETUPPAGE = 0x4000002C,REST_GREYMSIADS = 0x4000002D,REST_NOCHANGEMAPPEDDRIVELABEL = 0x4000002E, |
| REST_NOCHANGEMAPPEDDRIVECOMMENT = 0x4000002F,REST_MaxRecentDocs = 0x40000030,REST_NONETWORKCONNECTIONS = 0x40000031, |
| REST_FORCESTARTMENULOGOFF = 0x40000032,REST_NOWEBVIEW = 0x40000033,REST_NOCUSTOMIZETHISFOLDER = 0x40000034,REST_NOENCRYPTION = 0x40000035, |
| REST_DONTSHOWSUPERHIDDEN = 0x40000037,REST_NOSHELLSEARCHBUTTON = 0x40000038,REST_NOHARDWARETAB = 0x40000039,REST_NORUNASINSTALLPROMPT = 0x4000003A, |
| REST_PROMPTRUNASINSTALLNETPATH = 0x4000003B,REST_NOMANAGEMYCOMPUTERVERB = 0x4000003C,REST_NORECENTDOCSNETHOOD = 0x4000003D, |
| REST_DISALLOWRUN = 0x4000003E,REST_NOWELCOMESCREEN = 0x4000003F,REST_RESTRICTCPL = 0x40000040,REST_DISALLOWCPL = 0x40000041, |
| REST_NOSMBALLOONTIP = 0x40000042,REST_NOSMHELP = 0x40000043,REST_NOWINKEYS = 0x40000044,REST_NOENCRYPTONMOVE = 0x40000045, |
| REST_NOLOCALMACHINERUN = 0x40000046,REST_NOCURRENTUSERRUN = 0x40000047,REST_NOLOCALMACHINERUNONCE = 0x40000048, |
| REST_NOCURRENTUSERRUNONCE = 0x40000049,REST_FORCEACTIVEDESKTOPON = 0x4000004A,REST_NOCOMPUTERSNEARME = 0x4000004B,REST_NOVIEWONDRIVE = 0x4000004C, |
| REST_NONETCRAWL = 0x4000004D,REST_NOSHAREDDOCUMENTS = 0x4000004E,REST_NOSMMYDOCS = 0x4000004F,REST_NOSMMYPICS = 0x40000050, |
| REST_ALLOWBITBUCKDRIVES = 0x40000051,REST_NONLEGACYSHELLMODE = 0x40000052,REST_NOCONTROLPANELBARRICADE = 0x40000053,REST_NOSTARTPAGE = 0x40000054, |
| REST_NOAUTOTRAYNOTIFY = 0x40000055,REST_NOTASKGROUPING = 0x40000056,REST_NOCDBURNING = 0x40000057,REST_MYCOMPNOPROP = 0x40000058, |
| REST_MYDOCSNOPROP = 0x40000059,REST_NOSTARTPANEL = 0x4000005A,REST_NODISPLAYAPPEARANCEPAGE = 0x4000005B,REST_NOTHEMESTAB = 0x4000005C, |
| REST_NOVISUALSTYLECHOICE = 0x4000005D,REST_NOSIZECHOICE = 0x4000005E,REST_NOCOLORCHOICE = 0x4000005F,REST_SETVISUALSTYLE = 0x40000060, |
| REST_STARTRUNNOHOMEPATH = 0x40000061,REST_NOUSERNAMEINSTARTPANEL = 0x40000062,REST_NOMYCOMPUTERICON = 0x40000063,REST_NOSMNETWORKPLACES = 0x40000064, |
| REST_NOSMPINNEDLIST = 0x40000065,REST_NOSMMYMUSIC = 0x40000066,REST_NOSMEJECTPC = 0x40000067,REST_NOSMMOREPROGRAMS = 0x40000068, |
| REST_NOSMMFUPROGRAMS = 0x40000069,REST_NOTRAYITEMSDISPLAY = 0x4000006A,REST_NOTOOLBARSONTASKBAR = 0x4000006B,REST_NOSMCONFIGUREPROGRAMS = 0x4000006F, |
| REST_HIDECLOCK = 0x40000070,REST_NOLOWDISKSPACECHECKS = 0x40000071,REST_NOENTIRENETWORK = 0x40000072,REST_NODESKTOPCLEANUP = 0x40000073, |
| REST_BITBUCKNUKEONDELETE = 0x40000074,REST_BITBUCKCONFIRMDELETE = 0x40000075,REST_BITBUCKNOPROP = 0x40000076,REST_NODISPBACKGROUND = 0x40000077, |
| REST_NODISPSCREENSAVEPG = 0x40000078,REST_NODISPSETTINGSPG = 0x40000079,REST_NODISPSCREENSAVEPREVIEW = 0x4000007A,REST_NODISPLAYCPL = 0x4000007B, |
| REST_HIDERUNASVERB = 0x4000007C,REST_NOTHUMBNAILCACHE = 0x4000007D,REST_NOSTRCMPLOGICAL = 0x4000007E,REST_NOPUBLISHWIZARD = 0x4000007F, |
| REST_NOONLINEPRINTSWIZARD = 0x40000080,REST_NOWEBSERVICES = 0x40000081,REST_ALLOWUNHASHEDWEBVIEW = 0x40000082,REST_ALLOWLEGACYWEBVIEW = 0x40000083, |
| REST_REVERTWEBVIEWSECURITY = 0x40000084,REST_INHERITCONSOLEHANDLES = 0x40000086,REST_SORTMAXITEMCOUNT = 0x40000087, |
| REST_NOREMOTERECURSIVEEVENTS = 0x40000089,REST_NOREMOTECHANGENOTIFY = 0x40000091,REST_NOSIMPLENETIDLIST = 0x40000092, |
| REST_NOENUMENTIRENETWORK = 0x40000093,REST_NODETAILSTHUMBNAILONNETWORK= 0x40000094,REST_NOINTERNETOPENWITH = 0x40000095, |
| REST_ALLOWLEGACYLMZBEHAVIOR = 0x4000009A,REST_DONTRETRYBADNETNAME = 0x4000009B,REST_ALLOWFILECLSIDJUNCTIONS = 0x4000009C, |
| REST_NOUPNPINSTALL = 0x4000009D,REST_NODISCONNECT = 0x41000001,REST_NOSECURITY = 0x41000002,REST_NOFILEASSOCIATE = 0x41000003, |
| REST_ALLOWCOMMENTTOGGLE = 0x41000004,REST_USEDESKTOPINICACHE = 0x41000005 |
| } RESTRICTIONS; |
| |
| SHSTDAPI_(IStream *) OpenRegStream(HKEY hkey,LPCWSTR pszSubkey,LPCWSTR pszValue,DWORD grfMode); |
| SHSTDAPI_(WINBOOL) SHFindFiles(LPCITEMIDLIST pidlFolder,LPCITEMIDLIST pidlSaveFile); |
| SHSTDAPI_(void) PathGetShortPath(LPWSTR pszLongPath); |
| SHSTDAPI_(WINBOOL) PathYetAnotherMakeUniqueName(LPWSTR pszUniqueName,LPCWSTR pszPath,LPCWSTR pszShort,LPCWSTR pszFileSpec); |
| SHSTDAPI_(WINBOOL) Win32DeleteFile(LPCWSTR pszPath); |
| |
| #define PPCF_ADDQUOTES 0x00000001 |
| #define PPCF_ADDARGUMENTS 0x00000003 |
| #define PPCF_NODIRECTORIES 0x00000010 |
| #define PPCF_FORCEQUALIFY 0x00000040 |
| #define PPCF_LONGESTPOSSIBLE 0x00000080 |
| |
| #ifdef UNICODE |
| #define SHStartNetConnectionDialog SHStartNetConnectionDialogW |
| #define SHDefExtractIcon SHDefExtractIconW |
| #else |
| #define SHStartNetConnectionDialog SHStartNetConnectionDialogA |
| #define SHDefExtractIcon SHDefExtractIconA |
| #endif |
| |
| SHSTDAPI_(LONG) PathProcessCommand(LPCWSTR lpSrc,LPWSTR lpDest,int iMax,DWORD dwFlags); |
| SHSTDAPI_(DWORD) SHRestricted(RESTRICTIONS rest); |
| SHSTDAPI_(WINBOOL) SignalFileOpen(LPCITEMIDLIST pidl); |
| SHSTDAPI_(LPITEMIDLIST) SHSimpleIDListFromPath(LPCWSTR pszPath); |
| SHSTDAPI SHLoadOLE(LPARAM lParam); |
| SHSTDAPI SHStartNetConnectionDialogA(HWND hwnd,LPCSTR pszRemoteName,DWORD dwType); |
| SHSTDAPI SHStartNetConnectionDialogW(HWND hwnd,LPCWSTR pszRemoteName,DWORD dwType); |
| SHSTDAPI SHDefExtractIconA(LPCSTR pszIconFile,int iIndex,UINT uFlags,HICON *phiconLarge,HICON *phiconSmall,UINT nIconSize); |
| SHSTDAPI SHDefExtractIconW(LPCWSTR pszIconFile,int iIndex,UINT uFlags,HICON *phiconLarge,HICON *phiconSmall,UINT nIconSize); |
| SHSTDAPI_(WINBOOL) Shell_GetImageLists(HIMAGELIST *phiml,HIMAGELIST *phimlSmall); |
| SHSTDAPI_(int) Shell_GetCachedImageIndex(LPCWSTR pszIconPath,int iIconIndex,UINT uIconFlags); |
| |
| #undef INTERFACE |
| #define INTERFACE IDocViewSite |
| DECLARE_INTERFACE_(IDocViewSite,IUnknown) { |
| STDMETHOD(QueryInterface)(THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef)(THIS) PURE; |
| STDMETHOD_(ULONG,Release)(THIS) PURE; |
| STDMETHOD(OnSetTitle) (THIS_ VARIANTARG *pvTitle) PURE; |
| }; |
| #define VALIDATEUNC_NOUI 0x0002 |
| #define VALIDATEUNC_CONNECT 0x0001 |
| #define VALIDATEUNC_PRINT 0x0004 |
| #define VALIDATEUNC_VALID 0x0007 |
| |
| SHSTDAPI_(WINBOOL) SHValidateUNC(HWND hwndOwner,LPWSTR pszFile,UINT fConnect); |
| #define OPENPROPS_NONE 0x0000 |
| #define OPENPROPS_INHIBITPIF 0x8000 |
| #define GETPROPS_NONE 0x0000 |
| #define SETPROPS_NONE 0x0000 |
| #define CLOSEPROPS_NONE 0x0000 |
| #define CLOSEPROPS_DISCARD 0x0001 |
| |
| #define PIFNAMESIZE 30 |
| #define PIFSTARTLOCSIZE 63 |
| #define PIFDEFPATHSIZE 64 |
| #define PIFPARAMSSIZE 64 |
| #define PIFSHPROGSIZE 64 |
| #define PIFSHDATASIZE 64 |
| #define PIFDEFFILESIZE 80 |
| #define PIFMAXFILEPATH 260 |
| |
| typedef struct PROPPRG { |
| WORD flPrg; |
| WORD flPrgInit; |
| CHAR achTitle[PIFNAMESIZE]; |
| CHAR achCmdLine[PIFSTARTLOCSIZE+PIFPARAMSSIZE+1]; |
| CHAR achWorkDir[PIFDEFPATHSIZE]; |
| WORD wHotKey; |
| CHAR achIconFile[PIFDEFFILESIZE]; |
| WORD wIconIndex; |
| DWORD dwEnhModeFlags; |
| DWORD dwRealModeFlags; |
| CHAR achOtherFile[PIFDEFFILESIZE]; |
| CHAR achPIFFile[PIFMAXFILEPATH]; |
| } PROPPRG; |
| typedef UNALIGNED PROPPRG *PPROPPRG; |
| typedef UNALIGNED PROPPRG *LPPROPPRG; |
| typedef const UNALIGNED PROPPRG *LPCPROPPRG; |
| |
| SHSTDAPI_(HANDLE) PifMgr_OpenProperties(LPCWSTR pszApp,LPCWSTR pszPIF,UINT hInf,UINT flOpt); |
| SHSTDAPI_(int) PifMgr_GetProperties(HANDLE hProps,LPCSTR pszGroup,void *lpProps,int cbProps,UINT flOpt); |
| SHSTDAPI_(int) PifMgr_SetProperties(HANDLE hProps,LPCSTR pszGroup,const VOID *lpProps,int cbProps,UINT flOpt); |
| SHSTDAPI_(HANDLE) PifMgr_CloseProperties(HANDLE hProps,UINT flOpt); |
| SHSTDAPI_(void) SHSetInstanceExplorer(IUnknown *punk); |
| SHSTDAPI_(WINBOOL) IsUserAnAdmin(void); |
| |
| #undef INTERFACE |
| #define INTERFACE IInitializeObject |
| DECLARE_INTERFACE_(IInitializeObject,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(Initialize)(THIS) PURE; |
| }; |
| |
| enum { |
| BMICON_LARGE = 0,BMICON_SMALL |
| }; |
| |
| #undef INTERFACE |
| #define INTERFACE IBanneredBar |
| DECLARE_INTERFACE_(IBanneredBar,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(SetIconSize)(THIS_ DWORD iIcon) PURE; |
| STDMETHOD(GetIconSize)(THIS_ DWORD *piIcon) PURE; |
| STDMETHOD(SetBitmap)(THIS_ HBITMAP hBitmap) PURE; |
| STDMETHOD(GetBitmap)(THIS_ HBITMAP *phBitmap) PURE; |
| }; |
| |
| SHSTDAPI_(LRESULT) SHShellFolderView_Message(HWND hwndMain,UINT uMsg,LPARAM lParam); |
| |
| #undef INTERFACE |
| #define INTERFACE IShellFolderViewCB |
| DECLARE_INTERFACE_(IShellFolderViewCB,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(MessageSFVCB)(THIS_ UINT uMsg,WPARAM wParam,LPARAM lParam) PURE; |
| }; |
| |
| #include <pshpack8.h> |
| |
| #undef UNSIZED_ARRAY2 |
| #undef EMPTY_SIZE2 |
| #define UNSIZED_ARRAY2 |
| #define EMPTY_SIZE2 UNSIZED_ARRAY2 |
| |
| #define QCMINFO_PLACE_BEFORE 0 |
| #define QCMINFO_PLACE_AFTER 1 |
| typedef struct _QCMINFO_IDMAP_PLACEMENT { |
| UINT id; |
| UINT fFlags; |
| } QCMINFO_IDMAP_PLACEMENT; |
| |
| typedef struct _QCMINFO_IDMAP { |
| UINT nMaxIds; |
| QCMINFO_IDMAP_PLACEMENT pIdList[1]; |
| } QCMINFO_IDMAP; |
| |
| typedef struct _QCMINFO { |
| HMENU hmenu; |
| UINT indexMenu; |
| UINT idCmdFirst; |
| UINT idCmdLast; |
| QCMINFO_IDMAP const *pIdMap; |
| } QCMINFO; |
| |
| typedef QCMINFO *LPQCMINFO; |
| |
| #define TBIF_APPEND 0 |
| #define TBIF_PREPEND 1 |
| #define TBIF_REPLACE 2 |
| #define TBIF_DEFAULT 0x00000000 |
| #define TBIF_INTERNETBAR 0x00010000 |
| #define TBIF_STANDARDTOOLBAR 0x00020000 |
| #define TBIF_NOTOOLBAR 0x00030000 |
| |
| typedef struct _TBINFO { |
| UINT cbuttons; |
| UINT uFlags; |
| } TBINFO; |
| |
| typedef struct _DETAILSINFO { |
| LPCITEMIDLIST pidl; |
| int fmt; |
| int cxChar; |
| STRRET str; |
| int iImage; |
| } DETAILSINFO; |
| |
| typedef struct _SFVM_PROPPAGE_DATA { |
| DWORD dwReserved; |
| LPFNADDPROPSHEETPAGE pfn; |
| LPARAM lParam; |
| } SFVM_PROPPAGE_DATA; |
| |
| typedef struct _SFVM_HELPTOPIC_DATA { |
| WCHAR wszHelpFile[MAX_PATH]; |
| WCHAR wszHelpTopic[MAX_PATH]; |
| } SFVM_HELPTOPIC_DATA; |
| |
| #define SFVM_MERGEMENU 1 |
| #define SFVM_INVOKECOMMAND 2 |
| #define SFVM_GETHELPTEXT 3 |
| #define SFVM_GETTOOLTIPTEXT 4 |
| #define SFVM_GETBUTTONINFO 5 |
| #define SFVM_GETBUTTONS 6 |
| #define SFVM_INITMENUPOPUP 7 |
| #define SFVM_FSNOTIFY 14 |
| #define SFVM_WINDOWCREATED 15 |
| #define SFVM_GETDETAILSOF 23 |
| #define SFVM_COLUMNCLICK 24 |
| #define SFVM_QUERYFSNOTIFY 25 |
| #define SFVM_DEFITEMCOUNT 26 |
| #define SFVM_DEFVIEWMODE 27 |
| #define SFVM_UNMERGEMENU 28 |
| #define SFVM_UPDATESTATUSBAR 31 |
| #define SFVM_BACKGROUNDENUM 32 |
| #define SFVM_DIDDRAGDROP 36 |
| #define SFVM_SETISFV 39 |
| #define SFVM_THISIDLIST 41 |
| #define SFVM_ADDPROPERTYPAGES 47 |
| #define SFVM_BACKGROUNDENUMDONE 48 |
| #define SFVM_GETNOTIFY 49 |
| #define SFVM_GETSORTDEFAULTS 53 |
| #define SFVM_SIZE 57 |
| #define SFVM_GETZONE 58 |
| #define SFVM_GETPANE 59 |
| #define SFVM_GETHELPTOPIC 63 |
| #define SFVM_GETANIMATION 68 |
| |
| typedef struct _SFV_CREATE { |
| UINT cbSize; |
| IShellFolder *pshf; |
| IShellView *psvOuter; |
| IShellFolderViewCB *psfvcb; |
| } SFV_CREATE; |
| |
| SHSTDAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv,IShellView **ppsv); |
| |
| typedef HRESULT (CALLBACK *LPFNDFMCALLBACK)(IShellFolder *psf,HWND hwnd,IDataObject *pdtobj,UINT uMsg,WPARAM wParam,LPARAM lParam); |
| |
| #ifdef UNICODE |
| #define SHOpenPropSheet SHOpenPropSheetW |
| #else |
| #define SHOpenPropSheet SHOpenPropSheetA |
| #endif |
| |
| SHSTDAPI CDefFolderMenu_Create2(LPCITEMIDLIST pidlFolder,HWND hwnd,UINT cidl,LPCITEMIDLIST *apidl,IShellFolder *psf,LPFNDFMCALLBACK lpfn,UINT nKeys,const HKEY *ahkeyClsKeys,IContextMenu **ppcm); |
| SHSTDAPI_(WINBOOL) SHOpenPropSheetA(LPCSTR pszCaption,HKEY ahkeys[],UINT cikeys,const CLSID *pclsidDefault,IDataObject *pdtobj,IShellBrowser *psb,LPCSTR pStartPage); |
| SHSTDAPI_(WINBOOL) SHOpenPropSheetW(LPCWSTR pszCaption,HKEY ahkeys[],UINT cikeys,const CLSID *pclsidDefault,IDataObject *pdtobj,IShellBrowser *psb,LPCWSTR pStartPage); |
| |
| #define DFM_MERGECONTEXTMENU 1 |
| #define DFM_INVOKECOMMAND 2 |
| #define DFM_GETDEFSTATICID 14 |
| |
| #define DFM_CMD_PROPERTIES ((UINT)-5) |
| typedef TBINFO *LPTBINFO; |
| typedef DETAILSINFO *PDETAILSINFO; |
| typedef HRESULT (CALLBACK *LPFNVIEWCALLBACK)(IShellView *psvOuter,IShellFolder *psf,HWND hwndMain,UINT uMsg,WPARAM wParam,LPARAM lParam); |
| |
| typedef struct _CSFV { |
| UINT cbSize; |
| IShellFolder *pshf; |
| IShellView *psvOuter; |
| LPCITEMIDLIST pidl; |
| LONG lEvents; |
| LPFNVIEWCALLBACK pfnCallback; |
| FOLDERVIEWMODE fvm; |
| } CSFV,*LPCSFV; |
| |
| #define SFVM_REARRANGE 0x00000001 |
| #define ShellFolderView_ReArrange(_hwnd,_lparam) (WINBOOL)SHShellFolderView_Message(_hwnd,SFVM_REARRANGE,_lparam) |
| |
| #define SFVM_ADDOBJECT 0x00000003 |
| #define ShellFolderView_AddObject(_hwnd,_pidl) (LPARAM)SHShellFolderView_Message(_hwnd,SFVM_ADDOBJECT,(LPARAM)_pidl) |
| |
| #define SFVM_REMOVEOBJECT 0x00000006 |
| #define ShellFolderView_RemoveObject(_hwnd,_pidl) (LPARAM)SHShellFolderView_Message(_hwnd,SFVM_REMOVEOBJECT,(LPARAM)_pidl) |
| |
| #define SFVM_UPDATEOBJECT 0x00000007 |
| #define ShellFolderView_UpdateObject(_hwnd,_ppidl) (LPARAM)SHShellFolderView_Message(_hwnd,SFVM_UPDATEOBJECT,(LPARAM)_ppidl) |
| |
| #define SFVM_GETSELECTEDOBJECTS 0x00000009 |
| #define ShellFolderView_GetSelectedObjects(_hwnd,ppidl) (LPARAM)SHShellFolderView_Message(_hwnd,SFVM_GETSELECTEDOBJECTS,(LPARAM)ppidl) |
| typedef struct _SFV_SETITEMPOS { |
| LPCITEMIDLIST pidl; |
| POINT pt; |
| } SFV_SETITEMPOS,*LPSFV_SETITEMPOS; |
| |
| #define SFVM_SETITEMPOS 0x0000000e |
| #define ShellFolderView_SetItemPos(_hwnd,_pidl,_x,_y) { SFV_SETITEMPOS _sip = {_pidl,{_x,_y}}; SHShellFolderView_Message(_hwnd,SFVM_SETITEMPOS,(LPARAM)(LPSFV_SETITEMPOS)&_sip);} |
| |
| #define SFVM_SETCLIPBOARD 0x00000010 |
| #define ShellFolderView_SetClipboard(_hwnd,_dwEffect) (void)SHShellFolderView_Message(_hwnd,SFVM_SETCLIPBOARD,(LPARAM)(DWORD)(_dwEffect)) |
| #define SFVM_SETPOINTS 0x00000017 |
| #define ShellFolderView_SetPoints(_hwnd,_pdtobj) (void)SHShellFolderView_Message(_hwnd,SFVM_SETPOINTS,(LPARAM)_pdtobj) |
| #include <poppack.h> |
| SHSTDAPI_(IContextMenu *) SHFind_InitMenuPopup(HMENU hmenu,HWND hwndOwner,UINT idCmdFirst,UINT idCmdLast); |
| SHSTDAPI SHCreateShellFolderViewEx(LPCSFV pcsfv,IShellView **ppsv); |
| |
| #define PID_IS_URL 2 |
| #define PID_IS_NAME 4 |
| #define PID_IS_WORKINGDIR 5 |
| #define PID_IS_HOTKEY 6 |
| #define PID_IS_SHOWCMD 7 |
| #define PID_IS_ICONINDEX 8 |
| #define PID_IS_ICONFILE 9 |
| #define PID_IS_WHATSNEW 10 |
| #define PID_IS_AUTHOR 11 |
| #define PID_IS_DESCRIPTION 12 |
| #define PID_IS_COMMENT 13 |
| |
| #define PID_INTSITE_WHATSNEW 2 |
| #define PID_INTSITE_AUTHOR 3 |
| #define PID_INTSITE_LASTVISIT 4 |
| #define PID_INTSITE_LASTMOD 5 |
| #define PID_INTSITE_VISITCOUNT 6 |
| #define PID_INTSITE_DESCRIPTION 7 |
| #define PID_INTSITE_COMMENT 8 |
| #define PID_INTSITE_FLAGS 9 |
| #define PID_INTSITE_CONTENTLEN 10 |
| #define PID_INTSITE_CONTENTCODE 11 |
| #define PID_INTSITE_RECURSE 12 |
| #define PID_INTSITE_WATCH 13 |
| #define PID_INTSITE_SUBSCRIPTION 14 |
| #define PID_INTSITE_URL 15 |
| #define PID_INTSITE_TITLE 16 |
| #define PID_INTSITE_CODEPAGE 18 |
| #define PID_INTSITE_TRACKING 19 |
| #define PID_INTSITE_ICONINDEX 20 |
| #define PID_INTSITE_ICONFILE 21 |
| |
| #define PIDISF_RECENTLYCHANGED 0x00000001 |
| #define PIDISF_CACHEDSTICKY 0x00000002 |
| #define PIDISF_CACHEIMAGES 0x00000010 |
| #define PIDISF_FOLLOWALLLINKS 0x00000020 |
| |
| #define PIDISM_GLOBAL 0 |
| #define PIDISM_WATCH 1 |
| #define PIDISM_DONTWATCH 2 |
| |
| typedef struct { |
| WINBOOL fShowAllObjects : 1; |
| WINBOOL fShowExtensions : 1; |
| WINBOOL fNoConfirmRecycle : 1; |
| WINBOOL fShowSysFiles : 1; |
| WINBOOL fShowCompColor : 1; |
| WINBOOL fDoubleClickInWebView : 1; |
| WINBOOL fDesktopHTML : 1; |
| WINBOOL fWin95Classic : 1; |
| WINBOOL fDontPrettyPath : 1; |
| WINBOOL fShowAttribCol : 1; |
| WINBOOL fMapNetDrvBtn : 1; |
| WINBOOL fShowInfoTip : 1; |
| WINBOOL fHideIcons : 1; |
| WINBOOL fWebView : 1; |
| WINBOOL fFilter : 1; |
| WINBOOL fShowSuperHidden : 1; |
| WINBOOL fNoNetCrawling : 1; |
| DWORD dwWin95Unused; |
| UINT uWin95Unused; |
| LONG lParamSort; |
| int iSortDirection; |
| UINT version; |
| UINT uNotUsed; |
| WINBOOL fSepProcess: 1; |
| WINBOOL fStartPanelOn: 1; |
| WINBOOL fShowStartPage: 1; |
| UINT fSpareFlags : 13; |
| } SHELLSTATEA,*LPSHELLSTATEA; |
| |
| typedef struct { |
| WINBOOL fShowAllObjects : 1; |
| WINBOOL fShowExtensions : 1; |
| WINBOOL fNoConfirmRecycle : 1; |
| WINBOOL fShowSysFiles : 1; |
| WINBOOL fShowCompColor : 1; |
| WINBOOL fDoubleClickInWebView : 1; |
| WINBOOL fDesktopHTML : 1; |
| WINBOOL fWin95Classic : 1; |
| WINBOOL fDontPrettyPath : 1; |
| WINBOOL fShowAttribCol : 1; |
| WINBOOL fMapNetDrvBtn : 1; |
| WINBOOL fShowInfoTip : 1; |
| WINBOOL fHideIcons : 1; |
| WINBOOL fWebView : 1; |
| WINBOOL fFilter : 1; |
| WINBOOL fShowSuperHidden : 1; |
| WINBOOL fNoNetCrawling : 1; |
| DWORD dwWin95Unused; |
| UINT uWin95Unused; |
| LONG lParamSort; |
| int iSortDirection; |
| UINT version; |
| UINT uNotUsed; |
| WINBOOL fSepProcess: 1; |
| WINBOOL fStartPanelOn: 1; |
| WINBOOL fShowStartPage: 1; |
| UINT fSpareFlags : 13; |
| } SHELLSTATEW,*LPSHELLSTATEW; |
| |
| #define SHELLSTATEVERSION_IE4 9 |
| #define SHELLSTATEVERSION_WIN2K 10 |
| |
| #ifdef UNICODE |
| #define SHELLSTATE SHELLSTATEW |
| #define LPSHELLSTATE LPSHELLSTATEW |
| #else |
| #define SHELLSTATE SHELLSTATEA |
| #define LPSHELLSTATE LPSHELLSTATEA |
| #endif |
| |
| #define SHELLSTATE_SIZE_WIN95 FIELD_OFFSET(SHELLSTATE,lParamSort) |
| #define SHELLSTATE_SIZE_NT4 FIELD_OFFSET(SHELLSTATE,version) |
| #define SHELLSTATE_SIZE_IE4 FIELD_OFFSET(SHELLSTATE,uNotUsed) |
| #define SHELLSTATE_SIZE_WIN2K sizeof(SHELLSTATE) |
| |
| SHSTDAPI_(void) SHGetSetSettings(LPSHELLSTATE lpss,DWORD dwMask,WINBOOL bSet); |
| |
| typedef struct { |
| WINBOOL fShowAllObjects : 1; |
| WINBOOL fShowExtensions : 1; |
| WINBOOL fNoConfirmRecycle : 1; |
| WINBOOL fShowSysFiles : 1; |
| WINBOOL fShowCompColor : 1; |
| WINBOOL fDoubleClickInWebView : 1; |
| WINBOOL fDesktopHTML : 1; |
| WINBOOL fWin95Classic : 1; |
| WINBOOL fDontPrettyPath : 1; |
| WINBOOL fShowAttribCol : 1; |
| WINBOOL fMapNetDrvBtn : 1; |
| WINBOOL fShowInfoTip : 1; |
| WINBOOL fHideIcons : 1; |
| UINT fRestFlags : 3; |
| } SHELLFLAGSTATE,*LPSHELLFLAGSTATE; |
| |
| #define SSF_SHOWALLOBJECTS 0x00000001 |
| #define SSF_SHOWEXTENSIONS 0x00000002 |
| #define SSF_HIDDENFILEEXTS 0x00000004 |
| #define SSF_SERVERADMINUI 0x00000004 |
| #define SSF_SHOWCOMPCOLOR 0x00000008 |
| #define SSF_SORTCOLUMNS 0x00000010 |
| #define SSF_SHOWSYSFILES 0x00000020 |
| #define SSF_DOUBLECLICKINWEBVIEW 0x00000080 |
| #define SSF_SHOWATTRIBCOL 0x00000100 |
| #define SSF_DESKTOPHTML 0x00000200 |
| #define SSF_WIN95CLASSIC 0x00000400 |
| #define SSF_DONTPRETTYPATH 0x00000800 |
| #define SSF_SHOWINFOTIP 0x00002000 |
| #define SSF_MAPNETDRVBUTTON 0x00001000 |
| #define SSF_NOCONFIRMRECYCLE 0x00008000 |
| #define SSF_HIDEICONS 0x00004000 |
| #define SSF_FILTER 0x00010000 |
| #define SSF_WEBVIEW 0x00020000 |
| #define SSF_SHOWSUPERHIDDEN 0x00040000 |
| #define SSF_SEPPROCESS 0x00080000 |
| #define SSF_NONETCRAWLING 0x00100000 |
| #define SSF_STARTPANELON 0x00200000 |
| #define SSF_SHOWSTARTPAGE 0x00400000 |
| |
| SHSTDAPI_(void) SHGetSettings(LPSHELLFLAGSTATE lpsfs,DWORD dwMask); |
| SHSTDAPI SHBindToParent(LPCITEMIDLIST pidl,REFIID riid,void **ppv,LPCITEMIDLIST *ppidlLast); |
| SHSTDAPI SHParseDisplayName(LPCWSTR pszName,IBindCtx *pbc,LPITEMIDLIST *ppidl,SFGAOF sfgaoIn,SFGAOF *psfgaoOut); |
| |
| #define SHPPFW_NONE 0x00000000 |
| #define SHPPFW_DEFAULT SHPPFW_DIRCREATE |
| #define SHPPFW_DIRCREATE 0x00000001 |
| #define SHPPFW_ASKDIRCREATE 0x00000002 |
| #define SHPPFW_IGNOREFILENAME 0x00000004 |
| #define SHPPFW_NOWRITECHECK 0x00000008 |
| #define SHPPFW_MEDIACHECKONLY 0x00000010 |
| |
| #ifdef UNICODE |
| #define SHPathPrepareForWrite SHPathPrepareForWriteW |
| #else |
| #define SHPathPrepareForWrite SHPathPrepareForWriteA |
| #endif |
| |
| SHSTDAPI SHPathPrepareForWriteA(HWND hwnd,IUnknown *punkEnableModless,LPCSTR pszPath,DWORD dwFlags); |
| SHSTDAPI SHPathPrepareForWriteW(HWND hwnd,IUnknown *punkEnableModless,LPCWSTR pszPath,DWORD dwFlags); |
| |
| |
| #undef INTERFACE |
| #define INTERFACE INamedPropertyBag |
| DECLARE_INTERFACE_(INamedPropertyBag,IUnknown) { |
| STDMETHOD(QueryInterface) (THIS_ REFIID riid,void **ppv) PURE; |
| STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
| STDMETHOD_(ULONG,Release) (THIS) PURE; |
| STDMETHOD(ReadPropertyNPB) (THIS_ LPCOLESTR pszBagname,LPCOLESTR pszPropName,PROPVARIANT *pVar) PURE; |
| STDMETHOD(WritePropertyNPB)(THIS_ LPCOLESTR pszBagname,LPCOLESTR pszPropName,PROPVARIANT *pVar) PURE; |
| STDMETHOD(RemovePropertyNPB)(THIS_ LPCOLESTR pszBagname,LPCOLESTR pszPropName) PURE; |
| }; |
| |
| #ifdef __urlmon_h__ |
| SHDOCAPI_(DWORD) SoftwareUpdateMessageBox(HWND hWnd,LPCWSTR szDistUnit,DWORD dwFlags,LPSOFTDISTINFO psdi); |
| #endif |
| |
| #ifdef UNICODE |
| #define SHCreateFileExtractIcon SHCreateFileExtractIconW |
| #else |
| #define SHCreateFileExtractIcon SHCreateFileExtractIconA |
| #endif |
| |
| SHSTDAPI SHPropStgCreate(IPropertySetStorage *psstg,REFFMTID fmtid,CLSID *pclsid,DWORD grfFlags,DWORD grfMode,DWORD dwDisposition,IPropertyStorage**ppstg,UINT *puCodePage); |
| SHSTDAPI SHPropStgReadMultiple(IPropertyStorage *pps,UINT uCodePage,ULONG cpspec,PROPSPEC const rgpspec[],PROPVARIANT rgvar[]); |
| SHSTDAPI SHPropStgWriteMultiple(IPropertyStorage *pps,UINT *puCodePage,ULONG cpspec,PROPSPEC const rgpspec[],PROPVARIANT rgvar[],PROPID propidNameFirst); |
| SHSTDAPI SHCreateFileExtractIconA(LPCSTR pszFile,DWORD dwFileAttributes,REFIID riid,void **ppv); |
| SHSTDAPI SHCreateFileExtractIconW(LPCWSTR pszFile,DWORD dwFileAttributes,REFIID riid,void **ppv); |
| |
| #include <pshpack8.h> |
| SHSTDAPI SHLimitInputEdit(HWND hwndEdit,IShellFolder *psf); |
| SHSTDAPI SHMultiFileProperties(IDataObject *pdtobj,DWORD dwFlags); |
| |
| #if (_WIN32_IE >= 0x0600) |
| typedef void (CALLBACK *PFNASYNCICONTASKBALLBACK)(LPCITEMIDLIST pidl,LPVOID pvData,LPVOID pvHint,INT iIconIndex,INT iOpenIconIndex); |
| SHSTDAPI SHMapIDListToImageListIndexAsync(IShellTaskScheduler *pts,IShellFolder *psf,LPCITEMIDLIST pidl,UINT flags,PFNASYNCICONTASKBALLBACK pfn,LPVOID pvData,LPVOID pvHint,int *piIndex,int *piIndexSel); |
| #endif |
| |
| SHSTDAPI_(int) SHMapPIDLToSystemImageListIndex(IShellFolder *pshf,LPCITEMIDLIST pidl,int *piIndexSel); |
| STDAPI SHCLSIDFromString(PCWSTR lpsz,CLSID *pclsid); |
| STDAPI SHFlushClipboard(void); |
| STDAPI SHCreateQueryCancelAutoPlayMoniker(IMoniker**ppmoniker); |
| HINSTANCE WINAPI SHGetShellStyleHInstance(void); |
| STDAPI_(void) PerUserInit(void); |
| WINSHELLAPI WINBOOL WINAPI SHRunControlPanel(LPCWSTR lpcszCmdLine,HWND hwndMsgParent); |
| WINSHELLAPI int WINAPI PickIconDlg(HWND hwnd,LPWSTR pszIconPath,UINT cbIconPath,int *piIconIndex); |
| |
| typedef struct tagAAMENUFILENAME { |
| SHORT cbTotal; |
| BYTE rgbReserved[12]; |
| WCHAR szFileName[1]; |
| } AASHELLMENUFILENAME,*LPAASHELLMENUFILENAME; |
| |
| typedef struct tagAASHELLMENUITEM { |
| void *lpReserved1; |
| int iReserved; |
| UINT uiReserved; |
| LPAASHELLMENUFILENAME lpName; |
| LPWSTR psz; |
| } AASHELLMENUITEM,*LPAASHELLMENUITEM; |
| |
| STDAPI SHGetAttributesFromDataObject(IDataObject *pdo,DWORD dwAttributeMask,DWORD *pdwAttributes,UINT *pcItems); |
| |
| #include <poppack.h> |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #include <poppack.h> |
| |
| SHDOCAPI_(WINBOOL) ImportPrivacySettings(LPCWSTR szFilename,WINBOOL *pfParsePrivacyPreferences,WINBOOL *pfParsePerSiteRules); |
| #ifndef IEnumPrivacyRecords |
| typedef struct IEnumPrivacyRecords IEnumPrivacyRecords; |
| #endif |
| SHDOCAPI DoPrivacyDlg(HWND hwndParent,LPOLESTR pszUrl,IEnumPrivacyRecords *pPrivacyEnum,WINBOOL fReportAllSites); |
| #endif |