📄 shlobj.h
字号:
#endif#define INTERFACE IShellViewDECLARE_INTERFACE_(IShellView,IOleWindow){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(GetWindow)(THIS_ HWND*) PURE; STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; STDMETHOD(TranslateAccelerator) (THIS_ LPMSG) PURE;#ifdef _FIX_ENABLEMODELESS_CONFLICT STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE;#else STDMETHOD(EnableModeless)(THIS_ BOOL) PURE;#endif STDMETHOD(UIActivate)(THIS_ UINT) PURE; STDMETHOD(Refresh) (THIS) PURE; STDMETHOD(CreateViewWindow)(THIS_ IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*) PURE; STDMETHOD(DestroyViewWindow)(THIS) PURE; STDMETHOD(GetCurrentInfo)(THIS_ LPFOLDERSETTINGS) PURE; STDMETHOD(AddPropertySheetPages)(THIS_ DWORD,LPFNADDPROPSHEETPAGE,LPARAM) PURE; STDMETHOD(SaveViewState)(THIS) PURE; STDMETHOD(SelectItem)(THIS_ LPCITEMIDLIST,UINT) PURE; STDMETHOD(GetItemObject)(THIS_ UINT,REFIID,PVOID*) PURE;};#undef INTERFACE#ifdef COBJMACROS#define IShellView_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)#define IShellView_AddRef(T) (T)->lpVtbl->AddRef(T)#define IShellView_Release(T) (T)->lpVtbl->Release(T)#define IShellView_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)#define IShellView_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)#define IShellView_TranslateAccelerator(T,a) (T)->lpVtbl->TranslateAccelerator(T,a)#ifdef _FIX_ENABLEMODELESS_CONFLICT#define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModelessSV(T,a)#else#define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModeless(T,a)#endif#define IShellView_UIActivate(T,a) (T)->lpVtbl->UIActivate(T,a)#define IShellView_Refresh(T) (T)->lpVtbl->Refresh(T)#define IShellView_CreateViewWindow(T,a,b,c,d,e) (T)->lpVtbl->CreateViewWindow(T,a,b,c,d,e)#define IShellView_DestroyViewWindow(T) (T)->lpVtbl->DestroyViewWindow(T)#define IShellView_GetCurrentInfo(T,a) (T)->lpVtbl->GetCurrentInfo(T,a)#define IShellView_AddPropertySheetPages(T,a,b,c) (T)->lpVtbl->AddPropertySheetPages(T,a,b,c)#define IShellView_SaveViewState(T) (T)->lpVtbl->SaveViewState(T)#define IShellView_SelectItem(T,a,b) (T)->lpVtbl->SelectItem(T,a,b)#define IShellView_GetItemObject(T,a,b,c) (T)->lpVtbl->GetItemObject(T,a,b,c)#endif#define INTERFACE ICommDlgBrowserDECLARE_INTERFACE_(ICommDlgBrowser,IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(OnDefaultCommand)(THIS_ IShellView*) PURE; STDMETHOD(OnStateChange)(THIS_ IShellView*,ULONG) PURE; STDMETHOD(IncludeObject)(THIS_ IShellView*,LPCITEMIDLIST) PURE;};#undef INTERFACEtypedef ICommDlgBrowser *LPCOMMDLGBROWSER;#ifdef COBJMACROS#define ICommDlgBrowser_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)#define ICommDlgBrowser_AddRef(T) (T)->lpVtbl->AddRef(T)#define ICommDlgBrowser_Release(T) (T)->lpVtbl->Release(T)#define ICommDlgBrowser_OnDefaultCommand(T,a) (T)->lpVtbl->OnDefaultCommand(T,a)#define ICommDlgBrowser_OnStateChange(T,a,b) (T)->lpVtbl->OnStateChange(T,a,b)#define ICommDlgBrowser_IncludeObject(T,a,b) (T)->lpVtbl->IncludeObject(T,a,b)#endiftypedef GUID SHELLVIEWID;typedef struct _SV2CVW2_PARAMS { DWORD cbSize; IShellView *psvPrev; FOLDERSETTINGS const *pfs; IShellBrowser *psbOwner; RECT *prcView; SHELLVIEWID const *pvid; HWND hwndView;} SV2CVW2_PARAMS,*LPSV2CVW2_PARAMS;#define INTERFACE IShellView2DECLARE_INTERFACE_(IShellView2,IShellView){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(GetWindow)(THIS_ HWND*) PURE; STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; STDMETHOD(TranslateAccelerator) (THIS_ LPMSG) PURE;#ifdef _FIX_ENABLEMODELESS_CONFLICT STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE;#else STDMETHOD(EnableModeless)(THIS_ BOOL) PURE;#endif STDMETHOD(UIActivate)(THIS_ UINT) PURE; STDMETHOD(Refresh) (THIS) PURE; STDMETHOD(CreateViewWindow)(THIS_ IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*) PURE; STDMETHOD(DestroyViewWindow)(THIS) PURE; STDMETHOD(GetCurrentInfo)(THIS_ LPFOLDERSETTINGS) PURE; STDMETHOD(AddPropertySheetPages)(THIS_ DWORD,LPFNADDPROPSHEETPAGE,LPARAM) PURE; STDMETHOD(SaveViewState)(THIS) PURE; STDMETHOD(SelectItem)(THIS_ LPCITEMIDLIST,UINT) PURE; STDMETHOD(GetItemObject)(THIS_ UINT,REFIID,PVOID*) PURE; STDMETHOD(GetView)(THIS_ SHELLVIEWID*,ULONG) PURE; STDMETHOD(CreateViewWindow2)(THIS_ LPSV2CVW2_PARAMS) PURE;};#undef INTERFACE#define INTERFACE IShellExecuteHookADECLARE_INTERFACE_(IShellExecuteHookA,IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOA) PURE;};#undef INTERFACE#define INTERFACE IShellExecuteHookWDECLARE_INTERFACE_(IShellExecuteHookW,IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOW) PURE;};#undef INTERFACE#define INTERFACE IShellIconDECLARE_INTERFACE_(IShellIcon,IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(GetIconOf)(THIS_ LPCITEMIDLIST,UINT,PINT) PURE;};#undef INTERFACEtypedef IShellIcon *LPSHELLICON;typedef struct { BOOL fShowAllObjects : 1; BOOL fShowExtensions : 1; BOOL fNoConfirmRecycle : 1; BOOL fShowSysFiles : 1; BOOL fShowCompColor : 1; BOOL fDoubleClickInWebView : 1; BOOL fDesktopHTML : 1; BOOL fWin95Classic : 1; BOOL fDontPrettyPath : 1; BOOL fShowAttribCol : 1; BOOL fMapNetDrvBtn : 1; BOOL fShowInfoTip : 1; BOOL fHideIcons : 1; UINT fRestFlags : 3;} SHELLFLAGSTATE, * LPSHELLFLAGSTATE;#define SSF_SHOWALLOBJECTS 0x1#define SSF_SHOWEXTENSIONS 0x2#define SSF_SHOWCOMPCOLOR 0x8#define SSF_SHOWSYSFILES 0x20#define SSF_DOUBLECLICKINWEBVIEW 0x80#define SSF_SHOWATTRIBCOL 0x100#define SSF_DESKTOPHTML 0x200#define SSF_WIN95CLASSIC 0x400#define SSF_DONTPRETTYPATH 0x800#define SSF_MAPNETDRVBUTTON 0x1000#define SSF_SHOWINFOTIP 0x2000#define SSF_HIDEICONS 0x4000#define SSF_NOCONFIRMRECYCLE 0x8000#define INTERFACE IShellIconOverlayIdentifierDECLARE_INTERFACE_(IShellIconOverlayIdentifier,IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(IsMemberOf)(THIS_ LPCWSTR,DWORD) PURE; STDMETHOD(GetOverlayInfo)(THIS_ LPWSTR,int,int*,DWORD*) PURE; STDMETHOD(GetPriority)(THIS_ int*) PURE;};#undef INTERFACE#define ISIOI_ICONFILE 0x00000001#define ISIOI_ICONINDEX 0x00000002#if (_WIN32_WINNT >= 0x0500) /* W2K */typedef struct { BOOL fShowAllObjects : 1; BOOL fShowExtensions : 1; BOOL fNoConfirmRecycle : 1; BOOL fShowSysFiles : 1; BOOL fShowCompColor : 1; BOOL fDoubleClickInWebView : 1; BOOL fDesktopHTML : 1; BOOL fWin95Classic : 1; BOOL fDontPrettyPath : 1; BOOL fShowAttribCol : 1; BOOL fMapNetDrvBtn : 1; BOOL fShowInfoTip : 1; BOOL fHideIcons : 1; BOOL fWebView : 1; BOOL fFilter : 1; BOOL fShowSuperHidden : 1; BOOL fNoNetCrawling : 1; DWORD dwWin95Unused; UINT uWin95Unused; LONG lParamSort; int iSortDirection; UINT version; UINT uNotUsed; BOOL fSepProcess : 1; BOOL fStartPanelOn : 1; BOOL fShowStartPage : 1; UINT fSpareFlags : 13;} SHELLSTATE, *LPSHELLSTATE;#endif /* _WIN32_WINNT >= 0x0500 */#if (_WIN32_IE >= 0x0500)#pragma pack(push,8)typedef struct{ SIZE sizeDragImage; POINT ptOffset; HBITMAP hbmpDragImage; COLORREF crColorKey;} SHDRAGIMAGE, *LPSHDRAGIMAGE;#pragma pack(pop)#define INTERFACE IDragSourceHelperDECLARE_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;};#undef INTERFACE#define INTERFACE IDropTargetHelperDECLARE_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_ BOOL fShow) PURE;};#undef INTERFACE#endif /* _WIN32_IE >= 0x0500 */#if (_WIN32_WINNT >= 0x0500)BOOL WINAPI PathResolve(LPWSTR, LPCWSTR*, UINT);#define PRF_VERIFYEXISTS 0x0001#define PRF_TRYPROGRAMEXTENSIONS (0x0002 | PRF_VERIFYEXISTS)#define PRF_FIRSTDIRDEF 0x0004#define PRF_DONTFINDLNK 0x0008#endifvoid WINAPI SHAddToRecentDocs(UINT,PCVOID);LPITEMIDLIST WINAPI SHBrowseForFolderA(PBROWSEINFOA);LPITEMIDLIST WINAPI SHBrowseForFolderW(PBROWSEINFOW);void WINAPI SHChangeNotify(LONG,UINT,PCVOID,PCVOID);HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int);HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int);HRESULT WINAPI SHGetDesktopFolder(LPSHELLFOLDER*);HRESULT WINAPI SHGetInstanceExplorer(IUnknown **);HRESULT WINAPI SHGetMalloc(LPMALLOC*);BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST,LPSTR);BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST,LPWSTR);HRESULT WINAPI SHGetSpecialFolderLocation(HWND,int,LPITEMIDLIST*);HRESULT WINAPI SHLoadInProc(REFCLSID);#if (_WIN32_IE >= 0x0400)BOOL WINAPI SHGetSpecialFolderPathA(HWND,LPSTR,int,BOOL);BOOL WINAPI SHGetSpecialFolderPathW(HWND,LPWSTR,int,BOOL);#endif /* SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K */HRESULT WINAPI SHGetFolderPathA(HWND,int,HANDLE,DWORD,LPSTR);HRESULT WINAPI SHGetFolderPathW(HWND,int,HANDLE,DWORD,LPWSTR);#if (_WIN32_WINDOWS >= 0x0490) || (_WIN32_WINNT >= 0x0500) /* ME or W2K */HRESULT WINAPI SHGetFolderLocation(HWND,int,HANDLE,DWORD,LPITEMIDLIST*);#endif#if (_WIN32_WINNT >= 0x0500)INT WINAPI SHCreateDirectoryExA(HWND,LPCSTR,LPSECURITY_ATTRIBUTES);INT WINAPI SHCreateDirectoryExW(HWND,LPCWSTR,LPSECURITY_ATTRIBUTES);HRESULT WINAPI SHBindToParent(LPCITEMIDLIST,REFIID,VOID**,LPCITEMIDLIST*);#endif#if (_WIN32_WINNT >= 0x0501) /* XP */HRESULT WINAPI SHGetFolderPathAndSubDirA(HWND,int,HANDLE,DWORD,LPCSTR,LPSTR);HRESULT WINAPI SHGetFolderPathAndSubDirW(HWND,int,HANDLE,DWORD,LPCWSTR,LPWSTR);#endifvoid WINAPI SHGetSettings(LPSHELLFLAGSTATE,DWORD);#if (_WIN32_WINNT >= 0x0500) /* W2K */void WINAPI SHGetSetSettings(LPSHELLSTATE,DWORD,BOOL);#endif#if (_WIN32_WINNT >= 0x0500) /* W2K */BOOL WINAPI ILIsEqual(LPCITEMIDLIST, LPCITEMIDLIST);BOOL WINAPI ILIsParent(LPCITEMIDLIST, LPCITEMIDLIST, BOOL);BOOL WINAPI ILRemoveLastID(LPITEMIDLIST);HRESULT WINAPI ILLoadFromStream(IStream*, LPITEMIDLIST*);HRESULT WINAPI ILSaveToStream(IStream*, LPCITEMIDLIST);LPITEMIDLIST WINAPI ILAppendID(LPITEMIDLIST, LPCSHITEMID, BOOL);LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST);LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST);LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST, LPCITEMIDLIST);LPITEMIDLIST WINAPI ILFindChild(LPCITEMIDLIST, LPCITEMIDLIST);LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST);LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST);UINT WINAPI ILGetSize(LPCITEMIDLIST);void WINAPI ILFree(LPITEMIDLIST);HRESULT WINAPI SHCoCreateInstance(LPCWSTR,REFCLSID,IUnknown*,REFIID,void**);#endif#ifdef UNICODEtypedef IShellExecuteHookW IShellExecuteHook;typedef IShellLinkW IShellLink;typedef BROWSEINFOW BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO;#define SHBrowseForFolder SHBrowseForFolderW#define SHGetDataFromIDList SHGetDataFromIDListW#define SHGetPathFromIDList SHGetPathFromIDListW#if (_WIN32_IE >= 0x0400)#define SHGetSpecialFolderPath SHGetSpecialFolderPathW#endif#define SHGetFolderPath SHGetFolderPathW #if (_WIN32_WINNT >= 0x0500)#define SHCreateDirectoryEx SHCreateDirectoryExW#endif#if (_WIN32_WINNT >= 0x0501)#define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirW#endif#define FILEDESCRIPTOR FILEDESCRIPTORW#define LPFILEDESCRIPTOR LPFILEDESCRIPTORW#define FILEGROUPDESCRIPTOR FILEGROUPDESCRIPTORW#define LPFILEGROUPDESCRIPTOR LPFILEGROUPDESCRIPTORW#elsetypedef IShellExecuteHookA IShellExecuteHook;typedef IShellLinkA IShellLink;typedef BROWSEINFOA BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO;#define SHBrowseForFolder SHBrowseForFolderA#define SHGetDataFromIDList SHGetDataFromIDListA#define SHGetPathFromIDList SHGetPathFromIDListA#if (_WIN32_IE >= 0x0400)#define SHGetSpecialFolderPath SHGetSpecialFolderPathA#endif#define SHGetFolderPath SHGetFolderPathA#if (_WIN32_WINNT >= 0x0500)#define SHCreateDirectoryEx SHCreateDirectoryExA#endif#if (_WIN32_WINNT >= 0x0501)#define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirA#endif#define FILEDESCRIPTOR FILEDESCRIPTORA#define LPFILEDESCRIPTOR LPFILEDESCRIPTORA#define FILEGROUPDESCRIPTOR FILEGROUPDESCRIPTORA#define LPFILEGROUPDESCRIPTOR LPFILEGROUPDESCRIPTORA#endif /* UNICODE */DWORD WINAPI SHFormatDrive(HWND,UINT,UINT,UINT);#define SHFMT_ID_DEFAULT 0xFFFF#define SHFMT_OPT_FULL 1#define SHFMT_OPT_SYSONLY 2#define SHFMT_ERROR 0xFFFFFFFF#define SHFMT_CANCEL 0xFFFFFFFE#define SHFMT_NOFORMAT 0xFFFFFFFD#pragma pack(pop)#ifdef __cplusplus}#endif#endif /* _SHLOBJ_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -