📄 shobjidl.h
字号:
IPersistIDList * This,
/* [out] */ CLSID *pClassID);
HRESULT ( STDMETHODCALLTYPE *SetIDList )(
IPersistIDList * This,
/* [in] */ LPCITEMIDLIST pidl);
HRESULT ( STDMETHODCALLTYPE *GetIDList )(
IPersistIDList * This,
/* [out] */ LPITEMIDLIST *ppidl);
END_INTERFACE
} IPersistIDListVtbl;
interface IPersistIDList
{
CONST_VTBL struct IPersistIDListVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IPersistIDList_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IPersistIDList_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IPersistIDList_Release(This) \
(This)->lpVtbl -> Release(This)
#define IPersistIDList_GetClassID(This,pClassID) \
(This)->lpVtbl -> GetClassID(This,pClassID)
#define IPersistIDList_SetIDList(This,pidl) \
(This)->lpVtbl -> SetIDList(This,pidl)
#define IPersistIDList_GetIDList(This,ppidl) \
(This)->lpVtbl -> GetIDList(This,ppidl)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IPersistIDList_SetIDList_Proxy(
IPersistIDList * This,
/* [in] */ LPCITEMIDLIST pidl);
void __RPC_STUB IPersistIDList_SetIDList_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IPersistIDList_GetIDList_Proxy(
IPersistIDList * This,
/* [out] */ LPITEMIDLIST *ppidl);
void __RPC_STUB IPersistIDList_GetIDList_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IPersistIDList_INTERFACE_DEFINED__ */
#ifndef __IEnumIDList_INTERFACE_DEFINED__
#define __IEnumIDList_INTERFACE_DEFINED__
/* interface IEnumIDList */
/* [unique][object][uuid][helpstring] */
EXTERN_C const IID IID_IEnumIDList;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("000214F2-0000-0000-C000-000000000046")
IEnumIDList : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Next(
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ LPITEMIDLIST *rgelt,
/* [out] */ ULONG *pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
/* [in] */ ULONG celt) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
/* [out] */ IEnumIDList **ppenum) = 0;
};
#else /* C style interface */
typedef struct IEnumIDListVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IEnumIDList * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IEnumIDList * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IEnumIDList * This);
HRESULT ( STDMETHODCALLTYPE *Next )(
IEnumIDList * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ LPITEMIDLIST *rgelt,
/* [out] */ ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
IEnumIDList * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
IEnumIDList * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
IEnumIDList * This,
/* [out] */ IEnumIDList **ppenum);
END_INTERFACE
} IEnumIDListVtbl;
interface IEnumIDList
{
CONST_VTBL struct IEnumIDListVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IEnumIDList_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IEnumIDList_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IEnumIDList_Release(This) \
(This)->lpVtbl -> Release(This)
#define IEnumIDList_Next(This,celt,rgelt,pceltFetched) \
(This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched)
#define IEnumIDList_Skip(This,celt) \
(This)->lpVtbl -> Skip(This,celt)
#define IEnumIDList_Reset(This) \
(This)->lpVtbl -> Reset(This)
#define IEnumIDList_Clone(This,ppenum) \
(This)->lpVtbl -> Clone(This,ppenum)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IEnumIDList_Next_Proxy(
IEnumIDList * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ LPITEMIDLIST *rgelt,
/* [out] */ ULONG *pceltFetched);
void __RPC_STUB IEnumIDList_Next_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumIDList_Skip_Proxy(
IEnumIDList * This,
/* [in] */ ULONG celt);
void __RPC_STUB IEnumIDList_Skip_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumIDList_Reset_Proxy(
IEnumIDList * This);
void __RPC_STUB IEnumIDList_Reset_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumIDList_Clone_Proxy(
IEnumIDList * This,
/* [out] */ IEnumIDList **ppenum);
void __RPC_STUB IEnumIDList_Clone_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IEnumIDList_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_shobjidl_0194 */
/* [local] */
typedef IEnumIDList *LPENUMIDLIST;
typedef enum tagSHGDN
{
SHGDN_NORMAL = 0x0000, // default (display purpose)
SHGDN_INFOLDER = 0x0001, // displayed under a folder (relative)
SHGDN_FOREDITING = 0x1000, // for in-place editing
SHGDN_FORADDRESSBAR = 0x4000, // UI friendly parsing name (remove ugly stuff)
SHGDN_FORPARSING = 0x8000, // parsing name for ParseDisplayName()
} SHGNO;
typedef DWORD SHGDNF;
typedef enum tagSHCONTF
{
SHCONTF_FOLDERS = 0x0020, // only want folders enumerated (SFGAO_FOLDER)
SHCONTF_NONFOLDERS = 0x0040, // include non folders
SHCONTF_INCLUDEHIDDEN = 0x0080, // show items normally hidden
SHCONTF_INIT_ON_FIRST_NEXT = 0x0100, // allow EnumObject() to return before validating enum
SHCONTF_NETPRINTERSRCH = 0x0200, // hint that client is looking for printers
SHCONTF_SHAREABLE = 0x0400, // hint that client is looking sharable resources (remote shares)
SHCONTF_STORAGE = 0x0800, // include all items with accessible storage and their ancestors
};
typedef DWORD SHCONTF;
#define SHCIDS_ALLFIELDS 0x80000000L
#define SHCIDS_CANONICALONLY 0x10000000L
#define SHCIDS_BITMASK 0xFFFF0000L
#define SHCIDS_COLUMNMASK 0x0000FFFFL
#define SFGAO_CANCOPY DROPEFFECT_COPY // Objects can be copied (0x1)
#define SFGAO_CANMOVE DROPEFFECT_MOVE // Objects can be moved (0x2)
#define SFGAO_CANLINK DROPEFFECT_LINK // Objects can be linked (0x4)
#define SFGAO_STORAGE 0x00000008L // supports BindToObject(IID_IStorage)
#define SFGAO_CANRENAME 0x00000010L // Objects can be renamed
#define SFGAO_CANDELETE 0x00000020L // Objects can be deleted
#define SFGAO_HASPROPSHEET 0x00000040L // Objects have property sheets
#define SFGAO_DROPTARGET 0x00000100L // Objects are drop target
#define SFGAO_CAPABILITYMASK 0x00000177L
#define SFGAO_ENCRYPTED 0x00002000L // object is encrypted (use alt color)
#define SFGAO_ISSLOW 0x00004000L // 'slow' object
#define SFGAO_GHOSTED 0x00008000L // ghosted icon
#define SFGAO_LINK 0x00010000L // Shortcut (link)
#define SFGAO_SHARE 0x00020000L // shared
#define SFGAO_READONLY 0x00040000L // read-only
#define SFGAO_HIDDEN 0x00080000L // hidden object
#define SFGAO_DISPLAYATTRMASK 0x000FC000L
#define SFGAO_FILESYSANCESTOR 0x10000000L // may contain children with SFGAO_FILESYSTEM
#define SFGAO_FOLDER 0x20000000L // support BindToObject(IID_IShellFolder)
#define SFGAO_FILESYSTEM 0x40000000L // is a win32 file system object (file/folder/root)
#define SFGAO_HASSUBFOLDER 0x80000000L // may contain children with SFGAO_FOLDER
#define SFGAO_CONTENTSMASK 0x80000000L
#define SFGAO_VALIDATE 0x01000000L // invalidate cached information
#define SFGAO_REMOVABLE 0x02000000L // is this removeable media?
#define SFGAO_COMPRESSED 0x04000000L // Object is compressed (use alt color)
#define SFGAO_BROWSABLE 0x08000000L // supports IShellFolder, but only implements CreateViewObject() (non-folder view)
#define SFGAO_NONENUMERATED 0x00100000L // is a non-enumerated object
#define SFGAO_NEWCONTENT 0x00200000L // should show bold in explorer tree
#define SFGAO_CANMONIKER 0x00400000L // defunct
#define SFGAO_HASSTORAGE 0x00400000L // defunct
#define SFGAO_STREAM 0x00400000L // supports BindToObject(IID_IStream)
#define SFGAO_STORAGEANCESTOR 0x00800000L // may contain children with SFGAO_STORAGE or SFGAO_STREAM
#define SFGAO_STORAGECAPMASK 0x70C50008L // for determining storage capabilities, ie for open/save semantics
typedef ULONG SFGAOF;
#define STR_SKIP_BINDING_CLSID L"Skip Binding CLSID"
#define STR_PARSE_PREFER_FOLDER_BROWSING L"Parse Prefer Folder Browsing"
#define STR_DONT_PARSE_RELATIVE L"Don't Parse Relative"
#define STR_PARSE_TRANSLATE_ALIASES L"Parse Translate Aliases"
extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0194_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0194_v0_0_s_ifspec;
#ifndef __IShellFolder_INTERFACE_DEFINED__
#define __IShellFolder_INTERFACE_DEFINED__
/* interface IShellFolder */
/* [unique][object][uuid][helpstring] */
EXTERN_C const IID IID_IShellFolder;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("000214E6-0000-0000-C000-000000000046")
IShellFolder : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
/* [in] */ HWND hwnd,
/* [in] */ LPBC pbc,
/* [string][in] */ LPOLESTR pszDisplayName,
/* [out] */ ULONG *pchEaten,
/* [out] */ LPITEMIDLIST *ppidl,
/* [unique][out][in] */ ULONG *pdwAttributes) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumObjects(
/* [in] */ HWND hwnd,
/* [in] */ SHCONTF grfFlags,
/* [out] */ IEnumIDList **ppenumIDList) = 0;
virtual HRESULT STDMETHODCALLTYPE BindToObject(
/* [in] */ LPCITEMIDLIST pidl,
/* [in] */ LPBC pbc,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppv) = 0;
virtual HRESULT STDMETHODCALLTYPE BindToStorage(
/* [in] */ LPCITEMIDLIST pidl,
/* [in] */ LPBC pbc,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppv) = 0;
virtual HRESULT STDMETHODCALLTYPE CompareIDs(
/* [in] */ LPARAM lParam,
/* [in] */ LPCITEMIDLIST pidl1,
/* [in] */ LPCITEMIDLIST pidl2) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
/* [in] */ HWND hwndOwner,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppv) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
/* [in] */ UINT cidl,
/* [size_is][in] */ LPCITEMIDLIST *apidl,
/* [out][in] */ SFGAOF *rgfInOut) = 0;
virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
/* [in] */ HWND hwndOwner,
/* [in] */ UINT cidl,
/* [size_is][in] */ LPCITEMIDLIST *apidl,
/* [in] */ REFIID riid,
/* [unique][out][in] */ UINT *rgfReserved,
/* [iid_is][out] */ void **ppv) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
/* [in] */ LPCITEMIDLIST pidl,
/* [in] */ SHGDNF uFlags,
/* [out] */ STRRET *pName) = 0;
virtual HRESULT STDMETHODCALLTYPE SetNameOf(
/* [in] */ HWND hwnd,
/* [in] */ LPCITEMIDLIST pidl,
/* [string][in] */ LPCOLESTR pszName,
/* [in] */ SHGDNF uFlags,
/* [out] */ LPITEMIDLIST *ppidlOut) = 0;
};
#else /* C style interface */
typedef struct IShellFolderVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IShellFolder * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IShellFolder * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IShellFolder * This);
HRESULT ( STDMETHODCALLTYPE *ParseDisplayName )(
IShellFolder * This,
/* [in] */ HWND hwnd,
/* [in] */ LPBC pbc,
/* [string][in] */ LPOLESTR pszDisplayName,
/* [out] */ ULONG *pchEaten,
/* [out] */ LPITEMIDLIST *ppidl,
/* [unique][out][in] */ ULONG *pdwAttributes);
HRESULT ( STDMETHODCALLTYPE *EnumObjects )(
IShellFolder * This,
/* [in] */ HWND hwnd,
/* [in] */ SHCONTF grfFlags,
/* [out] */ IEnumIDList **ppenumIDList);
HRESULT ( STDMETHODCALLTYPE *BindToObject )(
IShellFolder * This,
/* [in] */ LPCITEMIDLIST pidl,
/* [in] */ LPBC pbc,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *BindToStorage )(
IShellFolder * This,
/* [in] */ LPCITEMIDLIST pidl,
/* [in] */ LPBC pbc,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppv);
HRESULT ( STDMETHODCALLTYPE *CompareIDs )(
IShellFolder * This,
/* [in] */ LPARAM lParam,
/* [in] */ LPCITEMIDLIST pidl1,
/* [in] */ LPCITEMIDLIST pidl2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -