2796 lines
97 KiB
C
2796 lines
97 KiB
C
|
/**
|
||
|
* 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 within this package.
|
||
|
*/
|
||
|
#ifndef _SHLOBJ_H_
|
||
|
#define _SHLOBJ_H_
|
||
|
|
||
|
#ifndef _WINRESRC_
|
||
|
#ifndef _WIN32_IE
|
||
|
#define _WIN32_IE 0x0501
|
||
|
#else
|
||
|
#if (_WIN32_IE < 0x0501)
|
||
|
#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(PCWSTR 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
|