IShellFolderViewType 接口

公开使 Shell 文件夹能够支持其内容上的不同视图的方法, (其数据) 的不同分层布局。

成员

IShellFolderViewType 接口继承自 IUnknown 接口。 IShellFolderViewType 还具有以下类型的成员:

方法

IShellFolderViewType 接口包含以下方法。

方法 说明
EnumViews 检索将为每个扩展视图返回一个 PIDL 的枚举器。
GetDefaultViewName 获取默认视图的名称。 调用 IShellFolder::GetDisplayNameOf 以检索其他视图的名称。
GetViewTypeProperties 获取视图的属性。
TranslateViewPidl 将 PIDL 从 Shell 文件夹的一个分层表示形式重新构造为不同的表示形式。

 

备注

此枚举器返回属于 Shell 文件夹顶层的特殊隐藏文件夹的 PIDL,这些文件夹未以其他方式枚举。 默认视图是 Shell 文件夹正常显示的视图。

此接口未在任何公共头文件中定义。 如果选择实现此接口,则可以使用以下 C/C++ 代码来声明其方法。

#undef  INTERFACE
#define INTERFACE   IShellFolderViewType
DECLARE_INTERFACE_IID_(IShellFolderViewType, IUnknown, "49422C1E-1C03-11d2-8DAB-0000F87A556C")
{
    // *** IUnknown methods ***
    STDMETHOD(QueryInterface) (THIS_ REFIID riid, __out void **ppv) PURE;
    STDMETHOD_(ULONG,AddRef)  (THIS) PURE;
    STDMETHOD_(ULONG,Release) (THIS) PURE;

    // *** IShellFolderViewType Methods ***

    // EnumViews:
    //   Returns an enumerator which will give out one pidl for every extended view.
    STDMETHOD(EnumViews)(THIS_ ULONG grfFlags, __out IEnumIDList **ppenum) PURE;

    // GetDefaultViewName:
    //   Returns the name of the default view.  The names of the other views
    //   can be retrieved by calling GetDisplayNameOf.
    STDMETHOD(GetDefaultViewName)(THIS_ DWORD  uFlags, __out LPWSTR *ppwszName) PURE;
    STDMETHOD(GetViewTypeProperties)(THIS_ PCUITEMID_CHILD pidl, __out DWORD *pdwFlags)  PURE;

    // TranslateViewPidl:
    //   Attempts to take a pidl represented in one hierarchical representation of
    //   the Shell folder, and find it in a different representation.
    //   pidl should be relative to the root folder.
    //   Remember to ILFree ppidlOut
    STDMETHOD(TranslateViewPidl)(THIS_ PCUIDLIST_RELATIVE pidl, PCUIDLIST_RELATIVE pidlView,
              __out PIDLIST_RELATIVE *ppidlOut) PURE;
};

#define SFVTFLAG_NOTIFY_CREATE  0x00000001
#define SFVTFLAG_NOTIFY_RESORT  0x00000002

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
DLL
Shell32.dll