Método IFolderFilter::ShouldShow (shobjidl_core.h)

Especifica se um item individual deve ser permitido por meio do filtro e qual deve ser bloqueado. Quando usado com SHBrowseForFolder, especifica quais itens devem ser mostrados no modo de exibição de árvore da caixa de diálogo e quais não devem. A determinação de mostrar ou não mostrar um item cabe ao aplicativo.

Sintaxe

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

Parâmetros

[in] psf

Tipo: IShellFolder*

Um ponteiro para a interface IShellFolder da pasta.

[in] pidlFolder

Tipo: PCIDLIST_ABSOLUTE

O PIDL da pasta.

[in] pidlItem

Tipo: PCUITEMID_CHILD

O PIDL relativo do item filho de pidlFolder em questão.

Retornar valor

Tipo: HRESULT

Retorna S_OK se o item deve ser mostrado, S_FALSE se não deve ser mostrado ou um código de erro padrão se um erro for encontrado. Se um erro for encontrado, o item não será mostrado.

Comentários

O host chama esse método para cada item na pasta referenciada por psf ou pidlFolder.

É recomendável que sua implementação converta as informações psf e pidlItem em um IShellItem, o que é mais fácil de consumir. O seguinte exemplo mostra isso:

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;
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shobjidl_core.h (inclua Shobjidl.h)

Confira também

IFolderFilter