Partilhar via


Classe CShellManager

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

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

Sintaxe

class CShellManager : public CObject

Membros

Construtores Públicos

Nome Description
CShellManager::CShellManager Constrói um CShellManager objeto.

Métodos Públicos

Nome Description
CShellManager::BrowseForFolder Apresenta uma caixa de diálogo que permite ao utilizador selecionar uma pasta 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 do tamanho especificado.
CShellManager::ItemGrátis Elimina o PIDL fornecido.
CShellManager::GetItemCount Devolve o número de artigos no PIDL fornecido.
CShellManager::GetItemSize Devolve o tamanho do PIDL fornecido.
CShellManager::GetNextItem Devolve o próximo artigo do PIDL.
CShellManager::GetParentItem Recupera o item pai do item fornecido.
CShellManager::ItemFromPath Recupera o PIDL do item identificado pelo caminho fornecido.

Observações

Os métodos da CShellManager aula lidam todos com PIDLs. Um PIDL é um identificador único para um objeto shell.

Não deves criar um CShellManager objeto manualmente. Será criado automaticamente pelo framework da sua aplicação. No entanto, deve ligar para CWinAppEx::InitShellManager durante o processo de inicialização da sua aplicação. Para obter um indicador para o gestor de shell da sua aplicação, ligue para CWinAppEx::GetShellManager.

Hierarquia de herança

CObject

CShellManager

Requerimentos

Cabeçalho: afxshellmanager.h

CShellManager::BrowseForFolder

Apresenta uma caixa de diálogo que permite ao utilizador selecionar uma pasta shell.

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

Parâmetros

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

pWndParent
[dentro] Um apontador para a janela principal.

lplszInitialFolder
[dentro] Uma cadeia que contém a pasta selecionada por defeito quando a caixa de diálogo é exibida.

lpszTítulo
[dentro] O título da caixa de diálogo.

ulFlags
[dentro] Flags a especificar opções para a caixa de diálogo. Consulte BROWSEINFO para a descrição detalhada.

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

Valor de retorno

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

Observações

Ao chamar este método, a aplicação cria e mostra uma caixa de diálogo que permite ao utilizador selecionar uma pasta. O método irá escrever o caminho da pasta no parâmetro strOutFolder .

Example

O exemplo seguinte demonstra como recuperar uma referência a um CShellManager objeto usando o CWinAppEx::GetShellManager método e como utilizá-lo BrowseForFolder . Este excerto 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
[dentro] O primeiro item.

PIDL2
[dentro] O segundo ponto.

Valor de retorno

Um apontador para a nova lista de itens se a função tiver sucesso, caso contrário NULL.

Observações

Este método cria um novo ITEMIDLIST suficientemente grande para conter tanto pidl1 como pidl2. Depois copia pidl1 e pidl2 para a nova lista.

CShellManager::CopyItem

Copia uma lista de itens.

LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);

Parâmetros

pidlSource
[dentro] A lista original de itens.

Valor de retorno

Um apontador para a lista de itens recém-criada, se bem-sucedido; caso contrário, NULL.

Observações

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

CShellManager::CreateItem

Cria uma nova PIDL.

LPITEMIDLIST CreateItem(UINT cbSize);

Parâmetros

cbSize
[dentro] O tamanho da lista de itens.

Valor de retorno

Um apontador para a lista de itens criados se bem-sucedido; caso contrário, NULL.

CShellManager::CShellManager

Constrói um CShellManager objeto.

CShellManager();

Observações

Na maioria dos casos, não é necessário criar uma CShellManager carta direta. Por defeito, o framework cria um para si. Para obter uma indicação para , CShellManagerligue para CWinAppEx::GetShellManager. Se criar um CShellManager manualmente, deve inicializá-lo com o método CWinAppEx::InitShellManager.

CShellManager::ItemGrátis

Apaga uma lista de itens.

void FreeItem(LPITEMIDLIST pidl);

Parâmetros

pidl
[dentro] Uma lista de itens para apagar.

CShellManager::GetItemCount

Devolve o número de itens numa lista de itens.

UINT GetItemCount(LPCITEMIDLIST pidl);

Parâmetros

pidl
[dentro] Um indicador para uma lista de itens.

Valor de retorno

O número de itens na lista de itens.

CShellManager::GetItemSize

Devolve o tamanho de uma lista de itens.

UINT GetItemSize(LPCITEMIDLIST pidl);

Parâmetros

pidl
[dentro] Um indicador para uma lista de itens.

Valor de retorno

O tamanho da lista de itens.

CShellManager::GetNextItem

Recupera o próximo item a partir de um apontador para uma lista de identificadores de itens (PIDL).

LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);

Parâmetros

pidl
[dentro] A lista de itens a iterar.

Valor de retorno

Um indicador para o próximo item da lista.

Observações

Se não houver mais itens na lista, este método devolve NULL.

CShellManager::GetParentItem

Recupera o pai de um apontador para uma lista de identificadores de itens (PIDL).

int GetParentItem(
    LPCITEMIDLIST lpidl,
    LPITEMIDLIST& lpidlParent);

Parâmetros

lpidl
[dentro] Um PIDL cujo progenitor será recuperado.

lpidlPai
[fora] Uma referência a um PIDL onde o método armazena o resultado.

Valor de retorno

O nível do PIDL parental.

Observações

O nível de um PIDL é relativo ao ambiente de trabalho. Considera-se que o PIDL do desktop tem um nível 0.

CShellManager::ItemFromPath

Recupera o ponteiro para uma lista de identificadores de itens (PIDL) a partir do item identificado por um caminho de string.

HRESULT ItemFromPath(
    LPCTSTR lpszPath,
    LPITEMIDLIST& pidl);

Parâmetros

lpszPath
[dentro] Uma cadeia que especifica o caminho do item.

pidl
[fora] Uma referência a um PIDL. O método utiliza este PIDL para armazenar o ponteiro para o seu valor de retorno.

Valor de retorno

Retorna NOERROR se bem-sucedido; um valor de erro definido por OLE.

Consulte também

Gráfico de Hierarquia
Classes