Compartilhar via


Classe CShellManager

Implementa vários métodos que permitem trabalhar com PIDLs (ponteiros para listas de identificador).

Sintaxe

class CShellManager : public CObject

Membros

Construtores públicos

Nome Descrição
CShellManager::CShellManager Constrói um objeto CShellManager.

Métodos públicos

Nome Descrição
CShellManager::BrowseForFolder Exibe uma caixa de diálogo que permite que o usuário selecione uma pasta de shell.
CShellManager::ConcatenateItem Concatena dois PIDLs.
CShellManager::CopyItem Cria um novo PIDL e copia o PIDL fornecido para ele.
CShellManager::CreateItem Cria um novo PIDL com o tamanho especificado.
CShellManager::FreeItem Exclui o PIDL fornecido.
CShellManager::GetItemCount Retorna o número de itens no PIDL fornecido.
CShellManager::GetItemSize Retorna o tamanho do PIDL fornecido.
CShellManager::GetNextItem Retorna o próximo item do PIDL.
CShellManager::GetParentItem Recupera o item pai do item fornecido.
CShellManager::ItemFromPath Recupera o PIDL para o item identificado pelo caminho fornecido.

Comentários

Todos os métodos da classe CShellManager lidam com PIDLs. Um PIDL é um identificador exclusivo para um objeto shell.

Você não deve criar um objeto CShellManager manualmente. Ele será criado automaticamente pela estrutura do aplicativo. No entanto, você deve chamar CWinAppEx::InitShellManager durante o processo de inicialização do aplicativo. Para obter um ponteiro para o gerenciador de shells do aplicativo, chame CWinAppEx::GetShellManager.

Hierarquia de herança

CObject

CShellManager

Requisitos

Cabeçalho: afxshellmanager.h

CShellManager::BrowseForFolder

Exibe uma caixa de diálogo que permite que o usuário selecione uma pasta de shell.

BOOL BrowseForFolder(
    CString& strOutFolder,
    CWnd* pWndParent = NULL,
    LPCTSTR lplszInitialFolder = NULL,
    LPCTSTR lpszTitle = NULL,
    UINT ulFlags = BIF_RETURNONLYFSDIRS,
    LPINT piFolderImage = NULL);

Parâmetros

strOutFolder
[out] A cadeia de caracteres usada pelo método para armazenar o caminho da pasta selecionada.

pWndParent
[in] Um ponteiro para a janela pai.

lplszInitialFolder
[in] Uma cadeia de caracteres que contém a pasta selecionada por padrão quando a caixa de diálogo é exibida.

lpszTitle
[in] O título para a caixa de diálogo.

ulFlags
[in] Sinalizadores especificando opções para a caixa de diálogo. Consulte BROWSEINFO para obter a descrição detalhada.

piFolderImage
[out] Um ponteiro para o valor inteiro onde o método grava o índice de imagem da pasta selecionada.

Valor de retorno

Diferente de zero se o usuário selecionar uma pasta na caixa de diálogo; caso contrário, zero.

Comentários

Quando você chama esse método, o aplicativo cria e mostra uma caixa de diálogo que permite que o usuário selecione uma pasta. O método gravará o caminho da pasta no parâmetro strOutFolder.

Exemplo

O exemplo a seguir demonstra como recuperar uma referência a um objeto CShellManager usando o método CWinAppEx::GetShellManager e como usar o método BrowseForFolder. Este snippet de código faz parte do exemplo do Explorer.

CString strPath;
// The this pointer points to the CExplorerView class which extends the CView class.
// CMFCShellListCtrl m_wndList
if (m_wndList.GetCurrentFolder(strPath) &&
    theApp.GetShellManager()->BrowseForFolder(strPath,
                                              this, strPath, _T("Copy the selected item(s) to the folder:")))
{
   MessageBox(CString(_T("The selected path is: ")) + strPath);
}

CShellManager::ConcatenateItem

Cria uma nova lista contendo dois PIDLs.

