IFolderFilter::ShouldShow 方法 (shobjidl_core.h)

指定是否应允许通过筛选器以及应阻止的单个项。 与 SHBrowseForFolder 一起使用时,指定哪些项应在对话框树视图中显示,哪些项不应显示。 显示或不显示项的确定由应用程序决定。

语法

HRESULT ShouldShow(
  [in] IShellFolder      *psf,
  [in] PCIDLIST_ABSOLUTE pidlFolder,
  [in] PCUITEMID_CHILD   pidlItem
);

参数

[in] psf

类型: IShellFolder*

指向文件夹的 IShellFolder 接口的指针。

[in] pidlFolder

类型: PCIDLIST_ABSOLUTE

文件夹的 PIDL。

[in] pidlItem

类型: PCUITEMID_CHILD

相关 pidlFolder 子项的相对 PIDL。

返回值

类型: HRESULT

如果应显示项,则返回S_OK;如果不应显示项,则返回S_FALSE;如果遇到错误,则返回标准错误代码。 如果遇到错误,则不显示该项。

注解

主机对 psfpidlFolder 引用的文件夹中的每个项目调用此方法。

建议实现将 psfpidlItem 信息转换为 更易于使用的 IShellItem。 下面的示例对此进行了展示:

STDMETHODIMP ShouldShow(IShellFolder *psf, 
                        PCIDLIST_ABSOLUTE pidlFolder, 
                        PCUITEMID_CHILD pidlItem)
{
    IShellItem *psi;

    HRESULT hr = SHCreateItemWithParent(NULL, psf, pidlItem, IID_PPV_ARGS(&psi));
    if (SUCCEEDED(hr))
    {
        // Determine here whether the item should be shown. This determination
        // is application-dependent.

        psi->Release();
    }

    return hr;
}

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)

另请参阅

IFolderFilter