⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shlobj.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 4 页
字号:
	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 + -