LPITEMIDLIST ConcatenateItem(
    LPCITEMIDLIST pidl1,
    LPCITEMIDLIST pidl2);

Parâmetros

pidl1
[in] O primeiro item.

pidl2
[in] O segundo item.

Valor de retorno

Um ponteiro para a nova lista de itens se a função for bem-sucedida; caso contrário, NULL.

Comentários

Esse método cria um ITEMIDLIST grande o suficiente para conter pidl1 e pidl2. Em seguida, copia pidl1 e pidl2 para a nova lista.

CShellManager::CopyItem

Copia uma lista de itens.

LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);

Parâmetros

pidlSource
[in] A lista de itens original.

Valor de retorno

Um ponteiro para a lista de itens recém-criada se tiver êxito; caso contrário, NULL.

Comentários

A lista de itens recém-criada tem o mesmo tamanho que a lista de itens de origem.

CShellManager::CreateItem

Cria um novo PIDL.

LPITEMIDLIST CreateItem(UINT cbSize);

Parâmetros

cbSize
[in] O tamanho da lista de itens.

Valor de retorno

Um ponteiro para a lista de itens criados se tiver êxito; caso contrário, NULL.

CShellManager::CShellManager

Constrói um objeto CShellManager.

CShellManager();

Comentários

Na maioria dos casos, você não precisa criar um CShellManager diretamente. Por padrão, a estrutura cria um para você. Para obter um ponteiro para o CShellManager, chame CWinAppEx::GetShellManager. Se você criar um CShellManager manualmente, deverá inicializá-lo com o método CWinAppEx::InitShellManager.

CShellManager::FreeItem

Exclui uma lista de itens.

void FreeItem(LPITEMIDLIST pidl);

Parâmetros

pidl
[in] Uma lista de itens a ser excluída.

CShellManager::GetItemCount

Retorna o número de itens em uma lista de itens.

UINT GetItemCount(LPCITEMIDLIST pidl);

Parâmetros

pidl
[in] Um ponteiro para uma lista de itens.

Valor de retorno

O número de itens na lista de itens.

CShellManager::GetItemSize

Retorna o tamanho de uma lista de itens.

UINT GetItemSize(LPCITEMIDLIST pidl);

Parâmetros

pidl
[in] Um ponteiro para uma lista de itens.

Valor de retorno

O tamanho da lista de itens.

CShellManager::GetNextItem

Recupera o próximo item de um ponteiro para uma lista de identificadores de item (PIDL).

LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);

Parâmetros

pidl
[in] A lista de itens a serem iterados.

Valor de retorno

Um ponteiro para o próximo item na lista.

Comentários

Se não houver mais itens na lista, esse método retornará NULL.

CShellManager::GetParentItem

Recupera o pai de um ponteiro para uma lista de identificadores de item (PIDL).

int GetParentItem(
    LPCITEMIDLIST lpidl,
    LPITEMIDLIST& lpidlParent);

Parâmetros

lpidl
[in] Um PIDL cujo pai será recuperado.

lpidlParent
[out] Uma referência a um PIDL onde o método armazenará o resultado.

Valor de retorno

O nível do PIDL pai.

Comentários

O nível de um PIDL é relativo à área de trabalho. O PIDL da área de trabalho é considerado com tendo um nível de 0.

CShellManager::ItemFromPath

Recupera um PIDL (ponteiro para uma lista de identificadores de item) do item identificado por um caminho de cadeia de caracteres.

HRESULT ItemFromPath(
    LPCTSTR lpszPath,
    LPITEMIDLIST& pidl);

Parâmetros

lpszPath
[in] Uma cadeia de caracteres que especifica o caminho para o item.

pidl
[out] Uma referência a um PIDL. O método usa esse PIDL para armazenar o ponteiro em seu valor retornado.

Valor de retorno

Retorna NOERROR se tiver êxito; um valor de erro definido por OLE.

Confira também

Gráfico da hierarquia
Classes