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
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.