Condividi tramite


Classe CShellManager

Implementa diversi metodi che consentono di utilizzare puntatori a elenchi di identificatori (PIDL).

Sintassi

class CShellManager : public CObject

Membri

Costruttori pubblici

Nome Descrizione
CShellManager::CShellManager Costruisce un oggetto CShellManager.

Metodi pubblici

Nome Descrizione
CShellManager::BrowseForFolder Visualizza una finestra di dialogo che consente all'utente di selezionare una cartella della shell.
CShellManager::ConcatenateItem Concatena due PIDL.
CShellManager::CopyItem Crea un nuovo PIDL e copia il PIDL fornito.
CShellManager::CreateItem Crea un nuovo PIDL delle dimensioni specificate.
CShellManager::FreeItem Elimina il PIDL fornito.
CShellManager::GetItemCount Restituisce il numero di elementi nel PIDL fornito.
CShellManager::GetItemSize Restituisce le dimensioni del PIDL fornito.
CShellManager::GetNextItem Restituisce l'elemento successivo dal PIDL.
CShellManager::GetParentItem Recupera l'elemento padre dell'elemento fornito.
CShellManager::ItemFromPath Recupera il PIDL per l'elemento identificato dal percorso fornito.

Osservazioni:

I metodi della CShellManager classe gestiscono tutti i PIDL. Un PIDL è un identificatore univoco per un oggetto shell.

Non è consigliabile creare un CShellManager oggetto manualmente. Verrà creato automaticamente dal framework dell'applicazione. Tuttavia, è necessario chiamare CWinAppEx::InitShellManager durante il processo di inizializzazione dell'applicazione. Per ottenere un puntatore alla gestione shell per l'applicazione, chiamare CWinAppEx::GetShellManager.

Gerarchia di ereditarietà

CObject

CShellManager

Requisiti

Intestazione: afxshellmanager.h

CShellManager::BrowseForFolder

Visualizza una finestra di dialogo che consente all'utente di selezionare una cartella della shell.

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

Parametri

strOutFolder
[out] Stringa utilizzata dal metodo per archiviare il percorso della cartella selezionata.

pWndParent
[in] Puntatore alla finestra padre.

lplszInitialFolder
[in] Stringa contenente la cartella selezionata per impostazione predefinita quando viene visualizzata la finestra di dialogo.

lpszTitle
[in] Titolo della finestra di dialogo.

ulFlags
[in] Flag che specificano le opzioni per la finestra di dialogo. Per la descrizione dettagliata, vedere BROWSEINFO .

piFolderImage
[out] Puntatore al valore intero in cui il metodo scrive l'indice immagine della cartella selezionata.

Valore restituito

Diverso da zero se l'utente seleziona una cartella dalla finestra di dialogo; in caso contrario, 0.

Osservazioni:

Quando si chiama questo metodo, l'applicazione crea e visualizza una finestra di dialogo che consente all'utente di selezionare una cartella. Il metodo scriverà il percorso della cartella nel parametro strOutFolder .

Esempio

Nell'esempio seguente viene illustrato come recuperare un riferimento a un CShellManager oggetto utilizzando il CWinAppEx::GetShellManager metodo e come utilizzare il BrowseForFolder metodo . Questo frammento di codice fa parte dell'esempio 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

Crea un nuovo elenco contenente due PIDL.

LPITEMIDLIST ConcatenateItem(
    LPCITEMIDLIST pidl1,
    LPCITEMIDLIST pidl2);

Parametri

pidl1
[in] Primo elemento.

pidl2
[in] Secondo elemento.

Valore restituito

Puntatore al nuovo elenco di elementi se la funzione ha esito positivo; in caso contrario, NULL.

Osservazioni:

Questo metodo crea un nuovo ITEMIDLIST sufficientemente grande da contenere sia pidl1 che pidl2. Copia quindi pidl1 e pidl2 nel nuovo elenco.

CShellManager::CopyItem

Copia un elenco di elementi.

LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);

Parametri

pidlSource
[in] Elenco di elementi originale.

Valore restituito

Puntatore all'elenco di elementi appena creato in caso di esito positivo; in caso contrario NULL.

Osservazioni:

L'elenco di elementi appena creato ha le stesse dimensioni dell'elenco di elementi di origine.

CShellManager::CreateItem

Crea un nuovo FILE PIDL.

LPITEMIDLIST CreateItem(UINT cbSize);

Parametri

cbSize
[in] Dimensioni dell'elenco di elementi.

Valore restituito

Puntatore all'elenco di elementi creato in caso di esito positivo; in caso contrario NULL.

CShellManager::CShellManager

Costruisce un oggetto CShellManager.

CShellManager();

Osservazioni:

Nella maggior parte dei casi, non è necessario creare direttamente un oggetto CShellManager . Per impostazione predefinita, il framework ne crea uno automaticamente. Per ottenere un puntatore a CShellManager, chiamare CWinAppEx::GetShellManager. Se si crea un oggetto CShellManager manualmente, è necessario inizializzarlo con il metodo CWinAppEx::InitShellManager.

CShellManager::FreeItem

Elimina un elenco di elementi.

void FreeItem(LPITEMIDLIST pidl);

Parametri

pidl
[in] Elenco di elementi da eliminare.

CShellManager::GetItemCount

Restituisce il numero di elementi in un elenco di elementi.

UINT GetItemCount(LPCITEMIDLIST pidl);

Parametri

pidl
[in] Puntatore a un elenco di elementi.

Valore restituito

Numero di elementi nell'elenco di elementi.

CShellManager::GetItemSize

Restituisce le dimensioni di un elenco di elementi.

UINT GetItemSize(LPCITEMIDLIST pidl);

Parametri

pidl
[in] Puntatore a un elenco di elementi.

Valore restituito

Dimensioni dell'elenco di elementi.

CShellManager::GetNextItem

Recupera l'elemento successivo da un puntatore a un elenco di identificatori di elemento (PIDL).

LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);

Parametri

pidl
[in] Elenco di elementi da scorrere.

Valore restituito

Puntatore all'elemento successivo nell'elenco.

Osservazioni:

Se nell'elenco non sono presenti altri elementi, questo metodo restituisce NULL.

CShellManager::GetParentItem

Recupera l'elemento padre di un puntatore a un elenco di identificatori di elemento (PIDL).

int GetParentItem(
    LPCITEMIDLIST lpidl,
    LPITEMIDLIST& lpidlParent);

Parametri

lpidl
[in] PIDL il cui elemento padre verrà recuperato.

lpidlParent
[out] Riferimento a un PIDL in cui il metodo archivierà il risultato.

Valore restituito

Livello del PIDL padre.

Osservazioni:

Il livello di un PIDL è relativo al desktop. Il PIDL desktop è considerato avere un livello pari a 0.

CShellManager::ItemFromPath

Recupera il puntatore a un elenco di identificatori di elemento (PIDL) dall'elemento identificato da un percorso stringa.

HRESULT ItemFromPath(
    LPCTSTR lpszPath,
    LPITEMIDLIST& pidl);

Parametri

lpszPath
[in] Stringa che specifica il percorso dell'elemento.

pidl
[out] Riferimento a un PIDL. Il metodo usa questo CODICE PIDL per archiviare il puntatore al valore restituito.

Valore restituito

Restituisce NOERROR se ha esito positivo; un valore di errore definito da OLE.

Vedi anche

Grafico della gerarchia
Classi