📄 shlobj.h
字号:
LPCSTR lpVerb; LPCSTR lpParameters; LPCSTR lpDirectory; int nShow; DWORD dwHotKey; HANDLE hIcon;} CMINVOKECOMMANDINFO,*LPCMINVOKECOMMANDINFO;typedef struct _DROPFILES { DWORD pFiles; POINT pt; BOOL fNC; BOOL fWide;} DROPFILES,*LPDROPFILES;typedef enum tagSHGDN { SHGDN_NORMAL=0, SHGDN_INFOLDER, SHGDN_FOREDITING=0x1000, SHGDN_INCLUDE_NONFILESYS=0x2000, SHGDN_FORADDRESSBAR=0x4000, SHGDN_FORPARSING=0x8000} SHGNO;typedef enum tagSHCONTF { SHCONTF_FOLDERS = 32, SHCONTF_NONFOLDERS = 64, SHCONTF_INCLUDEHIDDEN = 128, SHCONTF_INIT_ON_FIRST_NEXT = 256, SHCONTF_NETPRINTERSRCH = 512, SHCONTF_SHAREABLE = 1024, SHCONTF_STORAGE = 2048} SHCONTF;typedef struct _STRRET { UINT uType; _ANONYMOUS_UNION union { LPWSTR pOleStr; UINT uOffset; char cStr[MAX_PATH]; } DUMMYUNIONNAME;} STRRET,*LPSTRRET;typedef enum { FD_CLSID=1,FD_SIZEPOINT=2,FD_ATTRIBUTES=4,FD_CREATETIME=8,FD_ACCESSTIME=16, FD_WRITESTIME=32,FD_FILESIZE=64,FD_LINKUI=0x8000} FD_FLAGS;typedef struct _FILEDESCRIPTORA { DWORD dwFlags; CLSID clsid; SIZEL sizel; POINTL pointl; DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; CHAR cFileName[MAX_PATH];} FILEDESCRIPTORA,*LPFILEDESCRIPTORA;typedef struct _FILEDESCRIPTORW { DWORD dwFlags; CLSID clsid; SIZEL sizel; POINTL pointl; DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; WCHAR cFileName[MAX_PATH];} FILEDESCRIPTORW,*LPFILEDESCRIPTORW;typedef struct _FILEGROUPDESCRIPTORA { UINT cItems; FILEDESCRIPTORA fgd[1];} FILEGROUPDESCRIPTORA,*LPFILEGROUPDESCRIPTORA;typedef struct _FILEGROUPDESCRIPTORW { UINT cItems; FILEDESCRIPTORW fgd[1];} FILEGROUPDESCRIPTORW,*LPFILEGROUPDESCRIPTORW;typedef enum { SLR_NO_UI=1, SLR_ANY_MATCH=2, SLR_UPDATE=4, SLR_NOUPDATE=8, SLR_NOSEARCH=16, SLR_NOTRACK=32, SLR_NOLINKINFO=64, SLR_INVOKE_MSI=128} SLR_FLAGS;typedef enum { SLGP_SHORTPATH=1, SLGP_UNCPRIORITY=2, SLGP_RAWPATH=4} SLGP_FLAGS;typedef PBYTE LPVIEWSETTINGS;typedef enum { FWF_AUTOARRANGE=1,FWF_ABBREVIATEDNAMES=2,FWF_SNAPTOGRID=4,FWF_OWNERDATA=8, FWF_BESTFITWINDOW=16,FWF_DESKTOP=32,FWF_SINGLESEL=64,FWF_NOSUBFOLDERS=128, FWF_TRANSPARENT=256,FWF_NOCLIENTEDGE=512,FWF_NOSCROLL=0x400,FWF_ALIGNLEFT=0x800, FWF_SINGLECLICKACTIVATE=0x8000} FOLDERFLAGS;typedef enum { FVM_ICON=1, FVM_SMALLICON, FVM_LIST, FVM_DETAILS} FOLDERVIEWMODE;typedef struct { UINT ViewMode; UINT fFlags;} FOLDERSETTINGS,*LPFOLDERSETTINGS;typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;typedef struct { DWORD cbSize; HWND hwndOwner; int iShow; DWORD dwFlags; RECT rect; LPUNKNOWN punkRel; OLECHAR strNewFile[MAX_PATH];} FVSHOWINFO,*LPFVSHOWINFO;typedef struct _NRESARRAY { UINT cItems; NETRESOURCE nr[1];} NRESARRAY, *LPNRESARRAY;enum { SBSC_HIDE,SBSC_SHOW,SBSC_TOGGLE,SBSC_QUERY };enum { SBCMDID_ENABLESHOWTREE,SBCMDID_SHOWCONTROL,SBCMDID_CANCELNAVIGATION, SBCMDID_MAYSAVECHANGES,SBCMDID_SETHLINKFRAME,SBCMDID_ENABLESTOP,SBCMDID_OPTIONS};typedef enum { SVUIA_DEACTIVATE,SVUIA_ACTIVATE_NOFOCUS,SVUIA_ACTIVATE_FOCUS, SVUIA_INPLACEACTIVATE} SVUIA_STATUS;#if (_WIN32_IE >= 0x0500)typedef struct tagEXTRASEARCH{ GUID guidSearch; WCHAR wszFriendlyName[80]; WCHAR wszUrl[2084];} EXTRASEARCH, *LPEXTRASEARCH;typedef DWORD SHCOLSTATEF;typedef struct{ GUID fmtid; DWORD pid;} SHCOLUMNID, *LPSHCOLUMNID;typedef const SHCOLUMNID *LPCSHCOLUMNID;typedef struct _SHELLDETAILS{ int fmt; int cxChar; STRRET str;} SHELLDETAILS, *LPSHELLDETAILS;typedef struct{ LPITEMIDLIST pidlTargetFolder; WCHAR szTargetParsingName[MAX_PATH]; WCHAR szNetworkProvider[MAX_PATH]; DWORD dwAttributes; int csidl;} PERSIST_FOLDER_TARGET_INFO;typedef enum { SHGFP_TYPE_CURRENT = 0, SHGFP_TYPE_DEFAULT = 1,} SHGFP_TYPE;#endifDECLARE_ENUMERATOR_(IEnumIDList,LPITEMIDLIST);typedef IEnumIDList *LPENUMIDLIST;#ifdef COBJMACROS#define IEnumIDList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)#define IEnumIDList_Release(T) (T)->lpVtbl->AddRef(T)#define IEnumIDList_AddRef(T) (T)->lpVtbl->Release(T)#define IEnumIDList_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c)#define IEnumIDList_Skip(T,a) (T)->lpVtbl->Skip(T,a)#define IEnumIDList_Reset(T) (T)->lpVtbl->Reset(T)#define IEnumIDList_Clone(T,a) (T)->lpVtbl->Clone(T,a)#endif#define INTERFACE IObjMgrDECLARE_INTERFACE_(IObjMgr, IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(Append)(THIS_ IUnknown*) PURE; STDMETHOD(Remove)(THIS_ IUnknown*) PURE;};#undef INTERFACE#define INTERFACE IContextMenuDECLARE_INTERFACE_(IContextMenu,IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE; STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE; STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE;};#undef INTERFACEtypedef IContextMenu *LPCONTEXTMENU;#ifdef COBJMACROS#define IContextMenu_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)#define IContextMenu_AddRef(T) (T)->lpVtbl->AddRef(T)#define IContextMenu_Release(T) (T)->lpVtbl->Release(T)#define IContextMenu_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)#define IContextMenu_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)#define IContextMenu_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)#endif#define INTERFACE IContextMenu2DECLARE_INTERFACE_(IContextMenu2,IContextMenu){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE; STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE; STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE; STDMETHOD(HandleMenuMsg)(THIS_ UINT,WPARAM,LPARAM) PURE;};#undef INTERFACEtypedef IContextMenu2 *LPCONTEXTMENU2;#define INTERFACE IContextMenu3DECLARE_INTERFACE_(IContextMenu3,IContextMenu2){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE; STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE; STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE; STDMETHOD(HandleMenuMsg)(THIS_ UINT,WPARAM,LPARAM) PURE; STDMETHOD(HandleMenuMsg2)(THIS_ UINT,WPARAM,LPARAM,LRESULT*) PURE;};#undef INTERFACEtypedef IContextMenu3 *LPCONTEXTMENU3;#if (_WIN32_IE >= 0x0500)#pragma pack(push,8)typedef struct { ULONG dwFlags; ULONG dwReserved; WCHAR wszFolder[MAX_PATH];} SHCOLUMNINIT,*LPSHCOLUMNINIT;typedef const SHCOLUMNINIT* LPCSHCOLUMNINIT;typedef struct { ULONG dwFlags; DWORD dwFileAttributes; ULONG dwReserved; WCHAR *pwszExt; WCHAR wszFile[MAX_PATH];} SHCOLUMNDATA,*LPSHCOLUMNDATA;typedef const SHCOLUMNDATA* LPCSHCOLUMNDATA;#pragma pack(pop)#define MAX_COLUMN_NAME_LEN 80#define MAX_COLUMN_DESC_LEN 128#pragma pack(push,1)typedef struct { SHCOLUMNID scid; VARTYPE vt; DWORD fmt; UINT cChars; DWORD csFlags; WCHAR wszTitle[MAX_COLUMN_NAME_LEN]; WCHAR wszDescription[MAX_COLUMN_DESC_LEN];} SHCOLUMNINFO,*LPSHCOLUMNINFO;typedef const SHCOLUMNINFO* LPCSHCOLUMNINFO;#pragma pack(pop)typedef enum { SHCOLSTATE_TYPE_STR = 0x00000001, SHCOLSTATE_TYPE_INT = 0x00000002, SHCOLSTATE_TYPE_DATE = 0x00000003, SHCOLSTATE_TYPEMASK = 0x0000000f, SHCOLSTATE_ONBYDEFAULT = 0x00000010, SHCOLSTATE_SLOW = 0x00000020, SHCOLSTATE_EXTENDED = 0x00000040, SHCOLSTATE_SECONDARYUI = 0x00000080, SHCOLSTATE_HIDDEN = 0x00000100, SHCOLSTATE_PREFER_VARCMP = 0x00000200} SHCOLSTATE;#ifdef COBJMACROS#define IContextMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)#define IContextMenu2_AddRef(T) (T)->lpVtbl->AddRef(T)#define IContextMenu2_Release(T) (T)->lpVtbl->Release(T)#define IContextMenu2_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)#define IContextMenu2_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)#define IContextMenu2_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)#define IContextMenu2_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c)#endif#ifdef COBJMACROS#define IContextMenu3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)#define IContextMenu3_AddRef(T) (T)->lpVtbl->AddRef(T)#define IContextMenu3_Release(T) (T)->lpVtbl->Release(T)#define IContextMenu3_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)#define IContextMenu3_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)#define IContextMenu3_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)#define IContextMenu3_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c)#define IContextMenu3_HandleMenuMsg2(T,a,b,c,d) (T)->lpVtbl->HandleMenuMsg(T,a,b,c,d)#endif#define INTERFACE IColumnProviderDECLARE_INTERFACE_(IColumnProvider,IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(Initialize)(THIS_ LPCSHCOLUMNINIT) PURE; STDMETHOD(GetColumnInfo)(THIS_ DWORD,SHCOLUMNINFO*) PURE; STDMETHOD(GetItemData)(THIS_ LPCSHCOLUMNID,LPCSHCOLUMNDATA,VARIANT*) PURE;};#undef INTERFACE#endif /* _WIN32_IE >= 0x0500 */#define INTERFACE IQueryInfoDECLARE_INTERFACE_(IQueryInfo,IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(GetInfoTip)(THIS_ DWORD,WCHAR**) PURE; STDMETHOD(GetInfoFlags)(THIS_ DWORD*) PURE;};#undef INTERFACE#define INTERFACE IShellExtInitDECLARE_INTERFACE_(IShellExtInit, IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST,LPDATAOBJECT,HKEY) PURE;};#undef INTERFACEtypedef IShellExtInit *LPSHELLEXTINIT;#define INTERFACE IShellPropSheetExtDECLARE_INTERFACE_(IShellPropSheetExt, IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(AddPages)(THIS_ LPFNADDPROPSHEETPAGE,LPARAM) PURE; STDMETHOD(ReplacePage)(THIS_ UINT,LPFNADDPROPSHEETPAGE,LPARAM) PURE;};#undef INTERFACEtypedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;#define INTERFACE IExtractIconADECLARE_INTERFACE_(IExtractIconA, IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(GetIconLocation)(THIS_ UINT,LPSTR,UINT,int*,PUINT) PURE; STDMETHOD(Extract)(THIS_ LPCSTR,UINT,HICON*,HICON*,UINT) PURE;};#undef INTERFACEtypedef IExtractIconA *LPEXTRACTICONA;#ifdef COBJMACROS#define IExtractIconA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)#define IExtractIconA_AddRef(T) (T)->lpVtbl->AddRef(T)#define IExtractIconA_Release(T) (T)->lpVtbl->Release(T)#define IExtractIconA_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e)#define IExtractIconA_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e)#endif#define INTERFACE IExtractIconWDECLARE_INTERFACE_(IExtractIconW, IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(GetIconLocation)(THIS_ UINT,LPWSTR,UINT,int*,PUINT) PURE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -