📄 shlobj.h
字号:
#undef INTERFACE
#define INTERFACE IShellLinkA
DECLARE_INTERFACE_(IShellLinkA, IUnknown) // sl
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IShellLink methods ***
STDMETHOD(GetPath)(THIS_ LPSTR pszFile, int cchMaxPath, WIN32_FIND_DATAA *pfd, DWORD fFlags) PURE;
STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST * ppidl) PURE;
STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE;
STDMETHOD(GetDescription)(THIS_ LPSTR pszName, int cchMaxName) PURE;
STDMETHOD(SetDescription)(THIS_ LPCSTR pszName) PURE;
STDMETHOD(GetWorkingDirectory)(THIS_ LPSTR pszDir, int cchMaxPath) PURE;
STDMETHOD(SetWorkingDirectory)(THIS_ LPCSTR pszDir) PURE;
STDMETHOD(GetArguments)(THIS_ LPSTR pszArgs, int cchMaxPath) PURE;
STDMETHOD(SetArguments)(THIS_ LPCSTR pszArgs) PURE;
STDMETHOD(GetHotkey)(THIS_ WORD *pwHotkey) PURE;
STDMETHOD(SetHotkey)(THIS_ WORD wHotkey) PURE;
STDMETHOD(GetShowCmd)(THIS_ int *piShowCmd) PURE;
STDMETHOD(SetShowCmd)(THIS_ int iShowCmd) PURE;
STDMETHOD(GetIconLocation)(THIS_ LPSTR pszIconPath, int cchIconPath, int *piIcon) PURE;
STDMETHOD(SetIconLocation)(THIS_ LPCSTR pszIconPath, int iIcon) PURE;
STDMETHOD(SetRelativePath)(THIS_ LPCSTR pszPathRel, DWORD dwReserved) PURE;
STDMETHOD(Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE;
STDMETHOD(SetPath)(THIS_ LPCSTR pszFile) PURE;
};
#undef INTERFACE
#define INTERFACE IShellLinkW
DECLARE_INTERFACE_(IShellLinkW, IUnknown) // sl
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IShellLink methods ***
STDMETHOD(GetPath)(THIS_ LPWSTR pszFile, int cchMaxPath, WIN32_FIND_DATAW *pfd, DWORD fFlags) PURE;
STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST * ppidl) PURE;
STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE;
STDMETHOD(GetDescription)(THIS_ LPWSTR pszName, int cchMaxName) PURE;
STDMETHOD(SetDescription)(THIS_ LPCWSTR pszName) PURE;
STDMETHOD(GetWorkingDirectory)(THIS_ LPWSTR pszDir, int cchMaxPath) PURE;
STDMETHOD(SetWorkingDirectory)(THIS_ LPCWSTR pszDir) PURE;
STDMETHOD(GetArguments)(THIS_ LPWSTR pszArgs, int cchMaxPath) PURE;
STDMETHOD(SetArguments)(THIS_ LPCWSTR pszArgs) PURE;
STDMETHOD(GetHotkey)(THIS_ WORD *pwHotkey) PURE;
STDMETHOD(SetHotkey)(THIS_ WORD wHotkey) PURE;
STDMETHOD(GetShowCmd)(THIS_ int *piShowCmd) PURE;
STDMETHOD(SetShowCmd)(THIS_ int iShowCmd) PURE;
STDMETHOD(GetIconLocation)(THIS_ LPWSTR pszIconPath, int cchIconPath, int *piIcon) PURE;
STDMETHOD(SetIconLocation)(THIS_ LPCWSTR pszIconPath, int iIcon) PURE;
STDMETHOD(SetRelativePath)(THIS_ LPCWSTR pszPathRel, DWORD dwReserved) PURE;
STDMETHOD(Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE;
STDMETHOD(SetPath)(THIS_ LPCWSTR pszFile) PURE;
};
#ifdef _INC_SHELLAPI /* for LPSHELLEXECUTEINFO */
//===========================================================================
//
// IShellExecuteHook Interface
//
//===========================================================================
#undef INTERFACE
#define INTERFACE IShellExecuteHookA
DECLARE_INTERFACE_(IShellExecuteHookA, IUnknown) // shexhk
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
// *** IShellExecuteHookA methods ***
STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOA pei) PURE;
};
#undef INTERFACE
#define INTERFACE IShellExecuteHookW
DECLARE_INTERFACE_(IShellExecuteHookW, IUnknown) // shexhk
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
// *** IShellExecuteHookW methods ***
STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOW pei) PURE;
};
#ifdef UNICODE
#define IShellExecuteHook IShellExecuteHookW
#define IShellExecuteHookVtbl IShellExecuteHookWVtbl
#else
#define IShellExecuteHook IShellExecuteHookA
#define IShellExecuteHookVtbl IShellExecuteHookAVtbl
#endif
#endif
//===========================================================================
//
// IURLSearchHook Interface
//
//===========================================================================
#undef INTERFACE
#define INTERFACE IURLSearchHook
DECLARE_INTERFACE_(IURLSearchHook, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
// *** IURLSearchHook methods ***
STDMETHOD(Translate)(THIS_ LPWSTR lpwszSearchURL, DWORD cchBufferSize) PURE;
};
//===========================================================================
//
// INewShortcutHook Interface
//
//===========================================================================
#undef INTERFACE
#define INTERFACE INewShortcutHookA
DECLARE_INTERFACE_(INewShortcutHookA, IUnknown) // nshhk
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
// *** INewShortcutHook methods ***
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) // nshhk
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
// *** INewShortcutHook methods ***
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
//===========================================================================
//
// ICopyHook Interface
//
// The copy hook is called whenever file system directories are
// copy/moved/deleted/renamed via the shell. It is also called by the shell
// on changes of status of printers.
//
// Clients register their id under STRREG_SHEX_COPYHOOK for file system hooks
// and STRREG_SHEx_PRNCOPYHOOK for printer hooks.
// the CopyCallback is called prior to the action, so the hook has the chance
// to allow, deny or cancel the operation by returning the falues:
// IDYES - means allow the operation
// IDNO - means disallow the operation on this file, but continue with
// any other operations (eg. batch copy)
// IDCANCEL - means disallow the current operation and cancel any pending
// operations
//
// arguments to the CopyCallback
// hwnd - window to use for any UI
// wFunc - what operation is being done
// wFlags - and flags (FOF_*) set in the initial call to the file operation
// pszSrcFile - name of the source file
// dwSrcAttribs - file attributes of the source file
// pszDestFile - name of the destiation file (for move and renames)
// dwDestAttribs - file attributes of the destination file
//
//
//===========================================================================
#ifndef FO_MOVE //these need to be kept in sync with the ones in shellapi.h
// file operations
#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 // don't create progress/report
#define FOF_RENAMEONCOLLISION 0x0008
#define FOF_NOCONFIRMATION 0x0010 // Don't prompt the user.
#define FOF_WANTMAPPINGHANDLE 0x0020 // Fill in SHFILEOPSTRUCT.hNameMappings
// Must be freed using SHFreeNameMappings
#define FOF_ALLOWUNDO 0x0040
#define FOF_FILESONLY 0x0080 // on *.*, do only files
#define FOF_SIMPLEPROGRESS 0x0100 // means don't show names of files
#define FOF_NOCONFIRMMKDIR 0x0200 // don't confirm making any needed dirs
#define FOF_NOERRORUI 0x0400 // don't put up error UI
#define FOF_NOCOPYSECURITYATTRIBS 0x0800 // dont copy NT file Security Attributes
typedef UINT FILEOP_FLAGS;
// printer operations
#define PO_DELETE 0x0013 // printer is being deleted
#define PO_RENAME 0x0014 // printer is being renamed
#define PO_PORTCHANGE 0x0020 // port this printer connected to is being changed
// if this id is set, the strings received by
// the copyhook are a doubly-null terminated
// list of strings. The first is the printer
// name and the second is the printer port.
#define PO_REN_PORT 0x0034 // PO_RENAME and PO_PORTCHANGE at same time.
// no POF_ flags currently defined
typedef UINT PRINTEROP_FLAGS;
#endif // FO_MOVE
#undef INTERFACE
#define INTERFACE ICopyHookA
DECLARE_INTERFACE_(ICopyHookA, IUnknown) // sl
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** ICopyHook methods ***
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) // sl
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** ICopyHook methods ***
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
//===========================================================================
//
// IFileViewerSite Interface
//
//===========================================================================
#undef INTERFACE
#define INTERFACE IFileViewerSite
DECLARE_INTERFACE_(IFileViewerSite, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IFileViewerSite methods ***
STDMETHOD(SetPinnedWindow) (THIS_ HWND hwnd) PURE;
STDMETHOD(GetPinnedWindow) (THIS_ HWND *phwnd) PURE;
};
typedef IFileViewerSite * LPFILEVIEWERSITE;
//===========================================================================
//
// IFileViewer Interface
//
// Implemented in a FileViewer component object. Used to tell a
// FileViewer to PrintTo or to view, the latter happening though
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -